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_list.h>
10 #include <fwk_macros.h>
11 #include <fwk_test.h>
12 
13 struct container {
14     unsigned int value;
15 
16     union {
17         struct fwk_slist_node slink;
18         struct fwk_dlist_node dlink;
19     };
20 };
21 
test_slist_get(void)22 static void test_slist_get(void)
23 {
24     struct container container = { 42 };
25     struct fwk_slist_node *node = &container.slink;
26 
27     assert(FWK_LIST_GET(node, struct container, slink)->value == 42);
28 }
29 
test_dlist_get(void)30 static void test_dlist_get(void)
31 {
32     struct container container = { 42 };
33     struct fwk_dlist_node *node = &container.dlink;
34 
35     assert(FWK_LIST_GET(node, struct container, dlink)->value == 42);
36 }
37 
38 static const struct fwk_test_case_desc test_case_table[] = {
39     FWK_TEST_CASE(test_slist_get),
40     FWK_TEST_CASE(test_dlist_get),
41 };
42 
43 struct fwk_test_suite_desc test_suite = {
44     .name = "fwk_list_get",
45     .test_case_count = FWK_ARRAY_SIZE(test_case_table),
46     .test_case_table = test_case_table,
47 };
48