]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
prop224 tests: Improve SRV protocol tests.
authorGeorge Kadianakis <desnacked@riseup.net>
Sat, 5 Aug 2017 20:11:37 +0000 (23:11 +0300)
committerNick Mathewson <nickm@torproject.org>
Wed, 9 Aug 2017 00:29:35 +0000 (20:29 -0400)
src/or/shared_random_state.c
src/or/shared_random_state.h
src/test/test_shared_random.c

index 7f8094dafd26ec38ac0879d183aeb166d0b0fc3b..cbf58e95f4ece8a641a610c8bb7936601425534e 100644 (file)
@@ -133,7 +133,7 @@ get_voting_interval(void)
 /* Given the time <b>now</b>, return the start time of the current round of
  * the SR protocol. For example, if it's 23:47:08, the current round thus
  * started at 23:47:00 for a voting interval of 10 seconds. */
-static time_t
+STATIC time_t
 get_start_time_of_current_round(time_t now)
 {
   const or_options_t *options = get_options();
index 03dd5eb37e85905b5bb71605ef20ed964ce737c6..837fa75392779e9fe21cc495ddabaec0e1df4550 100644 (file)
@@ -130,6 +130,7 @@ unsigned int sr_state_get_protocol_run_duration(void);
 STATIC int disk_state_load_from_disk_impl(const char *fname);
 
 STATIC sr_phase_t get_sr_protocol_phase(time_t valid_after);
+STATIC time_t get_start_time_of_current_round(time_t now);
 
 STATIC time_t get_state_valid_until_time(time_t now);
 STATIC const char *get_phase_str(sr_phase_t phase);
index ea037d417b5adb88a0a22b39fa5ba74131ba6a1a..bee0ea0a321986ff7c7350bcf1caac904f6fe80c 100644 (file)
@@ -260,6 +260,30 @@ test_get_start_time_of_current_run(void *arg)
   ;
 }
 
+/** Do some rudimentary consistency checks between the functions that
+ *  understand the shared random protocol schedule */
+static void
+test_get_start_time_functions(void *arg)
+{
+  (void) arg;
+  time_t now = approx_time();
+
+  time_t start_time_of_protocol_run =
+    sr_state_get_start_time_of_current_protocol_run(now);
+  tt_assert(start_time_of_protocol_run);
+
+  /* Check that the round start time of the beginning of the run, is itself */
+  tt_int_op(get_start_time_of_current_round(start_time_of_protocol_run), OP_EQ,
+            start_time_of_protocol_run);
+
+  /* Check that even if we increment the start time, we still get the start
+     time of the run as the beginning of the round. */
+  tt_int_op(get_start_time_of_current_round(start_time_of_protocol_run+1),
+            OP_EQ, start_time_of_protocol_run);
+
+ done: ;
+}
+
 static void
 test_get_sr_protocol_duration(void *arg)
 {
@@ -1364,6 +1388,8 @@ struct testcase_t sr_tests[] = {
     NULL, NULL },
   { "get_start_time_of_current_run", test_get_start_time_of_current_run,
     TT_FORK, NULL, NULL },
+  { "get_start_time_functions", test_get_start_time_functions,
+    TT_FORK, NULL, NULL },
   { "get_sr_protocol_duration", test_get_sr_protocol_duration, TT_FORK,
     NULL, NULL },
   { "get_state_valid_until_time", test_get_state_valid_until_time, TT_FORK,