From 910c8d46a095fcdd6039b595d0a94d37552197ad Mon Sep 17 00:00:00 2001
From: Moe Jette <jette1@llnl.gov>
Date: Wed, 21 Nov 2007 22:32:38 +0000
Subject: [PATCH] update some tests to remove vestigial jobs on failure

---
 testsuite/expect/test17.18 |  5 +++++
 testsuite/expect/test17.20 |  5 +++--
 testsuite/expect/test17.25 |  1 +
 testsuite/expect/test17.27 |  7 ++++++-
 testsuite/expect/test17.28 | 22 +++++++++++++++++++++-
 testsuite/expect/test17.29 |  1 +
 testsuite/expect/test17.31 |  8 ++++++--
 testsuite/expect/test17.32 |  1 +
 8 files changed, 44 insertions(+), 6 deletions(-)

diff --git a/testsuite/expect/test17.18 b/testsuite/expect/test17.18
index 3a23344af31..78974a8c0c6 100755
--- a/testsuite/expect/test17.18
+++ b/testsuite/expect/test17.18
@@ -101,8 +101,11 @@ if {$job_id2 == 0} {
 #
 if {[wait_for_job $job_id2 "DONE"] != 0} {
 	send_user "\nFAILURE: waiting for job to complete\n"
+	cancel_job $job_id2
+	cancel_job $job_id1
 	exit 1
 }
+cancel_job $job_id1
 
 #
 # Inspect the job's output file
@@ -185,6 +188,7 @@ if {$job_id1 == 0} {
 	send_user "\nFAILURE: batch submit failure\n"
 	exit 1
 }
+
 exec $bin_sleep 5
 set match 0
 spawn $scontrol show job $job_id1
@@ -214,6 +218,7 @@ if {$match != 2} {
 	send_user "\nFAILURE: unexpected JobState or StartTime\n"
 	set exit_code 1
 }
+
 # Reset start time and test for completion
 spawn $scontrol update JobId=$job_id1 StartTime=now
 expect {
diff --git a/testsuite/expect/test17.20 b/testsuite/expect/test17.20
index 934e92836cd..30b0197dca0 100755
--- a/testsuite/expect/test17.20
+++ b/testsuite/expect/test17.20
@@ -96,8 +96,9 @@ if {$job_id == 0} {
 # Wait for job to complete
 #
 if {[wait_for_job $job_id "DONE"] != 0} {
-        send_user "\nFAILURE: waiting for job to complete\n"
-        set exit_code 1
+	send_user "\nFAILURE: waiting for job to complete\n"
+	cancel_job $job_id
+	exit 1
 }
 
 if {[wait_for_file $file_out] != 0} {
diff --git a/testsuite/expect/test17.25 b/testsuite/expect/test17.25
index 2f392080953..f92f050b3da 100755
--- a/testsuite/expect/test17.25
+++ b/testsuite/expect/test17.25
@@ -99,4 +99,5 @@ if {$exit_code == 0} {
 	exec $bin_rm -f $file_in
 	send_user "\nSUCCESS\n"
 }
+cancel_job $job_id
 exit $exit_code
diff --git a/testsuite/expect/test17.27 b/testsuite/expect/test17.27
index ec6893c64a7..a57c2707444 100755
--- a/testsuite/expect/test17.27
+++ b/testsuite/expect/test17.27
@@ -95,9 +95,14 @@ expect {
 		wait
 	}
 }
+if {$job_id == 0} {
+	send_user "\nFAILURE: job not submitted\n"
+	exit 1
+}
 if {[wait_for_job $job_id "DONE"] != 0} {
 	send_user "\nFAILURE: job did not complete\n"
-	set exit_code 1
+	cancel_job $job_id
+	exit 1
 }
 if {[wait_for_file $file_out] != 0} {
 	send_user "\nFAILURE: no output file\n"
diff --git a/testsuite/expect/test17.28 b/testsuite/expect/test17.28
index 8921309bec1..5c0ffcdf92a 100755
--- a/testsuite/expect/test17.28
+++ b/testsuite/expect/test17.28
@@ -91,6 +91,7 @@ if {$matches != 2} {
 	send_user "\nFAILURE: did not set job name and account from batch script\n"
 	set exit_code 1
 }
+cancel_job $job_id
 
 #
 # Build input script file
@@ -102,7 +103,7 @@ make_bash_script $file_in "
 #SBATCH -N1000000k
 $bin_sleep $delay
 "
-
+set job_id  0
 set matches 0
 spawn $sbatch -o $file_out $file_in
 expect {
@@ -111,6 +112,10 @@ expect {
 		incr matches
 		exp_continue
 	}	
+	-re "Submitted batch job ($number)" {
+		set job_id $expect_out(1,string)
+		exp_continue
+	}
 	timeout {
 		send_user "\nFAILURE: sbatch not responding\n"
 		set exit_code 1
@@ -124,12 +129,18 @@ if {$matches != 1} {
 	send_user "\nFAILURE: sbatch didn't read the correct options from batch file\n"
 	set exit_code 1
 }
+if {$job_id == 0} {
+	send_user "\nFAILURE: sbatch didn't reject job with invalid size\n"
+	cancel_job $job_id
+	set exit_code 1
+}
 
 make_bash_script $file_in "
 #SBATCH -N650000
 $bin_sleep $delay
 "
 
+set job_id  0
 spawn $sbatch -N1 -o $file_out $file_in
 expect {
 	-re "More nodes requested than permitted" {
@@ -138,6 +149,10 @@ expect {
 		set exit_code 1
 		exp_continue
 	}
+	-re "Submitted batch job ($number)" {
+		set job_id $expect_out(1,string)
+		exp_continue
+	}
 	timeout {
 		send_user "\nFAILURE: sbatch not responding\n"
 		set exit_code 1
@@ -147,6 +162,11 @@ expect {
 		wait
 	}
 }
+if {$job_id == 0} {
+	send_user "\nFAILURE: sbatch didn't reject job with invalid size\n"
+	cancel_job $job_id
+	set exit_code 1
+}
 
 #
 # Post-processing
diff --git a/testsuite/expect/test17.29 b/testsuite/expect/test17.29
index 9d4d783a807..897f71b55b5 100755
--- a/testsuite/expect/test17.29
+++ b/testsuite/expect/test17.29
@@ -80,6 +80,7 @@ if {$job_id == 0} {
 #
 if {[wait_for_job $job_id "DONE"] != 0} {
 	send_user "\nFAILURE: waiting for job to complete\n"
+	cancel_job $job_id
 	set exit_code 1
 }
 
diff --git a/testsuite/expect/test17.31 b/testsuite/expect/test17.31
index 681f2e6b71e..a4a2daef43b 100755
--- a/testsuite/expect/test17.31
+++ b/testsuite/expect/test17.31
@@ -146,12 +146,16 @@ expect {
 		wait
 	}
 }
-
-
 if {$matches != 3} {
 	send_user "\nFAILURE: sbatch didn't read the correct options from batch file\n"
 	set exit_code 1
 }
+if {$job_id == 0} {
+	send_user "\nFAILURE: sbatch failed to submit the job\n"
+	set exit_code 1
+} else {
+	cancel_job $job_id
+}
 
 #
 # Post-processing
diff --git a/testsuite/expect/test17.32 b/testsuite/expect/test17.32
index 0a408b0197b..9039c9e830f 100755
--- a/testsuite/expect/test17.32
+++ b/testsuite/expect/test17.32
@@ -76,6 +76,7 @@ expect {
 #
 if {[wait_for_job $job_id "DONE"] != 0} {
 	send_user "\nFAILURE: waiting for job to complete\n"
+	cancel_job $job_id
 	set exit_code 1
 }
 set matches     0
-- 
GitLab