123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- #!/usr/bin/env bash
- #;**********************************************************************;
- # SPDX-License-Identifier: BSD-2-Clause
- #
- # Copyright (c) 2017 - 2020, Intel Corporation
- # Copyright (c) 2018 - 2020, Fraunhofer SIT sponsored by Infineon Technologies AG
- #
- # All rights reserved.
- #;**********************************************************************;
- # source the int-log-compiler-common sript
- . ${srcdir}/script/int-log-compiler-common.sh
- sanity_test
- # start simulator if needed
- if [[ ${INTEGRATION_TCTI} == "mssim" || ${INTEGRATION_TCTI} == "swtpm" ]]; then
- echo "Trying to start simulator ${INTEGRATION_TCTI}"
- try_simulator_start
- fi
- TPM20TEST_SOCKET_PORT="${SIM_PORT_DATA}"
- TPM20TEST_TCTI="${INTEGRATION_TCTI}:host=${TPM20TEST_SOCKET_ADDRESS},port=${TPM20TEST_SOCKET_PORT}"
- while true; do
- # Some debug prints
- echo "TPM20TEST_TCTI_NAME=${TPM20TEST_TCTI_NAME}"
- echo "TPM20TEST_DEVICE_FILE=${TPM20TEST_DEVICE_FILE}"
- echo "TPM20TEST_SOCKET_ADDRESS=${TPM20TEST_SOCKET_ADDRESS}"
- echo "TPM20TEST_SOCKET_PORT=${TPM20TEST_SOCKET_PORT}"
- echo "TPM20TEST_TCTI=${TPM20TEST_TCTI}"
- if [ "${TPM20TEST_TCTI_NAME}" != "device" ]; then
- env TPM20TEST_TCTI_NAME="${TPM20TEST_TCTI_NAME}" \
- TPM20TEST_SOCKET_ADDRESS="${TPM20TEST_SOCKET_ADDRESS}" \
- TPM20TEST_SOCKET_PORT="${TPM20TEST_SOCKET_PORT}" \
- TPM20TEST_TCTI="${TPM20TEST_TCTI}" \
- G_MESSAGES_DEBUG=all ./test/helper/tpm_startup
- if [ $? -ne 0 ]; then
- echo "TPM_StartUp failed"
- ret=99
- break
- fi
- else
- env TPM20TEST_TCTI_NAME=${TPM20TEST_TCTI_NAME} \
- TPM20TEST_DEVICE_FILE=${TPM20TEST_DEVICE_FILE} \
- G_MESSAGES_DEBUG=all ./test/helper/tpm_transientempty
- if [ $? -ne 0 ]; then
- echo "TPM transient area not empty => skipping"
- ret=99
- break
- fi
- fi
- TPMSTATE_FILE1=${TEST_BIN}_state1
- TPMSTATE_FILE2=${TEST_BIN}_state2
- env TPM20TEST_TCTI_NAME="${TPM20TEST_TCTI_NAME}" \
- TPM20TEST_SOCKET_ADDRESS="${TPM20TEST_SOCKET_ADDRESS}" \
- TPM20TEST_SOCKET_PORT="${TPM20TEST_SOCKET_PORT}" \
- TPM20TEST_TCTI="${TPM20TEST_TCTI}" \
- TPM20TEST_DEVICE_FILE="${TPM20TEST_DEVICE_FILE}" \
- G_MESSAGES_DEBUG=all ./test/helper/tpm_dumpstate>${TPMSTATE_FILE1}
- if [ $? -ne 0 ]; then
- echo "Error during dumpstate"
- ret=99
- break
- fi
- echo "Execute the test script"
- env TPM20TEST_TCTI_NAME="${TPM20TEST_TCTI_NAME}" \
- TPM20TEST_SOCKET_ADDRESS="${TPM20TEST_SOCKET_ADDRESS}" \
- TPM20TEST_SOCKET_PORT="${TPM20TEST_SOCKET_PORT}" \
- TPM20TEST_TCTI="${TPM20TEST_TCTI}" \
- TPM20TEST_DEVICE_FILE="${TPM20TEST_DEVICE_FILE}" \
- G_MESSAGES_DEBUG=all ${@: -1}
- ret=$?
- echo "Script returned $ret"
- #We check the state before a reboot to see if transients and NV were chagned.
- env TPM20TEST_TCTI_NAME="${TPM20TEST_TCTI_NAME}" \
- TPM20TEST_SOCKET_ADDRESS="${TPM20TEST_SOCKET_ADDRESS}" \
- TPM20TEST_SOCKET_PORT="${TPM20TEST_SOCKET_PORT}" \
- TPM20TEST_TCTI="${TPM20TEST_TCTI}" \
- TPM20TEST_DEVICE_FILE="${TPM20TEST_DEVICE_FILE}" \
- G_MESSAGES_DEBUG=all ./test/helper/tpm_dumpstate>${TPMSTATE_FILE2}
- if [ $? -ne 0 ]; then
- echo "Error during dumpstate"
- ret=99
- break
- fi
- if [ "$(cat ${TPMSTATE_FILE1})" != "$(cat ${TPMSTATE_FILE2})" ]; then
- echo "TPM changed state during test"
- echo "State before ($TPMSTATE_FILE1):"
- cat ${TPMSTATE_FILE1}
- echo "State after ($TPMSTATE_FILE2):"
- cat ${TPMSTATE_FILE2}
- ret=1
- break
- fi
- break
- done
- # This sleep is sadly necessary: If we kill the tabrmd w/o sleeping for a
- # second after the test finishes the simulator will die too. Bug in the
- # simulator?
- sleep 1
- # teardown
- daemon_stop ${SIM_PID_FILE}
- rm -rf ${SIM_TMP_DIR} ${SIM_PID_FILE}
- exit $ret
|