From 92e632f055980e28b410ebc19d8feaa7c018477e Mon Sep 17 00:00:00 2001 From: Moe Jette <jette1@llnl.gov> Date: Tue, 2 Mar 2010 18:22:37 +0000 Subject: [PATCH] add test for sending notification message to batch job --- testsuite/expect/test3.10 | 80 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/testsuite/expect/test3.10 b/testsuite/expect/test3.10 index 6f8a11a81f5..82df46964d5 100755 --- a/testsuite/expect/test3.10 +++ b/testsuite/expect/test3.10 @@ -8,6 +8,7 @@ # anything else indicates a failure mode that must be investigated. ############################################################################ # Copyright (C) 2007 The Regents of the University of California. +# Copyright (C) 2008-2010 Lawrence Livermore National Security. # Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). # Written by Morris Jette <jette1@llnl.gov> # CODE-OCEC-09-009. All rights reserved. @@ -35,13 +36,92 @@ source ./globals set test_id "3.10" set authorized 1 set exit_code 0 +set file_err "test$test_id.error" +set file_in "test$test_id.input" +set file_out "test$test_id.output" set job_id 0 print_header $test_id +# +# Start a batch job +# +exec rm -f $file_in $file_out $file_err +make_bash_script $file_in "$bin_sleep 120" +spawn $sbatch --output=$file_out --error=$file_err -t1 ./$file_in +expect { + -re "Submitted batch job ($number)" { + set job_id $expect_out(1,string) + exp_continue + } + eof { + wait + } +} +if {$job_id == 0} { + send_user "\nFAILURE: batch submit failure\n" + exit 1 +} +if {[wait_for_job $job_id "RUNNING"] != 0} { + send_user "\nFAILURE: waiting for job to start\n" + cancel_job $job_id + exit 1 +} +# Add delay to make sure job step fully starts +exec $bin_sleep 2 +# +# Send the batch job a message +# +spawn $scontrol notify $job_id TEST_NOTIFY +expect { + -re "Invalid user id" { + set authorized 0 + exp_continue + } + eof { + wait + } +} +if {$authorized == 0} { + send_user "\nWARNING: You are not authorized to run this test\n" + cancel_job $job_id + exit 0 +} +cancel_job $job_id + +# +# Test stderr file +# +if {[wait_for_file $file_err] == 0} { + set got_message 0 + spawn cat $file_err + expect { + -re "TEST_NOTIFY" { + set got_message 1 + exp_continue + } + eof { + wait + } + } + if {$got_message != 1} { + send_user "\nFAILURE: message not received\n" + set exit_code 1 + } +} else { + set exit_code 1 +} +if {$exit_code == 0} { + send_user "\nSo far, so good\n\n" + exec rm -f $file_in $file_out $file_err +} else { + exit $exit_code +} + # # Start a test program # +set job_id 0 set timeout $max_job_delay set srun_pid [spawn $srun -N1 -t1 -v $bin_sleep 10] set srun_spawn_id $spawn_id -- GitLab