blob: 4f6f5f47f8d35467b34ac812f371d871e10c309b [file] [log] [blame]
Kevin Peng62a87112020-07-07 15:07:46 +08001/*
Sherry Zhang92c499a2021-03-08 18:14:15 +08002 * Copyright (c) 2017-2021, Arm Limited. All rights reserved.
Kevin Peng62a87112020-07-07 15:07:46 +08003 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 *
6 */
7
8#include "test_framework_integ_test.h"
9#include "test_framework_integ_test_helper.h"
10#include "test_framework.h"
11
12/* Service specific includes */
shejia01e0dd80a2021-07-12 17:47:50 +080013#ifdef TEST_NS_PS
Raef Coles652bb8a2020-09-24 11:27:38 +010014#include "ps_ns_tests.h"
15#endif
shejia01e0dd80a2021-07-12 17:47:50 +080016#ifdef TEST_NS_ITS
Raef Coles652bb8a2020-09-24 11:27:38 +010017#include "its_ns_tests.h"
18#endif
shejia01e0dd80a2021-07-12 17:47:50 +080019#ifdef TEST_NS_CRYPTO
Raef Coles652bb8a2020-09-24 11:27:38 +010020#include "crypto_ns_tests.h"
21#endif
shejia01e0dd80a2021-07-12 17:47:50 +080022#ifdef TEST_NS_FWU
Sherry Zhang92c499a2021-03-08 18:14:15 +080023#include "fwu_ns_tests.h"
24#endif
shejia01e0dd80a2021-07-12 17:47:50 +080025#ifdef TEST_NS_ATTESTATION
Raef Coles652bb8a2020-09-24 11:27:38 +010026#include "attest_ns_tests.h"
Raef Coles652bb8a2020-09-24 11:27:38 +010027#endif
shejia01e0dd80a2021-07-12 17:47:50 +080028#ifdef TEST_NS_QCBOR
29#include "qcbor_ns_tests.h"
30#endif
31#ifdef TEST_NS_T_COSE
32#include "t_cose_ns_tests.h"
33#endif
34#ifdef TEST_NS_PLATFORM
Raef Coles652bb8a2020-09-24 11:27:38 +010035#include "platform_ns_tests.h"
36#endif
shejia01e0dd80a2021-07-12 17:47:50 +080037#ifdef TEST_NS_CORE
Raef Coles652bb8a2020-09-24 11:27:38 +010038#include "core_ns_tests.h"
shejia01e0dd80a2021-07-12 17:47:50 +080039#endif
40#ifdef TEST_NS_IPC
Raef Coles652bb8a2020-09-24 11:27:38 +010041#include "ipc_ns_tests.h"
42#else
shejia01e0dd80a2021-07-12 17:47:50 +080043#ifdef TEST_NS_AUDIT
Raef Coles652bb8a2020-09-24 11:27:38 +010044#include "audit_ns_tests.h"
45#endif
46#endif /* TFM_PSA_API */
shejia01e0dd80a2021-07-12 17:47:50 +080047#ifdef TEST_NS_MULTI_CORE
Raef Coles652bb8a2020-09-24 11:27:38 +010048#include "multi_core_ns_test.h"
49#endif /* TFM_MULTI_CORE_TOPOLOGY */
Mate Toth-Palb3f96d22021-05-12 08:42:34 +020050#ifdef TFM_FUZZER_TOOL_TESTS
51#include "tf_fuzz_testsuite.h"
52#endif /* TFM_FUZZER_TOOL_TESTS */
Xinyu Zhang92fe7582021-09-24 17:11:49 +080053#ifdef TEST_NS_MANAGE_NSID
54#include "nsid_testsuite.h"
55#endif /* TEST_NS_MANAGE_NSID */
shejia01e0dd80a2021-07-12 17:47:50 +080056#if defined(TEST_NS_SLIH_IRQ) || defined(TEST_NS_FLIH_IRQ)
Kevin Penga8604332021-04-23 17:33:30 +080057#include "irq_testsuite.h"
58#endif
Jianliang Shen2959c1f2021-09-01 10:14:06 +080059#ifdef EXTRA_NS_TEST_SUITE
60#include "extra_ns_tests.h"
61#endif
Kevin Peng62a87112020-07-07 15:07:46 +080062
63static struct test_suite_t test_suites[] = {
Kevin Peng62a87112020-07-07 15:07:46 +080064 /* List test cases which are compliant with level 1 isolation */
65
shejia01e0dd80a2021-07-12 17:47:50 +080066#ifdef TEST_NS_PS
Kevin Peng62a87112020-07-07 15:07:46 +080067 {&register_testsuite_ns_psa_ps_interface, 0, 0, 0},
68#endif
69
shejia01e0dd80a2021-07-12 17:47:50 +080070#ifdef TEST_NS_ITS
Kevin Peng62a87112020-07-07 15:07:46 +080071 /* Non-secure ITS test cases */
72 {&register_testsuite_ns_psa_its_interface, 0, 0, 0},
73#endif
74
shejia01e0dd80a2021-07-12 17:47:50 +080075#ifdef TEST_NS_CRYPTO
Kevin Peng62a87112020-07-07 15:07:46 +080076 /* Non-secure Crypto test cases */
77 {&register_testsuite_ns_crypto_interface, 0, 0, 0},
78#endif
79
shejia01e0dd80a2021-07-12 17:47:50 +080080#ifdef TEST_NS_PLATFORM
Kevin Peng62a87112020-07-07 15:07:46 +080081 /* Non-secure platform service test cases */
82 {&register_testsuite_ns_platform_interface, 0, 0, 0},
83#endif
84
shejia01e0dd80a2021-07-12 17:47:50 +080085#ifdef TEST_NS_ATTESTATION
Raef Coles652bb8a2020-09-24 11:27:38 +010086 /* Non-secure initial attestation service test cases */
87 {&register_testsuite_ns_attestation_interface, 0, 0, 0},
Kevin Peng62a87112020-07-07 15:07:46 +080088#endif
89
shejia01e0dd80a2021-07-12 17:47:50 +080090#ifdef TEST_NS_QCBOR
91 /* Non-secure QCBOR library test cases */
92 {&register_testsuite_ns_qcbor, 0, 0, 0},
93#endif
94
95#ifdef TEST_NS_T_COSE
96 /* Non-secure T_COSE library test cases */
97 {&register_testsuite_ns_t_cose, 0, 0, 0},
98#endif
99
100#ifdef TEST_NS_AUDIT
Kevin Peng62a87112020-07-07 15:07:46 +0800101 /* Non-secure Audit Logging test cases */
102 {&register_testsuite_ns_audit_interface, 0, 0, 0},
103#endif
104
shejia01e0dd80a2021-07-12 17:47:50 +0800105#ifdef TEST_NS_FWU
Sherry Zhang92c499a2021-03-08 18:14:15 +0800106 /* Non-secure Firmware Update test cases */
107 {&register_testsuite_ns_psa_fwu_interface, 0, 0, 0},
108#endif
109
shejia01e0dd80a2021-07-12 17:47:50 +0800110#ifdef TEST_NS_CORE
111 /* Non-secure core test cases */
112 {&register_testsuite_ns_core_positive, 0, 0, 0},
113#endif
Kevin Peng62a87112020-07-07 15:07:46 +0800114
shejia01e0dd80a2021-07-12 17:47:50 +0800115#ifdef TEST_NS_IPC
Kevin Peng62a87112020-07-07 15:07:46 +0800116 /* Non-secure IPC test cases */
117 {&register_testsuite_ns_ipc_interface, 0, 0, 0},
118#endif
119
shejia01e0dd80a2021-07-12 17:47:50 +0800120#ifdef TEST_NS_MULTI_CORE
Kevin Peng62a87112020-07-07 15:07:46 +0800121 /* Multi-core topology test cases */
122 {&register_testsuite_multi_core_ns_interface, 0, 0, 0},
123#endif
124
Jianliang Shen2959c1f2021-09-01 10:14:06 +0800125#ifdef EXTRA_NS_TEST_SUITE
126 /* Non-secure extra test cases */
127 {&register_testsuite_extra_ns_interface, 0, 0, 0},
128#endif
129
Mate Toth-Palb3f96d22021-05-12 08:42:34 +0200130#ifdef TFM_FUZZER_TOOL_TESTS
131 {&register_testsuite_tf_fuzz_test, 0, 0, 0},
132#endif /* TFM_FUZZER_TOOL_TESTS */
133
Xinyu Zhang92fe7582021-09-24 17:11:49 +0800134#ifdef TEST_NS_MANAGE_NSID
135 {&register_testsuite_nsid_test, 0, 0, 0},
136#endif /* TEST_NS_MANAGE_NSID */
137
shejia01e0dd80a2021-07-12 17:47:50 +0800138#if defined(TEST_NS_SLIH_IRQ) || defined(TEST_NS_FLIH_IRQ)
Kevin Penga8604332021-04-23 17:33:30 +0800139 {&register_testsuite_irq_test, 0, 0, 0},
140#endif
141
Kevin Peng62a87112020-07-07 15:07:46 +0800142 /* End of test suites */
143 {0, 0, 0, 0}
144};
145
146enum test_suite_err_t start_integ_test(void)
147{
148 return integ_test("Non-secure", test_suites);
149}
150
151/* Service stand-in for NS tests. To be called from a non-secure context */
152enum test_suite_err_t tfm_non_secure_client_run_tests(void)
153{
154 return start_integ_test();
155}