From 88ce8a5a1e5f6aa7ec1d96ed9089727a5575aadb Mon Sep 17 00:00:00 2001
From: Moe Jette <jette1@llnl.gov>
Date: Tue, 19 Sep 2006 20:29:49 +0000
Subject: [PATCH] Remove more kill_srun calls.

---
 testsuite/expect/test2.7 |  5 ++---
 testsuite/expect/test2.8 | 10 ++++------
 testsuite/expect/test3.2 |  6 +++---
 testsuite/expect/test3.4 |  5 ++---
 testsuite/expect/test3.5 |  5 ++---
 testsuite/expect/test3.7 | 15 +++++++--------
 testsuite/expect/test3.8 | 10 ++++------
 testsuite/expect/test5.4 | 13 ++++++-------
 testsuite/expect/test5.5 | 10 ++++------
 testsuite/expect/test5.6 | 12 ++++++------
 10 files changed, 40 insertions(+), 51 deletions(-)

diff --git a/testsuite/expect/test2.7 b/testsuite/expect/test2.7
index 8dcf6d7a289..94821f4b254 100755
--- a/testsuite/expect/test2.7
+++ b/testsuite/expect/test2.7
@@ -52,7 +52,7 @@ make_bash_script $file_in "$scontrol pidinfo \$\$"
 #
 # Spawn a srun batch job that uses stdout/err and confirm their contents
 #
-spawn $srun --batch --output=$file_out --error=$file_err -t1 $file_in
+set srun_pid [spawn $srun --batch --output=$file_out --error=$file_err -t1 $file_in]
 expect {
 	-re "jobid ($number) submitted" {
 		set job_id $expect_out(1,string)
@@ -60,9 +60,8 @@ expect {
 	}
 	timeout {
 		send_user "\nFAILURE: srun not responding\n"
-		kill_srun
+		slow_kill $srun_pid
 		set exit_code 1
-		exp_continue
 	}
 	eof {
 		wait
diff --git a/testsuite/expect/test2.8 b/testsuite/expect/test2.8
index cac2866cca5..f7a630f6031 100755
--- a/testsuite/expect/test2.8
+++ b/testsuite/expect/test2.8
@@ -50,7 +50,7 @@ make_bash_script $file_in "
 #
 # Submit a couple jobs so we have something to work with
 #
-spawn $srun --batch --output=/dev/null --error=/dev/null -t5 $file_in
+set srun_pid [spawn $srun --batch --output=/dev/null --error=/dev/null -t5 $file_in]
 expect {
 	-re "jobid ($number) submitted" {
 		set job_id1 $expect_out(1,string)
@@ -58,7 +58,7 @@ expect {
 	}
 	timeout {
 		send_user "\nFAILURE: srun not responding\n"
-		kill_srun
+		slow_kill $srun_pid
 		exit 1
 	}
 	eof {
@@ -67,11 +67,10 @@ expect {
 }
 if {$job_id1 == 0} {
 	send_user "\nFAILURE: srun submit failed\n"
-	kill_srun
 	exit 1
 }
 
-spawn $srun --batch --output=/dev/null --error=/dev/null -t5 $file_in
+set srun_pid [spawn $srun --batch --output=/dev/null --error=/dev/null -t5 $file_in]
 expect {
 	-re "jobid ($number) submitted" {
 		set job_id2 $expect_out(1,string)
@@ -80,7 +79,7 @@ expect {
 	timeout {
 		send_user "\nFAILURE: srun not responding\n"
 		cancel_job $job_id1
-		kill_srun
+		slow_kill $srun_pid
 		exit 1
 	}
 	eof {
@@ -90,7 +89,6 @@ expect {
 if {$job_id2 == 0} {
 	send_user "\nFAILURE: srun submit failed\n"
 	cancel_job $job_id1
-	kill_srun
 	exit 1
 }
 
diff --git a/testsuite/expect/test3.2 b/testsuite/expect/test3.2
index b9512e2aa58..96fe385b844 100755
--- a/testsuite/expect/test3.2
+++ b/testsuite/expect/test3.2
@@ -49,7 +49,7 @@ proc run_job { part_name } {
 	global bin_hostname srun timeout
 	set rc 1
 
-	spawn $srun --output=none --error=none -p $part_name -N1-128 -t1 $bin_hostname
+	set srun_pid [spawn $srun --output=none --error=none -p $part_name -N1-128 -t1 $bin_hostname]
 	expect {
 		-re "Unable to contact" {
 			send_user "\nFAILURE: slurm appears to be down\n"
@@ -60,12 +60,12 @@ proc run_job { part_name } {
 			exp_continue
 		}
 		-re "not available" {
-			kill_srun
+			slow_kill $srun_pid
 			exp_continue
 		}
 		timeout {
 			send_user "\nsrun not responding\n"
-			kill_srun
+			slow_kill $srun_pid
 			return 1
 		}
 		eof {
diff --git a/testsuite/expect/test3.4 b/testsuite/expect/test3.4
index a417e1a99a7..cd54ec700db 100755
--- a/testsuite/expect/test3.4
+++ b/testsuite/expect/test3.4
@@ -49,7 +49,7 @@ make_bash_script $file_in "$srun $bin_sleep 60"
 #
 # Submit a job so we have something to work with
 #
-spawn $srun --batch --output=/dev/null --error=/dev/null -t1 --hold $file_in
+set srun_pid [spawn $srun --batch --output=/dev/null --error=/dev/null -t1 --hold $file_in]
 expect {
 	-re "jobid ($number) submitted" {
 		set job_id $expect_out(1,string)
@@ -57,9 +57,8 @@ expect {
 	}
 	timeout {
 		send_user "\nFAILURE: srun not responding\n"
-		kill_srun
+		slow_kill $srun_pid
 		set exit_code 1
-		exp_continue
 	}
 	eof {
 		wait
diff --git a/testsuite/expect/test3.5 b/testsuite/expect/test3.5
index c0e64d8399a..29e9deef986 100755
--- a/testsuite/expect/test3.5
+++ b/testsuite/expect/test3.5
@@ -217,7 +217,7 @@ if {$found != 1} {
 set timed_out 0
 set sleep_time 300
 set timeout [expr $max_job_delay + $sleep_time]
-spawn $srun -t1 -p $part_name $bin_sleep $sleep_time
+set srun_pid [spawn $srun -t1 -p $part_name $bin_sleep $sleep_time]
 expect {
 	-re "job exceeded timelimit" {
 		set timed_out 1
@@ -229,8 +229,7 @@ expect {
 	}
 	timeout {
 		send_user "\nFAILURE: srun not responding\n"
-		kill_srun
-		exp_continue
+		slow_kill $srun_pid
 	}
 	eof {
 		wait
diff --git a/testsuite/expect/test3.7 b/testsuite/expect/test3.7
index 659cbcd3f2f..7e9f9930897 100755
--- a/testsuite/expect/test3.7
+++ b/testsuite/expect/test3.7
@@ -122,7 +122,7 @@ exec $bin_chmod 700 $file_prog
 #
 # Submit two jobs to the same node
 #
-spawn $srun --batch -N1 -t1 --output=$file_out1 $file_prog_sh1
+set srun_pid [spawn $srun --batch -N1 -t1 --output=$file_out1 $file_prog_sh1]
 expect {
 	-re "jobid ($number) submitted" {
 		set job_id1 $expect_out(1,string)
@@ -130,7 +130,7 @@ expect {
 	}
 	timeout {
 		send_user "\nFAILURE: srun not responding\n"
-		kill_srun
+		slow_kill $srun_pid
 		exit 1
 	}
 	eof {
@@ -139,7 +139,6 @@ expect {
 }
 if {$job_id1 == 0} {
 	send_user "\nFAILURE: srun failed to report jobid\n"
-	kill_srun
 	exit 1
 }
 # Get the job's allocate host name
@@ -159,7 +158,7 @@ expect {
 	}
 	timeout {
 		send_user "\nFAILURE: scontrol not responding\n"
-		kill_srun
+		cancel_job $job_id1
 		exit 1
 	}
 	eof {
@@ -168,11 +167,11 @@ expect {
 }
 if {[string compare $host_name ""] == 0} {
 	send_user "\nFAILURE: did not get hostname for job $job_id1\n"
-	kill_srun
+	cancel_job $job_id1
 	exit 1
 }
 # Submit another job to that same node
-spawn $srun --batch -N1 -t1 --output=$file_out2 $file_prog_sh2
+set srun_pid [spawn $srun --batch -N1 -t1 --output=$file_out2 $file_prog_sh2]
 expect {
 	-re "jobid ($number) submitted" {
 		set job_id2 $expect_out(1,string)
@@ -180,7 +179,7 @@ expect {
 	}
 	timeout {
 		send_user "\nFAILURE: srun not responding\n"
-		kill_srun
+		slow_kill $srun_pid
 		exit 1
 	}
 	eof {
@@ -209,7 +208,7 @@ if {$not_supported == 1} {
 if {$not_supported == 0} {
 	if {[wait_for_job $job_id2 RUNNING] != 0} {
 		send_user "\nFAILURE: waiting for job $job_id2 to run\n"
-		kill_srun
+		cancel_job $job_id2
 		exit 1
 	}
 	sleep 5
diff --git a/testsuite/expect/test3.8 b/testsuite/expect/test3.8
index 5bd5f5bca80..116d540fe22 100755
--- a/testsuite/expect/test3.8
+++ b/testsuite/expect/test3.8
@@ -75,7 +75,7 @@ make_bash_script $file_in "
 # Spawn a srun batch job that uses stdout/err and confirm their contents
 #
 set timeout $max_job_delay
-spawn $srun --batch --output=$file_out --error=$file_err -t1 $file_in
+set srun_pid [spawn $srun --batch --output=$file_out --error=$file_err -t1 $file_in]
 expect {
 	-re "jobid ($number) submitted" {
 		set job_id $expect_out(1,string)
@@ -83,9 +83,8 @@ expect {
 	}
 	timeout {
 		send_user "\nFAILURE: srun not responding\n"
-		kill_srun
+		slow_kill $srun_pid
 		set exit_code 1
-		exp_continue
 	}
 	eof {
 		wait
@@ -148,7 +147,7 @@ set job_id        0
 
 exec $bin_rm -f $file_flag_1 $file_flag_2 $file_flag_3
 
-spawn $srun --no-requeue --batch --output=$file_out --error=$file_err -t1 $file_in
+set srun_pid [spawn $srun --no-requeue --batch --output=$file_out --error=$file_err -t1 $file_in]
 expect {
 	-re "jobid ($number) submitted" {
 		set job_id $expect_out(1,string)
@@ -156,9 +155,8 @@ expect {
 	}
 	timeout {
 		send_user "\nFAILURE: srun not responding\n"
-		kill_srun
+		slow_kill $srun_pid
 		set exit_code 1
-		exp_continue
 	}
 	eof {
 		wait
diff --git a/testsuite/expect/test5.4 b/testsuite/expect/test5.4
index fcf528a6802..c4cb442cf2b 100755
--- a/testsuite/expect/test5.4
+++ b/testsuite/expect/test5.4
@@ -48,7 +48,7 @@ make_bash_script $file_in "$srun $bin_sleep 90"
 #
 # Submit a couple of job so we have something to look at
 #
-spawn $srun --batch --output=/dev/null --error=/dev/null -t1 $file_in
+set srun_pid [spawn $srun --batch --output=/dev/null --error=/dev/null -t1 $file_in]
 expect {
 	-re "jobid ($number) submitted" {
 		set job_id1 $expect_out(1,string)
@@ -56,7 +56,7 @@ expect {
 	}
 	timeout {
 		send_user "\nFAILURE: srun not responding\n"
-		kill_srun
+		slow_kill $srun_pid
 		exit 1
 	}
 	eof {
@@ -65,11 +65,10 @@ expect {
 }
 if {$job_id1 == 0} {
 	send_user "\nFAILURE: srun job submit failure\n"
-	kill_srun
 	exit 1
 }
 
-spawn $srun --batch --output=/dev/null --error=/dev/null --hold -t1 $file_in
+set srun_pid [spawn $srun --batch --output=/dev/null --error=/dev/null --hold -t1 $file_in]
 expect {
 	-re "jobid ($number) submitted" {
 		set job_id2 $expect_out(1,string)
@@ -77,7 +76,7 @@ expect {
 	}
 	timeout {
 		send_user "\nFAILURE: srun not responding\n"
-		kill_srun
+		slow_kill $srun_pid
 		exit 1
 	}
 	eof {
@@ -86,13 +85,13 @@ expect {
 }
 if {$job_id2 == 0} {
         send_user "\nFAILURE: srun job submit failure\n"
-	kill_srun
 	exit 1
 }
 
 if {[wait_for_job $job_id1 RUNNING] != 0} {
 	send_user "\nFAILURE to start job $job_id1\n"
-	kill_srun
+	cancel_job $$job_id1
+	cancel_job $$job_id2
 	exit 1
 }
 exec $bin_rm -f $file_in
diff --git a/testsuite/expect/test5.5 b/testsuite/expect/test5.5
index 23a0e18c71b..ed499f913e7 100755
--- a/testsuite/expect/test5.5
+++ b/testsuite/expect/test5.5
@@ -49,7 +49,7 @@ make_bash_script $file_in "$srun $bin_sleep 10"
 #
 # Submit a couple of jobs so we have something to look at
 #
-spawn $srun --batch --output=/dev/null --error=/dev/null --job-name=$job_name1 -t1 $file_in
+set srun_pid [spawn $srun --batch --output=/dev/null --error=/dev/null --job-name=$job_name1 -t1 $file_in]
 expect {
 	-re "jobid ($number) submitted" {
 		set job_id1 $expect_out(1,string)
@@ -57,7 +57,7 @@ expect {
 	}
 	timeout {
 		send_user "\nFAILURE: srun not responding\n"
-		kill_srun
+		slow_kill $srun_pid
 		exit 1
 	}
 	eof {
@@ -66,11 +66,10 @@ expect {
 }
 if {$job_id1 == 0} {
 	send_user "\nFAILURE: srun job submit failure\n"
-	kill_srun
 	exit 1
 }
 
-spawn $srun --batch --output=/dev/null --error=/dev/null --job-name=$job_name2 --hold -t1 $file_in
+set srun_pid [spawn $srun --batch --output=/dev/null --error=/dev/null --job-name=$job_name2 --hold -t1 $file_in]
 expect {
 	-re "jobid ($number) submitted" {
 		set job_id2 $expect_out(1,string)
@@ -78,7 +77,7 @@ expect {
 	}
 	timeout {
 		send_user "\nFAILURE: srun not responding\n"
-		kill_srun
+		slow_kill $srun_pid
 		exit 1
 	}
 	eof {
@@ -87,7 +86,6 @@ expect {
 }
 if {$job_id2 == 0} {
 	send_user "\nFAILURE: srun job submit failure\n"
-	kill_srun
 	exit 1
 }
 
diff --git a/testsuite/expect/test5.6 b/testsuite/expect/test5.6
index 444b7aa74c8..2d55954e451 100755
--- a/testsuite/expect/test5.6
+++ b/testsuite/expect/test5.6
@@ -48,7 +48,7 @@ make_bash_script $file_in "$srun $bin_sleep $max_job_delay"
 #
 # Submit a couple of job so we have something to look at
 #
-spawn $srun --batch -N1-1 --output=/dev/null --error=/dev/null -t5 $file_in
+set srun_pid [spawn $srun --batch -N1-1 --output=/dev/null --error=/dev/null -t5 $file_in]
 expect {
 	-re "jobid ($number) submitted" {
 		set job_id1 $expect_out(1,string)
@@ -56,7 +56,7 @@ expect {
 	}
 	timeout {
 		send_user "\nFAILURE: srun not responding\n"
-		kill_srun
+		slow_kill $srun_pid
 		exit 1
 	}
 	eof {
@@ -65,11 +65,10 @@ expect {
 }
 if {$job_id1 == 0} {
 	send_user "\nFAILURE: srun job submit failure\n"
-	kill_srun
 	exit 1
 }
 
-spawn $srun --batch -N1-1 --output=/dev/null --error=/dev/null --hold -t5 $file_in
+set srun_pid [spawn $srun --batch -N1-1 --output=/dev/null --error=/dev/null --hold -t5 $file_in]
 expect {
 	-re "jobid ($number) submitted" {
 		set job_id2 $expect_out(1,string)
@@ -77,7 +76,8 @@ expect {
 	}
 	timeout {
 		send_user "\nFAILURE: srun not responding\n"
-		kill_srun
+		slow_kill $srun_pid
+		cancel_job $job_id1
 		exit 1
 	}
 	eof {
@@ -86,7 +86,7 @@ expect {
 }
 if {$job_id2 == 0} {
 	send_user "\nFAILURE: srun job submit failure\n"
-	kill_srun
+	cancel_job $job_id1
 	exit 1
 }
 
-- 
GitLab