Lines Matching refs:list

3  * KUnit test for the Kernel Linked-list structures.
10 #include <linux/list.h>
15 struct list_head list;
20 /* Test the different ways of initialising a list. */
50 LIST_HEAD(list);
52 list_add(&a, &list);
53 list_add(&b, &list);
55 /* should be [list] -> b -> a */
56 KUNIT_EXPECT_PTR_EQ(test, list.next, &b);
57 KUNIT_EXPECT_PTR_EQ(test, b.prev, &list);
64 LIST_HEAD(list);
66 list_add_tail(&a, &list);
67 list_add_tail(&b, &list);
69 /* should be [list] -> a -> b */
70 KUNIT_EXPECT_PTR_EQ(test, list.next, &a);
71 KUNIT_EXPECT_PTR_EQ(test, a.prev, &list);
78 LIST_HEAD(list);
80 list_add_tail(&a, &list);
81 list_add_tail(&b, &list);
83 /* before: [list] -> a -> b */
86 /* now: [list] -> b */
87 KUNIT_EXPECT_PTR_EQ(test, list.next, &b);
88 KUNIT_EXPECT_PTR_EQ(test, b.prev, &list);
94 LIST_HEAD(list);
96 list_add_tail(&a_old, &list);
97 list_add_tail(&b, &list);
99 /* before: [list] -> a_old -> b */
102 /* now: [list] -> a_new -> b */
103 KUNIT_EXPECT_PTR_EQ(test, list.next, &a_new);
110 LIST_HEAD(list);
112 list_add_tail(&a_old, &list);
113 list_add_tail(&b, &list);
115 /* before: [list] -> a_old -> b */
118 /* now: [list] -> a_new -> b */
119 KUNIT_EXPECT_PTR_EQ(test, list.next, &a_new);
129 LIST_HEAD(list);
131 list_add_tail(&a, &list);
132 list_add_tail(&b, &list);
134 /* before: [list] -> a -> b */
137 /* after: [list] -> b -> a */
138 KUNIT_EXPECT_PTR_EQ(test, &b, list.next);
139 KUNIT_EXPECT_PTR_EQ(test, &a, list.prev);
142 KUNIT_EXPECT_PTR_EQ(test, &list, b.prev);
144 KUNIT_EXPECT_PTR_EQ(test, &list, a.next);
151 LIST_HEAD(list);
153 list_add_tail(&a, &list);
154 list_add_tail(&b, &list);
156 /* before: [list] -> a -> b */
158 /* after: [list] -> b, a initialised */
160 KUNIT_EXPECT_PTR_EQ(test, list.next, &b);
161 KUNIT_EXPECT_PTR_EQ(test, b.prev, &list);
171 LIST_HEAD(list);
173 list_add_tail(&a, &list);
174 list_add_tail(&b, &list);
176 /* before: [list] -> a -> b */
178 /* after: [list] -> b, a initialised */
180 KUNIT_EXPECT_PTR_EQ(test, list.next, &b);
181 KUNIT_EXPECT_PTR_EQ(test, b.prev, &list);
268 "Head element of same list");
270 "Non-head element of same list");
272 "Head element of different list");
279 LIST_HEAD(list);
281 list_add_tail(&a, &list);
282 list_add_tail(&b, &list);
284 KUNIT_EXPECT_TRUE(test, list_is_first(&a, &list));
285 KUNIT_EXPECT_FALSE(test, list_is_first(&b, &list));
291 LIST_HEAD(list);
293 list_add_tail(&a, &list);
294 list_add_tail(&b, &list);
296 KUNIT_EXPECT_FALSE(test, list_is_last(&a, &list));
297 KUNIT_EXPECT_TRUE(test, list_is_last(&b, &list));
328 LIST_HEAD(list);
330 list_add_tail(&a, &list);
331 list_add_tail(&b, &list);
333 /* before: [list] -> a -> b */
334 list_rotate_left(&list);
335 /* after: [list] -> b -> a */
337 KUNIT_EXPECT_PTR_EQ(test, list.next, &b);
338 KUNIT_EXPECT_PTR_EQ(test, b.prev, &list);
347 LIST_HEAD(list);
350 list_add_tail(&a, &list);
351 list_add_tail(&b, &list);
352 list_add_tail(&c, &list);
353 list_add_tail(&d, &list);
355 /* before: [list] -> a -> b -> c -> d */
356 list_rotate_to_front(&c, &list);
357 /* after: [list] -> c -> d -> a -> b */
359 list_for_each(ptr, &list) {
369 LIST_HEAD(list);
371 /* [list] empty */
372 KUNIT_EXPECT_FALSE(test, list_is_singular(&list));
374 list_add_tail(&a, &list);
376 /* [list] -> a */
377 KUNIT_EXPECT_TRUE(test, list_is_singular(&list));
379 list_add_tail(&b, &list);
381 /* [list] -> a -> b */
382 KUNIT_EXPECT_FALSE(test, list_is_singular(&list));
549 KUNIT_EXPECT_PTR_EQ(test, &test_struct, list_entry(&(test_struct.list),
550 struct list_test_struct, list));
557 INIT_LIST_HEAD(&test_struct1.list);
558 INIT_LIST_HEAD(&test_struct3.list);
560 list_add_tail(&test_struct2.list, &test_struct1.list);
563 list_entry_is_head((&test_struct1), &test_struct1.list, list),
564 "Head element of same list");
566 list_entry_is_head((&test_struct2), &test_struct1.list, list),
567 "Non-head element of same list");
569 list_entry_is_head((&test_struct3), &test_struct1.list, list),
570 "Head element of different list");
576 LIST_HEAD(list);
578 list_add_tail(&test_struct1.list, &list);
579 list_add_tail(&test_struct2.list, &list);
582 KUNIT_EXPECT_PTR_EQ(test, &test_struct1, list_first_entry(&list,
583 struct list_test_struct, list));
589 LIST_HEAD(list);
591 list_add_tail(&test_struct1.list, &list);
592 list_add_tail(&test_struct2.list, &list);
595 KUNIT_EXPECT_PTR_EQ(test, &test_struct2, list_last_entry(&list,
596 struct list_test_struct, list));
602 LIST_HEAD(list);
604 KUNIT_EXPECT_FALSE(test, list_first_entry_or_null(&list,
605 struct list_test_struct, list));
607 list_add_tail(&test_struct1.list, &list);
608 list_add_tail(&test_struct2.list, &list);
611 list_first_entry_or_null(&list,
612 struct list_test_struct, list));
618 LIST_HEAD(list);
620 list_add_tail(&test_struct1.list, &list);
621 list_add_tail(&test_struct2.list, &list);
625 list));
631 LIST_HEAD(list);
633 list_add_tail(&test_struct1.list, &list);
634 list_add_tail(&test_struct2.list, &list);
638 list));
644 LIST_HEAD(list);
647 list_add_tail(&entries[0], &list);
648 list_add_tail(&entries[1], &list);
649 list_add_tail(&entries[2], &list);
651 list_for_each(cur, &list) {
662 LIST_HEAD(list);
665 list_add_tail(&entries[0], &list);
666 list_add_tail(&entries[1], &list);
667 list_add_tail(&entries[2], &list);
669 list_for_each_prev(cur, &list) {
680 LIST_HEAD(list);
684 list_add_tail(&entries[0], &list);
685 list_add_tail(&entries[1], &list);
686 list_add_tail(&entries[2], &list);
688 list_for_each_safe(cur, n, &list) {
695 KUNIT_EXPECT_TRUE(test, list_empty(&list));
701 LIST_HEAD(list);
704 list_add_tail(&entries[0], &list);
705 list_add_tail(&entries[1], &list);
706 list_add_tail(&entries[2], &list);
708 list_for_each_prev_safe(cur, n, &list) {
715 KUNIT_EXPECT_TRUE(test, list_empty(&list));
721 LIST_HEAD(list);
726 list_add_tail(&entries[i].list, &list);
731 list_for_each_entry(cur, &list, list) {
742 LIST_HEAD(list);
747 list_add_tail(&entries[i].list, &list);
752 list_for_each_entry_reverse(cur, &list, list) {
804 .name = "list-kunit-test",
810 struct hlist_node list;
815 /* Test the different ways of initialising a list. */
844 HLIST_HEAD(list);
851 hlist_add_head(&a, &list);
853 /* is hashed once added to list */
866 HLIST_HEAD(list);
873 hlist_add_head(&a, &list);
875 /* is hashed once added to list */
887 HLIST_HEAD(list);
889 hlist_add_head(&a, &list);
892 /* before: [list] -> a -> b */
895 /* now: [list] -> b */
896 KUNIT_EXPECT_PTR_EQ(test, list.first, &b);
897 KUNIT_EXPECT_PTR_EQ(test, b.pprev, &list.first);
903 HLIST_HEAD(list);
905 hlist_add_head(&a, &list);
908 /* before: [list] -> a -> b */
911 /* now: [list] -> b */
912 KUNIT_EXPECT_PTR_EQ(test, list.first, &b);
913 KUNIT_EXPECT_PTR_EQ(test, b.pprev, &list.first);
924 HLIST_HEAD(list);
926 hlist_add_head(&a, &list);
927 hlist_add_head(&b, &list);
931 /* should be [list] -> b -> c -> a -> d */
932 KUNIT_EXPECT_PTR_EQ(test, list.first, &b);
963 HLIST_HEAD(list);
966 KUNIT_EXPECT_FALSE(test, hlist_is_singular_node(&a, &list));
968 hlist_add_head(&a, &list);
969 KUNIT_EXPECT_TRUE(test, hlist_is_singular_node(&a, &list));
971 hlist_add_head(&b, &list);
972 KUNIT_EXPECT_FALSE(test, hlist_is_singular_node(&a, &list));
973 KUNIT_EXPECT_FALSE(test, hlist_is_singular_node(&b, &list));
979 HLIST_HEAD(list);
981 /* list starts off empty */
982 KUNIT_EXPECT_TRUE(test, hlist_empty(&list));
984 hlist_add_head(&a, &list);
986 /* list is no longer empty */
987 KUNIT_EXPECT_FALSE(test, hlist_empty(&list));
1011 hlist_entry(&(test_struct.list),
1012 struct hlist_test_struct, list));
1020 hlist_entry_safe(&(test_struct.list),
1021 struct hlist_test_struct, list));
1025 struct hlist_test_struct, list));
1031 HLIST_HEAD(list);
1034 hlist_add_head(&entries[0], &list);
1038 hlist_for_each(cur, &list) {
1050 HLIST_HEAD(list);
1053 hlist_add_head(&entries[0], &list);
1057 hlist_for_each_safe(cur, n, &list) {
1064 KUNIT_EXPECT_TRUE(test, hlist_empty(&list));
1070 HLIST_HEAD(list);
1074 hlist_add_head(&entries[0].list, &list);
1077 hlist_add_behind(&entries[i].list, &entries[i-1].list);
1082 hlist_for_each_entry(cur, &list, list) {
1093 HLIST_HEAD(list);
1097 hlist_add_head(&entries[0].list, &list);
1100 hlist_add_behind(&entries[i].list, &entries[i-1].list);
1107 hlist_for_each_entry_continue(cur, list) {
1124 HLIST_HEAD(list);
1128 hlist_add_head(&entries[0].list, &list);
1131 hlist_add_behind(&entries[i].list, &entries[i-1].list);
1137 hlist_for_each_entry_from(cur, list) {
1153 HLIST_HEAD(list);
1157 hlist_add_head(&entries[0].list, &list);
1160 hlist_add_behind(&entries[i].list, &entries[i-1].list);
1165 hlist_for_each_entry_safe(cur, tmp_node, &list, list) {
1167 hlist_del(&cur->list);
1172 KUNIT_EXPECT_TRUE(test, hlist_empty(&list));
1242 /* should be [list] -> a -> b */
1270 /* should be [list] -> b -> a */
1303 /* should be [list] -> b -> d -> a -> c*/
1335 /* should be [list] -> b -> d -> a -> c*/
1359 /* Add nodes a,b,c,d to the list*/
1376 * Verify that node c is still attached to the list even after being
1390 * from the list
1410 /* Add nodes a,b,c,d to the list*/
1418 /* Check that node c is deleted from the list*/
1422 /* Should be [list] -> a -> b -> d*/
1444 /* Add nodes a,b,c,d to the list*/
1452 /* Check the nodes in the list*/
1456 /* should be [list] -> a -> b -> d*/