ts_check_test_command "$TS_CMD_KILL"
ts_check_test_command "$TS_HELPER_SIGRECEIVE"
+. "$TS_SELF/kill_functions.sh"
+
HELPER_SYMLINK="$TS_CWD/$(mktemp -u XXXXXXXXXXXXXXX)"
ln -s "$TS_HELPER_SIGRECEIVE" "$HELPER_SYMLINK"
trap "rm -f $HELPER_SYMLINK" 0
"$HELPER_SYMLINK" -s "$TS_TESTUSER" >> "$TS_OUTPUT" 2>&1 &
TEST_PID=$!
-# test_sigreceive needs time to start up
-for i in 0.01 0.1 1 1 1 1; do
- awk 'BEGIN { retval=1 }
- $1 ~ /^SigCgt/ {
- lbyte = strtonum("0x" substr($2, 16, 16))
- if (and(lbyte, 1)) {
- retval=0
- }
- } END {
- exit retval
- }' /proc/$TEST_PID/status &&
- up=1 &&
- break
- sleep $i
-done
+check_test_sigreceive $TEST_PID
+[ $? -eq 1 ] || echo "${HELPER_SYMLINK##*/} helper did not start" >> "$TS_OUTPUT"
+
echo "test 1" >> "$TS_OUTPUT"
"$TS_CMD_KILL" ${HELPER_SYMLINK##*/} >> "$TS_OUTPUT" 2>&1
if [ $? -ne 1 ]; then
--- /dev/null
+
+# The test_sigreceive is ready when signal process mask contains SIGHUP
+function check_test_sigreceive {
+ local rc=0
+ local pid=$1
+
+ for i in 0.01 0.1 1 1 1 1; do
+ awk 'BEGIN { retval=1 }
+ /^SigCgt/ {
+ lbyte = strtonum("0x" substr($2, 16, 16))
+ if (and(lbyte, 1)) {
+ retval=0
+ }
+ } END {
+ exit retval
+ }' /proc/$pid/status &&
+ rc=1 &&
+ break
+ sleep $i
+ done
+ return $rc
+}
ts_check_test_command "$TS_CMD_KILL"
ts_check_test_command "$TS_HELPER_SIGRECEIVE"
+. "$TS_SELF/kill_functions.sh"
+
all_ok=true
HELPER_SYMLINK="$TS_OUTDIR/$(mktemp -u XXXXXXXXXXXXXXX)"
ln -s "$TS_HELPER_SIGRECEIVE" "$HELPER_SYMLINK"
if [ "x$SIG" = "xRTMAX" ]; then
SIG="$SIG-0"
fi
+
"$HELPER_SYMLINK" >> "$TS_OUTPUT" 2>&1 &
TEST_PID=$!
- # test_sigreceive needs time to start up
- up=0
- for i in 0.01 0.1 1 1 1 1; do
- awk 'BEGIN { retval=1 }
- $1 ~ /^SigCgt/ {
- lbyte = strtonum("0x" substr($2, 16, 16))
- if (and(lbyte, 1)) {
- retval=0
- }
- } END {
- exit retval
- }' /proc/$TEST_PID/status &&
- up=1 &&
- break
- sleep $i
- done
- test $up = 0 && echo "$SIG sigreceive ${HELPER_SYMLINK##*/} helper did not start" >> "$TS_OUTPUT"
+ check_test_sigreceive $TEST_PID
+ [ $? -eq 1 ] || echo "${HELPER_SYMLINK##*/} helper did not start" >> "$TS_OUTPUT"
+
"$TS_CMD_KILL" -$SIG ${HELPER_SYMLINK##*/} >> "$TS_OUTPUT" 2>&1
wait $TEST_PID
if [ $? -ne $EXPECTED ]; then
ts_check_test_command "$TS_CMD_KILL"
ts_check_test_command "$TS_HELPER_SIGRECEIVE"
+. "$TS_SELF/kill_functions.sh"
+
all_ok=true
HELPER_SYMLINK="$TS_OUTDIR/$(mktemp -u XXXXXXXXXXXXXXX)"
{
"$HELPER_SYMLINK" >> "$TS_OUTPUT" 2>&1 &
TEST_PID=$!
- # test_sigreceive needs time to start up
- up=0
- for i in 0.01 0.1 1 1 1 1; do
- awk 'BEGIN { retval=1 }
- $1 ~ /^SigCgt/ {
- lbyte = strtonum("0x" substr($2, 16, 16))
- if (and(lbyte, 1)) {
- retval=0
- }
- } END {
- exit retval
- }' /proc/$TEST_PID/status &&
- up=1 &&
- break
- sleep $i
- done
- test $up = 1 || echo "$@ sigreceive helper did not start" >> "$TS_OUTPUT"
+ check_test_sigreceive $TEST_PID
+ [ $? -eq 1 ] || echo "${HELPER_SYMLINK##*/} helper did not start" >> "$TS_OUTPUT"
+
"$TS_CMD_KILL" "$@" $TEST_PID >> "$TS_OUTPUT" 2>&1
if [ $? -ne 0 ]; then
echo "kill $@ did not work" >> "$TS_OUTPUT"
ts_check_test_command "$TS_CMD_KILL"
ts_check_test_command "$TS_HELPER_SIGRECEIVE"
+. "$TS_SELF/kill_functions.sh"
+
all_ok=true
HELPER_SYMLINK="$TS_OUTDIR/$(mktemp -u XXXXXXXXXXXXXXX)"
"$HELPER_SYMLINK" >> "$TS_OUTPUT" 2>&1 &
TEST_PID=$!
-# test_sigreceive needs time to start up
-up=0
-for i in 0.01 0.1 1 1 1 1; do
- awk 'BEGIN { retval=1 }
- $1 ~ /^SigCgt/ {
- lbyte = strtonum("0x" substr($2, 16, 16))
- if (and(lbyte, 1)) {
- retval=0
- }
- } END {
- exit retval
- }' /proc/$TEST_PID/status &&
- up=1 &&
- break
- sleep $i
-done
+check_test_sigreceive $TEST_PID
+[ $? -eq 1 ] || echo "${HELPER_SYMLINK##*/} helper did not start" >> "$TS_OUTPUT"
+
KILL_PID=$("$TS_CMD_KILL" -p ${HELPER_SYMLINK##*/} 2>> "$TS_OUTPUT" 2>&1)
if [ $? -ne 0 ]; then
echo "kill -p did not work" >> "$TS_OUTPUT"