[tor-commits] [tor/master] Expose GETINFO download status statics for test suite and make things mockable

nickm at torproject.org nickm at torproject.org
Thu Jun 30 17:43:09 UTC 2016


commit 657eaee6ae640d5abffc760bed14b5d31ad1ea73
Author: Andrea Shepard <andrea at torproject.org>
Date:   Tue Jun 28 21:30:57 2016 +0000

    Expose GETINFO download status statics for test suite and make things mockable
---
 src/or/control.c       | 10 +++++-----
 src/or/control.h       | 25 +++++++++++++++++++++++++
 src/or/entrynodes.c    |  8 ++++----
 src/or/entrynodes.h    |  5 +++--
 src/or/networkstatus.c | 16 ++++++++--------
 src/or/networkstatus.h | 17 ++++++++++-------
 src/or/routerlist.c    | 18 +++++++++---------
 src/or/routerlist.h    | 14 +++++++-------
 8 files changed, 71 insertions(+), 42 deletions(-)

diff --git a/src/or/control.c b/src/or/control.c
index 77a09f0..f127090 100644
--- a/src/or/control.c
+++ b/src/or/control.c
@@ -2179,7 +2179,7 @@ download_status_to_string(const download_status_t *dl)
 }
 
 /** Handle the consensus download cases for getinfo_helper_downloads() */
-static void
+STATIC void
 getinfo_helper_downloads_networkstatus(const char *flavor,
                                        download_status_t **dl_to_emit,
                                        const char **errmsg)
@@ -2208,7 +2208,7 @@ getinfo_helper_downloads_networkstatus(const char *flavor,
 }
 
 /** Handle the cert download cases for getinfo_helper_downloads() */
-static void
+STATIC void
 getinfo_helper_downloads_cert(const char *fp_sk_req,
                               download_status_t **dl_to_emit,
                               smartlist_t **digest_list,
@@ -2308,7 +2308,7 @@ getinfo_helper_downloads_cert(const char *fp_sk_req,
 }
 
 /** Handle the routerdesc download cases for getinfo_helper_downloads() */
-static void
+STATIC void
 getinfo_helper_downloads_desc(const char *desc_req,
                               download_status_t **dl_to_emit,
                               smartlist_t **digest_list,
@@ -2354,7 +2354,7 @@ getinfo_helper_downloads_desc(const char *desc_req,
 }
 
 /** Handle the bridge download cases for getinfo_helper_downloads() */
-static void
+STATIC void
 getinfo_helper_downloads_bridge(const char *bridge_req,
                                 download_status_t **dl_to_emit,
                                 smartlist_t **digest_list,
@@ -2397,7 +2397,7 @@ getinfo_helper_downloads_bridge(const char *bridge_req,
 
 /** Implementation helper for GETINFO: knows the answers for questions about
  * download status information. */
-static int
+STATIC int
 getinfo_helper_downloads(control_connection_t *control_conn,
                    const char *question, char **answer,
                    const char **errmsg)
diff --git a/src/or/control.h b/src/or/control.h
index b3902e6..6330c85 100644
--- a/src/or/control.h
+++ b/src/or/control.h
@@ -261,6 +261,31 @@ STATIC crypto_pk_t *add_onion_helper_keyarg(const char *arg, int discard_pk,
                                             char **err_msg_out);
 STATIC rend_authorized_client_t *
 add_onion_helper_clientauth(const char *arg, int *created, char **err_msg_out);
+
+STATIC void getinfo_helper_downloads_networkstatus(
+    const char *flavor,
+    download_status_t **dl_to_emit,
+    const char **errmsg);
+STATIC void getinfo_helper_downloads_cert(
+    const char *fp_sk_req,
+    download_status_t **dl_to_emit,
+    smartlist_t **digest_list,
+    const char **errmsg);
+STATIC void getinfo_helper_downloads_desc(
+    const char *desc_req,
+    download_status_t **dl_to_emit,
+    smartlist_t **digest_list,
+    const char **errmsg);
+STATIC void getinfo_helper_downloads_bridge(
+    const char *bridge_req,
+    download_status_t **dl_to_emit,
+    smartlist_t **digest_list,
+    const char **errmsg);
+STATIC int getinfo_helper_downloads(
+    control_connection_t *control_conn,
+    const char *question, char **answer,
+    const char **errmsg);
+
 #endif
 
 #endif
diff --git a/src/or/entrynodes.c b/src/or/entrynodes.c
index 72ac6e7..17507fe 100644
--- a/src/or/entrynodes.c
+++ b/src/or/entrynodes.c
@@ -2425,8 +2425,8 @@ num_bridges_usable(void)
 }
 
 /** Return a smartlist containing all bridge identity digests */
-smartlist_t *
-list_bridge_identities(void)
+MOCK_IMPL(smartlist_t *,
+list_bridge_identities, (void))
 {
   smartlist_t *result = NULL;
   char *digest_tmp;
@@ -2445,8 +2445,8 @@ list_bridge_identities(void)
 }
 
 /** Get the download status for a bridge descriptor given its identity */
-download_status_t *
-get_bridge_dl_status_by_id(const char *digest)
+MOCK_IMPL(download_status_t *,
+get_bridge_dl_status_by_id, (const char *digest))
 {
   download_status_t *dl = NULL;
 
diff --git a/src/or/entrynodes.h b/src/or/entrynodes.h
index 285367d..1021e67 100644
--- a/src/or/entrynodes.h
+++ b/src/or/entrynodes.h
@@ -179,8 +179,9 @@ guard_get_guardfraction_bandwidth(guardfraction_bandwidth_t *guardfraction_bw,
                                   int orig_bandwidth,
                                   uint32_t guardfraction_percentage);
 
-smartlist_t * list_bridge_identities(void);
-download_status_t * get_bridge_dl_status_by_id(const char *digest);
+MOCK_DECL(smartlist_t *, list_bridge_identities, (void));
+MOCK_DECL(download_status_t *, get_bridge_dl_status_by_id,
+          (const char *digest));
 
 #endif
 
diff --git a/src/or/networkstatus.c b/src/or/networkstatus.c
index a582b85..9968047 100644
--- a/src/or/networkstatus.c
+++ b/src/or/networkstatus.c
@@ -683,8 +683,8 @@ router_get_descriptor_digests_in_consensus(networkstatus_t *consensus)
 
 /** Return a smartlist of all router descriptor digests in the current
  * consensus */
-smartlist_t *
-router_get_descriptor_digests(void)
+MOCK_IMPL(smartlist_t *,
+router_get_descriptor_digests,(void))
 {
   smartlist_t *result = NULL;
 
@@ -1219,8 +1219,8 @@ consensus_is_waiting_for_certs(void)
 /** Look up the currently active (depending on bootstrap status) download
  * status for this consensus flavor and return a pointer to it.
  */
-download_status_t *
-networkstatus_get_dl_status_by_flavor(consensus_flavor_t flavor)
+MOCK_IMPL(download_status_t *,
+networkstatus_get_dl_status_by_flavor,(consensus_flavor_t flavor))
 {
   download_status_t *dl = NULL;
   const int we_are_bootstrapping =
@@ -1236,8 +1236,8 @@ networkstatus_get_dl_status_by_flavor(consensus_flavor_t flavor)
 
 /** Look up the bootstrap download status for this consensus flavor
  * and return a pointer to it. */
-download_status_t *
-networkstatus_get_dl_status_by_flavor_bootstrap(consensus_flavor_t flavor)
+MOCK_IMPL(download_status_t *,
+networkstatus_get_dl_status_by_flavor_bootstrap,(consensus_flavor_t flavor))
 {
   download_status_t *dl = NULL;
 
@@ -1250,8 +1250,8 @@ networkstatus_get_dl_status_by_flavor_bootstrap(consensus_flavor_t flavor)
 
 /** Look up the running (non-bootstrap) download status for this consensus
  * flavor and return a pointer to it. */
-download_status_t *
-networkstatus_get_dl_status_by_flavor_running(consensus_flavor_t flavor)
+MOCK_IMPL(download_status_t *,
+networkstatus_get_dl_status_by_flavor_running,(consensus_flavor_t flavor))
 {
   download_status_t *dl = NULL;
 
diff --git a/src/or/networkstatus.h b/src/or/networkstatus.h
index 6d5d05a..65923b6 100644
--- a/src/or/networkstatus.h
+++ b/src/or/networkstatus.h
@@ -38,14 +38,17 @@ routerstatus_t *networkstatus_vote_find_mutable_entry(networkstatus_t *ns,
 int networkstatus_vote_find_entry_idx(networkstatus_t *ns,
                                       const char *digest, int *found_out);
 
-download_status_t * networkstatus_get_dl_status_by_flavor(
-                                            consensus_flavor_t flavor);
-download_status_t * networkstatus_get_dl_status_by_flavor_bootstrap(
-                                            consensus_flavor_t flavor);
-download_status_t * networkstatus_get_dl_status_by_flavor_running(
-                                            consensus_flavor_t flavor);
+MOCK_DECL(download_status_t *,
+  networkstatus_get_dl_status_by_flavor,
+  (consensus_flavor_t flavor));
+MOCK_DECL(download_status_t *,
+  networkstatus_get_dl_status_by_flavor_bootstrap,
+  (consensus_flavor_t flavor));
+MOCK_DECL(download_status_t *,
+  networkstatus_get_dl_status_by_flavor_running,
+  (consensus_flavor_t flavor));
 
-smartlist_t * router_get_descriptor_digests(void);
+MOCK_DECL(smartlist_t *, router_get_descriptor_digests, (void));
 MOCK_DECL(download_status_t *,router_get_dl_status_by_descriptor_digest,
           (const char *d));
 
diff --git a/src/or/routerlist.c b/src/or/routerlist.c
index 6bd494b..0a28ede 100644
--- a/src/or/routerlist.c
+++ b/src/or/routerlist.c
@@ -257,8 +257,8 @@ get_cert_list(const char *id_digest)
  * of download_status_t objects; used by controller GETINFO queries.
  */
 
-smartlist_t *
-list_authority_ids_with_downloads(void)
+MOCK_IMPL(smartlist_t *,
+list_authority_ids_with_downloads, (void))
 {
   smartlist_t *ids = smartlist_new();
   digestmap_iter_t *i;
@@ -288,8 +288,8 @@ list_authority_ids_with_downloads(void)
 /** Given an authority ID digest, return a pointer to the default download
  * status, or NULL if there is no such entry in trusted_dir_certs */
 
-download_status_t *
-id_only_download_status_for_authority_id(const char *digest)
+MOCK_IMPL(download_status_t *,
+id_only_download_status_for_authority_id, (const char *digest))
 {
   download_status_t *dl = NULL;
   cert_list_t *cl;
@@ -308,8 +308,8 @@ id_only_download_status_for_authority_id(const char *digest)
  * for which download_status_t is potentially queryable, or NULL if no such
  * authority ID digest is known. */
 
-smartlist_t *
-list_sk_digests_for_authority_id(const char *digest)
+MOCK_IMPL(smartlist_t *,
+list_sk_digests_for_authority_id, (const char *digest))
 {
   smartlist_t *sks = NULL;
   cert_list_t *cl;
@@ -342,9 +342,9 @@ list_sk_digests_for_authority_id(const char *digest)
 /** Given an authority ID digest and a signing key digest, return the
  * download_status_t or NULL if none exists. */
 
-download_status_t *
-download_status_for_authority_id_and_sk(const char *id_digest,
-                                        const char *sk_digest)
+MOCK_IMPL(download_status_t *,
+  download_status_for_authority_id_and_sk,
+  (const char *id_digest, const char *sk_digest))
 {
   download_status_t *dl = NULL;
   cert_list_t *cl = NULL;
diff --git a/src/or/routerlist.h b/src/or/routerlist.h
index 65ba88d..e75c922 100644
--- a/src/or/routerlist.h
+++ b/src/or/routerlist.h
@@ -104,13 +104,13 @@ void routerlist_remove(routerlist_t *rl, routerinfo_t *ri, int make_old,
 void routerlist_free_all(void);
 void routerlist_reset_warnings(void);
 
-smartlist_t * list_authority_ids_with_downloads(void);
-download_status_t * id_only_download_status_for_authority_id(
-                                                    const char *digest);
-smartlist_t * list_sk_digests_for_authority_id(const char *digest);
-download_status_t * download_status_for_authority_id_and_sk(
-                                                    const char *id_digest,
-                                                    const char *sk_digest);
+MOCK_DECL(smartlist_t *, list_authority_ids_with_downloads, (void);)
+MOCK_DECL(download_status_t *, id_only_download_status_for_authority_id,
+          (const char *digest));
+MOCK_DECL(smartlist_t *, list_sk_digests_for_authority_id,
+          (const char *digest));
+MOCK_DECL(download_status_t *, download_status_for_authority_id_and_sk,
+    (const char *id_digest, const char *sk_digest));
 
 static int WRA_WAS_ADDED(was_router_added_t s);
 static int WRA_WAS_OUTDATED(was_router_added_t s);





More information about the tor-commits mailing list