tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

commit 261d43cdd5f9dbd9b67303f8c8042a38a37995ca
parent e4feb4ad01e7f3de592adbecd7f1ffae040f51ed
Author: Nick Mathewson <nickm@torproject.org>
Date:   Tue, 14 May 2019 19:49:50 -0400

Make testing_disable_reproducible_rng() log seed on test failure

This should let us simplify test_prob_distr.c and other stuff in the
future.

Diffstat:
Msrc/test/rng_test_helpers.c | 17++++++++++++++++-
Msrc/test/rng_test_helpers.h | 3+--
2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/src/test/rng_test_helpers.c b/src/test/rng_test_helpers.c @@ -17,6 +17,7 @@ #include "core/or/or.h" #include "lib/crypt_ops/crypto_rand.h" +#include "ext/tinytest.h" #include "test/rng_test_helpers.h" @@ -54,7 +55,8 @@ static uint8_t rng_seed[16]; static crypto_xof_t *rng_xof = NULL; /** - * Print the seed for our PRNG to stdout. We use this when we're + * Print the seed for our PRNG to stdout. We use this when we're failed + * test that had a reproducible RNG set. **/ void testing_dump_reproducible_rng_seed(void) @@ -224,3 +226,16 @@ testing_disable_rng_override(void) rng_is_replaced = false; } + +/** + * As testing_disable_rng_override(), but dump the seed if the current + * test has failed. + */ +void +testing_disable_reproducible_rng(void) +{ + if (tinytest_cur_test_has_failed()) { + testing_dump_reproducible_rng_seed(); + } + testing_disable_rng_override(); +} diff --git a/src/test/rng_test_helpers.h b/src/test/rng_test_helpers.h @@ -14,8 +14,7 @@ void testing_prefilled_rng_reset(void); void testing_disable_rng_override(void); -#define testing_disable_reproducible_rng() \ - testing_disable_rng_override() +void testing_disable_reproducible_rng(void); #define testing_disable_deterministic_rng() \ testing_disable_rng_override() #define testing_disable_prefilled_rng() \