From 48b14448c4f7f3fefbe4f30b86426d479f0b425f Mon Sep 17 00:00:00 2001 From: "Mark A. Grondona" Date: Tue, 31 Oct 2023 19:45:46 -0700 Subject: [PATCH] testsuite: fix expiration propagation test 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. --- t/t4011-match-duration.t | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/t/t4011-match-duration.t b/t/t4011-match-duration.t index 7ab888a75..278efce1f 100755 --- a/t/t4011-match-duration.t +++ b/t/t4011-match-duration.t @@ -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