From 2d8cbdb2e102ec5af09aa71639dd431c49e8d0e2 Mon Sep 17 00:00:00 2001 From: Scott Jackson <scottmo@schedmd.com> Date: Thu, 18 Mar 2021 17:21:22 +0100 Subject: [PATCH] Testsuite - Fix test19.4 using job completion event rather than reconfig A reconfig event from a prior test can cause the event to launch before it can be read back via strigger. Bug 9665 --- testsuite/expect/test19.4 | 52 ++++++++++----------------------------- 1 file changed, 13 insertions(+), 39 deletions(-) diff --git a/testsuite/expect/test19.4 b/testsuite/expect/test19.4 index 660aae1a3b0..47e38b2c2f0 100755 --- a/testsuite/expect/test19.4 +++ b/testsuite/expect/test19.4 @@ -46,7 +46,7 @@ if {![regexp "${user}\\($number\\)" [get_config_param "SlurmUser"]] || $user eq # set cwd "[$bin_pwd]" exec $bin_rm -f $file_in $file_out -make_bash_script $file_in "$bin_echo RECONFIG >$cwd/$file_out" +make_bash_script $file_in "$bin_echo JOB COMPLETED >$cwd/$file_out" proc cleanup {} { global bin_rm file_in file_out strigger uid @@ -82,53 +82,27 @@ wait_for -timeout 5 -pollinterval .1 {[get_config_param "DebugFlags"] eq "Trigge run_command -fail "$strigger --clear --quiet --user=$uid" -# Create a trigger on a reconfig event -if {![regexp "trigger set" [run_command_output -fail "$strigger --set -v --offset=0 --reconfig --program=$cwd/$file_in"]]} { +# Submit a job and create a trigger on a job completion event +set job_id [submit_job -fail "--wrap \"$bin_sleep 60\""] +wait_for_job -fail $job_id "RUNNING" +if {![regexp "trigger set" [run_command_output -fail "$strigger --set -v --jobid=$job_id --fini --program=$cwd/$file_in"]]} { fail "Trigger creation failure" } # Verify that the trigger has been created -if {![regexp "$file_in" [run_command_output -fail "$strigger --get -v --reconfig --user=$uid"]]} { +if {![regexp "$file_in" [run_command_output -fail "$strigger --get -v --jobid=$job_id --fini --user=$uid"]]} { # TODO: Temporary variable to debug bug 9665 (remove once fixed) set trigger_get_failed true fail "Trigger get failure" } # -# Try to trigger event +# Cancel the job to trigger a job completion event # -set invalid 0 -spawn $scontrol reconfig -expect { - -re "Invalid user" { - set invalid 1 - exp_continue - } - eof { - wait - } -} -if {$invalid == 0} { - # Add delay for slurmctld to process triggers (every 15 secs) - exec sleep 15 - - # Plus time for cross-platform NSF delays - if {[wait_for_file $file_out] != 0} { - fail "File $file_out is missing" - } else { - set reconfig 0 - spawn $bin_cat $file_out - expect { - -re "RECONFIG" { - set reconfig 1 - exp_continue - } - eof { - wait - } - } - if {$reconfig == 0} { - fail "File $file_out contents are bad" - } - } +run_command -fail "$scancel $job_id" +# Triggers are only processed once every 15 seconds by default +if [wait_for_file -timeout 30 $file_out] { + fail "Expected trigger output file ($file_out) did not appear within the expected timeframe (30s)" +} elseif {![regexp "JOB COMPLETED" [run_command_output -fail "$bin_cat $file_out"]]} { + fail "Trigger output file ($file_out) does not contain the expected contents" } -- GitLab