#!/bin/sh

source dlog_test_header

trap cleanup 0

if [ "$type" = "zero-copy" ]; then
	echo "zero-copy not supported for this test"
	exit 1
fi

PREEARLYQUIT_CONFIG_PATH="$DLOG_CONFIG_PATH"
export DLOG_CONFIG_PATH="$TESTDIR/earlyquit.conf"

for PERSISTENT in 1 0; do
for KMSG in 1 0; do
for SYSLOG in 1 0; do
for QOS in 1 0; do
	# TODO: Does syslog even work? Disabling for now.
	[ "$SYSLOG" -eq 1 ] && continue

	if [ "$QOS" -eq 1 ]; then
		SOURCE="/usr/share/dlog-$type.conf.qos"
	else
		SOURCE="/usr/share/dlog-$type.conf.test"
	fi

	if [ "$PERSISTENT" -eq 1 ]; then
		cp "$SOURCE" "$DLOG_CONFIG_PATH"
	else
		sed 's/^dlog_logger_conf.*$/#\0/' <"$SOURCE" >"$DLOG_CONFIG_PATH"
	fi

	echo "handle_kmsg=$KMSG" >> "$DLOG_CONFIG_PATH"
	echo "syslog_force=$SYSLOG" >> "$DLOG_CONFIG_PATH"

	dlog_logger -t 0 &
	LOGGER=$!
	sleep 1

	kill $LOGGER > /dev/null
	STOPPED=$?
	LOGGER=-1

	if [ "$PERSISTENT" -eq 0 ] && [ "$KMSG" -eq 0 ] && [ "$SYSLOG" -eq 0 ] && [ "$QOS" -eq 0 ] && [ "$type" = "logger" ]; then
		EXPECTED=1
	else
		EXPECTED=0
	fi

	LOG_DETAILS="testing if daemon stops when not needed (persistent=$PERSISTENT, kmsg=$KMSG, syslog=$SYSLOG, qos=$QOS)"
	[ "$STOPPED" -eq "$EXPECTED" ] && ok || fail
done; done; done; done

export DLOG_CONFIG_PATH="$PREEARLYQUIT_CONFIG_PATH"
