blob: db569f375fa130ce7d013e640f92747614c2513a [file] [log] [blame]
Julian Hall5e3626f2022-04-07 14:05:08 +01001Test Executables
2================
Julian Hall32bc5862022-04-07 16:21:05 +01003The 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`.
Julian Hall5e3626f2022-04-07 14:05:08 +01009
Julian Hall32bc5862022-04-07 16:21:05 +010010The 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
Julian Hall5e3626f2022-04-07 14:05:08 +0100106
107--------------
108
Julian Hall32bc5862022-04-07 16:21:05 +0100109.. _`PSA Arch Test project`: https://github.com/ARM-software/psa-arch-tests.git
110
Julian Hall5e3626f2022-04-07 14:05:08 +0100111*Copyright (c) 2022, Arm Limited and Contributors. All rights reserved.*
112
113SPDX-License-Identifier: BSD-3-Clause