22
33test_description=' Test flux job list services'
44
5+ . $( dirname $0 ) /job-list/job-list-helper.sh
6+
57. $( dirname $0 ) /sharness.sh
68
79test_under_flux 4 job
@@ -49,48 +51,6 @@ wait_jobid_state() {
4951# TODO
5052# - alternate userid job listing
5153
52- # Return the expected jobids list in a given state:
53- # "all", "pending", "running", "inactive", "active",
54- # "completed", "canceled", "failed"
55- #
56- state_ids () {
57- for f in " $@ " ; do
58- cat ${f} .ids
59- done
60- }
61-
62- # Return the expected count of jobs in a given state (See above for list)
63- #
64- state_count () {
65- state_ids " $@ " | wc -l
66- }
67-
68- # the job-list module has eventual consistency with the jobs stored in
69- # the job-manager's queue. To ensure no raciness in tests, we spin
70- # until all of the pending jobs have reached SCHED state, running jobs
71- # have reached RUN state, and inactive jobs have reached INACTIVE
72- # state.
73-
74- wait_states () {
75- pending=$( state_count pending)
76- running=$( state_count running)
77- inactive=$( state_count inactive)
78- local i=0
79- while ( [ " $( flux job list --states=sched | wc -l) " != " $pending " ] \
80- || [ " $( flux job list --states=run | wc -l) " != " $running " ] \
81- || [ " $( flux job list --states=inactive | wc -l) " != " $inactive " ]) \
82- && [ $i -lt 50 ]
83- do
84- sleep 0.1
85- i=$(( i + 1 ))
86- done
87- if [ " $i " -eq " 50" ]
88- then
89- return 1
90- fi
91- return 0
92- }
93-
9454test_expect_success ' submit jobs for job list testing' '
9555 # Create `hostname` and `sleep` jobspec
9656 # N.B. Used w/ `flux job submit` for serial job submission
@@ -159,7 +119,7 @@ test_expect_success 'submit jobs for job list testing' '
159119 #
160120 # Synchronize all expected states
161121 #
162- wait_states
122+ job_list_wait_states
163123'
164124
165125# Note: "running" = "run" | "cleanup", we also test just "run" state
@@ -321,7 +281,7 @@ test_expect_success HAVE_JQ 'flux job list active jobs in correct order' '
321281'
322282
323283test_expect_success HAVE_JQ ' flux job list jobs with correct userid' '
324- for count in `seq 1 $(state_count all)`; do \
284+ for count in `seq 1 $(job_list_state_count all)`; do \
325285 id -u >> list_userid.exp; \
326286 done &&
327287 flux job list -a | jq .userid > list_userid.out &&
@@ -331,21 +291,21 @@ test_expect_success HAVE_JQ 'flux job list jobs with correct userid' '
331291test_expect_success HAVE_JQ ' flux job list defaults to listing pending & running jobs' '
332292 flux job list | jq .id > list_default.out &&
333293 count=$(wc -l < list_default.out) &&
334- test $count = $(state_count active) &&
294+ test $count = $(job_list_state_count active) &&
335295 test_cmp list_default.out active.ids
336296'
337297
338298test_expect_success ' flux job list --user=userid works' '
339299 uid=$(id -u) &&
340300 flux job list --user=$uid> list_userid.out &&
341301 count=$(wc -l < list_userid.out) &&
342- test $count = $(state_count active)
302+ test $count = $(job_list_state_count active)
343303'
344304
345305test_expect_success ' flux job list --user=all works' '
346306 flux job list --user=all > list_all.out &&
347307 count=$(wc -l < list_all.out) &&
348- test $count = $(state_count active)
308+ test $count = $(job_list_state_count active)
349309'
350310
351311# we hard count numbers here b/c its a --count test
@@ -366,11 +326,11 @@ test_expect_success HAVE_JQ 'flux job list all jobs works' '
366326test_expect_success HAVE_JQ ' job stats lists jobs in correct state (mix)' '
367327 flux job stats | jq -e ".job_states.depend == 0" &&
368328 flux job stats | jq -e ".job_states.priority == 0" &&
369- flux job stats | jq -e ".job_states.sched == $(state_count pending)" &&
370- flux job stats | jq -e ".job_states.run == $(state_count running)" &&
329+ flux job stats | jq -e ".job_states.sched == $(job_list_state_count pending)" &&
330+ flux job stats | jq -e ".job_states.run == $(job_list_state_count running)" &&
371331 flux job stats | jq -e ".job_states.cleanup == 0" &&
372- flux job stats | jq -e ".job_states.inactive == $(state_count inactive)" &&
373- flux job stats | jq -e ".job_states.total == $(state_count all)"
332+ flux job stats | jq -e ".job_states.inactive == $(job_list_state_count inactive)" &&
333+ flux job stats | jq -e ".job_states.total == $(job_list_state_count all)"
374334'
375335
376336test_expect_success ' cleanup job listing jobs ' '
@@ -382,7 +342,7 @@ test_expect_success 'cleanup job listing jobs ' '
382342
383343wait_inactive () {
384344 local i=0
385- while [ " $( flux job list --states=inactive | wc -l) " != " $( state_count all) " ] \
345+ while [ " $( flux job list --states=inactive | wc -l) " != " $( job_list_state_count all) " ] \
386346 && [ $i -lt 50 ]
387347 do
388348 sleep 0.1
@@ -412,21 +372,21 @@ test_expect_success HAVE_JQ 'job stats lists jobs in correct state (all inactive
412372 flux job stats | jq -e ".job_states.sched == 0" &&
413373 flux job stats | jq -e ".job_states.run == 0" &&
414374 flux job stats | jq -e ".job_states.cleanup == 0" &&
415- flux job stats | jq -e ".job_states.inactive == $(state_count all)" &&
416- flux job stats | jq -e ".job_states.total == $(state_count all)"
375+ flux job stats | jq -e ".job_states.inactive == $(job_list_state_count all)" &&
376+ flux job stats | jq -e ".job_states.total == $(job_list_state_count all)"
417377'
418378
419379# job list-inactive
420380
421381test_expect_success HAVE_JQ ' flux job list-inactive lists all inactive jobs' '
422382 flux job list-inactive > list-inactive.out &&
423383 count=`cat list-inactive.out | wc -l` &&
424- test $count -eq $(state_count all)
384+ test $count -eq $(job_list_state_count all)
425385'
426386
427387test_expect_success HAVE_JQ ' flux job list-inactive w/ since 0 lists all inactive jobs' '
428388 count=`flux job list-inactive --since=0 | wc -l` &&
429- test $count -eq $(state_count all)
389+ test $count -eq $(job_list_state_count all)
430390'
431391
432392# we hard count numbers here b/c its a --count test
@@ -486,16 +446,16 @@ test_expect_success HAVE_JQ 'flux job list-ids works with a single ID' '
486446'
487447
488448test_expect_success HAVE_JQ ' flux job list-ids multiple IDs works' '
489- ids=$(state_ids pending) &&
449+ ids=$(job_list_state_ids pending) &&
490450 flux job list-ids $ids | jq .id > list_idsP.out &&
491451 test_cmp list_idsP.out pending.ids &&
492- ids=$(state_ids running) &&
452+ ids=$(job_list_state_ids running) &&
493453 flux job list-ids $ids | jq .id > list_idsR.out &&
494454 test_cmp list_idsR.out running.ids &&
495- ids=$(state_ids inactive) &&
455+ ids=$(job_list_state_ids inactive) &&
496456 flux job list-ids $ids | jq .id > list_idsI.out &&
497457 test_cmp list_idsI.out inactive.ids &&
498- ids=$(state_ids all) &&
458+ ids=$(job_list_state_ids all) &&
499459 flux job list-ids $ids | jq .id > list_idsPRI.out &&
500460 cat pending.ids running.ids inactive.ids > list_idsPRI.exp &&
501461 test_cmp list_idsPRI.exp list_idsPRI.out
0 commit comments