1Build and run tests on OP-TEE reference integration for FVP 2=========================================================== 3 4The Linux based build maintained by the OP-TEE project is used as the reference integration for testing 5trusted service deployments on a simulated hardware platform. Service providers deployed within secure partitions 6are tested using test executables that run as user-space programs under Linux. Test cases interact with trusted 7service providers using standard service access protocols, carried by FF-A based messages. 8 9The test executables most often used for service level testing on hardware platforms are: 10 11 - *ts-service-test* - contains a set of service-level end-to-end tests. Discovers and communicates 12 with service providers using libts. 13 - *psa-api-test* - PSA functional API conformance tests (from external project). Also uses libts. 14 15This method uses the makefiles from the ``op-tee/build`` repository. 16 17 18Before you start 19---------------- 20 21Before attempting to run tests on the FVP simulation, the OP-TEE reference integration needs to be 22built and run. Read the following guides to understand how to do this: 23 24 - OP-TEE build and run instructions, see: 25 :ref:`Deploying trusted services in S-EL0 Secure Partitions under OP-TEE` 26 27 - Instructions for loading and running user-space programs on FVP: 28 :ref:`Running user-space programs on FVP` 29 30 31Build the Linux application binaries 32------------------------------------ 33 34From the root directory of the workspace, enter the following to build the test applications:: 35 36 make -C build ffa-test-all 37 38 39Run *ts-service-test* 40--------------------- 41 42From the root directory of the workspace, enter:: 43 44 FVP_PATH=../Base_RevC_AEMvA_pkg/models/Linux64_GCC-9.3 make -C build run-only 45 46Once it boots to the login prompt, log in as root and from the FVP terminal, enter:: 47 48 cd /mnt/host 49 cp -vat /usr out/ts-install/arm-linux/lib out/ts-install/arm-linux/bin 50 out/linux-arm-ffa-user/load_module.sh 51 ts-service-test -v 52 53Use the same flow for other user-space programs. Check the output of the ``cp`` command executed to see 54executables copied under ``/usr/bin``. 55 56.. _build-spmc-tests: 57 58Build SPMC tests 59---------------- 60 61Trusted Services includes S-EL0 tests SPs for validating the SPMC's behavior by invoking various FF-A interfaces. These tests 62require OP-TEE's `xtest`_ for starting them from the normal world. ``xtest`` uses ``linux-arm-ffa-user`` for accessing the 63FF-A layer. Building the SPMC tests uses the same build system but with the ``SPMC_TEST=y`` configuration:: 64 65 make -C build SPMC_TEST=y all 66 67.. note:: 68 This build configuration only contains the SPMC test SPs and it does not include any of the :ref:`Services`. 69 70See :ref:`OP-TEE SPMC tests` for further information. 71 72Run SPMC tests 73-------------- 74 75From the root directory of the workspace, enter:: 76 77 FVP_PATH=../Base_RevC_AEMvA_pkg/models/Linux64_GCC-9.3 make -C build run-only 78 79Once it boots to the login prompt, log in as root and from the FVP terminal, enter:: 80 81 cd /mnt/host 82 out/linux-arm-ffa-user/load_module.sh 83 xtest -t ffa_spmc 84 85-------------- 86 87.. _`xtest`: https://optee.readthedocs.io/en/latest/building/gits/optee_test.html 88 89*Copyright (c) 2022-2024, Arm Limited and Contributors. All rights reserved.* 90 91SPDX-License-Identifier: BSD-3-Clause 92