diff options
author | Nick Mathewson <nickm@torproject.org> | 2015-04-21 11:41:31 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2015-04-21 11:41:31 -0400 |
commit | e48ad353a31f3ee376f7914563d960916ad6aecd (patch) | |
tree | 3435935ab549d7922174bb056738d0129947a215 /src/test | |
parent | 6bf31543dcda169aa1840fd7e0a0e0ff8a5f9640 (diff) | |
download | tor-e48ad353a31f3ee376f7914563d960916ad6aecd.tar.gz tor-e48ad353a31f3ee376f7914563d960916ad6aecd.zip |
Add test for random-int-in-range
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/test_crypto.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/test/test_crypto.c b/src/test/test_crypto.c index e9fb8bf084..9158390db5 100644 --- a/src/test/test_crypto.c +++ b/src/test/test_crypto.c @@ -105,6 +105,30 @@ test_crypto_rng(void *arg) ; } +static void +test_crypto_rng_range(void *arg) +{ + int got_smallest = 0, got_largest = 0; + int i; + + (void)arg; + for (i = 0; i < 1000; ++i) { + int x = crypto_rand_int_range(5,9); + tt_int_op(x, OP_GE, 5); + tt_int_op(x, OP_LT, 9); + if (x == 5) + got_smallest = 1; + if (x == 8) + got_largest = 1; + } + + /* These fail with probability 1/10^603. */ + tt_assert(got_smallest); + tt_assert(got_largest); + done: + ; +} + /** Run unit tests for our AES functionality */ static void test_crypto_aes(void *arg) @@ -1605,6 +1629,7 @@ test_crypto_siphash(void *arg) struct testcase_t crypto_tests[] = { CRYPTO_LEGACY(formats), CRYPTO_LEGACY(rng), + { "rng_range", test_crypto_rng_range, 0, NULL, NULL }, { "aes_AES", test_crypto_aes, TT_FORK, &passthrough_setup, (void*)"aes" }, { "aes_EVP", test_crypto_aes, TT_FORK, &passthrough_setup, (void*)"evp" }, CRYPTO_LEGACY(sha), |