1Test Executables 2================ 3The Trusted Services project maintains a number of deployments concerned with 4test. Although there may be some coverage overlap between different deployments, 5in general, the built test executables corresponding to different deployments 6serve different purposes. Most test executables may be run either on target 7hardware or a development PC as a native application. For more information, see: 8:ref:`Running Tests`. 9 10The following test deployments are currently supported: 11 12component-test 13-------------- 14The component-test deployment combines a large set of tests and components into 15a monolithic image that may be run as a userspace application. The CppUtest test 16framework is used for running tests and capturing results. The component-test 17executable may be built and run very quickly to obtain a first pass check for 18build failures or regressions. 19 20.. list-table:: 21 :widths: 1 2 22 :header-rows: 0 23 24 * - Supported Environments 25 - * | *linux-pc* 26 * | *arm-linux* 27 * - Used for 28 - * | Build testing 29 * | Development support and debug 30 * | Regression testing 31 32ts-service-test 33--------------- 34The ts-service-test deployment combines test suites that exercise service providers 35via their standard service interfaces where test cases perform the role of service client. 36Service discovery and RPC messaging is handled by the *libts* shared library. On real targets, 37the *libts* library uses a dynamic discovery mechanism to locate and communicate with real 38service deployments. For native PC builds, service providers are embedded into the *libts* 39library itself, allowing service level testing within a native PC environment. 40 41.. list-table:: 42 :widths: 1 2 43 :header-rows: 0 44 45 * - Supported Environments 46 - * | *linux-pc* - tests against service providers integrated into *libts* 47 * | *arm-linux* - tests against real service deployments 48 * - Used for 49 - * | End-to-end service testing 50 * | Security testing 51 * | Development support and debug 52 * | Regression testing 53 54uefi-test 55--------- 56The uefi-test deployment includes service level tests for UEFI SMM services. 57 58.. list-table:: 59 :widths: 1 2 60 :header-rows: 0 61 62 * - Supported Environments 63 - * | *linux-pc* - tests against service providers integrated into *libts* 64 * | *arm-linux* - tests against real service deployments using MM_COMMUNICATE 65 * - Used for 66 - * | UEFI service level testing 67 * | Regression testing 68 69psa-api-test 70------------ 71Used for PSA API conformance testing using test suites from: `PSA Arch Test project`_. 72Tests are integrated with service clients to enable end-to-end testing against deployed 73service providers. Separate executables are built for each API under test. As with 74ts-service-test and uefi-test, service discovery and messaging is handled by *libts*, 75allowing API tests to be run on real targets or within a native PC environment. 76 77.. list-table:: 78 :widths: 1 2 79 :header-rows: 0 80 81 * - Supported Environments 82 - * | *linux-pc* - tests against service providers integrated into *libts* 83 * | *arm-linux* - tests against real service deployments 84 * - Used for 85 - * | PSA API conformance testing 86 * | Regression testing 87 88ts-remote-test 89-------------- 90The ts-remote-test deployment builds a userspace application that allows a remote 91test runner to be discovered and controlled. It implements a subset of the the 92CppUtest command line interface but instead of running tests directly, it 93communicates with the remote test runner to run tests and collect results. Can 94be used, for example, to control the running of tests included in the env-test 95deployment. 96 97.. list-table:: 98 :widths: 1 2 99 :header-rows: 0 100 101 * - Supported Environments 102 - * | *linux-pc* - tests against test runner service provider integrated into *libts* 103 * | *arm-linux* - tests against real test runner deployment e.g. env-test 104 * - Used for 105 - * | Running environment tests 106 107-------------- 108 109.. _`PSA Arch Test project`: https://github.com/ARM-software/psa-arch-tests.git 110 111*Copyright (c) 2022, Arm Limited and Contributors. All rights reserved.* 112 113SPDX-License-Identifier: BSD-3-Clause 114