Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
Slurm
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
tud-zih-energy
Slurm
Commits
92f8e464
Commit
92f8e464
authored
7 years ago
by
Marshall Garey
Committed by
Brian Christiansen
7 years ago
Browse files
Options
Downloads
Patches
Plain Diff
Add tests for resv FIRST_CORES & IGNORE_JOBS
Bug 4329 Bug 4312
parent
8f0e35a8
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
testsuite/expect/inc3.11.9
+205
-0
205 additions, 0 deletions
testsuite/expect/inc3.11.9
with
205 additions
and
0 deletions
testsuite/expect/inc3.11.9
+
205
−
0
View file @
92f8e464
...
@@ -572,4 +572,209 @@ proc inc3_11_9 {} {
...
@@ -572,4 +572,209 @@ proc inc3_11_9 {} {
set ret_code [delete_res $res_name1]
set ret_code [delete_res $res_name1]
set ret_code [delete_res $res_name]
set ret_code [delete_res $res_name]
if { $ret_code != 0 } {
send_user "FAILURE: failed to delete reservations.\n"
exit $ret_code
}
# Create a job that uses all cores in the node range and is not
# part of a reservation.
set sbatch_pid [spawn $sbatch --ntasks-per-node=$cores_per_node --nodelist=$def_node_name\[$min_node_inx\-$max_node_inx\] --output=/dev/null $file_in]
expect {
-re "Submitted batch job ($number)" {
set job_id $expect_out(1,string)
exp_continue
}
timeout {
send_user "\nFAILURE: sbatch not responding (within: inc3.11.9)\n"
slow_kill $sbatch_pid
set exit_code 1
}
eof {
wait
}
}
if {$job_id == 0} {
send_user "\nFAILURE: batch submit failure\n"
exit 1
}
sleep 10
# Verify the job is running.
spawn $scontrol show job $job_id
expect {
-re "Invalid job id specified" {
send_user "\nFAILURE: Job $job_id not found (Within: inc3.11.9)\n"
set exit_code 1
exp_continue
}
-re "JobState=RUNNING" {
send_user "\nJob is RUNNING as expected (Within: inc3.11.9)\n"
exp_continue
}
timeout {
send_user "\nFAILURE: scontrol not responding (Within: inc3.11.9)\n"
set exit_code 1
}
eof {
wait
}
}
if { $exit_code == 1 } {
exit $exit_code
}
# Make the reservation using more cores than free, but use the
# IGNORE_JOBS and FIRST_CORES flags. Verify that it is created with the
# correct nodes, CoreCnt, and CoreIDs.
set ret_code [create_res "StartTime=now Duration=60 Nodes=$def_node_name\[$min_node_inx\-$max_node_inx\] CoreCnt=2,2,2,2,$cores_per_node User=$user_name Flags=IGNORE_JOBS,FIRST_CORES" 0]
if {$ret_code == 1} {
send_user "\nFAILURE: Reservation can not be created when it should (Within: inc3.11.9)\n"
cancel_job $job_id
exit $ret_code
}
send_user "\nSUCCESS: Reservation can be created as expected (Within 3.11.9)\n"
set exp_node_cnt [expr {$max_node_inx-$min_node_inx+1}]
set exp_core_cnt [expr {8+$cores_per_node}]
set hosts_correct 0
set node_cnt_correct 0
set core_cnt_correct 0
set core_ids_correct 0
set node_inxs [subst {
$min_node_inx
[expr {$min_node_inx+1}]
[expr {$min_node_inx+2}]
[expr {$min_node_inx+3}]
$max_node_inx
}]
set exp_core_ids [subst {
0-1 0-1 0-1 0-1 0-[expr {$cores_per_node-1}]
}]
sleep 5
spawn $scontrol show res
expect {
-re "Nodes=$def_node_name\\\[$min_node_inx\-$max_node_inx" {
set hosts_correct 1
exp_continue
}
-re "NodeCnt=$exp_node_cnt" {
set node_cnt_correct 1
exp_continue
}
-re "CoreCnt=$exp_core_cnt" {
set core_cnt_correct 1
exp_continue
}
-re "NodeName=$def_node_name\(\\d+\) CoreIDs=\(0-\\d+\)" {
set node_id $expect_out(1,string)
set core_id $expect_out(2,string)
if { $node_id == [lindex $node_inxs $core_ids_correct] &&
$core_id == [lindex $exp_core_ids $core_ids_correct]} {
incr core_ids_correct
}
exp_continue
}
timeout {
send_user "\nFAILURE: scontrol not responding (Within: inc3.11.9)\n"
set exit_code 1
}
eof {
wait
}
}
if {$hosts_correct != 1} {
send_user "\nFAILURE: Reservation has incorrect node list\n"
set exit_code 1
}
if {$node_cnt_correct != 1} {
send_user "\nFAILURE: Reservation has incorrect node count\n"
set exit_code 1
}
if {$core_cnt_correct != 1} {
send_user "\nFAILURE: Reservation has incorrect core cnt\n"
set exit_code 1
}
if {$core_ids_correct != $exp_node_cnt} {
send_user "\nFAILURE: Reservation has incorrect core ids\n"
set exit_code 1
}
if {$exit_code == 0} {
send_user "\nSUCCESS: Reservation has correct nodes, CoreCnt, and CoreIDs.\n"
}
cancel_job $job_id
set ret_code [delete_res $res_name]
if { $ret_code != 0 } {
send_user "\nFAILURE: Error $ret_code deleting reservation.\n"
set exit_code 1
}
if { $exit_code == 1 } {
exit $exit_code
}
# Create a job that runs on a single core on all nodes in the reservation.
set sbatch_pid [spawn $sbatch --ntasks-per-node=1 --nodelist=$def_node_name\[$min_node_inx\-$max_node_inx\] --output=/dev/null $file_in]
expect {
-re "Submitted batch job ($number)" {
set job_id $expect_out(1,string)
exp_continue
}
timeout {
send_user "\nFAILURE: sbatch not responding (within: inc3.11.9)\n"
slow_kill $sbatch_pid
set exit_code 1
}
eof {
wait
}
}
if {$job_id == 0} {
send_user "\nFAILURE: batch submit failure\n"
exit 1
}
sleep 10
spawn $scontrol show job $job_id
expect {
-re "Invalid job id specified" {
send_user "\nFAILURE: Job $job_id not found (Within: inc3.11.9)\n"
set exit_code 1
exp_continue
}
-re "JobState=RUNNING" {
send_user "\nJob is RUNNING as expected (Within: inc3.11.9)\n"
exp_continue
}
timeout {
send_user "\nFAILURE: scontrol not responding (Within: inc3.11.9)\n"
set exit_code 1
}
eof {
wait
}
}
if { $exit_code == 1 } {
exit $exit_code
}
# Make the reservation with the FIRST_CORES flag. It should fail
# to be created even though there are enough cores because the
# FIRST_CORES flag requires the lowest numbered cores.
set ret_code [create_res "StartTime=now Duration=60 Nodes=$def_node_name\[$min_node_inx\-$max_node_inx\] CoreCnt=1,1,1,1,1 User=$user_name Flags=FIRST_CORES" 1]
if {$ret_code == 0} {
send_user "\nFAILURE: Reservation can be created when it should not (Within: inc3.11.9)\n"
exit 1
}
send_user "\nSUCCESS: Reservation can not be created as expected (Within 3.11.9)\n"
cancel_job $job_id
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment