#!/usr/bin/env bash

# For the license, see the LICENSE file in the root directory.

ROOT=${abs_top_builddir:-$(dirname "$0")/..}
TESTDIR=${abs_top_testdir:-$(dirname "$0")}

TPMDIR="$(mktemp -d)" || exit 1
SWTPM_CTRL_UNIX_PATH=$TPMDIR/sock
PID_FILE=$TPMDIR/swtpm.pid
LOG_FILE=$TPMDIR/swtpm.log

source ${TESTDIR}/test_common

trap "cleanup" SIGTERM EXIT

function cleanup()
{
	rm -rf $TPMDIR
	if [ -n "$PID" ]; then
		kill_quiet -SIGTERM $PID 2>/dev/null
	fi
}

source ${TESTDIR}/common
skip_test_no_tpm12 "${SWTPM_EXE}"

if ! [[ "$(uname -s)" =~ Linux ]]; then
	echo "Need Linux to run UnixIO test for CMD_SET_DATAFD."
	exit 77
fi

# Test CMD_SET_DATAFD
cp ${TESTDIR}/data/tpmstate1/* ${TPMDIR}
$SWTPM_EXE socket \
	--flags not-need-init \
	--ctrl type=unixio,path=$SWTPM_CTRL_UNIX_PATH \
	--tpmstate dir=$TPMDIR \
	-t \
	--pid file=$PID_FILE \
	--log file=$LOG_FILE,level=20 \
	${SWTPM_TEST_SECCOMP_OPT} &
PID=$!

if wait_for_file $PID_FILE 3; then
	echo "Error: Socket TPM did not write pidfile."
	exit 1
fi

LOG=$(SOCK_PATH=$SWTPM_CTRL_UNIX_PATH exec $TESTDIR/test_setdatafd.py)
res=$?

if [ $res -ne 0 ]; then
	echo "Error: CMD_SET_DATAFD failed: $LOG"
	exit 1
fi

echo "OK"

exit 0
