@@ -829,6 +829,65 @@ test_expect_success HAVE_JQ 'verify nnodes/ranks/nodelist preserved across resta
829829 echo $obj | jq -e ".nodelist == \"${nodes}\""
830830'
831831
832+ # all job attributes
833+
834+ # note that not all attributes may be returned by via the 'all'
835+ # attribute. e.g. exception data won't be returned for a job that
836+ # doesn't have an exception, no annotations if none set, etc.
837+ #
838+ # so we check for all the core / expected attributes for the situation
839+
840+ test_expect_success HAVE_JQ ' list request with all attr works (job success)' '
841+ id=$(id -u) &&
842+ flux mini run hostname &&
843+ $jq -j -c -n "{max_entries:1, userid:${id}, states:0, results:0, attrs:[\"all\"]}" \
844+ | $RPC job-list.list | jq ".jobs[0]" > all_success.out &&
845+ cat all_success.out | jq -e ".id" &&
846+ cat all_success.out | jq -e ".userid" &&
847+ cat all_success.out | jq -e ".urgency" &&
848+ cat all_success.out | jq -e ".priority" &&
849+ cat all_success.out | jq -e ".t_submit" &&
850+ cat all_success.out | jq -e ".t_depend" &&
851+ cat all_success.out | jq -e ".t_run" &&
852+ cat all_success.out | jq -e ".t_cleanup" &&
853+ cat all_success.out | jq -e ".t_inactive" &&
854+ cat all_success.out | jq -e ".state" &&
855+ cat all_success.out | jq -e ".name" &&
856+ cat all_success.out | jq -e ".ntasks" &&
857+ cat all_success.out | jq -e ".nnodes" &&
858+ cat all_success.out | jq -e ".ranks" &&
859+ cat all_success.out | jq -e ".nodelist" &&
860+ cat all_success.out | jq -e ".success == true" &&
861+ cat all_success.out | jq -e ".exception_occurred == false" &&
862+ cat all_success.out | jq -e ".result" &&
863+ cat all_success.out | jq -e ".waitstatus" &&
864+ cat all_success.out | jq -e ".expiration"
865+ '
866+
867+ test_expect_success HAVE_JQ ' list request with all attr works (job fail)' '
868+ id=$(id -u) &&
869+ ! flux mini run -N1000 -n1000 hostname &&
870+ $jq -j -c -n "{max_entries:1, userid:${id}, states:0, results:0, attrs:[\"all\"]}" \
871+ | $RPC job-list.list | jq ".jobs[0]" > all_fail.out &&
872+ cat all_fail.out | jq -e ".id" &&
873+ cat all_fail.out | jq -e ".userid" &&
874+ cat all_fail.out | jq -e ".urgency" &&
875+ cat all_fail.out | jq -e ".priority" &&
876+ cat all_fail.out | jq -e ".t_submit" &&
877+ cat all_fail.out | jq -e ".t_depend" &&
878+ cat all_fail.out | jq -e ".t_cleanup" &&
879+ cat all_fail.out | jq -e ".t_inactive" &&
880+ cat all_fail.out | jq -e ".state" &&
881+ cat all_fail.out | jq -e ".name" &&
882+ cat all_fail.out | jq -e ".ntasks" &&
883+ cat all_fail.out | jq -e ".success == false" &&
884+ cat all_fail.out | jq -e ".exception_occurred == true" &&
885+ cat all_fail.out | jq -e ".exception_type" &&
886+ cat all_fail.out | jq -e ".exception_severity" &&
887+ cat all_fail.out | jq -e ".exception_note" &&
888+ cat all_fail.out | jq -e ".result"
889+ '
890+
832891#
833892# job-list can handle flux-restart events
834893#
@@ -880,10 +939,10 @@ test_expect_success 'list count / max_entries works' '
880939 test $count -eq 5
881940'
882941
883- # List of all attributes (XXX: maybe this should be pulled in from somewhere
942+ # List of all job attributes (XXX: maybe this should be pulled in from somewhere
884943# else? E.g. documentation?
885944
886- ALL_ATTRIBUTES =" \
945+ JOB_ATTRIBUTES =" \
887946userid \
888947urgency \
889948priority \
@@ -914,7 +973,7 @@ test_expect_success HAVE_JQ 'list request with empty attrs works' '
914973 id=$(id -u) &&
915974 $jq -j -c -n "{max_entries:5, userid:${id}, states:0, results:0, attrs:[]}" \
916975 | $RPC job-list.list > list_empty_attrs.out &&
917- for attr in $ALL_ATTRIBUTES ; do
976+ for attr in $JOB_ATTRIBUTES ; do
918977 test_must_fail grep $attr list_empty_attrs.out
919978 done
920979'
@@ -923,9 +982,13 @@ test_expect_success HAVE_JQ 'list request with excessive max_entries works' '
923982 $jq -j -c -n "{max_entries:100000, userid:${id}, states:0, results:0, attrs:[]}" \
924983 | $RPC job-list.list
925984'
985+
986+ # list-attrs also lists the special attribute 'all'
987+ LIST_ATTRIBUTES=" ${JOB_ATTRIBUTES} all"
988+
926989test_expect_success HAVE_JQ ' list-attrs works' '
927990 $RPC job-list.list-attrs < /dev/null > list_attrs.out &&
928- for attr in $ALL_ATTRIBUTES ; do
991+ for attr in $LIST_ATTRIBUTES ; do
929992 grep $attr list_attrs.out
930993 done
931994'
0 commit comments