From ac574622ff093626faa144764b7dbde86ef9227e Mon Sep 17 00:00:00 2001 From: Moe Jette <jette1@llnl.gov> Date: Mon, 5 May 2008 23:30:04 +0000 Subject: [PATCH] test specifying different --workdir for the program and make sure the stdout/err files get created there rather than the submit directory. --- testsuite/expect/test17.5 | 58 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 56 insertions(+), 2 deletions(-) diff --git a/testsuite/expect/test17.5 b/testsuite/expect/test17.5 index 74ae4132969..e8a72451a45 100755 --- a/testsuite/expect/test17.5 +++ b/testsuite/expect/test17.5 @@ -34,6 +34,7 @@ source ./globals set test_id "17.5" set file_in "test$test_id.input" +set file_script "test$test_id.bash" set file_out "test$test_id.output" set file_err "test$test_id.error" set file_out_j "test$test_id.j.%j.output" @@ -46,13 +47,66 @@ print_header $test_id # Delete left-over stdin/out/err files # Build stdin file # -exec $bin_rm -f $file_in $file_out $file_err +exec $bin_rm -f $file_in $file_script $file_out $file_err make_bash_script $file_in " $bin_id $bin_sleep aaa exit 0 " +set cwd "[$bin_pwd]" +make_bash_script $file_script " + cd /tmp + $sbatch -N1 --workdir=$cwd --output=$file_out --error=$file_err -t1 $cwd/$file_in + exit 0 +" + +# +# Spawn a shell via sbatch that submits from a different directory and uses stdout/err +# and confirm their contents +# +set job_id 0 +spawn $file_script +expect { + -re "Submitted batch job ($number)" { + set job_id $expect_out(1,string) + exp_continue + } + timeout { + send_user "\nFAILURE: sbatch not responding\n" + set exit_code 1 + exp_continue + } + eof { + wait + } +} +if { $job_id == 0 } { + send_user "\nFAILURE: failed to submit job\n" + exit 1 +} + +# +# Wait for job to complete +# +if {[wait_for_job $job_id "DONE"] != 0} { + send_user "\nFAILURE: waiting for job to complete\n" + set exit_code 1 +} + +# +# Check for desired output +# +if {[wait_for_file $file_out] != 0} { + send_user "\nFAILURE: Missing stdout\n" + set exit_code 1 +} +if {[wait_for_file $file_err] != 0} { + send_user "\nFAILURE: Missing stderr\n" + set exit_code 1 +} +exec $bin_rm -f $file_script $file_out $file_err + # # Spawn a shell via sbatch that uses stdout/err and confirm their contents # @@ -227,7 +281,7 @@ if { [file exists $file_err2] } { } if {$exit_code == 0} { - exec $bin_rm -f $file_in $file_out $file_err + exec $bin_rm -f $file_in $file_script $file_out $file_err send_user "\nSUCCESS\n" } exit $exit_code -- GitLab