From 26bcfedf5df48c867f1086160cb8fd248aee0a4d Mon Sep 17 00:00:00 2001 From: Moe Jette <jette1@llnl.gov> Date: Fri, 24 Aug 2007 15:40:02 +0000 Subject: [PATCH] capture launch pid so we can kill spawned tasks as needed determine actual minimum mem size and proc count before trying to use them. reorder tests in sbatch output to match actual output order (regular expression tests are done strictly in order (at least for some versions of expect). --- testsuite/expect/test17.31 | 51 +++++++++++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 12 deletions(-) diff --git a/testsuite/expect/test17.31 b/testsuite/expect/test17.31 index 0f54069faf4..681f2e6b71e 100755 --- a/testsuite/expect/test17.31 +++ b/testsuite/expect/test17.31 @@ -42,8 +42,6 @@ set node_cnt 3 set ppn_cnt 2 set min_mem 1024 -append min_mem_mb $min_mem "mb" - print_header $test_id set available [available_nodes [default_partition]] @@ -53,6 +51,35 @@ if {$available < $node_cnt} { exit $exit_code } +log_user 0 +set scontrol_pid [spawn $scontrol show nodes] +expect { + -re "CPUS=($number)" { + if {$expect_out(1,string) < $ppn_cnt} { + set ppn_cnt $expect_out(1,string) + } + exp_continue + } + -re "RealMemory=($number)" { + if {$expect_out(1,string) < $min_mem} { + set min_mem $expect_out(1,string) + } + exp_continue + } + timeout { + send_user "\nFAILURE: scontrol not responding\n" + set exit_code 1 + slow_kill $scontrol_pid + exp_continue + } + eof { + wait + } +} +log_user 1 +send_user "Actual configuration: min_cpus=$ppn_cnt min_mem=$min_mem\n\n" +append min_mem_mb $min_mem "mb" + # # Build input script file # NOTE: The initial sleep is so that all of the submissions have time @@ -65,7 +92,7 @@ $bin_sleep $delay " set matches 0 -spawn $sbatch -vv -o $file_out $file_in +set sbatch_pid [spawn $sbatch -vv -o $file_out $file_in] #exp_internal 1 expect { -re "nprocs$whitespace: ($number) \\(set\\)" { @@ -79,27 +106,26 @@ expect { } exp_continue } - -re "mem=($number)" { - set mem $expect_out(1,string) - if { $mem != $min_mem } { - send_user "\nFAILURE: Min memory is different ($mem) than requested ($min_mem)\n" + -re "nodes$whitespace: ($number)" { + set nodes $expect_out(1,string) + if { $nodes != $node_cnt } { + send_user "\nFAILURE: Bad node count allocated\n" set exit_code 1 } else { incr matches } exp_continue } - -re "nodes$whitespace: ($number)" { - set nodes $expect_out(1,string) - if { $nodes != $node_cnt } { - send_user "\nFAILURE: Bad node count allocated\n" + -re "mem=($number)" { + set mem $expect_out(1,string) + if { $mem != $min_mem } { + send_user "\nFAILURE: Min memory is different ($mem) than requested ($min_mem)\n" set exit_code 1 } else { incr matches } exp_continue } - -re "batch job ($number)" { set job_id $expect_out(1,string) exp_continue @@ -113,6 +139,7 @@ expect { timeout { send_user "\nFAILURE: sbatch not responding\n" set exit_code 1 + slow_kill $sbatch_pid exp_continue } eof { -- GitLab