]> git.ozlabs.org Git - ccan/blobdiff - ccan/htable/test/run.c
htable: fix bug where first entry has hash of 0 or 1.
[ccan] / ccan / htable / test / run.c
index 1a9e2de4cb6e7f98fe5e75485e06b37c73de26d5..7fc05e24f6bfac4b38748491911c6741d0b841a8 100644 (file)
@@ -97,7 +97,7 @@ static bool check_mask(struct htable *ht, uint64_t val[], unsigned num)
 
 int main(int argc, char *argv[])
 {
-       unsigned int i;
+       unsigned int i, weight;
        uintptr_t perfect_bit;
        struct htable ht;
        uint64_t val[NUM_VALS];
@@ -121,7 +121,14 @@ int main(int argc, char *argv[])
        add_vals(&ht, val, 0, 1);
        ok1(ht.bits == 1);
        ok1(ht.max == 1);
-       ok1(ht.common_mask == -1);
+       weight = 0;
+       for (i = 0; i < sizeof(ht.common_mask) * CHAR_BIT; i++) {
+               if (ht.common_mask & ((uintptr_t)1 << i)) {
+                       weight++;
+               }
+       }
+       /* Only one bit should be clear. */
+       ok1(weight == i-1);
 
        /* Mask should be set. */
        ok1(check_mask(&ht, val, 1));