rcuja-range: allow variable number of bits for key
[userspace-rcu.git] / tests / test_urcu_ja_range.c
index b4bc42909f5888fcc47937aa72f3ab3e24a38b7b..12abcc51465b64a7124fb3e48a2150e225e145af 100644 (file)
@@ -296,9 +296,13 @@ void *test_ja_rw_thr_writer(void *_count)
                                end = tmp;
                        }
                        rcu_read_lock();
-                       range = cds_ja_range_add(test_ja, start, end, NULL);
-                       if (!range) {
-                               fprintf(stderr, "Error in cds_ja_range_add: %d\n");
+                       ret = cds_ja_range_add(test_ja, start, end, NULL);
+                       if (ret) {
+                               if (ret == -EEXIST) {
+                                       URCU_TLS(nr_addexist)++;
+                               } else {
+                                       assert(0);
+                               }
                        } else {
                                URCU_TLS(nr_add)++;
                        }
@@ -371,13 +375,13 @@ int do_mt_populate_ja(void)
                key = (unsigned long) iter;
                key *= key_mul;
                rcu_read_lock();
-               range = cds_ja_range_add(test_ja, key, key, NULL);
+               ret = cds_ja_range_add(test_ja, key, key, NULL);
                URCU_TLS(nr_add)++;
                URCU_TLS(nr_writes)++;
                rcu_read_unlock();
-               if (!range) {
-                       fprintf(stderr, "Error adding range %" PRIu64 "\n",
-                               key);
+               if (ret) {
+                       fprintf(stderr, "Error (%d) adding range %" PRIu64 "\n",
+                               ret, key);
                        assert(0);
                }
        }
@@ -401,8 +405,9 @@ int do_mt_test(void)
        count_reader = malloc(sizeof(*count_reader) * nr_readers);
        count_writer = malloc(sizeof(*count_writer) * nr_writers);
 
-       printf("Allocating Judy Array for ranges\n");
-       test_ja = cds_ja_range_new();
+       printf("Allocating %u-bit Judy Array for ranges\n",
+               key_bits);
+       test_ja = cds_ja_range_new(key_bits);
        if (!test_ja) {
                printf("Error allocating judy array.\n");
                ret = -1;
@@ -458,6 +463,9 @@ int do_mt_test(void)
        }
        rcu_thread_online_qsbr();
 
+       ret = cds_ja_range_validate(test_ja);
+       assert(!ret);
+
        ret = cds_ja_range_destroy(test_ja, NULL);
        if (ret) {
                fprintf(stderr, "Error destroying judy array\n");
This page took 0.02293 seconds and 4 git commands to generate.