blob: 484697fd02c875bb55be1e4563abc8ac170c407b [file] [log] [blame]
Kevin Peng62a87112020-07-07 15:07:46 +08001/*
Feder Liang7abe9a42021-12-03 17:54:58 +08002 * Copyright (c) 2017-2022, Arm Limited. All rights reserved.
Chris Brand23275982022-05-20 14:54:59 -07003 * Copyright (c) 2022, Cypress Semiconductor Corporation (an Infineon company)
4 * or an affiliate of Cypress Semiconductor Corporation. All rights reserved.
Kevin Peng62a87112020-07-07 15:07:46 +08005 *
6 * SPDX-License-Identifier: BSD-3-Clause
7 *
8 */
9
10#include "test_framework_integ_test.h"
11#include "test_framework_integ_test_helper.h"
12#include "test_framework.h"
13
14/* Service specific includes */
shejia01e0dd80a2021-07-12 17:47:50 +080015#ifdef TEST_NS_PS
Raef Coles652bb8a2020-09-24 11:27:38 +010016#include "ps_ns_tests.h"
17#endif
shejia01e0dd80a2021-07-12 17:47:50 +080018#ifdef TEST_NS_ITS
Raef Coles652bb8a2020-09-24 11:27:38 +010019#include "its_ns_tests.h"
20#endif
shejia01e0dd80a2021-07-12 17:47:50 +080021#ifdef TEST_NS_CRYPTO
Raef Coles652bb8a2020-09-24 11:27:38 +010022#include "crypto_ns_tests.h"
23#endif
shejia01e0dd80a2021-07-12 17:47:50 +080024#ifdef TEST_NS_FWU
Sherry Zhang92c499a2021-03-08 18:14:15 +080025#include "fwu_ns_tests.h"
26#endif
shejia01e0dd80a2021-07-12 17:47:50 +080027#ifdef TEST_NS_ATTESTATION
Raef Coles652bb8a2020-09-24 11:27:38 +010028#include "attest_ns_tests.h"
Raef Coles652bb8a2020-09-24 11:27:38 +010029#endif
shejia01e0dd80a2021-07-12 17:47:50 +080030#ifdef TEST_NS_QCBOR
31#include "qcbor_ns_tests.h"
32#endif
33#ifdef TEST_NS_T_COSE
34#include "t_cose_ns_tests.h"
35#endif
36#ifdef TEST_NS_PLATFORM
Raef Coles652bb8a2020-09-24 11:27:38 +010037#include "platform_ns_tests.h"
38#endif
shejia01e0dd80a2021-07-12 17:47:50 +080039#ifdef TEST_NS_IPC
Raef Coles652bb8a2020-09-24 11:27:38 +010040#include "ipc_ns_tests.h"
41#else
shejia01e0dd80a2021-07-12 17:47:50 +080042#ifdef TEST_NS_AUDIT
Raef Coles652bb8a2020-09-24 11:27:38 +010043#include "audit_ns_tests.h"
44#endif
Summer Qinab4e42d2022-10-09 17:36:39 +080045#endif /* TEST_NS_IPC */
shejia01e0dd80a2021-07-12 17:47:50 +080046#ifdef TEST_NS_MULTI_CORE
Raef Coles652bb8a2020-09-24 11:27:38 +010047#include "multi_core_ns_test.h"
Chris Brand23275982022-05-20 14:54:59 -070048#endif /* TEST_NS_MULTI_CORE */
Mate Toth-Palb3f96d22021-05-12 08:42:34 +020049#ifdef TFM_FUZZER_TOOL_TESTS
50#include "tf_fuzz_testsuite.h"
51#endif /* TFM_FUZZER_TOOL_TESTS */
Xinyu Zhang92fe7582021-09-24 17:11:49 +080052#ifdef TEST_NS_MANAGE_NSID
53#include "nsid_testsuite.h"
54#endif /* TEST_NS_MANAGE_NSID */
shejia01e0dd80a2021-07-12 17:47:50 +080055#if defined(TEST_NS_SLIH_IRQ) || defined(TEST_NS_FLIH_IRQ)
Kevin Penga8604332021-04-23 17:33:30 +080056#include "irq_testsuite.h"
57#endif
Mingyang Sun5df46242021-11-03 18:31:04 +080058#ifdef TEST_NS_SFN_BACKEND
59#include "sfn_ns_tests.h"
60#endif
Feder Liang7abe9a42021-12-03 17:54:58 +080061#ifdef TEST_NS_FPU
62#include "fpu_ns_tests.h"
63#endif
Jianliang Shen2959c1f2021-09-01 10:14:06 +080064#ifdef EXTRA_NS_TEST_SUITE
65#include "extra_ns_tests.h"
66#endif
Kevin Peng62a87112020-07-07 15:07:46 +080067
68static struct test_suite_t test_suites[] = {
Kevin Peng62a87112020-07-07 15:07:46 +080069 /* List test cases which are compliant with level 1 isolation */
Kevin Peng018f7182022-03-07 14:11:20 +080070#ifdef TEST_NS_IPC
71 /* Non-secure IPC test cases */
72 {&register_testsuite_ns_ipc_interface, 0, 0, 0},
73#endif
74
75#ifdef TEST_NS_SFN_BACKEND
76 {&register_testsuite_ns_sfn_interface, 0, 0, 0},
77#endif
Kevin Peng62a87112020-07-07 15:07:46 +080078
shejia01e0dd80a2021-07-12 17:47:50 +080079#ifdef TEST_NS_PS
Kevin Peng62a87112020-07-07 15:07:46 +080080 {&register_testsuite_ns_psa_ps_interface, 0, 0, 0},
81#endif
82
shejia01e0dd80a2021-07-12 17:47:50 +080083#ifdef TEST_NS_ITS
Kevin Peng62a87112020-07-07 15:07:46 +080084 /* Non-secure ITS test cases */
85 {&register_testsuite_ns_psa_its_interface, 0, 0, 0},
86#endif
87
shejia01e0dd80a2021-07-12 17:47:50 +080088#ifdef TEST_NS_CRYPTO
Kevin Peng62a87112020-07-07 15:07:46 +080089 /* Non-secure Crypto test cases */
90 {&register_testsuite_ns_crypto_interface, 0, 0, 0},
91#endif
92
shejia01e0dd80a2021-07-12 17:47:50 +080093#ifdef TEST_NS_PLATFORM
Kevin Peng62a87112020-07-07 15:07:46 +080094 /* Non-secure platform service test cases */
95 {&register_testsuite_ns_platform_interface, 0, 0, 0},
96#endif
97
shejia01e0dd80a2021-07-12 17:47:50 +080098#ifdef TEST_NS_ATTESTATION
Raef Coles652bb8a2020-09-24 11:27:38 +010099 /* Non-secure initial attestation service test cases */
100 {&register_testsuite_ns_attestation_interface, 0, 0, 0},
Kevin Peng62a87112020-07-07 15:07:46 +0800101#endif
102
shejia01e0dd80a2021-07-12 17:47:50 +0800103#ifdef TEST_NS_QCBOR
104 /* Non-secure QCBOR library test cases */
105 {&register_testsuite_ns_qcbor, 0, 0, 0},
106#endif
107
108#ifdef TEST_NS_T_COSE
109 /* Non-secure T_COSE library test cases */
110 {&register_testsuite_ns_t_cose, 0, 0, 0},
111#endif
112
113#ifdef TEST_NS_AUDIT
Kevin Peng62a87112020-07-07 15:07:46 +0800114 /* Non-secure Audit Logging test cases */
115 {&register_testsuite_ns_audit_interface, 0, 0, 0},
116#endif
117
shejia01e0dd80a2021-07-12 17:47:50 +0800118#ifdef TEST_NS_FWU
Sherry Zhang92c499a2021-03-08 18:14:15 +0800119 /* Non-secure Firmware Update test cases */
120 {&register_testsuite_ns_psa_fwu_interface, 0, 0, 0},
121#endif
122
shejia01e0dd80a2021-07-12 17:47:50 +0800123#ifdef TEST_NS_MULTI_CORE
Kevin Peng62a87112020-07-07 15:07:46 +0800124 /* Multi-core topology test cases */
125 {&register_testsuite_multi_core_ns_interface, 0, 0, 0},
126#endif
127
Jianliang Shen2959c1f2021-09-01 10:14:06 +0800128#ifdef EXTRA_NS_TEST_SUITE
129 /* Non-secure extra test cases */
130 {&register_testsuite_extra_ns_interface, 0, 0, 0},
131#endif
132
Mate Toth-Palb3f96d22021-05-12 08:42:34 +0200133#ifdef TFM_FUZZER_TOOL_TESTS
134 {&register_testsuite_tf_fuzz_test, 0, 0, 0},
135#endif /* TFM_FUZZER_TOOL_TESTS */
136
Xinyu Zhang92fe7582021-09-24 17:11:49 +0800137#ifdef TEST_NS_MANAGE_NSID
138 {&register_testsuite_nsid_test, 0, 0, 0},
139#endif /* TEST_NS_MANAGE_NSID */
140
shejia01e0dd80a2021-07-12 17:47:50 +0800141#if defined(TEST_NS_SLIH_IRQ) || defined(TEST_NS_FLIH_IRQ)
Kevin Penga8604332021-04-23 17:33:30 +0800142 {&register_testsuite_irq_test, 0, 0, 0},
143#endif
144
Feder Liang7abe9a42021-12-03 17:54:58 +0800145#ifdef TEST_NS_FPU
146 {&register_testsuite_ns_fpu_interface, 0, 0, 0},
147#endif
148
Kevin Peng62a87112020-07-07 15:07:46 +0800149 /* End of test suites */
150 {0, 0, 0, 0}
151};
152
153enum test_suite_err_t start_integ_test(void)
154{
155 return integ_test("Non-secure", test_suites);
156}
157
158/* Service stand-in for NS tests. To be called from a non-secure context */
159enum test_suite_err_t tfm_non_secure_client_run_tests(void)
160{
161 return start_integ_test();
162}