summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/lib/test_typelist.h25
1 files changed, 19 insertions, 6 deletions
diff --git a/tests/lib/test_typelist.h b/tests/lib/test_typelist.h
index da3530e9c0..f86cadd398 100644
--- a/tests/lib/test_typelist.h
+++ b/tests/lib/test_typelist.h
@@ -25,7 +25,9 @@
#define list_hash concat(TYPE, _hash)
#define list_init concat(TYPE, _init)
#define list_fini concat(TYPE, _fini)
+#define list_const_first concat(TYPE, _const_first)
#define list_first concat(TYPE, _first)
+#define list_const_next concat(TYPE, _const_next)
#define list_next concat(TYPE, _next)
#define list_next_safe concat(TYPE, _next_safe)
#define list_count concat(TYPE, _count)
@@ -177,18 +179,29 @@ static void concat(test_, TYPE)(void)
ts_hashx("fill", "a538546a6e6ab0484e925940aa8dd02fd934408bbaed8cb66a0721841584d838");
k = 0;
- prev = NULL;
- frr_each(list, &head, item) {
+
+#if IS_ATOMIC(REALTYPE)
+ struct list_head *chead = &head;
+ struct item *citem, *cprev = NULL;
+
+ frr_each(list, chead, citem) {
+#else
+ const struct list_head *chead = &head;
+ const struct item *citem, *cprev = NULL;
+
+ frr_each(list_const, chead, citem) {
+#endif
+
#if IS_HASH(REALTYPE) || IS_HEAP(REALTYPE)
/* hash table doesn't give sorting */
- (void)prev;
+ (void)cprev;
#else
- assert(!prev || prev->val < item->val);
+ assert(!cprev || cprev->val < citem->val);
#endif
- prev = item;
+ cprev = citem;
k++;
}
- assert(list_count(&head) == k);
+ assert(list_count(chead) == k);
ts_ref("walk");
#if IS_UNIQ(REALTYPE)