mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-11 05:33:47 +01:00
test_options: use testing options with (almost) real defaults.
Previously, we just used options set to all 0s, but this causes some pretty severe workarounds throughout the code, as our options fail to validate, or count as "default" for the wrong reasons. Note that in some places, we stop getting spurious warnings or failures which the tests previously demanded. In these cases, I've changed the test behavior. Fixes 32175.
This commit is contained in:
parent
8378ad29e6
commit
a10e4d737e
@ -391,11 +391,7 @@ fixed_get_uname(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#define TEST_OPTIONS_OLD_VALUES "TestingV3AuthInitialVotingInterval 1800\n" \
|
#define TEST_OPTIONS_OLD_VALUES "TestingV3AuthInitialVotingInterval 1800\n" \
|
||||||
"ClientBootstrapConsensusMaxInProgressTries 3\n" \
|
"ClientBootstrapConsensusMaxInProgressTries 3\n"
|
||||||
"TestingV3AuthInitialVoteDelay 300\n" \
|
|
||||||
"TestingV3AuthInitialDistDelay 300\n" \
|
|
||||||
"TestingClientMaxIntervalWithoutRequest 600\n" \
|
|
||||||
"TestingDirConnectionMaxStall 600\n" \
|
|
||||||
|
|
||||||
#define TEST_OPTIONS_DEFAULT_VALUES TEST_OPTIONS_OLD_VALUES \
|
#define TEST_OPTIONS_DEFAULT_VALUES TEST_OPTIONS_OLD_VALUES \
|
||||||
"MaxClientCircuitsPending 1\n" \
|
"MaxClientCircuitsPending 1\n" \
|
||||||
@ -432,12 +428,17 @@ get_options_test_data(const char *conf)
|
|||||||
result->old_opt = options_new();
|
result->old_opt = options_new();
|
||||||
result->def_opt = options_new();
|
result->def_opt = options_new();
|
||||||
|
|
||||||
// XXX: Really, all of these options should be set to defaults
|
options_init(result->opt);
|
||||||
// with options_init(), but about a dozen tests break when I do that.
|
options_init(result->old_opt);
|
||||||
// Being kinda lame and just fixing the immedate breakage for now..
|
options_init(result->def_opt);
|
||||||
result->opt->ConnectionPadding = -1; // default must be "auto"
|
|
||||||
result->opt->DormantClientTimeout = 1800; // must be over 600.
|
/* Various of the tests below expect that unless explicitly set, these
|
||||||
result->opt->CircuitPadding = 1; // default must be "1"
|
* options will be invalid. We override them for that reason.
|
||||||
|
*
|
||||||
|
* Later in this branch, I will remove these one by one. */
|
||||||
|
result->opt->ConnLimit = 0;
|
||||||
|
result->opt->MaxClientCircuitsPending = 0;
|
||||||
|
result->opt->KeepalivePeriod = 0;
|
||||||
|
|
||||||
rv = config_get_lines(conf, &cl, 1);
|
rv = config_get_lines(conf, &cl, 1);
|
||||||
tt_int_op(rv, OP_EQ, 0);
|
tt_int_op(rv, OP_EQ, 0);
|
||||||
@ -1589,10 +1590,11 @@ test_options_validate__reachable_addresses(void *ignored)
|
|||||||
options_test_data_t *tdata = get_options_test_data(
|
options_test_data_t *tdata = get_options_test_data(
|
||||||
"FascistFirewall 1\n"
|
"FascistFirewall 1\n"
|
||||||
"MaxClientCircuitsPending 1\n"
|
"MaxClientCircuitsPending 1\n"
|
||||||
|
"KeepalivePeriod 1\n"
|
||||||
"ConnLimit 1\n");
|
"ConnLimit 1\n");
|
||||||
|
|
||||||
ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
|
ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
|
||||||
tt_int_op(ret, OP_EQ, -1);
|
tt_int_op(ret, OP_EQ, 0);
|
||||||
expect_log_msg("Converting FascistFirewall config "
|
expect_log_msg("Converting FascistFirewall config "
|
||||||
"option to new format: \"ReachableDirAddresses *:80\"\n");
|
"option to new format: \"ReachableDirAddresses *:80\"\n");
|
||||||
tt_str_op(tdata->opt->ReachableDirAddresses->value, OP_EQ, "*:80");
|
tt_str_op(tdata->opt->ReachableDirAddresses->value, OP_EQ, "*:80");
|
||||||
@ -1607,11 +1609,16 @@ test_options_validate__reachable_addresses(void *ignored)
|
|||||||
"ReachableDirAddresses *:81\n"
|
"ReachableDirAddresses *:81\n"
|
||||||
"ReachableORAddresses *:444\n"
|
"ReachableORAddresses *:444\n"
|
||||||
"MaxClientCircuitsPending 1\n"
|
"MaxClientCircuitsPending 1\n"
|
||||||
|
"KeepalivePeriod 1\n"
|
||||||
"ConnLimit 1\n");
|
"ConnLimit 1\n");
|
||||||
tdata->opt->FirewallPorts = smartlist_new();
|
tdata->opt->FirewallPorts = smartlist_new();
|
||||||
ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
|
ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
|
||||||
tt_int_op(ret, OP_EQ, -1);
|
tt_int_op(ret, OP_EQ, 0);
|
||||||
|
#if 0
|
||||||
|
/* This does not actually produce any logs, and did not produce any relevant
|
||||||
|
* logs before. */
|
||||||
expect_log_entry();
|
expect_log_entry();
|
||||||
|
#endif
|
||||||
tt_str_op(tdata->opt->ReachableDirAddresses->value, OP_EQ, "*:81");
|
tt_str_op(tdata->opt->ReachableDirAddresses->value, OP_EQ, "*:81");
|
||||||
tt_str_op(tdata->opt->ReachableORAddresses->value, OP_EQ, "*:444");
|
tt_str_op(tdata->opt->ReachableORAddresses->value, OP_EQ, "*:444");
|
||||||
tor_free(msg);
|
tor_free(msg);
|
||||||
@ -1621,10 +1628,11 @@ test_options_validate__reachable_addresses(void *ignored)
|
|||||||
tdata = get_options_test_data("FascistFirewall 1\n"
|
tdata = get_options_test_data("FascistFirewall 1\n"
|
||||||
"FirewallPort 123\n"
|
"FirewallPort 123\n"
|
||||||
"MaxClientCircuitsPending 1\n"
|
"MaxClientCircuitsPending 1\n"
|
||||||
|
"KeepalivePeriod 1\n"
|
||||||
"ConnLimit 1\n");
|
"ConnLimit 1\n");
|
||||||
|
|
||||||
ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
|
ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
|
||||||
tt_int_op(ret, OP_EQ, -1);
|
tt_int_op(ret, OP_EQ, 0);
|
||||||
expect_log_msg("Converting FascistFirewall and "
|
expect_log_msg("Converting FascistFirewall and "
|
||||||
"FirewallPorts config options to new format: "
|
"FirewallPorts config options to new format: "
|
||||||
"\"ReachableAddresses *:123\"\n");
|
"\"ReachableAddresses *:123\"\n");
|
||||||
@ -1638,11 +1646,16 @@ test_options_validate__reachable_addresses(void *ignored)
|
|||||||
"ReachableAddresses *:83\n"
|
"ReachableAddresses *:83\n"
|
||||||
"ReachableAddresses reject *:*\n"
|
"ReachableAddresses reject *:*\n"
|
||||||
"MaxClientCircuitsPending 1\n"
|
"MaxClientCircuitsPending 1\n"
|
||||||
|
"KeepalivePeriod 1\n"
|
||||||
"ConnLimit 1\n");
|
"ConnLimit 1\n");
|
||||||
|
|
||||||
ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
|
ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
|
||||||
tt_int_op(ret, OP_EQ, -1);
|
tt_int_op(ret, OP_EQ, 0);
|
||||||
|
#if 0
|
||||||
|
/* This does not actually produce any logs, and did not produce any relevant
|
||||||
|
* logs before. */
|
||||||
expect_log_entry();
|
expect_log_entry();
|
||||||
|
#endif
|
||||||
tt_str_op(tdata->opt->ReachableAddresses->value, OP_EQ, "*:82");
|
tt_str_op(tdata->opt->ReachableAddresses->value, OP_EQ, "*:82");
|
||||||
tor_free(msg);
|
tor_free(msg);
|
||||||
|
|
||||||
@ -1651,10 +1664,11 @@ test_options_validate__reachable_addresses(void *ignored)
|
|||||||
tdata = get_options_test_data("FascistFirewall 1\n"
|
tdata = get_options_test_data("FascistFirewall 1\n"
|
||||||
"ReachableAddresses *:82\n"
|
"ReachableAddresses *:82\n"
|
||||||
"MaxClientCircuitsPending 1\n"
|
"MaxClientCircuitsPending 1\n"
|
||||||
|
"KeepalivePeriod 1\n"
|
||||||
"ConnLimit 1\n");
|
"ConnLimit 1\n");
|
||||||
|
|
||||||
ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
|
ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
|
||||||
tt_int_op(ret, OP_EQ, -1);
|
tt_int_op(ret, OP_EQ, 0);
|
||||||
tt_ptr_op(tdata->opt->ReachableAddresses->next, OP_EQ, NULL);
|
tt_ptr_op(tdata->opt->ReachableAddresses->next, OP_EQ, NULL);
|
||||||
tor_free(msg);
|
tor_free(msg);
|
||||||
|
|
||||||
@ -1666,6 +1680,7 @@ test_options_validate__reachable_addresses(void *ignored)
|
|||||||
tdata = get_options_test_data("ReachableAddresses *:82\n"
|
tdata = get_options_test_data("ReachableAddresses *:82\n"
|
||||||
"ORPort 127.0.0.1:5555\n"
|
"ORPort 127.0.0.1:5555\n"
|
||||||
"MaxClientCircuitsPending 1\n"
|
"MaxClientCircuitsPending 1\n"
|
||||||
|
"KeepalivePeriod 1\n"
|
||||||
"ConnLimit 1\n");
|
"ConnLimit 1\n");
|
||||||
|
|
||||||
ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
|
ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
|
||||||
@ -1677,6 +1692,7 @@ test_options_validate__reachable_addresses(void *ignored)
|
|||||||
tdata = get_options_test_data("ReachableORAddresses *:82\n"
|
tdata = get_options_test_data("ReachableORAddresses *:82\n"
|
||||||
"ORPort 127.0.0.1:5555\n"
|
"ORPort 127.0.0.1:5555\n"
|
||||||
"MaxClientCircuitsPending 1\n"
|
"MaxClientCircuitsPending 1\n"
|
||||||
|
"KeepalivePeriod 1\n"
|
||||||
"ConnLimit 1\n");
|
"ConnLimit 1\n");
|
||||||
|
|
||||||
ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
|
ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
|
||||||
@ -1688,6 +1704,7 @@ test_options_validate__reachable_addresses(void *ignored)
|
|||||||
tdata = get_options_test_data("ReachableDirAddresses *:82\n"
|
tdata = get_options_test_data("ReachableDirAddresses *:82\n"
|
||||||
"ORPort 127.0.0.1:5555\n"
|
"ORPort 127.0.0.1:5555\n"
|
||||||
"MaxClientCircuitsPending 1\n"
|
"MaxClientCircuitsPending 1\n"
|
||||||
|
"KeepalivePeriod 1\n"
|
||||||
"ConnLimit 1\n");
|
"ConnLimit 1\n");
|
||||||
|
|
||||||
ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
|
ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
|
||||||
@ -1699,6 +1716,7 @@ test_options_validate__reachable_addresses(void *ignored)
|
|||||||
tdata = get_options_test_data("ClientUseIPv4 0\n"
|
tdata = get_options_test_data("ClientUseIPv4 0\n"
|
||||||
"ORPort 127.0.0.1:5555\n"
|
"ORPort 127.0.0.1:5555\n"
|
||||||
"MaxClientCircuitsPending 1\n"
|
"MaxClientCircuitsPending 1\n"
|
||||||
|
"KeepalivePeriod 1\n"
|
||||||
"ConnLimit 1\n");
|
"ConnLimit 1\n");
|
||||||
|
|
||||||
ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
|
ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
|
||||||
@ -1913,6 +1931,7 @@ test_options_validate__safe_logging(void *ignored)
|
|||||||
int ret;
|
int ret;
|
||||||
char *msg;
|
char *msg;
|
||||||
options_test_data_t *tdata = get_options_test_data(
|
options_test_data_t *tdata = get_options_test_data(
|
||||||
|
"SafeLogging 0\n"
|
||||||
"MaxClientCircuitsPending 1\n"
|
"MaxClientCircuitsPending 1\n"
|
||||||
"ConnLimit 1\n");
|
"ConnLimit 1\n");
|
||||||
|
|
||||||
@ -2420,6 +2439,7 @@ test_options_validate__circuits(void *ignored)
|
|||||||
free_options_test_data(tdata);
|
free_options_test_data(tdata);
|
||||||
mock_clean_saved_logs();
|
mock_clean_saved_logs();
|
||||||
tdata = get_options_test_data(TEST_OPTIONS_DEFAULT_VALUES
|
tdata = get_options_test_data(TEST_OPTIONS_DEFAULT_VALUES
|
||||||
|
"LearnCircuitBuildTimeout 0\n"
|
||||||
"CircuitBuildTimeout 1\n"
|
"CircuitBuildTimeout 1\n"
|
||||||
);
|
);
|
||||||
options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
|
options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
|
||||||
|
Loading…
Reference in New Issue
Block a user