1 /*
2  * Arm SCP/MCP Software
3  * Copyright (c) 2015-2021, Arm Limited and Contributors. All rights reserved.
4  *
5  * SPDX-License-Identifier: BSD-3-Clause
6  */
7 
8 #include <fwk_assert.h>
9 #include <fwk_id.h>
10 #include <fwk_macros.h>
11 #include <fwk_test.h>
12 
13 #include <stdio.h>
14 #include <string.h>
15 
test_format_module_id(void)16 static void test_format_module_id(void)
17 {
18     fwk_id_t id = FWK_ID_MODULE(42);
19     char buffer[32];
20 
21     snprintf(buffer, sizeof(buffer), "%s", FWK_ID_STR(id));
22 
23     assert(strcmp(buffer, "[MOD 42]") == 0);
24 }
25 
test_format_element_id(void)26 static void test_format_element_id(void)
27 {
28     fwk_id_t id = FWK_ID_ELEMENT(42, 58);
29     char buffer[32];
30 
31     snprintf(buffer, sizeof(buffer), "%s", FWK_ID_STR(id));
32 
33     assert(strcmp(buffer, "[ELM 42:58]") == 0);
34 }
35 
test_format_api_id(void)36 static void test_format_api_id(void)
37 {
38     fwk_id_t id = FWK_ID_API(42, 14);
39     char buffer[32];
40 
41     snprintf(buffer, sizeof(buffer), "%s", FWK_ID_STR(id));
42 
43     assert(strcmp(buffer, "[API 42:14]") == 0);
44 }
45 
test_format_event_id(void)46 static void test_format_event_id(void)
47 {
48     fwk_id_t id = FWK_ID_EVENT(42, 56);
49     char buffer[32];
50 
51     snprintf(buffer, sizeof(buffer), "%s", FWK_ID_STR(id));
52 
53     assert(strcmp(buffer, "[EVT 42:56]") == 0);
54 }
55 
test_format_notification_id(void)56 static void test_format_notification_id(void)
57 {
58     fwk_id_t id = FWK_ID_NOTIFICATION(42, 56);
59     char buffer[32];
60 
61     snprintf(buffer, sizeof(buffer), "%s", FWK_ID_STR(id));
62 
63     assert(strcmp(buffer, "[NOT 42:56]") == 0);
64 }
65 
test_format_max_length(void)66 static void test_format_max_length(void)
67 {
68     fwk_id_t id = FWK_ID_ELEMENT(0xFF, 0xFFF);
69     char buffer[32];
70 
71     snprintf(buffer, sizeof(buffer), "%s", FWK_ID_STR(id));
72 
73     assert(strcmp(buffer, "[ELM 255:4095]") == 0);
74 }
75 
76 static const struct fwk_test_case_desc test_case_table[] = {
77     FWK_TEST_CASE(test_format_module_id),
78     FWK_TEST_CASE(test_format_element_id),
79     FWK_TEST_CASE(test_format_api_id),
80     FWK_TEST_CASE(test_format_event_id),
81     FWK_TEST_CASE(test_format_notification_id),
82     FWK_TEST_CASE(test_format_max_length),
83 };
84 
85 struct fwk_test_suite_desc test_suite = {
86     .name = "fwk_id_format",
87     .test_case_count = FWK_ARRAY_SIZE(test_case_table),
88     .test_case_table = test_case_table,
89 };
90