Reliably kill test processes

It seems command -v also includes built-ins so checking for kill
is useless because it finds the built-in and those machines or
environments that have no /bin/kill fail at the check stage.
Oh and then TCL exec doesn't spawn a shell.

After reading way too many TCL websites, I believe this should
fix the problem. TCL quoting is... different to say the least but
it works reliably here. The script now even picked up a typo elsewhere
which was nice.

This change should stop the intermittent FTBFS bugs from the Debian
pbuilders, I hope! You'd think kill $var wouldn't be this difficult.
This commit is contained in:
Craig Small
2014-07-01 18:51:21 +10:00
parent 96c330e3b3
commit cacba5613e
3 changed files with 17 additions and 18 deletions

View File

@@ -16,12 +16,6 @@ set test "pgprep with no arguments"
spawn $pgrep
expect_pass "$test" "^\(lt-\)\?pgrep: no matching criteria specified\\s*"
# Tests that don't need the test process go above here
if { [ catch { exec sh -c "command -v kill" } kill_path] } {
untested { kill path not found }
return
}
make_testproc
set testproc_len [ string length $testproc_comm ]
@@ -123,6 +117,4 @@ expect_blank $test
# Cleanup
eval exec "$kill_path $testproc1_pid"
eval exec "$kill_path $testproc2_pid"
file delete $testproc_path
kill_testproc