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