blob: 27ba23ae16355c73abafcc4534e98a963016cd83 [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 */
Gabor Abonyib4acc0f2020-09-28 15:18:20 +020013#if defined(TFM_PARTITION_PROTECTED_STORAGE) || defined(FORWARD_PROT_MSG)
Raef Coles652bb8a2020-09-24 11:27:38 +010014#include "ps_ns_tests.h"
15#endif
Gabor Abonyib4acc0f2020-09-28 15:18:20 +020016#if defined(TFM_PARTITION_INTERNAL_TRUSTED_STORAGE) || defined(FORWARD_PROT_MSG)
Raef Coles652bb8a2020-09-24 11:27:38 +010017#include "its_ns_tests.h"
18#endif
Gabor Abonyib4acc0f2020-09-28 15:18:20 +020019#if defined(TFM_PARTITION_CRYPTO) || defined(FORWARD_PROT_MSG)
Raef Coles652bb8a2020-09-24 11:27:38 +010020#include "crypto_ns_tests.h"
21#endif
Sherry Zhang92c499a2021-03-08 18:14:15 +080022#if defined(TFM_PARTITION_FIRMWARE_UPDATE)
23#include "fwu_ns_tests.h"
24#endif
Gabor Abonyib4acc0f2020-09-28 15:18:20 +020025#if defined(TFM_PARTITION_INITIAL_ATTESTATION) || defined(FORWARD_PROT_MSG)
Raef Coles652bb8a2020-09-24 11:27:38 +010026#include "attest_ns_tests.h"
27#include "qcbor_ns_tests.h"
28#ifndef SYMMETRIC_INITIAL_ATTESTATION
29#include "t_cose_ns_tests.h"
30#endif /* !SYMMETRIC_INITIAL_ATTESTATION */
31#endif
Gabor Abonyib4acc0f2020-09-28 15:18:20 +020032#if defined(TFM_PARTITION_PLATFORM) || defined(FORWARD_PROT_MSG)
Raef Coles652bb8a2020-09-24 11:27:38 +010033#include "platform_ns_tests.h"
34#endif
35#include "core_ns_tests.h"
36#ifdef TFM_PSA_API
37#include "ipc_ns_tests.h"
38#else
39#ifdef TFM_PARTITION_AUDIT_LOG
40#include "audit_ns_tests.h"
41#endif
42#endif /* TFM_PSA_API */
43#ifdef TFM_MULTI_CORE_TOPOLOGY
44#include "multi_core_ns_test.h"
45#endif /* TFM_MULTI_CORE_TOPOLOGY */
Mate Toth-Palb3f96d22021-05-12 08:42:34 +020046#ifdef TFM_FUZZER_TOOL_TESTS
47#include "tf_fuzz_testsuite.h"
48#endif /* TFM_FUZZER_TOOL_TESTS */
Kevin Pengb0c06b42021-05-11 16:30:53 +080049#if defined(TFM_ENABLE_SLIH_TEST) || defined(TFM_ENABLE_FLIH_TEST)
Kevin Penga8604332021-04-23 17:33:30 +080050#include "irq_testsuite.h"
51#endif
Kevin Peng62a87112020-07-07 15:07:46 +080052
53static struct test_suite_t test_suites[] = {
Kevin Peng62a87112020-07-07 15:07:46 +080054 /* List test cases which are compliant with level 1 isolation */
55
Gabor Abonyib4acc0f2020-09-28 15:18:20 +020056#if defined(TFM_PARTITION_PROTECTED_STORAGE) || defined(FORWARD_PROT_MSG)
Kevin Peng62a87112020-07-07 15:07:46 +080057 {&register_testsuite_ns_psa_ps_interface, 0, 0, 0},
58#endif
59
Gabor Abonyib4acc0f2020-09-28 15:18:20 +020060#if defined(TFM_PARTITION_INTERNAL_TRUSTED_STORAGE) || defined(FORWARD_PROT_MSG)
Kevin Peng62a87112020-07-07 15:07:46 +080061 /* Non-secure ITS test cases */
62 {&register_testsuite_ns_psa_its_interface, 0, 0, 0},
63#endif
64
Gabor Abonyib4acc0f2020-09-28 15:18:20 +020065#if defined(TFM_PARTITION_CRYPTO) || defined(FORWARD_PROT_MSG)
Kevin Peng62a87112020-07-07 15:07:46 +080066 /* Non-secure Crypto test cases */
67 {&register_testsuite_ns_crypto_interface, 0, 0, 0},
68#endif
69
Gabor Abonyib4acc0f2020-09-28 15:18:20 +020070#if defined(TFM_PARTITION_PLATFORM) || defined(FORWARD_PROT_MSG)
Kevin Peng62a87112020-07-07 15:07:46 +080071 /* Non-secure platform service test cases */
72 {&register_testsuite_ns_platform_interface, 0, 0, 0},
73#endif
74
Gabor Abonyib4acc0f2020-09-28 15:18:20 +020075#if defined(TFM_PARTITION_INITIAL_ATTESTATION) || defined(FORWARD_PROT_MSG)
Raef Coles652bb8a2020-09-24 11:27:38 +010076 /* Non-secure initial attestation service test cases */
77 {&register_testsuite_ns_attestation_interface, 0, 0, 0},
78
Kevin Peng62a87112020-07-07 15:07:46 +080079 /* Non-secure QCBOR library test cases */
80 {&register_testsuite_ns_qcbor, 0, 0, 0},
Kevin Peng62a87112020-07-07 15:07:46 +080081
Raef Coles652bb8a2020-09-24 11:27:38 +010082#ifndef SYMMETRIC_INITIAL_ATTESTATION
Kevin Peng62a87112020-07-07 15:07:46 +080083 /* Non-secure T_COSE library test cases */
84 {&register_testsuite_ns_t_cose, 0, 0, 0},
Raef Coles652bb8a2020-09-24 11:27:38 +010085#endif /* !SYMMETRIC_INITIAL_ATTESTATION */
Kevin Peng62a87112020-07-07 15:07:46 +080086#endif
87
Raef Coles652bb8a2020-09-24 11:27:38 +010088#ifdef TFM_PARTITION_AUDIT_LOG
Kevin Peng62a87112020-07-07 15:07:46 +080089 /* Non-secure Audit Logging test cases */
90 {&register_testsuite_ns_audit_interface, 0, 0, 0},
91#endif
92
Sherry Zhang92c499a2021-03-08 18:14:15 +080093#ifdef TFM_PARTITION_FIRMWARE_UPDATE
94 /* Non-secure Firmware Update test cases */
95 {&register_testsuite_ns_psa_fwu_interface, 0, 0, 0},
96#endif
97
Raef Colesce57e062020-10-02 10:39:41 +010098/* Non-secure core test cases */
99{&register_testsuite_ns_core_positive, 0, 0, 0},
Kevin Peng62a87112020-07-07 15:07:46 +0800100
101#ifdef CORE_TEST_INTERACTIVE
102 /* Non-secure interactive test cases */
103 {&register_testsuite_ns_core_interactive, 0, 0, 0},
104#endif
105
Raef Coles652bb8a2020-09-24 11:27:38 +0100106#ifdef TFM_PSA_API
Kevin Peng62a87112020-07-07 15:07:46 +0800107 /* Non-secure IPC test cases */
108 {&register_testsuite_ns_ipc_interface, 0, 0, 0},
109#endif
110
Raef Coles652bb8a2020-09-24 11:27:38 +0100111#ifdef TFM_MULTI_CORE_TOPOLOGY
Kevin Peng62a87112020-07-07 15:07:46 +0800112 /* Multi-core topology test cases */
113 {&register_testsuite_multi_core_ns_interface, 0, 0, 0},
114#endif
115
Mate Toth-Palb3f96d22021-05-12 08:42:34 +0200116#ifdef TFM_FUZZER_TOOL_TESTS
117 {&register_testsuite_tf_fuzz_test, 0, 0, 0},
118#endif /* TFM_FUZZER_TOOL_TESTS */
119
Kevin Pengb0c06b42021-05-11 16:30:53 +0800120#if defined(TFM_ENABLE_SLIH_TEST) || defined(TFM_ENABLE_FLIH_TEST)
Kevin Penga8604332021-04-23 17:33:30 +0800121 {&register_testsuite_irq_test, 0, 0, 0},
122#endif
123
Kevin Peng62a87112020-07-07 15:07:46 +0800124 /* End of test suites */
125 {0, 0, 0, 0}
126};
127
128enum test_suite_err_t start_integ_test(void)
129{
130 return integ_test("Non-secure", test_suites);
131}
132
133/* Service stand-in for NS tests. To be called from a non-secure context */
134enum test_suite_err_t tfm_non_secure_client_run_tests(void)
135{
136 return start_integ_test();
137}