[tor-commits] [tor/master] test/circuitpadding: Delete circuitpadding_circuitsetup_machine()

asn at torproject.org asn at torproject.org
Fri Apr 5 13:46:52 UTC 2019


commit 387d9448de4c5044800706b4ed21b48b4426cb7e
Author: teor <teor at torproject.org>
Date:   Tue Apr 2 19:56:38 2019 +1000

    test/circuitpadding: Delete circuitpadding_circuitsetup_machine()
    
    This test was disabled in 0.4.0 and later, but the fix in #29298 was only
    merged to 0.4.1. So this test will never be re-enabled in 0.4.0.
    
    Part of 29500.
---
 src/test/test_circuitpadding.c | 253 -----------------------------------------
 1 file changed, 253 deletions(-)

diff --git a/src/test/test_circuitpadding.c b/src/test/test_circuitpadding.c
index 6272c0c2a..ed048ab96 100644
--- a/src/test/test_circuitpadding.c
+++ b/src/test/test_circuitpadding.c
@@ -1824,257 +1824,6 @@ test_circuitpadding_conditions(void *arg)
   return;
 }
 
-/** Disabled unstable test until #29298 is implemented (see #29122) */
-#if 0
-void
-test_circuitpadding_circuitsetup_machine(void *arg)
-{
-  int64_t actual_mocked_monotime_start;
-  /**
-   * Test case plan:
-   *
-   * 1. Simulate a normal circuit setup pattern
-   *    a. Application traffic
-   *
-   * FIXME: This should focus more on exercising the machine
-   * features rather than actual traffic patterns. For example,
-   * test cancellation and bins empty/refill
-   */
-  (void)arg;
-
-  MOCK(circuitmux_attach_circuit, circuitmux_attach_circuit_mock);
-
-  dummy_channel.cmux = circuitmux_alloc();
-  client_side = TO_CIRCUIT(origin_circuit_new());
-  relay_side = TO_CIRCUIT(new_fake_orcirc(&dummy_channel, &dummy_channel));
-
-  relay_side->purpose = CIRCUIT_PURPOSE_OR;
-  client_side->purpose = CIRCUIT_PURPOSE_C_GENERAL;
-
-  nodes_init();
-
-  monotime_init();
-  monotime_enable_test_mocking();
-  actual_mocked_monotime_start = MONOTIME_MOCK_START;
-  monotime_set_mock_time_nsec(actual_mocked_monotime_start);
-  monotime_coarse_set_mock_time_nsec(actual_mocked_monotime_start);
-  curr_mocked_time = actual_mocked_monotime_start;
-
-  timers_initialize();
-  circpad_machines_init();
-
-  MOCK(circuit_package_relay_cell,
-       circuit_package_relay_cell_mock);
-  MOCK(node_get_by_id,
-       node_get_by_id_mock);
-
-  /* Test case #1: Build a 3 hop circuit, then wait and let pad */
-  simulate_single_hop_extend(client_side, relay_side, 1);
-  simulate_single_hop_extend(client_side, relay_side, 1);
-  simulate_single_hop_extend(client_side, relay_side, 1);
-
-  tt_int_op(n_client_cells, OP_EQ, 1);
-  tt_int_op(n_relay_cells, OP_EQ, 1);
-  tt_int_op(client_side->padding_info[0]->current_state, OP_EQ,
-                CIRCPAD_STATE_BURST);
-  tt_int_op(relay_side->padding_info[0]->current_state, OP_EQ,
-          CIRCPAD_STATE_BURST);
-
-  tt_u64_op(client_side->padding_info[0]->padding_scheduled_at_usec,
-            OP_NE, 0);
-  tt_int_op(relay_side->padding_info[0]->is_padding_timer_scheduled,
-            OP_EQ, 0);
-  timers_advance_and_run(2000);
-  tt_int_op(n_client_cells, OP_EQ, 2);
-  tt_int_op(n_relay_cells, OP_EQ, 1);
-
-  tt_int_op(relay_side->padding_info[0]->current_state, OP_EQ,
-              CIRCPAD_STATE_GAP);
-
-  tt_u64_op(client_side->padding_info[0]->padding_scheduled_at_usec,
-            OP_EQ, 0);
-  tt_u64_op(relay_side->padding_info[0]->padding_scheduled_at_usec,
-            OP_NE, 0);
-  timers_advance_and_run(5000);
-  tt_int_op(n_client_cells, OP_EQ, 2);
-  tt_int_op(n_relay_cells, OP_EQ, 2);
-
-  tt_u64_op(client_side->padding_info[0]->padding_scheduled_at_usec,
-            OP_NE, 0);
-  tt_u64_op(relay_side->padding_info[0]->padding_scheduled_at_usec,
-            OP_EQ, 0);
-  timers_advance_and_run(2000);
-  tt_int_op(n_client_cells, OP_EQ, 3);
-  tt_int_op(n_relay_cells, OP_EQ, 2);
-
-  tt_u64_op(client_side->padding_info[0]->padding_scheduled_at_usec,
-            OP_EQ, 0);
-  tt_u64_op(relay_side->padding_info[0]->padding_scheduled_at_usec,
-            OP_NE, 0);
-  timers_advance_and_run(5000);
-  tt_int_op(n_client_cells, OP_EQ, 3);
-  tt_int_op(n_relay_cells, OP_EQ, 3);
-
-  tt_u64_op(client_side->padding_info[0]->padding_scheduled_at_usec,
-            OP_NE, 0);
-  tt_u64_op(relay_side->padding_info[0]->padding_scheduled_at_usec,
-            OP_EQ, 0);
-  timers_advance_and_run(2000);
-  tt_int_op(n_client_cells, OP_EQ, 4);
-  tt_int_op(n_relay_cells, OP_EQ, 3);
-
-  tt_u64_op(client_side->padding_info[0]->padding_scheduled_at_usec,
-            OP_EQ, 0);
-  tt_u64_op(relay_side->padding_info[0]->padding_scheduled_at_usec,
-            OP_NE, 0);
-  timers_advance_and_run(5000);
-  tt_int_op(n_client_cells, OP_EQ, 4);
-  tt_int_op(n_relay_cells, OP_EQ, 4);
-
-  tt_u64_op(client_side->padding_info[0]->padding_scheduled_at_usec,
-            OP_NE, 0);
-  tt_u64_op(relay_side->padding_info[0]->padding_scheduled_at_usec,
-            OP_EQ, 0);
-  timers_advance_and_run(2000);
-  tt_int_op(n_client_cells, OP_EQ, 5);
-  tt_int_op(n_relay_cells, OP_EQ, 4);
-
-  tt_u64_op(client_side->padding_info[0]->padding_scheduled_at_usec,
-            OP_EQ, 0);
-  tt_u64_op(relay_side->padding_info[0]->padding_scheduled_at_usec,
-            OP_NE, 0);
-  timers_advance_and_run(5000);
-  tt_int_op(n_client_cells, OP_EQ, 5);
-  tt_int_op(n_relay_cells, OP_EQ, 5);
-
-  tt_u64_op(client_side->padding_info[0]->padding_scheduled_at_usec,
-            OP_NE, 0);
-  tt_u64_op(relay_side->padding_info[0]->padding_scheduled_at_usec,
-            OP_EQ, 0);
-  timers_advance_and_run(2000);
-  tt_int_op(n_client_cells, OP_EQ, 6);
-  tt_int_op(n_relay_cells, OP_EQ, 5);
-
-  tt_u64_op(client_side->padding_info[0]->padding_scheduled_at_usec,
-            OP_EQ, 0);
-  tt_u64_op(relay_side->padding_info[0]->padding_scheduled_at_usec,
-            OP_NE, 0);
-  timers_advance_and_run(5000);
-  tt_int_op(n_client_cells, OP_EQ, 6);
-  tt_int_op(n_relay_cells, OP_EQ, 6);
-
-  tt_int_op(client_side->padding_info[0]->current_state,
-            OP_EQ, CIRCPAD_STATE_END);
-  tt_u64_op(client_side->padding_info[0]->padding_scheduled_at_usec,
-            OP_EQ, 0);
-  tt_int_op(relay_side->padding_info[0]->current_state,
-            OP_EQ, CIRCPAD_STATE_GAP);
-  tt_u64_op(relay_side->padding_info[0]->padding_scheduled_at_usec,
-            OP_EQ, 0);
-
-  /* Verify we can't schedule padding in END state */
-  circpad_decision_t ret =
-      circpad_machine_schedule_padding(client_side->padding_info[0]);
-  tt_int_op(ret, OP_EQ, CIRCPAD_STATE_UNCHANGED);
-
-  /* Simulate application traffic */
-  circpad_cell_event_nonpadding_sent(client_side);
-  circpad_deliver_unrecognized_cell_events(relay_side, CELL_DIRECTION_OUT);
-  circpad_deliver_unrecognized_cell_events(relay_side, CELL_DIRECTION_IN);
-  circpad_deliver_recognized_relay_cell_events(client_side, RELAY_COMMAND_DATA,
-                                  TO_ORIGIN_CIRCUIT(client_side)->cpath->next);
-
-  tt_ptr_op(client_side->padding_info[0], OP_EQ, NULL);
-  tt_ptr_op(client_side->padding_machine[0], OP_EQ, NULL);
-
-  tt_ptr_op(relay_side->padding_info[0], OP_EQ, NULL);
-  tt_ptr_op(relay_side->padding_machine[0], OP_EQ, NULL);
-  tt_int_op(n_client_cells, OP_EQ, 6);
-  tt_int_op(n_relay_cells, OP_EQ, 7);
-
-  // Test timer cancellation
-  simulate_single_hop_extend(client_side, relay_side, 1);
-  simulate_single_hop_extend(client_side, relay_side, 1);
-  timers_advance_and_run(5000);
-  circpad_cell_event_padding_received(client_side);
-
-  tt_int_op(client_side->padding_info[0]->current_state, OP_EQ,
-                CIRCPAD_STATE_BURST);
-  tt_int_op(relay_side->padding_info[0]->current_state, OP_EQ,
-          CIRCPAD_STATE_GAP);
-
-  tt_int_op(n_client_cells, OP_EQ, 8);
-  tt_int_op(n_relay_cells, OP_EQ, 8);
-  tt_u64_op(client_side->padding_info[0]->padding_scheduled_at_usec,
-            OP_NE, 0);
-  tt_u64_op(relay_side->padding_info[0]->padding_scheduled_at_usec,
-            OP_NE, 0);
-
-  /* Test timer cancel due to state rules */
-  circpad_cell_event_nonpadding_sent(client_side);
-  tt_u64_op(client_side->padding_info[0]->padding_scheduled_at_usec,
-            OP_EQ, 0);
-  circpad_cell_event_padding_received(client_side);
-  tt_u64_op(client_side->padding_info[0]->padding_scheduled_at_usec,
-            OP_NE, 0);
-
-  /* Simulate application traffic to cancel timer */
-  circpad_cell_event_nonpadding_sent(client_side);
-  circpad_deliver_unrecognized_cell_events(relay_side, CELL_DIRECTION_OUT);
-  circpad_deliver_unrecognized_cell_events(relay_side, CELL_DIRECTION_IN);
-  circpad_deliver_recognized_relay_cell_events(client_side, RELAY_COMMAND_DATA,
-                                  TO_ORIGIN_CIRCUIT(client_side)->cpath->next);
-
-  tt_ptr_op(client_side->padding_info[0], OP_EQ, NULL);
-  tt_ptr_op(client_side->padding_machine[0], OP_EQ, NULL);
-
-  tt_ptr_op(relay_side->padding_info[0], OP_EQ, NULL);
-  tt_ptr_op(relay_side->padding_machine[0], OP_EQ, NULL);
-
-  /* No cells sent, except negotiate end from relay */
-  tt_int_op(n_client_cells, OP_EQ, 8);
-  tt_int_op(n_relay_cells, OP_EQ, 9);
-
-  /* Test mark for close and free */
-  simulate_single_hop_extend(client_side, relay_side, 1);
-  simulate_single_hop_extend(client_side, relay_side, 1);
-  timers_advance_and_run(5000);
-  circpad_cell_event_padding_received(client_side);
-
-  tt_int_op(n_client_cells, OP_EQ, 10);
-  tt_int_op(n_relay_cells, OP_EQ, 10);
-
-  tt_int_op(client_side->padding_info[0]->current_state, OP_EQ,
-                CIRCPAD_STATE_BURST);
-  tt_int_op(relay_side->padding_info[0]->current_state, OP_EQ,
-          CIRCPAD_STATE_GAP);
-
-  tt_u64_op(client_side->padding_info[0]->padding_scheduled_at_usec,
-            OP_NE, 0);
-  tt_u64_op(relay_side->padding_info[0]->padding_scheduled_at_usec,
-            OP_NE, 0);
-  circuit_mark_for_close(client_side, END_CIRC_REASON_FLAG_REMOTE);
-  free_fake_orcirc(relay_side);
-  timers_advance_and_run(5000);
-
-  /* No cells sent */
-  tt_int_op(n_client_cells, OP_EQ, 10);
-  tt_int_op(n_relay_cells, OP_EQ, 10);
-
- done:
-  free_fake_origin_circuit(TO_ORIGIN_CIRCUIT(client_side));
-
-  circuitmux_detach_all_circuits(dummy_channel.cmux, NULL);
-  circuitmux_free(dummy_channel.cmux);
-  timers_shutdown();
-  monotime_disable_test_mocking();
-  UNMOCK(circuit_package_relay_cell);
-  UNMOCK(circuitmux_attach_circuit);
-
-  return;
-}
-#endif
-
 /** Helper function: Initializes a padding machine where every state uses the
  *  uniform probability distribution.  */
 static void
@@ -2365,8 +2114,6 @@ struct testcase_t circuitpadding_tests[] = {
   TEST_CIRCUITPADDING(circuitpadding_tokens, TT_FORK),
   TEST_CIRCUITPADDING(circuitpadding_negotiation, TT_FORK),
   TEST_CIRCUITPADDING(circuitpadding_wronghop, TT_FORK),
-  /** Disabled unstable test until #29298 is implemented (see #29122) */
-  //  TEST_CIRCUITPADDING(circuitpadding_circuitsetup_machine, TT_FORK),
   TEST_CIRCUITPADDING(circuitpadding_conditions, TT_FORK),
   TEST_CIRCUITPADDING(circuitpadding_rtt, TT_FORK),
   TEST_CIRCUITPADDING(circuitpadding_sample_distribution, TT_FORK),





More information about the tor-commits mailing list