diff --git a/testsuite/expect/test1.114 b/testsuite/expect/test1.114 index be33061e7b11e50705878b5d3b6a8ab020fea378..21cf4bfb886f1803f0a0f3e88ecf8098ec4ba9ba 100755 --- a/testsuite/expect/test1.114 +++ b/testsuite/expect/test1.114 @@ -31,11 +31,57 @@ source ./globals set test_id "1.114" -set cpu_cnt 0 set node_cnt 0 set exit_code 0 set partition [default_partition] +proc run_spread_job { task_cnt } { + global max_job_delay srun scontrol bin_printenv number exit_code + + set timeout $max_job_delay + set job_id 0 + set srun_pid [spawn $srun -n $task_cnt --spread-job $bin_printenv SLURM_JOB_ID] + expect { + -re "($number)" { + set job_id $expect_out(1,string) + exp_continue + } + timeout { + send_user "\nFAILURE: srun not responding\n" + slow_kill $sun_pid + set exit_code 1 + } + eof { + wait + } + } + if {$job_id == 0} { + send_user "\nFAILURE: srun job ID not found\n" + exit 1 + } + + set timeout 10 + set num_nodes 0 + spawn $scontrol show job $job_id + expect { + -re "NumNodes=($number)" { + set num_nodes $expect_out(1,string) + exp_continue + } + timeout { + send_user "\nFAILURE: scontrol not responding\n" + set exit_code 1 + } + eof { + wait + } + } + if {$num_nodes != $task_cnt} { + send_user "\nFAILURE: Invalid node count for job $job_id ($num_nodes != $task_cnt)\n" + set exit_code 1 + } +} + print_header $test_id if {[test_select_type] != "cons_res"} { @@ -50,10 +96,6 @@ expect { set node_cnt $expect_out(1,string) exp_continue } - -re "CPUS=($number)" { - set cpu_cnt $expect_out(1,string) - exp_continue - } timeout { send_user "\nFAILURE: sinfo not responding\n" set exit_code 1 @@ -69,52 +111,18 @@ if {$node_cnt < 2} { exit 0 } -if {$cpu_cnt < 2} { - send_user "\nWARNING: Insufficient CPUs for test in partition $partition ($cpu_cnt < 2)\n" - exit 0 +if {$node_cnt > 8} { + set max_task_cnt 8 +} else { + set max_task_cnt $node_cnt } -set timeout $max_job_delay -set job_id 0 -set srun_pid [spawn $srun -p $partition -n2 --spread-job $bin_printenv SLURM_JOB_ID] -expect { - -re "($number)" { - set job_id $expect_out(1,string) - exp_continue - } - timeout { - send_user "\nFAILURE: srun not responding\n" - slow_kill $sun_pid - set exit_code 1 +for {set inx 2} {$inx < $max_task_cnt} {incr inx 2} { + run_spread_job $inx + if {$exit_code != 0} { + break } - eof { - wait - } -} -if {$job_id == 0} { - send_user "\nFAILURE: srun job ID not found\n" - exit 1 -} - -set timeout 10 -set num_nodes 0 -spawn $scontrol show job $job_id -expect { - -re "NumNodes=($number)" { - set num_nodes $expect_out(1,string) - exp_continue - } - timeout { - send_user "\nFAILURE: scontrol not responding\n" - set exit_code 1 - } - eof { - wait - } -} -if {$num_nodes != 2} { - send_user "\nFAILURE: Invalid node count for job $job_id ($num_nodes != 2)\n" - set exit_code 1 + sleep 1 } if {$exit_code == 0} {