1 /*
2  * Arm SCP/MCP Software
3  * Copyright (c) 2018-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 #include <stddef.h>
14 
15 static struct fwk_slist slist;
16 static struct fwk_dlist dlist;
17 
18 static struct fwk_slist_node snodes[2];
19 static struct fwk_dlist_node dnodes[2];
20 
test_case_setup(void)21 static void test_case_setup(void)
22 {
23     fwk_list_init(&slist);
24     fwk_list_init(&dlist);
25 }
26 
test_slist_next(void)27 static void test_slist_next(void)
28 {
29     fwk_list_push_tail(&slist, &snodes[0]);
30     fwk_list_push_tail(&slist, &snodes[1]);
31 
32     assert(fwk_list_next(&slist, &snodes[0]) == &snodes[1]);
33     assert(fwk_list_next(&slist, &snodes[1]) == NULL);
34 }
35 
test_dlist_next(void)36 static void test_dlist_next(void)
37 {
38     fwk_list_push_tail(&dlist, &dnodes[0]);
39     fwk_list_push_tail(&dlist, &dnodes[1]);
40 
41     assert(fwk_list_next(&dlist, &dnodes[0]) == &dnodes[1]);
42     assert(fwk_list_next(&dlist, &dnodes[1]) == NULL);
43 }
44 
45 static const struct fwk_test_case_desc test_case_table[] = {
46     FWK_TEST_CASE(test_slist_next),
47     FWK_TEST_CASE(test_dlist_next),
48 };
49 
50 struct fwk_test_suite_desc test_suite = {
51     .name = "fwk_list_next",
52     .test_case_setup = test_case_setup,
53     .test_case_count = FWK_ARRAY_SIZE(test_case_table),
54     .test_case_table = test_case_table,
55 };
56