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