diff --git a/testsuite/expect/inc3.11.8 b/testsuite/expect/inc3.11.8 index e7f6923c4e0e5715d60249f017440ba14d671ecc..348bd3e8028b028d723fc9e8f5a5ffb57da93bcd 100644 --- a/testsuite/expect/inc3.11.8 +++ b/testsuite/expect/inc3.11.8 @@ -31,11 +31,10 @@ ############################################################################ proc inc3_11_8 {} { - global user_name exit_code res_name res_nodes res_nodecnt res_corecnt + global user_name exit_code res_name global bin_rm file_in bin_sleep sbatch number scontrol global alpha_numeric_under scancel - global cluster_cpus cores_per_node def_partition - global res_nodes res_thread_cnt + global cluster_cpus def_partition send_user "\n+++++ STARTING TEST 8 (Within: inc3.11.8) +++++\n" @@ -49,19 +48,73 @@ proc inc3_11_8 {} { send_user "\n\033\[31mFAILURE: Unable to create a valid reservation (Within: inc3.11.8)\033\[m\n" exit $ret_code } + set host_name "" + spawn $scontrol show res $res_name + expect { + -re "Nodes=($alpha_numeric_under)" { + set host_name $expect_out(1,string) + exp_continue + } + timeout { + send_user "\n\033\[31mFAILURE: scontrol not responding (Within: inc3.11.8)\033\[m\n" + set exit_code 1 + } + eof { + wait + } + } # Delete the reservation set ret_code [delete_res $res_name] if {$ret_code != 0} { exit $ret_code } + if {[string compare $host_name ""] == 0} { + send_user "\n\033\[31mFAILURE: Failed to get host name (Within: inc3.11.8)\033\[m\n" + exit 1 + } - set num_nodes [available_nodes $def_partition ""] + set cpu_tot 1 + set boards 1 + set sockets 1 + set cores_per_socket 1 + set threads_per_core 1 + spawn $scontrol show node $host_name + expect { + -re " CoresPerSocket=($number)" { + set cores_per_socket $expect_out(1,string) + exp_continue + } + -re " CPUTot=($number)" { + set cpu_tot $expect_out(1,string) + exp_continue + } + -re " Sockets=($number)" { + set sockets $expect_out(1,string) + exp_continue + } + -re " Boards=($number)" { + set boards $expect_out(1,string) + exp_continue + } + -re " ThreadsPerCore=($number)" { + set threads_per_core $expect_out(1,string) + exp_continue + } + timeout { + send_user "\n\033\[31mFAILURE: scontrol not responding (Within: inc3.11.8)\033\[m\n" + set exit_code 1 + } + eof { + wait + } + } + set cores_per_node [ expr $boards * $sockets * $cores_per_socket ] set core_res_num [ expr $cores_per_node / 2 ] - set thread_res_num [ expr $core_res_num * $res_thread_cnt ] + set cpu_res_num [ expr $cpu_tot / 2 ] - # (First test) Submit the batch job: a simple job using half the threads on the nodes + # (First test) Submit the batch job: a simple job using half the CPUs on the selected node set job_id 0 - set sbatch_pid [spawn $sbatch --nodes=1-$num_nodes --time=10:00 --ntasks-per-node=$thread_res_num --output=/dev/null $file_in] + set sbatch_pid [spawn $sbatch -w $host_name --time=10:00 --ntasks-per-node=$cpu_res_num --output=/dev/null $file_in] expect { -re "Submitted batch job ($number)" { set job_id $expect_out(1,string) @@ -86,28 +139,15 @@ proc inc3_11_8 {} { cancel_job $job_id exit 1 } - send_user "\nJOB is running as expected\n" + send_user "\nJob is running as expected\n" # Make the reservation using free cores in a node - set ret_code [create_res "StartTime=now Duration=60 NodeCnt=1 CoreCnt=$core_res_num User=$user_name" 0] + set ret_code [create_res "StartTime=now Duration=60 Nodes=$host_name CoreCnt=$core_res_num User=$user_name" 0] if {$ret_code != 0} { send_user "\n\033\[31mFAILURE: Unable to create a valid reservation (Within: inc3.11.8)\033\[m\n" cancel_job $job_id exit $ret_code } - - if {$res_nodecnt != 1} { - send_user "\n\033\[31mFAILURE: reservation created with $res_nodecnt nodes when just 1 was requested (Within: inc3.11.8)\033\[m\n" - cancel_job $job_id - exit 1 - } - - if {$res_corecnt != $core_res_num} { - send_user "\n\033\[31mFAILURE: reservation created with $res_corecnt cores when just $core_res_num was requested (Within: inc3.11.8)\033\[m\n" - cancel_job $job_id - exit 1 - } - send_user "\n\033\[32mSUCCESS: reservation was created as expected (Within: inc3.11.8)\033\[m\n" # Delete the reservation @@ -119,7 +159,7 @@ proc inc3_11_8 {} { set core_res_num [expr $core_res_num + 1] # Make the reservation using more cores then free in a node - set ret_code [create_res "StartTime=now Duration=60 NodeCnt=1 CoreCnt=$core_res_num User=$user_name" 1] + set ret_code [create_res "StartTime=now Duration=60 Nodes=$host_name CoreCnt=$core_res_num User=$user_name" 1] if {$ret_code != 0} { send_user "\n\033\[32mSUCCESS: Reservation can not be created as expected (Within: inc3.11.8)\033\[m\n" } else { @@ -132,7 +172,7 @@ proc inc3_11_8 {} { # Make the reservation using more cores than free in a node (now) # but those cores being free at reservation start time - set ret_code [create_res "StartTime=now+3600 Duration=60 NodeCnt=1 CoreCnt=$core_res_num User=$user_name" 0] + set ret_code [create_res "StartTime=now+3600 Duration=60 Nodes=$host_name CoreCnt=$core_res_num User=$user_name" 0] if {$ret_code != 0} { send_user "\n\033\[31mFAILURE: Reservation can not be created when it should (Within: inc3.11.8)\033\[m\n" set exit_code 1 @@ -143,7 +183,7 @@ proc inc3_11_8 {} { } # Make the reservation using more cores than free at reservation start time - set ret_code [create_res "StartTime=now+300 Duration=60 NodeCnt=1 CoreCnt=$core_res_num User=$user_name" 1] + set ret_code [create_res "StartTime=now+300 Duration=60 Nodes=$host_name CoreCnt=$core_res_num User=$user_name" 1] if {$ret_code != 0} { send_user "\n\033\[32mSUCCESS: Reservation can not be created as expected (Within 3.11.8)\033\[m\n" } else {