thread safety for netdev_pltap and netdev_tunnel
[sliver-openvswitch.git] / tests / test-hindex.c
index b5fe9f0..f0a8b93 100644 (file)
@@ -21,6 +21,7 @@
 #include "hindex.h"
 #include <string.h>
 #include "hash.h"
+#include "random.h"
 #include "util.h"
 
 #undef NDEBUG
@@ -108,7 +109,7 @@ static void
 shuffle(int *p, size_t n)
 {
     for (; n > 1; n--, p++) {
-        int *q = &p[rand() % n];
+        int *q = &p[random_range(n)];
         int tmp = *p;
         *p = *q;
         *q = tmp;
@@ -177,6 +178,12 @@ mod2_hash(int value)
     return value % 2;
 }
 
+static size_t
+multipart_hash(int value)
+{
+    return (mod4_hash(value) << 16) | (constant_hash(value) & 0xFFFF);
+}
+
 /* Tests basic hindex insertion and deletion. */
 static void
 test_hindex_insert_delete(hash_func *hash)
@@ -297,6 +304,7 @@ run_test(void (*function)(hash_func *))
         mod4_hash,
         mod3_hash,
         mod2_hash,
+        multipart_hash,
     };
     size_t i;