#!/bin/bash

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

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

PATH=$ROOT/src/swtpm:$PATH

[ "${SWTPM_IFACE}" == "cuse" ] && source ${TESTDIR}/test_cuse
source ${TESTDIR}/common

trap "cleanup" SIGTERM EXIT

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

# Test 1: No states

workdir="$(mktemp -d)" || exit 1
msg="$(${SWTPM_EXE} ${SWTPM_IFACE} --print-states --tpm2 --tpmstate dir=${workdir} 2>&1)"

if [ $? -ne 0 ]; then
	echo "Error: Could not pass --print-states"
	echo "${msg}"
	exit 1
fi

exp='\{ "type": "swtpm", "states": \[\] \}'
if ! [[ ${msg} =~ ${exp} ]]; then
	echo "Unexpected response from ${SWTPM_IFACE} TPM to --print-states:"
	echo "Actual   : ${msg}"
	echo "Expected : ${exp}"
	echo "Test 1: Failed"
	exit 1
fi

echo "Test 1: OK"
cleanup

# Test 2: Existing state

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

msg="$(${SWTPM_EXE} ${SWTPM_IFACE} --print-states --tpm2 --tpmstate dir=${workdir} 2>&1)"

if [ $? -ne 0 ]; then
	echo "Error: Could not pass --print-states"
	echo "${msg}"
	exit 1
fi

exp='\{ "type": "swtpm", "states": \[ \{"name": "permall", "size": 6\} \] \}'
if ! [[ ${msg} =~ ${exp} ]]; then
	echo "Unexpected response from ${SWTPM_IFACE} TPM to --print-states:"
	echo "Actual   : ${msg}"
	echo "Expected : ${exp}"
	exit 1
fi

echo "Test 2: OK"
cleanup

exit 0
