#!/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_tpm20 "${SWTPM_EXE}"
STATEBASENAME="tpm2-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}"

if ! $SWTPM_SETUP \
	--tpm2 \
	--not-overwrite \
	--tpm-state "${workdir}" \
	--config "${SWTPM_SETUP_CONF}" \
	--logfile "${workdir}/logfile" \
	--tpm "${SWTPM_EXE} socket ${SWTPM_TEST_SECCOMP_OPT}";
then
	echo "Test 1 failed: Error: Could not run $SWTPM_SETUP."
	echo "Setup Logfile:"
	cat "${workdir}/logfile"
	exit 1
fi

if ! grep -q "${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}"

if ! $SWTPM_SETUP \
	--tpm2 \
	--overwrite \
	--tpm-state "${workdir}" \
	--config "${SWTPM_SETUP_CONF}" \
	--logfile "${workdir}/logfile" \
	--tpm "${SWTPM_EXE} socket ${SWTPM_TEST_SECCOMP_OPT}";
then
	echo "Test 2 failed: Error: Could not run $SWTPM_SETUP."
	echo "Setup Logfile:"
	cat "${workdir}/logfile"
	exit 1
fi

if grep -q "${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 \
	--tpm2 \
	--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 ! grep -q "${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
