summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2021-06-26 10:04:38 -0400
committerNick Mathewson <nickm@torproject.org>2021-06-26 10:04:38 -0400
commit9b2a499e12e775d684542c6589eb0a72761bf3dd (patch)
treecf983552b58e4f6b03209d6107fe7da68abc4f5c
parentecc1e8eacb9945ec569291e81eacae66c95bb17e (diff)
parent83483bd4f6326b519871208b3e5af4ae01f13179 (diff)
downloadtor-9b2a499e12e775d684542c6589eb0a72761bf3dd.tar.gz
tor-9b2a499e12e775d684542c6589eb0a72761bf3dd.zip
Merge branch 'maint-0.4.5' into release-0.4.5
-rw-r--r--changes/ticket404193
-rw-r--r--src/test/test_address_set.c13
2 files changed, 16 insertions, 0 deletions
diff --git a/changes/ticket40419 b/changes/ticket40419
new file mode 100644
index 0000000000..0004329662
--- /dev/null
+++ b/changes/ticket40419
@@ -0,0 +1,3 @@
+ o Minor features (testing):
+ - Enable the deterministic RNG for unit tests that covers the address set
+ bloomfilter-based API's. Fixes bug 40419; bugfix on 0.3.3.2-alpha.
diff --git a/src/test/test_address_set.c b/src/test/test_address_set.c
index a73fbab76a..37688f4c1d 100644
--- a/src/test/test_address_set.c
+++ b/src/test/test_address_set.c
@@ -17,6 +17,7 @@
#include "feature/nodelist/routerstatus_st.h"
#include "test/test.h"
+#include "test/rng_test_helpers.h"
static networkstatus_t *dummy_ns = NULL;
static networkstatus_t *
@@ -62,6 +63,10 @@ test_contains(void *arg)
tor_addr_parse(&addr_v4, "42.42.42.42");
uint32_t ipv4h = tor_addr_to_ipv4h(&addr_v4);
+ /* Use our deterministic RNG since the address set uses a bloom filter
+ * internally. */
+ testing_enable_deterministic_rng();
+
/* Make it very big so the chance of failing the contain test will be
* extremely rare. */
set = address_set_new(1024);
@@ -89,6 +94,8 @@ test_contains(void *arg)
done:
address_set_free(set);
+
+ testing_disable_deterministic_rng();
}
static void
@@ -108,6 +115,10 @@ test_nodelist(void *arg)
MOCK(dirlist_add_trusted_dir_addresses,
mock_dirlist_add_trusted_dir_addresses);
+ /* Use our deterministic RNG since the address set, used for
+ * nodelist_probably_contains_address() uses a bloom filter internally. */
+ testing_enable_deterministic_rng();
+
dummy_ns = tor_malloc_zero(sizeof(*dummy_ns));
dummy_ns->flavor = FLAV_MICRODESC;
dummy_ns->routerstatus_list = smartlist_new();
@@ -179,6 +190,8 @@ test_nodelist(void *arg)
UNMOCK(networkstatus_get_latest_consensus_by_flavor);
UNMOCK(get_estimated_address_per_node);
UNMOCK(dirlist_add_trusted_dir_addresses);
+
+ testing_disable_deterministic_rng();
}
/** Test that the no-reentry exit filter works as intended */