[tor-commits] [tor/master] Fix a failing unit test.

nickm at torproject.org nickm at torproject.org
Wed Jan 31 19:34:28 UTC 2018


commit 3d937043c2961923f9c28152615dc591997328f0
Author: Nick Mathewson <nickm at torproject.org>
Date:   Wed Jan 31 14:06:37 2018 -0500

    Fix a failing unit test.
    
    When we stopped looking at the "protocols" variable directly, we
    broke the hs_service/build_update_descriptors test, since it didn't
    actually update any of the flags.
    
    The fix here is to call summarize_protover_flags() from that test,
    and to expose summarize_protover_flags() as "STATIC" from
    routerparse.c.
---
 src/or/routerparse.c       | 6 +-----
 src/or/routerparse.h       | 4 ++++
 src/test/test_hs_service.c | 3 +++
 3 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/src/or/routerparse.c b/src/or/routerparse.c
index fc071b11d..1b79a6fe2 100644
--- a/src/or/routerparse.c
+++ b/src/or/routerparse.c
@@ -379,10 +379,6 @@ static int check_signature_token(const char *digest,
                                  int flags,
                                  const char *doctype);
 
-static void summarize_protover_flags(protover_summary_flags_t *out,
-                                     const char *protocols,
-                                     const char *version);
-
 #undef DEBUG_AREA_ALLOC
 
 #ifdef DEBUG_AREA_ALLOC
@@ -2544,7 +2540,7 @@ routerstatus_parse_guardfraction(const char *guardfraction_str,
 /** Summarize the protocols listed in <b>protocols</b> into <b>out</b>,
  * falling back or correcting them based on <b>version</b> as appropriate.
  */
-static void
+STATIC void
 summarize_protover_flags(protover_summary_flags_t *out,
                          const char *protocols,
                          const char *version)
diff --git a/src/or/routerparse.h b/src/or/routerparse.h
index c4c8635f4..418fd3acd 100644
--- a/src/or/routerparse.h
+++ b/src/or/routerparse.h
@@ -133,6 +133,10 @@ MOCK_DECL(STATIC int, router_compute_hash_final,(char *digest,
                            digest_algorithm_t alg));
 MOCK_DECL(STATIC int, signed_digest_equals,
           (const uint8_t *d1, const uint8_t *d2, size_t len));
+
+STATIC void summarize_protover_flags(protover_summary_flags_t *out,
+                                     const char *protocols,
+                                     const char *version);
 #endif /* defined(ROUTERPARSE_PRIVATE) */
 
 #define ED_DESC_SIGNATURE_PREFIX "Tor router descriptor signature v1"
diff --git a/src/test/test_hs_service.c b/src/test/test_hs_service.c
index 3e3a7d8e0..fad65e61f 100644
--- a/src/test/test_hs_service.c
+++ b/src/test/test_hs_service.c
@@ -20,6 +20,7 @@
 #define STATEFILE_PRIVATE
 #define TOR_CHANNEL_INTERNAL_
 #define HS_CLIENT_PRIVATE
+#define ROUTERPARSE_PRIVATE
 
 #include "test.h"
 #include "test_helpers.h"
@@ -37,6 +38,7 @@
 #include "networkstatus.h"
 #include "nodelist.h"
 #include "relay.h"
+#include "routerparse.h"
 
 #include "hs_common.h"
 #include "hs_config.h"
@@ -1210,6 +1212,7 @@ test_build_update_descriptors(void *arg)
     /* Ugly yes but we never free the "ri" object so this just makes things
      * easier. */
     ri.protocol_list = (char *) "HSDir=1-2 LinkAuth=3";
+    summarize_protover_flags(&ri.pv, ri.protocol_list, NULL);
     ret = curve25519_secret_key_generate(&curve25519_secret_key, 0);
     tt_int_op(ret, OP_EQ, 0);
     ri.onion_curve25519_pkey =





More information about the tor-commits mailing list