procps/testsuite/pkill.test/pkill.exp
Craig Small 557fda8f98 build-sys: Enable testing of sigqueue
The referenced commits enavled both pkill and kill to send an integer to
the killed or signalled process. The test_process now will report on the
integer if sent and the testsuite changes take advantage of this
new feature.

Another process make/destroy set had to be made as using spawn
instead of exec changes both the SID and TTY for the underlying
process, making other tests fail.

References:
 commit 7d55409b82
 commit 2b804a532a
2020-05-11 16:59:18 +10:00

52 lines
1.5 KiB
Plaintext

#
# Dejagnu tests for pkill - part of procps
#
set mypid [pid]
set not_ppid [ expr { $mypid + 1 } ]
set pkill "${topdir}pkill"
set uid [ exec id -u ]
set not_uid [ expr { $uid + 1 } ]
set gid [ exec id -g ]
set not_gid [ expr { $gid + 1 } ]
set ps "${topdir}ps/pscommand"
set tty [ get_tty ]
set test "pkill with no arguments"
spawn $pkill
expect_pass "$test" "^\(lt-\)\?pkill: no matching criteria specified\\s*"
make_testproc
set testproc_len [ string length $testproc_comm ]
set testproc_trim [ string range $testproc_comm 0 [ expr { $testproc_len - 2 } ] ]
set test "pkill find both test pids"
spawn $pkill -0 -e $testproc_comm
expect_pass "$test" "^$testproc_comm killed \\(pid $testproc1_pid\\)\\s+$testproc_comm killed \\(pid $testproc2_pid\\)\\s*$"
set test "pkill signal option order"
spawn $pkill -e $testproc_comm -0
expect_pass "$test" "^$testproc_comm killed \\(pid $testproc1_pid\\)\\s+$testproc_comm killed \\(pid $testproc2_pid\\)\\s*$"
set test "pkill with trailing garbage on int signal"
spawn $pkill -0garbage $testproc_comm
expect_pass "$test" "invalid option -- '0'"
# Cleanup
kill_testproc
make_pipeproc
set test "pkill with SIGUSR1"
spawn $pkill -USR1 -e $testproc_comm
expect_pipeproc_pass "$test" "SIG SIGUSR1"
set test "pkill with SIGUSR2"
spawn $pkill -USR2 -e $testproc_comm
expect_pipeproc_pass "$test" "SIG SIGUSR2"
set test "pkill with queued int"
spawn $pkill -USR1 -e -q 42 $testproc_comm
expect_pipeproc_pass "$test" "SIG SIGUSR1 value=42"
kill_pipeproc