#!/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")}
SRCDIR=${abs_top_srcdir:-$(dirname "$0")/..}

source ${TESTDIR}/common
skip_test_no_tpm12 "${SWTPM_EXE}"
STATEBASENAME="tpm-00.permall"

SWTPM_SETUP_CONF=$SRCDIR/samples/swtpm_setup.conf

trap "cleanup" SIGTERM EXIT

function cleanup()
{
	rm -rf ${workdir}
}

# Test 1: --not-overwrite with dummy state file

workdir="$(mktemp -d)" || exit 1
statefile="${workdir}/${STATEBASENAME}"
dummydata="DUMMY"
echo $dummydata > ${statefile}

$SWTPM_SETUP \
	--not-overwrite \
	--tpm-state ${workdir} \
	--config ${SWTPM_SETUP_CONF} \
	--logfile ${workdir}/logfile \
	--tpm "${SWTPM_EXE} socket ${SWTPM_TEST_SECCOMP_OPT}"

if [ $? -ne 0 ]; then
	echo "Test 1 failed: Error: Could not run $SWTPM_SETUP."
	echo "Setup Logfile:"
	cat ${workdir}/logfile
	exit 1
fi

if [ -z "$(grep ${dummydata} ${statefile})" ]; then
	echo "Test 1 failed: Error: The state file was unexpectedly overwritten."
	echo "Setup Logfile:"
	cat ${workdir}/logfile
	exit 1
fi

echo "Test 1 passed"
cleanup

# Test 2: --overwrite with dummy state file

workdir="$(mktemp -d)" || exit 1
statefile="${workdir}/${STATEBASENAME}"
dummydata="DUMMY"
echo $dummydata > ${statefile}

$SWTPM_SETUP \
	--overwrite \
	--tpm-state ${workdir} \
	--config ${SWTPM_SETUP_CONF} \
	--logfile ${workdir}/logfile \
	--tpm "${SWTPM_EXE} socket ${SWTPM_TEST_SECCOMP_OPT}"

if [ $? -ne 0 ]; then
	echo "Test 2 failed: Error: Could not run $SWTPM_SETUP."
	echo "Setup Logfile:"
	cat ${workdir}/logfile
	exit 1
fi

if [ -n "$(grep ${dummydata} ${statefile})" ]; then
	echo "Test 2 failed: Error: The state file was not overwritten."
	echo "Setup Logfile:"
	cat ${workdir}/logfile
	exit 1
fi

echo "Test 2 passed"
cleanup

# Test 3: neither "--overwrite" nor "--not-overwrite" with dummy state file

workdir="$(mktemp -d)" || exit 1
statefile="${workdir}/${STATEBASENAME}"
dummydata="DUMMY"
echo $dummydata > ${statefile}

$SWTPM_SETUP \
	--tpm-state ${workdir} \
	--config ${SWTPM_SETUP_CONF} \
	--logfile ${workdir}/logfile \
	--tpm "${SWTPM_EXE} socket ${SWTPM_TEST_SECCOMP_OPT}"

if [ $? -ne 1 ]; then
	echo "Test 3 failed: Error: $SWTPM_SETUP did not exit with exit code 1."
	echo "Setup Logfile:"
	cat ${workdir}/logfile
	exit 1
fi

if [ -z "$(grep ${dummydata} ${statefile})" ]; then
	echo "Test 3 failed: Error: The state file was unexpectedly overwritten."
	echo "Setup Logfile:"
	cat ${workdir}/logfile
	exit 1
fi

echo "Test 3 passed"
cleanup

exit 0
