diff --git a/testsuite/expect/globals b/testsuite/expect/globals index b68e4dbbd864e311d5865771b5ecc26c68f931f7..ec588fad1c23f19cb75a91683f5ef47465a9d29b 100755 --- a/testsuite/expect/globals +++ b/testsuite/expect/globals @@ -1761,11 +1761,11 @@ proc test_super_user { } { ################################################################ # -# Proc: dec2hex16 +# Proc: dec2hex # -# Purpose: Create a 16 bit hex number from a signed decimal number +# Purpose: Create a 32 bit hex number from a signed decimal number # -# Returns: 16 bit hex version of input 'value' +# Returns: 32 bit hex version of input 'value' # # Input: value -- decimal number to convert # @@ -1773,43 +1773,42 @@ proc test_super_user { } { # http://aspn.activestate.com/ASPN/Cookbook/Tcl/Recipe/415982 ################################################################ # Replace all non-decimal characters -proc dec2hex16 {value} { +proc dec2hex {value} { regsub -all {[^0-x\.-]} $value {} newtemp set value [string trim $newtemp] - if {$value < 32767 && $value > -32768} { + if {$value < 2147483647 && $value > -2147483648} { set tempvalue [format "%#010X" [expr $value]] - return [string range $tempvalue 6 9] - } elseif {$value < 32768} { - return "8000" + return [string range $tempvalue 2 9] + } elseif {$value < -2147483647} { + return "80000000" } else { - return "7FFF" + return "7FFFFFFF" } } ################################################################ # -# Proc: dec2hex32 +# Proc: uint2hex # -# Purpose: Create a 32 bit hex number from a signed decimal number +# Purpose: Create a 32 bit hex number from an unsigned decimal +# number. # # Returns: 32 bit hex version of input 'value' # -# Input: value -- decimal number to convert +# Input: value -- unsigneddecimal number to convert # # Courtesy of Chris Cornish # http://aspn.activestate.com/ASPN/Cookbook/Tcl/Recipe/415982 ################################################################ # Replace all non-decimal characters -proc dec2hex {value} { +proc uint2hex {value} { regsub -all {[^0-x\.-]} $value {} newtemp set value [string trim $newtemp] - if {$value < 2147483647 && $value > -2147483648} { + if {$value <= 4294967295 && $value >= 0} { set tempvalue [format "%#010X" [expr $value]] return [string range $tempvalue 2 9] - } elseif {$value < -2147483647} { - return "80000000" } else { - return "7FFFFFFF" + return "FFFFFFFF" } } diff --git a/testsuite/expect/test1.89 b/testsuite/expect/test1.89 index aafd52f58c99bdf47f2423fd8f1ca999e0009a86..1ac192f44c892b072736f4aebb285e3cf7a0fdde 100755 --- a/testsuite/expect/test1.89 +++ b/testsuite/expect/test1.89 @@ -149,6 +149,31 @@ expect { } } +if {$task_cnt > 32} { + send "exit\r" + expect { + -re "error" { + send_user "\nFAILURE: some error occurred\n" + set exit_code 1 + } + timeout { + send_user "\nFAILURE: salloc not responding " + send_user "or failure to recognize prompt\n" + slow_kill $salloc_pid + set exit_code 1 + } + eof { + wait + } + } + + if {$exit_code == 0} { + exec $bin_rm -f $file_prog + send_user "\nWARNING: Expect unable to work with more than 32-bit numbers\n" + } + exit $exit_code +} + # # Run a job step with affinity # @@ -285,7 +310,7 @@ set cpu_cnt 0 while {$cpu_cnt < $task_cnt} { set mask_sum 0 set mask [ expr 1 << $cpu_cnt ] - set mstr [ dec2hex $mask] + set mstr [ uint2hex $mask ] send "$srun -c1 --cpu_bind=mask_cpu:$mstr ./$file_prog\r" expect { -re "TASK_ID:($number),MASK:($number)" { @@ -326,7 +351,7 @@ set full_mask [ expr (1 << $task_cnt) - 1 ] while {$cpu_cnt < $task_cnt} { set mask_sum 0 set mask [ expr 1 << $cpu_cnt ] - set mstr [ dec2hex $mask] + set mstr [ uint2hex $mask ] set fwd_mask "$fwd_mask,$mstr" set fwd_map "$fwd_map,$cpu_cnt" set rev_mask "$mstr,$rev_mask" @@ -555,4 +580,3 @@ if {$exit_code == 0} { send_user " or if Shared=FORCE for the default partition.\n" } exit $exit_code - diff --git a/testsuite/expect/test1.90 b/testsuite/expect/test1.90 index 35f9ec4281df787955b9553f09a51f19d3fd8b09..c0dd3c325dfb0a44c32890df5f94196b9270fbf7 100755 --- a/testsuite/expect/test1.90 +++ b/testsuite/expect/test1.90 @@ -336,7 +336,7 @@ set cpu_cnt 0 while {$cpu_cnt < $task_cnt} { set mask_sum 0 set mask [ expr 1 << $cpu_cnt ] - set mstr [ dec2hex $mask] + set mstr [ uint2hex $mask ] send "$srun -n $task_cnt --mem_bind=mask_mem:$mstr ./$file_prog\r" expect { -re "TASK_ID:($number),CPU_MASK:($number),MEM_MASK:($number)" { @@ -377,7 +377,7 @@ set full_mask [ expr (1 << $task_cnt) - 1 ] while {$cpu_cnt < $task_cnt} { set mask_sum 0 set mask [ expr 1 << $cpu_cnt ] - set mstr [ dec2hex $mask] + set mstr [ uint2hex $mask ] set fwd_mask "$fwd_mask,$mstr" set fwd_map "$fwd_map,$cpu_cnt" set rev_mask "$mstr,$rev_mask"