Skip to content

Commit

Permalink
testsuite: fix expiration propagation test
Browse files Browse the repository at this point in the history
Problem: The test in t4011-match-duration.t tests that the duration
of a job is inherited from the enclosing instance duration, but we
should really be testing that the *expiration* of a child job is
inherited from the parent when no duration is specified. O/w, a job
submitted when the instance has only a few minutes remaining could
have its expiration set for long after the instance is terminated.

Update the test to ensure that expiration of a job with no duration
specified is inherited from the enclosing instance expiration.
Use flux-alloc(1) to launch the test instance instead of running
standalone flux-start(1) instances even though test_under_flux()
is used.
  • Loading branch information
grondo committed Nov 3, 2023
1 parent 86a820a commit 0336899
Showing 1 changed file with 16 additions and 6 deletions.
22 changes: 16 additions & 6 deletions t/t4011-match-duration.t
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,27 @@ test_description='Test that parent duration is inherited according to RFC14'
#
test_under_flux 1

test_expect_success HAVE_JQ 'parent duration is inherited when duration=0' '
export FLUX_URI_RESOLVE_LOCAL=t

test_expect_success HAVE_JQ 'parent expiration is inherited when duration=0' '
cat >get_R.sh <<-EOT &&
#!/bin/sh
flux job info \$FLUX_JOB_ID R
EOT
chmod +x get_R.sh &&
out=$(flux run -t20s -n1 flux start flux run -n1 ./get_R.sh) &&
echo "$out" | jq -e ".execution.expiration - .execution.starttime <= 20" &&
out=$(flux run -t30s -n1 flux start flux run -n1 ./get_R.sh) &&
echo "$out" | jq -e ".execution.expiration - .execution.starttime <= 30"
jobid=$(flux alloc -n1 -t5m --bg) &&
expiration=$(flux job info $jobid R | jq .execution.expiration) &&
test_debug "echo expiration of alloc job is $expiration" &&
R1=$(flux proxy $jobid flux run -n1 ./get_R.sh) &&
exp1=$(echo "$R1" | jq .execution.expiration) &&
test_debug "echo expiration of job is $exp1" &&
echo $exp1 | jq ". == $expiration" &&
sleep 1 &&
R1=$(flux proxy $jobid flux run -n1 ./get_R.sh) &&
exp1=$(echo "$R1" | jq .execution.expiration) &&
test_debug "echo expiration of second job is $exp1" &&
echo $exp1 | jq ". == $expiration" &&
flux shutdown --quiet $jobid
'

test_done

0 comments on commit 0336899

Please sign in to comment.