| Test Executables |
| ================ |
| The Trusted Services project maintains a number of deployments concerned with |
| test. Although there may be some coverage overlap between different deployments, |
| in general, the built test executables corresponding to different deployments |
| serve different purposes. Most test executables may be run either on target |
| hardware or a development PC as a native application. For more information, see: |
| :ref:`Running Tests`. |
| |
| The following test deployments are currently supported: |
| |
| component-test |
| -------------- |
| The component-test deployment combines a large set of tests and components into |
| a monolithic image that may be run as a userspace application. The CppUtest test |
| framework is used for running tests and capturing results. The component-test |
| executable may be built and run very quickly to obtain a first pass check for |
| build failures or regressions. |
| |
| .. list-table:: |
| :widths: 1 2 |
| :header-rows: 0 |
| |
| * - Supported Environments |
| - * | *linux-pc* |
| * | *arm-linux* |
| * - Used for |
| - * | Build testing |
| * | Development support and debug |
| * | Regression testing |
| |
| ts-service-test |
| --------------- |
| The ts-service-test deployment combines test suites that exercise service providers |
| via their standard service interfaces where test cases perform the role of service client. |
| Service discovery and RPC messaging is handled by the *libts* shared library. On real targets, |
| the *libts* library uses a dynamic discovery mechanism to locate and communicate with real |
| service deployments. For native PC builds, service providers are embedded into the *libts* |
| library itself, allowing service level testing within a native PC environment. |
| |
| .. list-table:: |
| :widths: 1 2 |
| :header-rows: 0 |
| |
| * - Supported Environments |
| - * | *linux-pc* - tests against service providers integrated into *libts* |
| * | *arm-linux* - tests against real service deployments |
| * - Used for |
| - * | End-to-end service testing |
| * | Security testing |
| * | Development support and debug |
| * | Regression testing |
| |
| uefi-test |
| --------- |
| The uefi-test deployment includes service level tests for UEFI SMM services. |
| |
| .. list-table:: |
| :widths: 1 2 |
| :header-rows: 0 |
| |
| * - Supported Environments |
| - * | *linux-pc* - tests against service providers integrated into *libts* |
| * | *arm-linux* - tests against real service deployments using MM_COMMUNICATE |
| * - Used for |
| - * | UEFI service level testing |
| * | Regression testing |
| |
| psa-api-test |
| ------------ |
| Used for PSA API conformance testing using test suites from: `PSA Arch Test project`_. |
| Tests are integrated with service clients to enable end-to-end testing against deployed |
| service providers. Separate executables are built for each API under test. As with |
| ts-service-test and uefi-test, service discovery and messaging is handled by *libts*, |
| allowing API tests to be run on real targets or within a native PC environment. |
| |
| .. list-table:: |
| :widths: 1 2 |
| :header-rows: 0 |
| |
| * - Supported Environments |
| - * | *linux-pc* - tests against service providers integrated into *libts* |
| * | *arm-linux* - tests against real service deployments |
| * - Used for |
| - * | PSA API conformance testing |
| * | Regression testing |
| |
| ts-remote-test |
| -------------- |
| The ts-remote-test deployment builds a userspace application that allows a remote |
| test runner to be discovered and controlled. It implements a subset of the the |
| CppUtest command line interface but instead of running tests directly, it |
| communicates with the remote test runner to run tests and collect results. Can |
| be used, for example, to control the running of tests included in the env-test |
| deployment. |
| |
| .. list-table:: |
| :widths: 1 2 |
| :header-rows: 0 |
| |
| * - Supported Environments |
| - * | *linux-pc* - tests against test runner service provider integrated into *libts* |
| * | *arm-linux* - tests against real test runner deployment e.g. env-test |
| * - Used for |
| - * | Running environment tests |
| |
| -------------- |
| |
| .. _`PSA Arch Test project`: https://github.com/ARM-software/psa-arch-tests.git |
| |
| *Copyright (c) 2022, Arm Limited and Contributors. All rights reserved.* |
| |
| SPDX-License-Identifier: BSD-3-Clause |