aboutsummaryrefslogtreecommitdiff
path: root/src/test/test_util.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2013-02-08 16:46:35 -0500
committerNick Mathewson <nickm@torproject.org>2013-02-08 16:46:35 -0500
commit029d2c65875d81a0052020cabefee465f9d44c24 (patch)
tree9e91fd663ab352ffc64491d8fc2337d8d2fe91d3 /src/test/test_util.c
parent4bfd7806bfa5047ac4653b73291ee07d1e85d3f1 (diff)
downloadtor-029d2c65875d81a0052020cabefee465f9d44c24.tar
tor-029d2c65875d81a0052020cabefee465f9d44c24.tar.gz
Unit test for tor_weak_random_range
Diffstat (limited to 'src/test/test_util.c')
-rw-r--r--src/test/test_util.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/test/test_util.c b/src/test/test_util.c
index bed33fac2..a66941b00 100644
--- a/src/test/test_util.c
+++ b/src/test/test_util.c
@@ -3242,6 +3242,34 @@ test_util_set_env_var_in_sl(void *ptr)
}
static void
+test_util_weak_random(void *arg)
+{
+ int i, j, n[16];
+ tor_weak_rng_t rng;
+ (void) arg;
+
+ tor_init_weak_random(&rng, (unsigned)time(NULL));
+
+ for (i = 1; i <= 256; ++i) {
+ for (j=0;j<100;++j) {
+ int r = tor_weak_random_range(&rng, i);
+ tt_int_op(0, <=, r);
+ tt_int_op(r, <, i);
+ }
+ }
+
+ memset(n,0,sizeof(n));
+ for (j=0;j<8192;++j) {
+ n[tor_weak_random_range(&rng, 16)]++;
+ }
+
+ for (i=0;i<16;++i)
+ tt_int_op(n[i], >, 0);
+ done:
+ ;
+}
+
+static void
test_util_mathlog(void *arg)
{
double d;
@@ -3312,6 +3340,7 @@ struct testcase_t util_tests[] = {
UTIL_TEST(read_file_eof_two_loops, 0),
UTIL_TEST(read_file_eof_zero_bytes, 0),
UTIL_TEST(mathlog, 0),
+ UTIL_TEST(weak_random, 0),
END_OF_TESTCASES
};