#!/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`
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

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
