From 7c1b2fceb7d46aed8945d86806dc791f97c47125 Mon Sep 17 00:00:00 2001
From: Neel Chauhan <neel@neelc.org>
Date: Wed, 18 Sep 2019 11:40:10 -0400
Subject: [PATCH] test: New behavior on IP retry for HSv3

Unit test for #31652 where if we are over the retry limit for the IP but we
have an established circuit, we don't remove the IP.

Part of #31652
---
 src/test/test_hs_service.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/test/test_hs_service.c b/src/test/test_hs_service.c
index a2594ed6af..efe4166bf9 100644
--- a/src/test/test_hs_service.c
+++ b/src/test/test_hs_service.c
@@ -1296,6 +1296,11 @@ test_service_event(void *arg)
     service_intro_point_add(service->desc_current->intro_points.map, ip);
     ip->circuit_established = 1;  /* We'll test that, it MUST be 0 after. */
     run_housekeeping_event(now);
+    tt_int_op(digest256map_size(service->desc_current->intro_points.map),
+              OP_EQ, 1);
+    /* No removal if we have an established circuit after retries. */
+    ip->circuit_retries = MAX_INTRO_POINT_CIRCUIT_RETRIES + 1;
+    run_housekeeping_event(now);
     tt_int_op(digest256map_size(service->desc_current->intro_points.map),
               OP_EQ, 1);
     /* Remove the IP object at once for the next test. */
-- 
GitLab