blob: 9592cdc81c14816df6feffb746def49c0797c1fe [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_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_s_tests.h"
18#endif
Gabor Abonyib4acc0f2020-09-28 15:18:20 +020019#if defined(TFM_PARTITION_INITIAL_ATTESTATION) || defined(FORWARD_PROT_MSG)
Raef Coles652bb8a2020-09-24 11:27:38 +010020#include "attest_s_tests.h"
21#endif
Gabor Abonyib4acc0f2020-09-28 15:18:20 +020022#if defined(TFM_PARTITION_CRYPTO) || defined(FORWARD_PROT_MSG)
Raef Coles652bb8a2020-09-24 11:27:38 +010023#include "crypto_s_tests.h"
24#endif
Sherry Zhanga59fecd2021-05-24 16:37:36 +080025#if defined(TFM_FWU_TEST_SECURE_ENABLED)
Sherry Zhang92c499a2021-03-08 18:14:15 +080026#include "fwu_s_tests.h"
27#endif
Gabor Abonyib4acc0f2020-09-28 15:18:20 +020028#if defined(TFM_PARTITION_PLATFORM) || defined(FORWARD_PROT_MSG)
Raef Coles652bb8a2020-09-24 11:27:38 +010029#include "platform_s_tests.h"
30#endif
31#ifdef TFM_PSA_API
32#include "ipc_s_tests.h"
33#else
34#ifdef TFM_PARTITION_AUDIT_LOG
35#include "audit_s_tests.h"
36#endif
37#endif /* TFM_PSA_API */
Kevin Peng62a87112020-07-07 15:07:46 +080038
39static struct test_suite_t test_suites[] = {
Gabor Abonyib4acc0f2020-09-28 15:18:20 +020040#if defined(TFM_PARTITION_PROTECTED_STORAGE) || defined(FORWARD_PROT_MSG)
Kevin Peng62a87112020-07-07 15:07:46 +080041 {&register_testsuite_s_psa_ps_interface, 0, 0, 0},
42 {&register_testsuite_s_psa_ps_reliability, 0, 0, 0},
43
44#ifdef PS_TEST_NV_COUNTERS
45 {&register_testsuite_s_rollback_protection, 0, 0, 0},
46#endif
47#endif
48
Gabor Abonyib4acc0f2020-09-28 15:18:20 +020049#if defined(TFM_PARTITION_INTERNAL_TRUSTED_STORAGE) || defined(FORWARD_PROT_MSG)
Kevin Peng62a87112020-07-07 15:07:46 +080050 /* Secure ITS test cases */
51 {&register_testsuite_s_psa_its_interface, 0, 0, 0},
52 {&register_testsuite_s_psa_its_reliability, 0, 0, 0},
53#endif
54
Gabor Abonyib4acc0f2020-09-28 15:18:20 +020055#if defined(TFM_PARTITION_CRYPTO) || defined(FORWARD_PROT_MSG)
Kevin Peng62a87112020-07-07 15:07:46 +080056 /* Crypto test cases */
57 {&register_testsuite_s_crypto_interface, 0, 0, 0},
58#endif
59
Gabor Abonyib4acc0f2020-09-28 15:18:20 +020060#if defined(TFM_PARTITION_INITIAL_ATTESTATION) || defined(FORWARD_PROT_MSG)
Kevin Peng62a87112020-07-07 15:07:46 +080061 /* Secure initial attestation service test cases */
62 {&register_testsuite_s_attestation_interface, 0, 0, 0},
63#endif
64
Gabor Abonyib4acc0f2020-09-28 15:18:20 +020065#if defined(TFM_PARTITION_PLATFORM) || defined(FORWARD_PROT_MSG)
Kevin Peng62a87112020-07-07 15:07:46 +080066 /* Secure platform service test cases */
67 {&register_testsuite_s_platform_interface, 0, 0, 0},
68#endif
69
Raef Coles652bb8a2020-09-24 11:27:38 +010070#ifdef TFM_PARTITION_AUDIT_LOG
Kevin Peng62a87112020-07-07 15:07:46 +080071 /* Secure Audit Logging test cases */
72 {&register_testsuite_s_audit_interface, 0, 0, 0},
73#endif
74
Sherry Zhanga59fecd2021-05-24 16:37:36 +080075#ifdef TFM_FWU_TEST_SECURE_ENABLED
76 /* Secure Firmware Update test cases */
Sherry Zhang92c499a2021-03-08 18:14:15 +080077 {&register_testsuite_s_psa_fwu_interface, 0, 0, 0},
78#endif
79
Kevin Peng43731612020-11-06 14:34:08 +080080#ifdef TFM_PSA_API
Kevin Peng62a87112020-07-07 15:07:46 +080081 /* Secure IPC test cases */
82 {&register_testsuite_s_ipc_interface, 0, 0, 0},
83#endif
Kevin Peng62a87112020-07-07 15:07:46 +080084 /* End of test suites */
85 {0, 0, 0, 0}
86};
87
88static void setup_integ_test(void)
89{
90 /* Left empty intentionally, currently implemented
91 * test suites require no setup
92 */
93}
94
95static void tear_down_integ_test(void)
96{
97 /* Left empty intentionally, currently implemented
98 * test suites require no tear down
99 */
100}
101
102enum test_suite_err_t start_integ_test(void)
103{
104 enum test_suite_err_t retval;
105
106 setup_integ_test();
107 retval = integ_test("Secure", test_suites);
108 tear_down_integ_test();
109 return retval;
110}