mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
Merge branch 'ticket31705_v2' into ticket31705_v2_merged
Conflicts: src/feature/dirparse/authcert_parse.c src/feature/dirparse/ns_parse.c src/feature/hs/hs_service.c src/lib/conf/conftesting.h src/lib/log/log.h src/lib/thread/threads.h src/test/test_options.c These conflicts were mostly related to autostyle improvements, with one or two due to doxygen fixes.
This commit is contained in:
+14
-14
@@ -53,7 +53,7 @@ hs_helper_build_intro_point(const ed25519_keypair_t *signing_kp, time_t now,
|
||||
}
|
||||
|
||||
ret = ed25519_keypair_generate(&auth_kp, 0);
|
||||
tt_int_op(ret, ==, 0);
|
||||
tt_int_op(ret, OP_EQ, 0);
|
||||
ip->auth_key_cert = tor_cert_create(signing_kp, CERT_TYPE_AUTH_HS_IP_KEY,
|
||||
&auth_kp.pubkey, now,
|
||||
HS_DESC_CERT_LIFETIME,
|
||||
@@ -64,7 +64,7 @@ hs_helper_build_intro_point(const ed25519_keypair_t *signing_kp, time_t now,
|
||||
ip->legacy.key = crypto_pk_new();
|
||||
tt_assert(ip->legacy.key);
|
||||
ret = crypto_pk_generate_key(ip->legacy.key);
|
||||
tt_int_op(ret, ==, 0);
|
||||
tt_int_op(ret, OP_EQ, 0);
|
||||
ssize_t cert_len = tor_make_rsa_ed25519_crosscert(
|
||||
&signing_kp->pubkey, ip->legacy.key,
|
||||
now + HS_DESC_CERT_LIFETIME,
|
||||
@@ -82,7 +82,7 @@ hs_helper_build_intro_point(const ed25519_keypair_t *signing_kp, time_t now,
|
||||
tor_cert_t *cross_cert;
|
||||
|
||||
ret = curve25519_keypair_generate(&curve25519_kp, 0);
|
||||
tt_int_op(ret, ==, 0);
|
||||
tt_int_op(ret, OP_EQ, 0);
|
||||
ed25519_keypair_from_curve25519_keypair(&ed25519_kp, &signbit,
|
||||
&curve25519_kp);
|
||||
cross_cert = tor_cert_create(signing_kp, CERT_TYPE_CROSS_HS_IP_KEYS,
|
||||
@@ -140,7 +140,7 @@ hs_helper_build_hs_desc_impl(unsigned int no_ip,
|
||||
|
||||
/* Setup superencrypted data section. */
|
||||
ret = curve25519_keypair_generate(&auth_ephemeral_kp, 0);
|
||||
tt_int_op(ret, ==, 0);
|
||||
tt_int_op(ret, OP_EQ, 0);
|
||||
memcpy(&desc->superencrypted_data.auth_ephemeral_pubkey,
|
||||
&auth_ephemeral_kp.pubkey,
|
||||
sizeof(curve25519_public_key_t));
|
||||
@@ -224,7 +224,7 @@ hs_helper_desc_equal(const hs_descriptor_t *desc1,
|
||||
tt_mem_op(desc1->plaintext_data.blinded_pubkey.pubkey, OP_EQ,
|
||||
desc2->plaintext_data.blinded_pubkey.pubkey,
|
||||
ED25519_PUBKEY_LEN);
|
||||
tt_u64_op(desc1->plaintext_data.revision_counter, ==,
|
||||
tt_u64_op(desc1->plaintext_data.revision_counter, OP_EQ,
|
||||
desc2->plaintext_data.revision_counter);
|
||||
|
||||
/* NOTE: We can't compare the encrypted blob because when encoding the
|
||||
@@ -241,7 +241,7 @@ hs_helper_desc_equal(const hs_descriptor_t *desc1,
|
||||
{
|
||||
tt_assert(desc1->superencrypted_data.clients);
|
||||
tt_assert(desc2->superencrypted_data.clients);
|
||||
tt_int_op(smartlist_len(desc1->superencrypted_data.clients), ==,
|
||||
tt_int_op(smartlist_len(desc1->superencrypted_data.clients), OP_EQ,
|
||||
smartlist_len(desc2->superencrypted_data.clients));
|
||||
for (int i=0;
|
||||
i < smartlist_len(desc1->superencrypted_data.clients);
|
||||
@@ -259,15 +259,15 @@ hs_helper_desc_equal(const hs_descriptor_t *desc1,
|
||||
}
|
||||
|
||||
/* Encrypted data section. */
|
||||
tt_uint_op(desc1->encrypted_data.create2_ntor, ==,
|
||||
tt_uint_op(desc1->encrypted_data.create2_ntor, OP_EQ,
|
||||
desc2->encrypted_data.create2_ntor);
|
||||
|
||||
/* Authentication type. */
|
||||
tt_int_op(!!desc1->encrypted_data.intro_auth_types, ==,
|
||||
tt_int_op(!!desc1->encrypted_data.intro_auth_types, OP_EQ,
|
||||
!!desc2->encrypted_data.intro_auth_types);
|
||||
if (desc1->encrypted_data.intro_auth_types &&
|
||||
desc2->encrypted_data.intro_auth_types) {
|
||||
tt_int_op(smartlist_len(desc1->encrypted_data.intro_auth_types), ==,
|
||||
tt_int_op(smartlist_len(desc1->encrypted_data.intro_auth_types), OP_EQ,
|
||||
smartlist_len(desc2->encrypted_data.intro_auth_types));
|
||||
for (int i = 0;
|
||||
i < smartlist_len(desc1->encrypted_data.intro_auth_types);
|
||||
@@ -281,7 +281,7 @@ hs_helper_desc_equal(const hs_descriptor_t *desc1,
|
||||
{
|
||||
tt_assert(desc1->encrypted_data.intro_points);
|
||||
tt_assert(desc2->encrypted_data.intro_points);
|
||||
tt_int_op(smartlist_len(desc1->encrypted_data.intro_points), ==,
|
||||
tt_int_op(smartlist_len(desc1->encrypted_data.intro_points), OP_EQ,
|
||||
smartlist_len(desc2->encrypted_data.intro_points));
|
||||
for (int i=0; i < smartlist_len(desc1->encrypted_data.intro_points); i++) {
|
||||
hs_desc_intro_point_t *ip1 = smartlist_get(desc1->encrypted_data
|
||||
@@ -296,12 +296,12 @@ hs_helper_desc_equal(const hs_descriptor_t *desc1,
|
||||
tt_mem_op(&ip1->enc_key, OP_EQ, &ip2->enc_key, CURVE25519_PUBKEY_LEN);
|
||||
}
|
||||
|
||||
tt_int_op(smartlist_len(ip1->link_specifiers), ==,
|
||||
tt_int_op(smartlist_len(ip1->link_specifiers), OP_EQ,
|
||||
smartlist_len(ip2->link_specifiers));
|
||||
for (int j = 0; j < smartlist_len(ip1->link_specifiers); j++) {
|
||||
link_specifier_t *ls1 = smartlist_get(ip1->link_specifiers, j),
|
||||
*ls2 = smartlist_get(ip2->link_specifiers, j);
|
||||
tt_int_op(link_specifier_get_ls_type(ls1), ==,
|
||||
tt_int_op(link_specifier_get_ls_type(ls1), OP_EQ,
|
||||
link_specifier_get_ls_type(ls2));
|
||||
switch (link_specifier_get_ls_type(ls1)) {
|
||||
case LS_IPV4:
|
||||
@@ -311,7 +311,7 @@ hs_helper_desc_equal(const hs_descriptor_t *desc1,
|
||||
tt_int_op(addr1, OP_EQ, addr2);
|
||||
uint16_t port1 = link_specifier_get_un_ipv4_port(ls1);
|
||||
uint16_t port2 = link_specifier_get_un_ipv4_port(ls2);
|
||||
tt_int_op(port1, ==, port2);
|
||||
tt_int_op(port1, OP_EQ, port2);
|
||||
}
|
||||
break;
|
||||
case LS_IPV6:
|
||||
@@ -326,7 +326,7 @@ hs_helper_desc_equal(const hs_descriptor_t *desc1,
|
||||
link_specifier_getlen_un_ipv6_addr(ls1));
|
||||
uint16_t port1 = link_specifier_get_un_ipv6_port(ls1);
|
||||
uint16_t port2 = link_specifier_get_un_ipv6_port(ls2);
|
||||
tt_int_op(port1, ==, port2);
|
||||
tt_int_op(port1, OP_EQ, port2);
|
||||
}
|
||||
break;
|
||||
case LS_LEGACY_ID:
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
|
||||
#define test_memeq_hex(expr1, hex) test_mem_op_hex(expr1, OP_EQ, hex)
|
||||
|
||||
#ifndef COCCI
|
||||
#define tt_double_op(a,op,b) \
|
||||
tt_assert_test_type(a,b,#a" "#op" "#b,double,(val1_ op val2_),"%g", \
|
||||
TT_EXIT_TEST_FUNCTION)
|
||||
@@ -64,6 +65,7 @@
|
||||
tt_assert_test_fmt_type(a,b,#a" "#op" "#b,int64_t,(val1_ op val2_), \
|
||||
int64_t, "%"PRId64, \
|
||||
{print_ = (int64_t) value_;}, {}, TT_EXIT_TEST_FUNCTION)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Declare that the test is done, even though no tt___op() calls were made.
|
||||
@@ -145,6 +147,7 @@ void free_pregenerated_keys(void);
|
||||
#define NAME_TEST_(name) #name
|
||||
#define NAME_TEST(name) NAME_TEST_(name)
|
||||
#define ASPECT(test_module, test_name) US2_CONCAT_2__(test_module, test_name)
|
||||
#ifndef COCCI
|
||||
#define TEST_CASE(function) \
|
||||
{ \
|
||||
NAME_TEST(function), \
|
||||
@@ -161,15 +164,18 @@ void free_pregenerated_keys(void);
|
||||
NULL, \
|
||||
NULL, \
|
||||
}
|
||||
#endif
|
||||
|
||||
#define NS(name) US_CONCAT_3_(NS_MODULE, NS_SUBMODULE, name)
|
||||
#define NS_FULL(module, submodule, name) US_CONCAT_3_(module, submodule, name)
|
||||
|
||||
#define CALLED(mock_name) US_CONCAT_2_(NS(mock_name), called)
|
||||
#ifndef COCCI
|
||||
#define NS_DECL(retval, mock_fn, args) \
|
||||
extern int CALLED(mock_fn); \
|
||||
static retval NS(mock_fn) args; int CALLED(mock_fn) = 0
|
||||
#define NS_MOCK(name) MOCK(name, NS(name))
|
||||
#endif
|
||||
#define NS_UNMOCK(name) UNMOCK(name)
|
||||
|
||||
extern const struct testcase_setup_t passthrough_setup;
|
||||
|
||||
@@ -52,6 +52,7 @@ test_addr_basic(void *arg)
|
||||
;
|
||||
}
|
||||
|
||||
#ifndef COCCI
|
||||
#define test_op_ip6_(a,op,b,e1,e2) \
|
||||
STMT_BEGIN \
|
||||
tt_assert_test_fmt_type(a,b,e1" "#op" "e2,struct in6_addr*, \
|
||||
@@ -69,6 +70,7 @@ test_addr_basic(void *arg)
|
||||
TT_EXIT_TEST_FUNCTION \
|
||||
); \
|
||||
STMT_END
|
||||
#endif
|
||||
|
||||
/** Helper: Assert that two strings both decode as IPv6 addresses with
|
||||
* tor_inet_pton(), and both decode to the same address. */
|
||||
@@ -111,6 +113,7 @@ test_addr_basic(void *arg)
|
||||
TT_DIE(("%s was not internal", a)); \
|
||||
STMT_END
|
||||
|
||||
#ifndef COCCI
|
||||
/** Helper: Assert that <b>a</b> and <b>b</b>, when parsed by
|
||||
* tor_inet_pton(), give addresses that compare in the order defined by
|
||||
* <b>op</b> with tor_addr_compare(). */
|
||||
@@ -135,6 +138,7 @@ test_addr_basic(void *arg)
|
||||
TT_DIE(("Failed: tor_addr_compare_masked(%s,%s,%d) %s 0", \
|
||||
a, b, m, #op)); \
|
||||
STMT_END
|
||||
#endif
|
||||
|
||||
/** Helper: assert that <b>xx</b> is parseable as a masked IPv6 address with
|
||||
* ports by tor_parse_mask_addr_ports(), with family <b>f</b>, IP address
|
||||
@@ -1649,8 +1653,10 @@ test_addr_rfc6598(void *arg)
|
||||
;
|
||||
}
|
||||
|
||||
#ifndef COCCI
|
||||
#define ADDR_LEGACY(name) \
|
||||
{ #name, test_addr_ ## name , 0, NULL, NULL }
|
||||
#endif
|
||||
|
||||
struct testcase_t addr_tests[] = {
|
||||
ADDR_LEGACY(basic),
|
||||
|
||||
@@ -3816,7 +3816,9 @@ static void
|
||||
test_config_default_fallback_dirs(void *arg)
|
||||
{
|
||||
const char *fallback[] = {
|
||||
#ifndef COCCI
|
||||
#include "app/config/fallback_dirs.inc"
|
||||
#endif
|
||||
NULL
|
||||
};
|
||||
|
||||
|
||||
@@ -1037,12 +1037,14 @@ test_confparse_find_option_name(void *arg)
|
||||
config_mgr_free(mgr);
|
||||
}
|
||||
|
||||
#ifndef COCCI
|
||||
#define CONFPARSE_TEST(name, flags) \
|
||||
{ #name, test_confparse_ ## name, flags, NULL, NULL }
|
||||
|
||||
#define BADVAL_TEST(name) \
|
||||
{ "badval_" #name, test_confparse_assign_badval, 0, \
|
||||
&passthrough_setup, (void*)&bv_ ## name }
|
||||
#endif
|
||||
|
||||
struct testcase_t confparse_tests[] = {
|
||||
CONFPARSE_TEST(init, 0),
|
||||
|
||||
@@ -881,12 +881,14 @@ test_failed_orconn_tracker(void *arg)
|
||||
;
|
||||
}
|
||||
|
||||
#ifndef COCCI
|
||||
#define CONNECTION_TESTCASE(name, fork, setup) \
|
||||
{ #name, test_conn_##name, fork, &setup, NULL }
|
||||
|
||||
/* where arg is an expression (constant, variable, compound expression) */
|
||||
#define CONNECTION_TESTCASE_ARG(name, fork, setup, arg) \
|
||||
{ #name "_" #arg, test_conn_##name, fork, &setup, (void *)arg }
|
||||
#endif
|
||||
|
||||
struct testcase_t connection_tests[] = {
|
||||
CONNECTION_TESTCASE(get_basic, TT_FORK, test_conn_get_basic_st),
|
||||
|
||||
@@ -120,6 +120,7 @@ test_controller_parse_cmd(void *arg)
|
||||
control_cmd_args_free(result);
|
||||
}
|
||||
|
||||
#ifndef COCCI
|
||||
#define OK(inp, out) \
|
||||
{ inp "\r\n", out, NULL }
|
||||
#define ERR(inp, err) \
|
||||
@@ -129,6 +130,7 @@ test_controller_parse_cmd(void *arg)
|
||||
{ &syntax, \
|
||||
ARRAY_LENGTH(array), \
|
||||
array }
|
||||
#endif
|
||||
|
||||
static const parser_testcase_t one_to_three_tests[] = {
|
||||
ERR("", "Need at least 1 argument(s)"),
|
||||
@@ -1953,9 +1955,11 @@ test_getinfo_md_all(void *arg)
|
||||
return;
|
||||
}
|
||||
|
||||
#ifndef COCCI
|
||||
#define PARSER_TEST(type) \
|
||||
{ "parse/" #type, test_controller_parse_cmd, 0, &passthrough_setup, \
|
||||
(void*)&parse_ ## type ## _params }
|
||||
#endif
|
||||
|
||||
struct testcase_t controller_tests[] = {
|
||||
PARSER_TEST(one_to_three),
|
||||
|
||||
@@ -2971,6 +2971,7 @@ test_crypto_failure_modes(void *arg)
|
||||
;
|
||||
}
|
||||
|
||||
#ifndef COCCI
|
||||
#define CRYPTO_LEGACY(name) \
|
||||
{ #name, test_crypto_ ## name , 0, NULL, NULL }
|
||||
|
||||
@@ -2981,6 +2982,7 @@ test_crypto_failure_modes(void *arg)
|
||||
#define ED25519_TEST(name, fl) \
|
||||
ED25519_TEST_ONE(name, (fl), "donna"), \
|
||||
ED25519_TEST_ONE(name, (fl), "ref10")
|
||||
#endif
|
||||
|
||||
struct testcase_t crypto_tests[] = {
|
||||
CRYPTO_LEGACY(formats),
|
||||
|
||||
@@ -584,6 +584,7 @@ test_crypto_ed25519_fuzz_donna(void *arg)
|
||||
;
|
||||
}
|
||||
|
||||
#ifndef COCCI
|
||||
#define CRYPTO_LEGACY(name) \
|
||||
{ #name, test_crypto_ ## name , 0, NULL, NULL }
|
||||
|
||||
@@ -594,6 +595,7 @@ test_crypto_ed25519_fuzz_donna(void *arg)
|
||||
#define ED25519_TEST(name, fl) \
|
||||
ED25519_TEST_ONE(name, (fl), "donna"), \
|
||||
ED25519_TEST_ONE(name, (fl), "ref10")
|
||||
#endif
|
||||
|
||||
struct testcase_t slow_crypto_tests[] = {
|
||||
CRYPTO_LEGACY(s2k_rfc2440),
|
||||
|
||||
@@ -7210,6 +7210,7 @@ test_dir_format_versions_list(void *arg)
|
||||
teardown_capture_of_logs();
|
||||
}
|
||||
|
||||
#ifndef COCCI
|
||||
#define DIR_LEGACY(name) \
|
||||
{ #name, test_dir_ ## name , TT_FORK, NULL, NULL }
|
||||
|
||||
@@ -7219,6 +7220,7 @@ test_dir_format_versions_list(void *arg)
|
||||
/* where arg is a string constant */
|
||||
#define DIR_ARG(name,flags,arg) \
|
||||
{ #name "_" arg, test_dir_##name, (flags), &passthrough_setup, (void*) arg }
|
||||
#endif
|
||||
|
||||
struct testcase_t dir_tests[] = {
|
||||
DIR_LEGACY(nicknames),
|
||||
|
||||
@@ -3039,6 +3039,7 @@ static const struct testcase_setup_t upgrade_circuits = {
|
||||
upgrade_circuits_setup, upgrade_circuits_cleanup
|
||||
};
|
||||
|
||||
#ifndef COCCI
|
||||
#define NO_PREFIX_TEST(name) \
|
||||
{ #name, test_ ## name, 0, NULL, NULL }
|
||||
|
||||
@@ -3061,6 +3062,7 @@ static const struct testcase_setup_t upgrade_circuits = {
|
||||
&upgrade_circuits, (void*)(arg REASONABLY_FUTURE) }, \
|
||||
{ #name "_reasonably_past", test_entry_guard_ ## name, TT_FORK, \
|
||||
&upgrade_circuits, (void*)(arg REASONABLY_PAST) }
|
||||
#endif
|
||||
|
||||
struct testcase_t entrynodes_tests[] = {
|
||||
NO_PREFIX_TEST(node_preferred_orport),
|
||||
|
||||
@@ -1492,6 +1492,7 @@ AUTHENTICATE_FAIL(missing_ed_auth,
|
||||
"authentication certificate";
|
||||
})
|
||||
|
||||
#ifndef COCCI
|
||||
#define TEST_RSA(name, flags) \
|
||||
{ #name , test_link_handshake_ ## name, (flags), \
|
||||
&passthrough_setup, (void*)"RSA" }
|
||||
@@ -1527,6 +1528,7 @@ AUTHENTICATE_FAIL(missing_ed_auth,
|
||||
#define TEST_AUTHENTICATE_ED(name) \
|
||||
{ "authenticate/" #name "_ed25519" , test_link_handshake_auth_ ## name, \
|
||||
TT_FORK, &setup_authenticate, (void*)3 }
|
||||
#endif
|
||||
|
||||
struct testcase_t link_handshake_tests[] = {
|
||||
TEST_RSA(certs_ok, TT_FORK),
|
||||
|
||||
@@ -4067,8 +4067,10 @@ test_options_init_logs_quiet(void *arg)
|
||||
UNMOCK(add_file_log);
|
||||
}
|
||||
|
||||
#ifndef COCCI
|
||||
#define LOCAL_VALIDATE_TEST(name) \
|
||||
{ "validate__" #name, test_options_validate__ ## name, TT_FORK, NULL, NULL }
|
||||
#endif
|
||||
|
||||
struct testcase_t options_tests[] = {
|
||||
{ "validate", test_options_validate, TT_FORK, NULL, NULL },
|
||||
|
||||
@@ -92,13 +92,13 @@ test_router_dump_router_to_string_no_bridge_distribution_method(void *arg)
|
||||
options->BridgeRelay = 1;
|
||||
|
||||
/* Generate keys which router_dump_router_to_string() expects to exist. */
|
||||
tt_int_op(0, ==, curve25519_keypair_generate(&ntor_keypair, 0));
|
||||
tt_int_op(0, ==, ed25519_keypair_generate(&signing_keypair, 0));
|
||||
tt_int_op(0, OP_EQ, curve25519_keypair_generate(&ntor_keypair, 0));
|
||||
tt_int_op(0, OP_EQ, ed25519_keypair_generate(&signing_keypair, 0));
|
||||
|
||||
/* Set up part of our routerinfo_t so that we don't trigger any other
|
||||
* assertions in router_dump_router_to_string(). */
|
||||
router = (routerinfo_t*)router_get_my_routerinfo();
|
||||
tt_ptr_op(router, !=, NULL);
|
||||
tt_ptr_op(router, OP_NE, NULL);
|
||||
|
||||
/* The real router_get_my_routerinfo() looks up onion_curve25519_pkey using
|
||||
* get_current_curve25519_keypair(), but we don't initialise static data in
|
||||
@@ -115,9 +115,9 @@ test_router_dump_router_to_string_no_bridge_distribution_method(void *arg)
|
||||
&ntor_keypair,
|
||||
&signing_keypair);
|
||||
crypto_pk_free(onion_pkey);
|
||||
tt_ptr_op(desc, !=, NULL);
|
||||
tt_ptr_op(desc, OP_NE, NULL);
|
||||
found = strstr(desc, needle);
|
||||
tt_ptr_op(found, !=, NULL);
|
||||
tt_ptr_op(found, OP_NE, NULL);
|
||||
|
||||
done:
|
||||
NS_UNMOCK(router_get_my_routerinfo);
|
||||
|
||||
+26
-26
@@ -848,8 +848,8 @@ test_scheduler_initfree(void *arg)
|
||||
{
|
||||
(void)arg;
|
||||
|
||||
tt_ptr_op(channels_pending, ==, NULL);
|
||||
tt_ptr_op(run_sched_ev, ==, NULL);
|
||||
tt_ptr_op(channels_pending, OP_EQ, NULL);
|
||||
tt_ptr_op(run_sched_ev, OP_EQ, NULL);
|
||||
|
||||
MOCK(get_options, mock_get_options);
|
||||
set_scheduler_options(SCHEDULER_KIST);
|
||||
@@ -858,17 +858,17 @@ test_scheduler_initfree(void *arg)
|
||||
|
||||
scheduler_init();
|
||||
|
||||
tt_ptr_op(channels_pending, !=, NULL);
|
||||
tt_ptr_op(run_sched_ev, !=, NULL);
|
||||
tt_ptr_op(channels_pending, OP_NE, NULL);
|
||||
tt_ptr_op(run_sched_ev, OP_NE, NULL);
|
||||
/* We have specified nothing in the torrc and there's no consensus so the
|
||||
* KIST scheduler is what should be in use */
|
||||
tt_ptr_op(the_scheduler, ==, get_kist_scheduler());
|
||||
tt_int_op(sched_run_interval, ==, 10);
|
||||
tt_ptr_op(the_scheduler, OP_EQ, get_kist_scheduler());
|
||||
tt_int_op(sched_run_interval, OP_EQ, 10);
|
||||
|
||||
scheduler_free_all();
|
||||
|
||||
tt_ptr_op(channels_pending, ==, NULL);
|
||||
tt_ptr_op(run_sched_ev, ==, NULL);
|
||||
tt_ptr_op(channels_pending, OP_EQ, NULL);
|
||||
tt_ptr_op(run_sched_ev, OP_EQ, NULL);
|
||||
|
||||
done:
|
||||
UNMOCK(get_options);
|
||||
@@ -890,11 +890,11 @@ test_scheduler_can_use_kist(void *arg)
|
||||
res_should = scheduler_can_use_kist();
|
||||
res_freq = kist_scheduler_run_interval();
|
||||
#ifdef HAVE_KIST_SUPPORT
|
||||
tt_int_op(res_should, ==, 1);
|
||||
tt_int_op(res_should, OP_EQ, 1);
|
||||
#else /* HAVE_KIST_SUPPORT */
|
||||
tt_int_op(res_should, ==, 0);
|
||||
tt_int_op(res_should, OP_EQ, 0);
|
||||
#endif /* HAVE_KIST_SUPPORT */
|
||||
tt_int_op(res_freq, ==, 1234);
|
||||
tt_int_op(res_freq, OP_EQ, 1234);
|
||||
|
||||
/* Test defer to consensus, but no consensus available */
|
||||
clear_options();
|
||||
@@ -902,11 +902,11 @@ test_scheduler_can_use_kist(void *arg)
|
||||
res_should = scheduler_can_use_kist();
|
||||
res_freq = kist_scheduler_run_interval();
|
||||
#ifdef HAVE_KIST_SUPPORT
|
||||
tt_int_op(res_should, ==, 1);
|
||||
tt_int_op(res_should, OP_EQ, 1);
|
||||
#else /* HAVE_KIST_SUPPORT */
|
||||
tt_int_op(res_should, ==, 0);
|
||||
tt_int_op(res_should, OP_EQ, 0);
|
||||
#endif /* HAVE_KIST_SUPPORT */
|
||||
tt_int_op(res_freq, ==, 10);
|
||||
tt_int_op(res_freq, OP_EQ, 10);
|
||||
|
||||
/* Test defer to consensus, and kist consensus available */
|
||||
MOCK(networkstatus_get_param, mock_kist_networkstatus_get_param);
|
||||
@@ -915,11 +915,11 @@ test_scheduler_can_use_kist(void *arg)
|
||||
res_should = scheduler_can_use_kist();
|
||||
res_freq = kist_scheduler_run_interval();
|
||||
#ifdef HAVE_KIST_SUPPORT
|
||||
tt_int_op(res_should, ==, 1);
|
||||
tt_int_op(res_should, OP_EQ, 1);
|
||||
#else /* HAVE_KIST_SUPPORT */
|
||||
tt_int_op(res_should, ==, 0);
|
||||
tt_int_op(res_should, OP_EQ, 0);
|
||||
#endif /* HAVE_KIST_SUPPORT */
|
||||
tt_int_op(res_freq, ==, 12);
|
||||
tt_int_op(res_freq, OP_EQ, 12);
|
||||
UNMOCK(networkstatus_get_param);
|
||||
|
||||
/* Test defer to consensus, and vanilla consensus available */
|
||||
@@ -928,8 +928,8 @@ test_scheduler_can_use_kist(void *arg)
|
||||
mocked_options.KISTSchedRunInterval = 0;
|
||||
res_should = scheduler_can_use_kist();
|
||||
res_freq = kist_scheduler_run_interval();
|
||||
tt_int_op(res_should, ==, 0);
|
||||
tt_int_op(res_freq, ==, 0);
|
||||
tt_int_op(res_should, OP_EQ, 0);
|
||||
tt_int_op(res_freq, OP_EQ, 0);
|
||||
UNMOCK(networkstatus_get_param);
|
||||
|
||||
done:
|
||||
@@ -956,7 +956,7 @@ test_scheduler_ns_changed(void *arg)
|
||||
set_scheduler_options(SCHEDULER_KIST);
|
||||
set_scheduler_options(SCHEDULER_VANILLA);
|
||||
|
||||
tt_ptr_op(the_scheduler, ==, NULL);
|
||||
tt_ptr_op(the_scheduler, OP_EQ, NULL);
|
||||
|
||||
/* Change from vanilla to kist via consensus */
|
||||
the_scheduler = get_vanilla_scheduler();
|
||||
@@ -964,9 +964,9 @@ test_scheduler_ns_changed(void *arg)
|
||||
scheduler_notify_networkstatus_changed();
|
||||
UNMOCK(networkstatus_get_param);
|
||||
#ifdef HAVE_KIST_SUPPORT
|
||||
tt_ptr_op(the_scheduler, ==, get_kist_scheduler());
|
||||
tt_ptr_op(the_scheduler, OP_EQ, get_kist_scheduler());
|
||||
#else
|
||||
tt_ptr_op(the_scheduler, ==, get_vanilla_scheduler());
|
||||
tt_ptr_op(the_scheduler, OP_EQ, get_vanilla_scheduler());
|
||||
#endif
|
||||
|
||||
/* Change from kist to vanilla via consensus */
|
||||
@@ -974,7 +974,7 @@ test_scheduler_ns_changed(void *arg)
|
||||
MOCK(networkstatus_get_param, mock_vanilla_networkstatus_get_param);
|
||||
scheduler_notify_networkstatus_changed();
|
||||
UNMOCK(networkstatus_get_param);
|
||||
tt_ptr_op(the_scheduler, ==, get_vanilla_scheduler());
|
||||
tt_ptr_op(the_scheduler, OP_EQ, get_vanilla_scheduler());
|
||||
|
||||
/* Doesn't change when using KIST */
|
||||
the_scheduler = get_kist_scheduler();
|
||||
@@ -982,9 +982,9 @@ test_scheduler_ns_changed(void *arg)
|
||||
scheduler_notify_networkstatus_changed();
|
||||
UNMOCK(networkstatus_get_param);
|
||||
#ifdef HAVE_KIST_SUPPORT
|
||||
tt_ptr_op(the_scheduler, ==, get_kist_scheduler());
|
||||
tt_ptr_op(the_scheduler, OP_EQ, get_kist_scheduler());
|
||||
#else
|
||||
tt_ptr_op(the_scheduler, ==, get_vanilla_scheduler());
|
||||
tt_ptr_op(the_scheduler, OP_EQ, get_vanilla_scheduler());
|
||||
#endif
|
||||
|
||||
/* Doesn't change when using vanilla */
|
||||
@@ -992,7 +992,7 @@ test_scheduler_ns_changed(void *arg)
|
||||
MOCK(networkstatus_get_param, mock_vanilla_networkstatus_get_param);
|
||||
scheduler_notify_networkstatus_changed();
|
||||
UNMOCK(networkstatus_get_param);
|
||||
tt_ptr_op(the_scheduler, ==, get_vanilla_scheduler());
|
||||
tt_ptr_op(the_scheduler, OP_EQ, get_vanilla_scheduler());
|
||||
|
||||
done:
|
||||
UNMOCK(get_options);
|
||||
|
||||
@@ -304,6 +304,7 @@ test_util_write_chunks_to_file(void *arg)
|
||||
tor_free(temp_str);
|
||||
}
|
||||
|
||||
#ifndef COCCI
|
||||
#define _TFE(a, b, f) tt_int_op((a).f, OP_EQ, (b).f)
|
||||
/** test the minimum set of struct tm fields needed for a unique epoch value
|
||||
* this is also the set we use to test tor_timegm */
|
||||
@@ -316,6 +317,7 @@ test_util_write_chunks_to_file(void *arg)
|
||||
_TFE(a, b, tm_min ); \
|
||||
_TFE(a, b, tm_sec ); \
|
||||
TT_STMT_END
|
||||
#endif
|
||||
|
||||
static void
|
||||
test_util_time(void *arg)
|
||||
@@ -6257,6 +6259,7 @@ test_util_map_anon_nofork(void *arg)
|
||||
#endif /* defined(_WIN32) */
|
||||
}
|
||||
|
||||
#ifndef COCCI
|
||||
#define UTIL_LEGACY(name) \
|
||||
{ #name, test_util_ ## name , 0, NULL, NULL }
|
||||
|
||||
@@ -6281,6 +6284,7 @@ test_util_map_anon_nofork(void *arg)
|
||||
{ "compress_dos/" #name, test_util_decompress_dos, 0, \
|
||||
&compress_setup, \
|
||||
(char*)(identifier) }
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
#define UTIL_TEST_NO_WIN(n, f) { #n, NULL, TT_SKIP, NULL, NULL }
|
||||
|
||||
Reference in New Issue
Block a user