Fix up testhelper to be used by the entryguard unittests.

This commit is contained in:
George Kadianakis 2014-09-15 15:51:20 +03:00
parent 532ab7e13c
commit a72b92676e
4 changed files with 26 additions and 12 deletions

View File

@ -47,6 +47,7 @@ src_test_test_SOURCES = \
src/test/test_policy.c \ src/test/test_policy.c \
src/test/test_status.c \ src/test/test_status.c \
src/test/test_routerset.c \ src/test/test_routerset.c \
src/test/testhelper.c \
src/ext/tinytest.c src/ext/tinytest.c
src_test_test_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS) src_test_test_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
@ -74,6 +75,7 @@ src_test_bench_LDADD = src/or/libtor.a src/common/libor.a \
noinst_HEADERS+= \ noinst_HEADERS+= \
src/test/test.h \ src/test/test.h \
src/test/testhelper.h \
src/test/test_descriptors.inc src/test/test_descriptors.inc
if CURVE25519_ENABLED if CURVE25519_ENABLED

View File

@ -18,7 +18,7 @@
#include "statefile.h" #include "statefile.h"
#include "config.h" #include "config.h"
#include "test_descriptors.inc" #include "testhelper.h"
/* TODO: /* TODO:
* choose_random_entry() test with state set. * choose_random_entry() test with state set.
@ -64,7 +64,7 @@ fake_network_setup(const struct testcase_t *testcase)
get_or_state_replacement); get_or_state_replacement);
/* Setup fake routerlist. */ /* Setup fake routerlist. */
setup_fake_routerlist(); helper_setup_fake_routerlist();
/* Return anything but NULL (it's interpreted as test fail) */ /* Return anything but NULL (it's interpreted as test fail) */
return dummy_state; return dummy_state;
@ -141,7 +141,7 @@ populate_live_entry_guards_test_helper(int num_needed)
/* Walk the nodelist and add all nodes as entry guards. */ /* Walk the nodelist and add all nodes as entry guards. */
our_nodelist = nodelist_get_list(); our_nodelist = nodelist_get_list();
tt_int_op(smartlist_len(our_nodelist), ==, NUMBER_OF_DESCRIPTORS); tt_int_op(smartlist_len(our_nodelist), ==, HELPER_NUMBER_OF_DESCRIPTORS);
SMARTLIST_FOREACH_BEGIN(our_nodelist, const node_t *, node) { SMARTLIST_FOREACH_BEGIN(our_nodelist, const node_t *, node) {
const node_t *node_tmp; const node_t *node_tmp;
@ -150,7 +150,7 @@ populate_live_entry_guards_test_helper(int num_needed)
} SMARTLIST_FOREACH_END(node); } SMARTLIST_FOREACH_END(node);
/* Make sure the nodes were added as entry guards. */ /* Make sure the nodes were added as entry guards. */
tt_int_op(smartlist_len(all_entry_guards), ==, NUMBER_OF_DESCRIPTORS); tt_int_op(smartlist_len(all_entry_guards), ==, HELPER_NUMBER_OF_DESCRIPTORS);
/* Ensure that all the possible entry guards are enough to satisfy us. */ /* Ensure that all the possible entry guards are enough to satisfy us. */
tt_int_op(smartlist_len(all_entry_guards), >=, num_needed); tt_int_op(smartlist_len(all_entry_guards), >=, num_needed);
@ -590,7 +590,7 @@ test_entry_is_live(void *arg)
/* Walk the nodelist and add all nodes as entry guards. */ /* Walk the nodelist and add all nodes as entry guards. */
our_nodelist = nodelist_get_list(); our_nodelist = nodelist_get_list();
tt_int_op(smartlist_len(our_nodelist), ==, NUMBER_OF_DESCRIPTORS); tt_int_op(smartlist_len(our_nodelist), ==, HELPER_NUMBER_OF_DESCRIPTORS);
SMARTLIST_FOREACH_BEGIN(our_nodelist, const node_t *, node) { SMARTLIST_FOREACH_BEGIN(our_nodelist, const node_t *, node) {
const node_t *node_tmp; const node_t *node_tmp;
@ -602,7 +602,7 @@ test_entry_is_live(void *arg)
} SMARTLIST_FOREACH_END(node); } SMARTLIST_FOREACH_END(node);
/* Make sure the nodes were added as entry guards. */ /* Make sure the nodes were added as entry guards. */
tt_int_op(smartlist_len(all_entry_guards), ==, NUMBER_OF_DESCRIPTORS); tt_int_op(smartlist_len(all_entry_guards), ==, HELPER_NUMBER_OF_DESCRIPTORS);
/* Now get a random test entry that we will use for this unit test. */ /* Now get a random test entry that we will use for this unit test. */
which_node = 3; /* (chosen by fair dice roll) */ which_node = 3; /* (chosen by fair dice roll) */

View File

@ -24,9 +24,9 @@ router_descriptor_is_older_than_replacement(const routerinfo_t *router,
/** Parse a file containing router descriptors and load them to our /** Parse a file containing router descriptors and load them to our
routerlist. This function is used to setup an artificial network routerlist. This function is used to setup an artificial network
so that we can conduct entry guard tests. */ so that we can conduct tests on it. */
static void void
setup_fake_routerlist(void) helper_setup_fake_routerlist(void)
{ {
int retval; int retval;
routerlist_t *our_routerlist = NULL; routerlist_t *our_routerlist = NULL;
@ -43,15 +43,16 @@ setup_fake_routerlist(void)
retval = router_load_routers_from_string(TEST_DESCRIPTORS, retval = router_load_routers_from_string(TEST_DESCRIPTORS,
NULL, SAVED_IN_JOURNAL, NULL, SAVED_IN_JOURNAL,
NULL, 0, NULL); NULL, 0, NULL);
tt_int_op(retval, ==, NUMBER_OF_DESCRIPTORS); tt_int_op(retval, ==, HELPER_NUMBER_OF_DESCRIPTORS);
/* Sanity checking of routerlist and nodelist. */ /* Sanity checking of routerlist and nodelist. */
our_routerlist = router_get_routerlist(); our_routerlist = router_get_routerlist();
tt_int_op(smartlist_len(our_routerlist->routers), ==, NUMBER_OF_DESCRIPTORS); tt_int_op(smartlist_len(our_routerlist->routers), ==,
HELPER_NUMBER_OF_DESCRIPTORS);
routerlist_assert_ok(our_routerlist); routerlist_assert_ok(our_routerlist);
our_nodelist = nodelist_get_list(); our_nodelist = nodelist_get_list();
tt_int_op(smartlist_len(our_nodelist), ==, NUMBER_OF_DESCRIPTORS); tt_int_op(smartlist_len(our_nodelist), ==, HELPER_NUMBER_OF_DESCRIPTORS);
/* Mark all routers as non-guards but up and running! */ /* Mark all routers as non-guards but up and running! */
SMARTLIST_FOREACH_BEGIN(our_nodelist, node_t *, node) { SMARTLIST_FOREACH_BEGIN(our_nodelist, node_t *, node) {
@ -63,3 +64,4 @@ setup_fake_routerlist(void)
done: done:
UNMOCK(router_descriptor_is_older_than); UNMOCK(router_descriptor_is_older_than);
} }

10
src/test/testhelper.h Normal file
View File

@ -0,0 +1,10 @@
#ifndef TOR_TEST_HELPER_H
#define TOR_TEST_HELPER_H
/* Number of descriptors contained in test_descriptors.txt. */
#define HELPER_NUMBER_OF_DESCRIPTORS 8
void helper_setup_fake_routerlist(void);
#endif