[master] 4691f58 Use VRND for random test-data

Poul-Henning Kamp phk at FreeBSD.org
Sat Nov 18 17:50:05 UTC 2017


commit 4691f58393156650cfb41735beff7d5b80017d66
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Sat Nov 18 17:48:56 2017 +0000

    Use VRND for random test-data

diff --git a/lib/libvarnish/Makefile.am b/lib/libvarnish/Makefile.am
index ecd5a6a..c772bf5 100644
--- a/lib/libvarnish/Makefile.am
+++ b/lib/libvarnish/Makefile.am
@@ -44,7 +44,7 @@ TESTS = vnum_c_test binheap
 
 noinst_PROGRAMS = ${TESTS}
 
-binheap_SOURCES = binary_heap.c vas.c
+binheap_SOURCES = binary_heap.c vas.c vrnd.c
 binheap_CFLAGS = -DTEST_DRIVER
 
 vnum_c_test_SOURCES = vnum.c vas.c
diff --git a/lib/libvarnish/binary_heap.c b/lib/libvarnish/binary_heap.c
index 8171a8a..77cd823 100644
--- a/lib/libvarnish/binary_heap.c
+++ b/lib/libvarnish/binary_heap.c
@@ -459,6 +459,7 @@ binheap_reorder(const struct binheap *bh, unsigned idx)
 #include <string.h>
 
 #include "vdef.h"
+#include "vrnd.h"
 #include "miniobj.h"
 
 /* Test driver -------------------------------------------------------*/
@@ -521,12 +522,7 @@ main(int argc, char **argv)
 
 	(void)argc;
 	(void)argv;
-	if (0) {
-		srandomdev();
-		u = random();
-		printf("Seed %u\n", u);
-		srandom(u);
-	}
+	VRND_SeedAll();
 	bh = binheap_new(NULL, cmp, update);
 	for (n = 2; n; n += n) {
 		child(bh, n - 1, &u, &v);
@@ -537,7 +533,7 @@ main(int argc, char **argv)
 	for(j = 0; j < 2; j++) {
 		/* First insert our N elements */
 		for (u = 0; u < N; u++) {
-			lr = random() % R;
+			lr = VRND_RandomTestable() % R;
 			ALLOC_OBJ(ff[u], FOO_MAGIC);
 			assert(ff[u] != NULL);
 			ff[u]->key = lr;
@@ -569,7 +565,7 @@ main(int argc, char **argv)
 			fp = ff[n];
 			fp->n = n;
 
-			lr = random() % R;
+			lr = VRND_RandomTestable() % R;
 			fp->key = lr;
 			binheap_insert(bh, fp);
 		}
@@ -589,7 +585,7 @@ main(int argc, char **argv)
 		fprintf(stderr, "%d removes OK\n", N);
 
 		for (u = 0; u < M; u++) {
-			v = random() % N;
+			v = VRND_RandomTestable() % N;
 			if (ff[v] != NULL) {
 				CHECK_OBJ_NOTNULL(ff[v], FOO_MAGIC);
 				AN(ff[v]->idx);
@@ -599,13 +595,13 @@ main(int argc, char **argv)
 					FREE_OBJ(ff[v]);
 					ff[v] = NULL;
 				} else {
-					ff[v]->key = random() % R;
+					ff[v]->key = VRND_RandomTestable() % R;
 					binheap_reorder(bh, ff[v]->idx);
 				}
 			} else {
 				ALLOC_OBJ(ff[v], FOO_MAGIC);
 				assert(ff[v] != NULL);
-				ff[v]->key = random() % R;
+				ff[v]->key = VRND_RandomTestable() % R;
 				binheap_insert(bh, ff[v]);
 				CHECK_OBJ_NOTNULL(ff[v], FOO_MAGIC);
 				AN(ff[v]->idx);


More information about the varnish-commit mailing list