diff options
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/test_channelpadding.c | 38 | ||||
-rw-r--r-- | src/test/testing_common.c | 3 |
2 files changed, 41 insertions, 0 deletions
diff --git a/src/test/test_channelpadding.c b/src/test/test_channelpadding.c index b6591eac7b..de88bb21bd 100644 --- a/src/test/test_channelpadding.c +++ b/src/test/test_channelpadding.c @@ -359,6 +359,7 @@ test_channelpadding_consensus(void *arg) * consensus defaults * 4. Relay-to-relay padding can be enabled/disabled in consensus * 5. Can enable/disable padding before actually using a connection + * 6. Can we control circ and TLS conn lifetime from the consensus? */ channel_t *chan; routerstatus_t *relay = tor_malloc_zero(sizeof(routerstatus_t)); @@ -491,6 +492,43 @@ test_channelpadding_consensus(void *arg) tt_int_op(decision, OP_EQ, CHANNELPADDING_WONTPAD); tt_assert(!chan->pending_padding_callback); + /* Test 6: Can we control circ and TLS conn lifetime from the consensus? */ + val = channelpadding_get_channel_idle_timeout(NULL, 0); + tt_int_op(val, OP_GE, 180); + tt_int_op(val, OP_LE, 180+90); + val = channelpadding_get_channel_idle_timeout(chan, 0); + tt_int_op(val, OP_GE, 180); + tt_int_op(val, OP_LE, 180+90); + options->ReducedConnectionPadding = 1; + val = channelpadding_get_channel_idle_timeout(chan, 0); + tt_int_op(val, OP_GE, 180/2); + tt_int_op(val, OP_LE, (180+90)/2); + + options->ReducedConnectionPadding = 0; + options->ORPort_set = 1; + smartlist_add(current_md_consensus->net_params, + (void*)"nf_conntimeout_relays=600"); + val = channelpadding_get_channel_idle_timeout(chan, 1); + tt_int_op(val, OP_GE, 450); + tt_int_op(val, OP_LE, 750); + + val = channelpadding_get_circuits_available_timeout(); + tt_int_op(val, OP_GE, 30*60); + tt_int_op(val, OP_LE, 30*60*2); + + options->ReducedConnectionPadding = 1; + smartlist_add(current_md_consensus->net_params, + (void*)"nf_conntimeout_clients=600"); + val = channelpadding_get_circuits_available_timeout(); + tt_int_op(val, OP_GE, 600/2); + tt_int_op(val, OP_LE, 600*2/2); + + options->ReducedConnectionPadding = 0; + options->CircuitsAvailableTimeout = 24*60*60; + val = channelpadding_get_circuits_available_timeout(); + tt_int_op(val, OP_GE, 24*60*60); + tt_int_op(val, OP_LE, 24*60*60*2); + done: free_fake_channeltls((channel_tls_t*)chan); smartlist_free(connection_array); diff --git a/src/test/testing_common.c b/src/test/testing_common.c index caeae13a38..43cf0aa508 100644 --- a/src/test/testing_common.c +++ b/src/test/testing_common.c @@ -304,10 +304,13 @@ main(int c, const char **v) tor_free(errmsg); return 1; } + tor_set_failed_assertion_callback(an_assertion_failed); init_pregenerated_keys(); + predicted_ports_init(); + atexit(remove_directory); int have_failed = (tinytest_main(c, v, testgroups) != 0); |