.. _tfm_psa_test: TF-M Platform Security Architecture Test Sample ############################################### Overview ******** Run PSA test suites tests with Zephyr and TFM. The PSA tests are implemented in the psa-arch-tests repo: https://github.com/ARM-software/psa-arch-tests This sample is supported for platforms that have a port in psa-arch-tests. See sample.yaml for a list of supported platforms. Building and Running ******************** You must choose a suite via the CONFIG_TFM_PSA_TEST_* configs. Only one of these suites can be run at a time, with the test suite set via one of the following kconfig options: * ``CONFIG_TFM_PSA_TEST_CRYPTO`` * ``CONFIG_TFM_PSA_TEST_PROTECTED_STORAGE`` * ``CONFIG_TFM_PSA_TEST_INTERNAL_TRUSTED_STORAGE`` * ``CONFIG_TFM_PSA_TEST_STORAGE`` * ``CONFIG_TFM_PSA_TEST_INITIAL_ATTESTATION`` You can indicate the desired test suite at build time via a config flag: .. code-block:: bash $ west build samples/tfm_integration/tfm_psa_test/ \ -p -b mps2/an521/cpu0/ns -t run -- \ -DCONFIG_TFM_PSA_TEST_STORAGE=y Note that not all test suites are valid on all boards. On Target ========= Refer to :zephyr:code-sample:`tfm_ipc` for detailed instructions. On QEMU: ======== Refer to :zephyr:code-sample:`tfm_ipc` for detailed instructions. Following is an example based on ``west build`` .. code-block:: bash $ west build samples/tfm_integration/tfm_psa_test/ -p -b mps2/an521/cpu0/ns -t run -- -DCONFIG_TFM_PSA_TEST_STORAGE=y Sample Output ============= .. code-block:: console *** Booting Zephyr OS build zephyr-v2.5.0-456-g06f4da459a99 *** ***** PSA Architecture Test Suite - Version 1.0 ***** Running.. Storage Suite ****************************************** TEST: 401 | DESCRIPTION: UID not found check [Info] Executing tests from non-secure [Info] Executing ITS tests [Check 1] Call get API for UID 6 which is not set [Check 2] Call get_info API for UID 6 which is not set [Check 3] Call remove API for UID 6 which is not set [Check 4] Call get API for UID 6 which is removed [Check 5] Call get_info API for UID 6 which is removed [Check 6] Call remove API for UID 6 which is removed Set storage for UID 6 [Check 7] Call get API for different UID 5 [Check 8] Call get_info API for different UID 5 [Check 9] Call remove API for different UID 5 [Info] Executing PS tests [Check 1] Call get API for UID 6 which is not set [Check 2] Call get_info API for UID 6 which is not set [Check 3] Call remove API for UID 6 which is not set [Check 4] Call get API for UID 6 which is removed [Check 5] Call get_info API for UID 6 which is removed [Check 6] Call remove API for UID 6 which is removed Set storage for UID 6 [Check 7] Call get API for different UID 5 [Check 8] Call get_info API for different UID 5 [Check 9] Call remove API for different UID 5 TEST RESULT: PASSED ****************************************** [...] TEST: 417 | DESCRIPTION: Storage assest capacity modification check [Info] Executing tests from non-secure [Info] Executing PS tests Test Case skipped as Optional PS APIs not are supported. TEST RESULT: SKIPPED (Skip Code=0x0000002B) ****************************************** ************ Storage Suite Report ********** TOTAL TESTS : 17 TOTAL PASSED : 11 TOTAL SIM ERROR : 0 TOTAL FAILED : 0 TOTAL SKIPPED : 6 ****************************************** Entering standby..