diff --git a/testsuite/expect/globals b/testsuite/expect/globals
index 17933df0f46ef9e8663dc2042c9904ce934d6fbf..c33bd21638284e690479dcc9832f2889f047d9cb 100755
--- a/testsuite/expect/globals
+++ b/testsuite/expect/globals
@@ -433,16 +433,7 @@ proc get_my_gid {  } {
 proc kill_salloc {  } {
 	global bin_id bin_pkill bin_sleep number
 
-	spawn $bin_id -u
-	expect {
-		-re "($number)" {
-			set uid $expect_out(1,string)
-			exp_continue
-		}
-		eof {
-			wait
-		}
-	}
+	set uid [get_my_uid]
 	catch {exec $bin_pkill -INT -u $uid salloc}
 	catch {exec $bin_pkill -INT -u $uid salloc}
 	sleep  1
@@ -469,16 +460,7 @@ proc kill_salloc {  } {
 proc kill_srun {  } {
 	global bin_id bin_pkill bin_sleep number
 
-	spawn $bin_id -u
-	expect {
-		-re "($number)" {
-			set uid $expect_out(1,string)
-			exp_continue
-		}
-		eof {
-			wait
-		}
-	}
+	set uid [get_my_uid]
 	catch {exec $bin_pkill -INT -u $uid srun}
 	catch {exec $bin_pkill -INT -u $uid srun}
 	sleep  1
@@ -1546,15 +1528,7 @@ proc get_default_acct { user } {
 	set def_acct ""
 
 	if { !$user } {
-		spawn $bin_id -un
-		expect {
-		       -re "($alpha_numeric_under)" {
-			   set user $expect_out(1,string)
-		       }
-		       eof {
-			   wait
-		       }
-		}
+		set user [get_my_nuid]
 	}
 
 	spawn $sacctmgr -n list user $user format="DefaultAccount"
@@ -2098,17 +2072,7 @@ proc test_super_user { } {
 #	Check if user root
 #
 	log_user 0
-	spawn $bin_id -u
-	set uid -1
-	expect {
-		-re "($number)" {
-			set uid $expect_out(1,string)
-			exp_continue
-		}
-		eof {
-			wait
-		}
-	}
+	set uid [get_my_uid]
 	if {$uid == 0} {
 		log_user 1
 		set super_user 1
@@ -2440,17 +2404,7 @@ proc is_super_user { } {
 	global alpha_numeric_under bin_id scontrol
 
 	log_user 0
-	set user_name "nobody"
-	spawn $bin_id -u -n
-	expect {
-		-re "($alpha_numeric_under)" {
-			set user_name $expect_out(1,string)
-			exp_continue
-		}
-		eof {
-			wait
-		}
-	}
+	set user_name [get_my_nuid]
 	if {[string compare $user_name "root"] == 0} {
 		log_user 1
 		return 1
@@ -3975,3 +3929,35 @@ proc check_hosts_contiguous {part check_hosts_list} {
 
 	return 0
 }
+
+
+#####################################################################
+#
+# Proc: stop_root_user
+#
+# Purpose:	Detect, warn, and stop root user
+#
+#
+# Input
+#
+# Returns: uid if not root user, exits otherwise
+#
+#####################################################################
+
+
+proc stop_root_user {} {
+
+	global bin_id number
+
+	set uid [get_my_uid]
+	if {$uid == -1} {
+		send_user "\nCan't get my uid\n"
+		exit 1
+	} elseif {$uid == 0} {
+		send_user "\nWARNING: Can't run this test as user root\n"
+		exit 0
+	}
+
+	return $uid
+
+}
diff --git a/testsuite/expect/test1.32 b/testsuite/expect/test1.32
index a6d1dd69a5617e9a20bc1ea10aeccd0bb51fec66..7b5328e7c2b3d764411fdf100e358dedbced05a4 100755
--- a/testsuite/expect/test1.32
+++ b/testsuite/expect/test1.32
@@ -75,15 +75,7 @@ exec $bin_chmod 700 $file_prog
 #
 # Get uid
 #
-spawn $bin_id -u
-expect {
-	-re "($number)" {
-		set uid $expect_out(1,string)
-	}
-	eof {
-		wait
-	}
-}
+set uid [get_my_uid]
 
 #
 # Spawn initial program via srun
diff --git a/testsuite/expect/test1.38 b/testsuite/expect/test1.38
index 3ce48987e174477079faf9bd174ee270707f7716..ec74f1a7bc884c55d540105e55b62106536922a4 100755
--- a/testsuite/expect/test1.38
+++ b/testsuite/expect/test1.38
@@ -66,15 +66,7 @@ make_bash_script $file_in "
 #
 # Get uid
 #
-spawn $bin_id -u
-expect {
-	-re "($number)" {
-		set uid $expect_out(1,string)
-	}
-	eof {
-		wait
-	}
-}
+set uid [get_my_uid]
 
 #
 # Spawn initial program via srun and use SIGINT to status
diff --git a/testsuite/expect/test1.74 b/testsuite/expect/test1.74
index 307f54f1184bee5f35ce6cfd735d2e8dbfabeb6b..deeaecec30875906c4f25b10e41f064cf080188e 100755
--- a/testsuite/expect/test1.74
+++ b/testsuite/expect/test1.74
@@ -66,16 +66,7 @@ if { [test_using_slurmdbd] == 0 } {
 	exit $exit_code
 }
 
-spawn $bin_id -u -n
-expect {
-	-re "($alpha_numeric_under)" {
-		set user $expect_out(1,string)
-		exp_continue
-	}
-	eof {
-		wait
-	}
-}
+set user [get_my_nuid]
 
 proc cleanup { } {
 	global acct acct_c1 acct_c2 exit_code qos
diff --git a/testsuite/expect/test12.3 b/testsuite/expect/test12.3
index 03aecf848160a5fc353f23fb102d12def492eca3..01a81dbf2df541f4bd96c7e652cd722e0211a245 100755
--- a/testsuite/expect/test12.3
+++ b/testsuite/expect/test12.3
@@ -94,17 +94,7 @@ if { $node_count < 3 } {
 # Identify the user and his current default account
 #
 set acct_name ""
-set user_name ""
-spawn $bin_id -u -n
-expect {
-	 -re "($alpha_numeric_under)" {
-		set user_name $expect_out(1,string)
-		exp_continue
-	}
-	eof {
-		wait
-	}
-}
+set user_name [get_my_nuid]
 set s_pid [spawn $sacctmgr show user $user_name]
 expect {
 	-re "$user_name *($alpha_numeric_under)" {
diff --git a/testsuite/expect/test14.7 b/testsuite/expect/test14.7
index 5978fc2a45cc6ed5b0c1b0d471d52b58a1cc6a89..3b0ef25569b5585b85ceb487b58fefe7ad232c96 100755
--- a/testsuite/expect/test14.7
+++ b/testsuite/expect/test14.7
@@ -47,21 +47,7 @@ if {[test_front_end] != 0} {
 	exit 0
 }
 
-set uid 0
-spawn $bin_id
-expect {
-	-re "uid=($number)" {
-		set uid $expect_out(1,string)
-		exp_continue
-	}
-	eof {
-		wait
-	}
-}
-if {$uid == 0} {
-	send_user "\nWARNING: This test is unsuitable for execution as user root\n"
-	exit 0
-}
+stop_root_user
 
 # Delete left-over stdout/err files
 file delete $file_out $file_err
diff --git a/testsuite/expect/test19.3 b/testsuite/expect/test19.3
index 2bbbb25be0c41aa128fa7e52bae3dabcd3a03cf9..5bb122f849571e179590e71bfd319bf244bcf802 100755
--- a/testsuite/expect/test19.3
+++ b/testsuite/expect/test19.3
@@ -42,24 +42,9 @@ print_header $test_id
 #
 # get my uid and clear any vestigial triggers
 #
-set uid -1
-spawn $bin_id -u
-expect {
-	-re "($number)" {
-		set uid $expect_out(1,string)
-		exp_continue
-	}
-	eof {
-		wait
-	}
-}
-if {$uid == -1} {
-	send_user "\nCan't get my uid\n"
-	exit 1
-} elseif {$uid == 0} {
-	send_user "\nWARNING: Can't run this test as user root\n"
-	exit 0
-}
+
+set uid [stop_root_user]
+
 exec $strigger --clear --quiet --user=$uid
 
 #
diff --git a/testsuite/expect/test19.4 b/testsuite/expect/test19.4
index 9c46f5d560a69264213618d27c7a7a84e9031307..c431fd32c2606d4247932e965414587b1d83a614 100755
--- a/testsuite/expect/test19.4
+++ b/testsuite/expect/test19.4
@@ -42,24 +42,8 @@ print_header $test_id
 #
 # get my uid and clear any vestigial triggers
 #
-set uid -1
-spawn $bin_id -u
-expect {
-	-re "($number)" {
-		set uid $expect_out(1,string)
-		exp_continue
-	}
-	eof {
-		wait
-	}
-}
-if {$uid == -1} {
-	send_user "\nCan't get my uid\n"
-	exit 1
-} elseif {$uid == 0} {
-	send_user "\nWARNING: Can't run this test as user root\n"
-	exit 0
-}
+set uid [stop_root_user]
+
 exec $strigger --clear --quiet --user=$uid
 
 #
diff --git a/testsuite/expect/test19.5 b/testsuite/expect/test19.5
index b0af15b2700c76aadba2a48d7a402b1cfb47738d..623c0fe937e935ecdf989501dbe36817d04f9398 100755
--- a/testsuite/expect/test19.5
+++ b/testsuite/expect/test19.5
@@ -45,24 +45,7 @@ print_header $test_id
 #
 # get my uid and clear any vestigial triggers
 #
-set uid -1
-spawn $bin_id -u
-expect {
-	-re "($number)" {
-		set uid $expect_out(1,string)
-		exp_continue
-	}
-	eof {
-		wait
-	}
-}
-if {$uid == -1} {
-	send_user "\nCan't get my uid\n"
-	exit 1
-} elseif {$uid == 0} {
-	send_user "\nWARNING: Can't run this test as user root\n"
-	exit 0
-}
+set uid [stop_root_user]
 exec $strigger --clear --quiet --user=$uid
 
 #
diff --git a/testsuite/expect/test19.6 b/testsuite/expect/test19.6
index 3b58e97d826b1ad0af64a36ac46e7d6135ecd190..3b2d3dc454d97240bb9cf7dbe0b0ad559c5cba4f 100755
--- a/testsuite/expect/test19.6
+++ b/testsuite/expect/test19.6
@@ -46,24 +46,7 @@ print_header $test_id
 #
 # get my uid and clear any vestigial triggers
 #
-set uid -1
-spawn $bin_id -u
-expect {
-	-re "($number)" {
-		set uid $expect_out(1,string)
-		exp_continue
-	}
-	eof {
-		wait
-	}
-}
-if {$uid == -1} {
-	send_user "\nCan't get my uid\n"
-	exit 1
-} elseif {$uid == 0} {
-	send_user "\nWARNING: Can't run this test as user root\n"
-	exit 0
-}
+set uid [stop_root_user]
 exec $strigger --clear --quiet --user=$uid
 
 #
diff --git a/testsuite/expect/test19.7 b/testsuite/expect/test19.7
index 3cf0ca252f97f7ccf633fcc56dd74fe094390f9e..212a31bf450b7018e0d2a865c26ddc2f11485690 100755
--- a/testsuite/expect/test19.7
+++ b/testsuite/expect/test19.7
@@ -43,24 +43,8 @@ print_header $test_id
 #
 # get my uid and clear any vestigial triggers
 #
-set uid -1
-spawn $bin_id -u
-expect {
-	-re "($number)" {
-		set uid $expect_out(1,string)
-		exp_continue
-	}
-	eof {
-		wait
-	}
-}
-if {$uid == -1} {
-	send_user "\nCan't get my uid\n"
-	exit 1
-} elseif {$uid == 0} {
-	send_user "\nWARNING: Can't run this test as user root\n"
-	exit 0
-}
+set uid [stop_root_user]
+
 exec $strigger --clear --quiet --user=$uid
 
 #
diff --git a/testsuite/expect/test19.8 b/testsuite/expect/test19.8
index d6aa57cfdbc909779485f90b1ac011363bd71a7d..f8f7cc906fabed7da2a5772d1c2b5cac4bd3d3e6 100755
--- a/testsuite/expect/test19.8
+++ b/testsuite/expect/test19.8
@@ -42,24 +42,9 @@ print_header $test_id
 #
 # get my uid and clear any vestigial triggers
 #
-set uid -1
-spawn $bin_id -u
-expect {
-	-re "($number)" {
-		set uid $expect_out(1,string)
-		exp_continue
-	}
-	eof {
-		wait
-	}
-}
-if {$uid == -1} {
-	send_user "\nCan't get my uid\n"
-	exit 1
-} elseif {$uid == 0} {
-	send_user "\nWARNING: Can't run this test as user root\n"
-	exit 0
-}
+
+set uid [stop_root_user]
+
 exec $strigger --clear --quiet --user=$uid
 
 #
diff --git a/testsuite/expect/test19.9 b/testsuite/expect/test19.9
index 181027e30dc4a4bc987450aebd2a56c16aca74eb..3680ba3cac9d10686fb9695c8aa3313bd2578a05 100755
--- a/testsuite/expect/test19.9
+++ b/testsuite/expect/test19.9
@@ -42,24 +42,8 @@ print_header $test_id
 #
 # get my uid and clear any vestigial triggers
 #
-set uid -1
-spawn $bin_id -u
-expect {
-	-re "($number)" {
-		set uid $expect_out(1,string)
-		exp_continue
-	}
-	eof {
-		wait
-	}
-}
-if {$uid == -1} {
-	send_user "\nCan't get my uid\n"
-	exit 1
-} elseif {$uid == 0} {
-	send_user "\nWARNING: Can't run this test as user root\n"
-	exit 0
-}
+set uid [stop_root_user]
+
 exec $strigger --clear --quiet --user=$uid
 
 #
diff --git a/testsuite/expect/test21.30 b/testsuite/expect/test21.30
index 6b6fc49e0c21733eb28040662539e80053fa49fd..56a84374bf25f871a60c4bba18630a35a276ed0d 100755
--- a/testsuite/expect/test21.30
+++ b/testsuite/expect/test21.30
@@ -382,16 +382,8 @@ expect {
 }
 
 # Gets user
-spawn $bin_id -u -n
-expect {
-	-re "($alpha_numeric_under)" {
-		set user_name $expect_out(1,string)
-		exp_continue
-	}
-	eof {
-		wait
-	}
-}
+set user_name [get_my_nuid]
+
 
 # add qos
 set qosmatch 0
diff --git a/testsuite/expect/test23.2 b/testsuite/expect/test23.2
index f8e77d038bd35388e9ded93b5b200493cbc5e457..e1602f5bdce2f72579a67d68dc23ee8fb966c28e 100755
--- a/testsuite/expect/test23.2
+++ b/testsuite/expect/test23.2
@@ -83,7 +83,6 @@ if { [string compare [check_accounting_admin_level] "Administrator"] } {
 # Identify the user and his current default account
 #
 set acct_name ""
-set user_gid  ""
 set user_name ""
 spawn $bin_id -u -n
 expect {
@@ -96,16 +95,6 @@ expect {
 	}
 }
 
-spawn $bin_id -u
-expect {
-	 -re "($alpha_numeric_under)" {
-		set user_gid $expect_out(1,string)
-		exp_continue
-	}
-	eof {
-		wait
-	}
-}
 
 set s_pid [spawn $sacctmgr show user $user_name]
 expect {
diff --git a/testsuite/expect/test3.6 b/testsuite/expect/test3.6
index ddf2e5ea3687280a368b28d5e2a2b286b7f310a1..14af80a31361ab002347b8cc91d978d8537cfa3e 100755
--- a/testsuite/expect/test3.6
+++ b/testsuite/expect/test3.6
@@ -40,10 +40,7 @@ set part_name      "QA_TEST"
 print_header $test_id
 
 # This test will not work for user root since they always see all partitions
-if {[get_my_uid] == 0} {
-	send_user "\nWARNING: This test will not work correctly for user root.\n"
-	exit $exit_code
-}
+stop_root_user
 
 #
 # Confirm that no hidden partition is seen by default
diff --git a/testsuite/expect/test35.2 b/testsuite/expect/test35.2
index 32994cfee3ac2f8646881aa275de1f2470c2c6af..c67f5400f36300833f26b892b483863f58d9e790 100755
--- a/testsuite/expect/test35.2
+++ b/testsuite/expect/test35.2
@@ -42,27 +42,7 @@ set output_use  "test$test_id.use.output"
 set script_use  "test$test_id.use.bash"
 set tmp_file    "test$test_id"
 
-#
-# get my uid and clear any vestigial triggers
-#
-set uid -1
-spawn $bin_id -u
-expect {
-	-re "($number)" {
-		set uid $expect_out(1,string)
-		exp_continue
-	}
-	eof {
-		wait
-	}
-}
-if {$uid == -1} {
-	send_user "\nCan't get my uid\n"
-	exit 1
-} elseif {$uid == 0} {
-	send_user "\nWARNING: Can't run this test as user root\n"
-	exit 0
-}
+stop_root_user
 
 proc find_bb_jobid { fname bb_jobid } {
 	global bin_cat
diff --git a/testsuite/expect/test5.6 b/testsuite/expect/test5.6
index da6140cd16d320a26de6779610f9cfcb0eaa4b4a..824894c964ad1ac9738bd4dc67a0c9b45b0e822e 100755
--- a/testsuite/expect/test5.6
+++ b/testsuite/expect/test5.6
@@ -192,16 +192,8 @@ expect {
 #
 # Check the squeue user filter option with id
 #
-spawn $bin_id -u
-expect {
-	-re "($number)" {
-		set this_uid $expect_out(1,string)
-		exp_continue
-	}
-	eof {
-		wait
-	}
-}
+set this_uid [get_my_uid]
+
 spawn $squeue --format=%u --noheader --user=$this_uid
 expect {
 	-re "($alpha_numeric_under)" {
diff --git a/testsuite/expect/test7.5 b/testsuite/expect/test7.5
index 2370f82d45d3e13cbc500b16fca98b2cc5b31ef1..323d4475490178f9bdd868443f57782321bf0bb9 100755
--- a/testsuite/expect/test7.5
+++ b/testsuite/expect/test7.5
@@ -69,15 +69,8 @@ exec $bin_chmod 700 $file_prog
 #
 # Get uid
 #
-spawn $bin_id -u
-expect {
-	-re "($number)" {
-		set uid $expect_out(1,string)
-	}
-	eof {
-		wait
-	}
-}
+set uid [get_my_uid]
+
 
 #
 # Spawn initial program via srun and terminate with SIGTERM