summaryrefslogtreecommitdiff
path: root/src/or
diff options
context:
space:
mode:
authorDavid Goulet <dgoulet@torproject.org>2017-01-17 12:09:54 -0500
committerDavid Goulet <dgoulet@torproject.org>2017-07-13 16:50:09 -0400
commit418059dd96f5f427eceffff1daeb2a2f6c4adbeb (patch)
tree06470faae63d538293c4822d478f53fd20b7d73c /src/or
parent87f6f96f4707cc18a58c5de8be0ee10f1893673d (diff)
downloadtor-418059dd96f5f427eceffff1daeb2a2f6c4adbeb.tar.gz
tor-418059dd96f5f427eceffff1daeb2a2f6c4adbeb.zip
test: Add v3 service config and registration test
This tests our hs_config.c API to properly load v3 services and register them to the global map. It does NOT test the service object validity, that will be the hs service unit test later on. At this commit, we have 100% code coverage of hs_config.c. Signed-off-by: David Goulet <dgoulet@torproject.org>
Diffstat (limited to 'src/or')
-rw-r--r--src/or/hs_service.c20
-rw-r--r--src/or/hs_service.h11
2 files changed, 31 insertions, 0 deletions
diff --git a/src/or/hs_service.c b/src/or/hs_service.c
index eb58c768bb..854ce9e541 100644
--- a/src/or/hs_service.c
+++ b/src/or/hs_service.c
@@ -6,6 +6,8 @@
* \brief Implement next generation hidden service functionality
**/
+#define HS_SERVICE_PRIVATE
+
#include "or.h"
#include "circuitlist.h"
#include "config.h"
@@ -786,3 +788,21 @@ generate_establish_intro_cell(const uint8_t *circuit_key_material,
return NULL;
}
+#ifdef TOR_UNIT_TESTS
+
+/* Return the global service map size. Only used by unit test. */
+STATIC unsigned int
+get_hs_service_map_size(void)
+{
+ return HT_SIZE(hs_service_map);
+}
+
+/* Return the staging list size. Only used by unit test. */
+STATIC int
+get_hs_service_staging_list_size(void)
+{
+ return smartlist_len(hs_service_staging_list);
+}
+
+#endif /* TOR_UNIT_TESTS */
+
diff --git a/src/or/hs_service.h b/src/or/hs_service.h
index 90606acb1c..cd154d3fe9 100644
--- a/src/or/hs_service.h
+++ b/src/or/hs_service.h
@@ -224,5 +224,16 @@ ssize_t
get_establish_intro_payload(uint8_t *buf, size_t buf_len,
const trn_cell_establish_intro_t *cell);
+#ifdef HS_SERVICE_PRIVATE
+
+#ifdef TOR_UNIT_TESTS
+
+STATIC unsigned int get_hs_service_map_size(void);
+STATIC int get_hs_service_staging_list_size(void);
+
+#endif /* TOR_UNIT_TESTS */
+
+#endif /* HS_SERVICE_PRIVATE */
+
#endif /* TOR_HS_SERVICE_H */