#!/bin/bash

# This file is part of util-linux.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This file is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

TS_TOPDIR="${0%/*}/../.."
TS_DESC="queue"

. "$TS_TOPDIR/functions.sh"
ts_init "$*"

ts_check_test_command "$TS_CMD_KILL"
ts_check_test_command "$TS_HELPER_SIGRECEIVE"

. "$TS_SELF/kill_functions.sh"

all_ok=true

HELPER_SYMLINK="$(mktemp "${TS_OUTDIR}/quXXXXXXXXXXXXX")"
ln -sf "$TS_HELPER_SIGRECEIVE" "$HELPER_SYMLINK"

"$HELPER_SYMLINK" >> "$TS_OUTPUT" 2>&1 &
TEST_PID=$!
check_test_sigreceive $TEST_PID
[ $? -eq 1 ] || echo "${HELPER_SYMLINK##*/} helper did not start" >> "$TS_OUTPUT"

"$TS_CMD_KILL" -1 --queue 42 $TEST_PID >> "$TS_OUTPUT" 2>&1
if [ $? -ne 0 ]; then
	echo "kill --queue 42 failed" >> "$TS_OUTPUT"
	all_ok=false
fi
wait $TEST_PID
if [ $? -ne 42 ]; then
	echo "wait $TEST_PID returned $? instead of 42" >> "$TS_OUTPUT"
	all_ok=false
fi

if $all_ok; then
	echo 'all ok' >> "$TS_OUTPUT"
fi

rm -f "$HELPER_SYMLINK"

ts_finalize
