]> git.puffer.fish Git - mirror/frr.git/commitdiff
tests: mgmtd: add prologue to bigconf tests
authorChristian Hopps <chopps@labn.net>
Sun, 4 Jun 2023 21:48:08 +0000 (17:48 -0400)
committerChristian Hopps <chopps@labn.net>
Mon, 5 Jun 2023 17:53:51 +0000 (13:53 -0400)
Signed-off-by: Christian Hopps <chopps@labn.net>
tests/topotests/mgmt_startup/test_bigconf.py
tests/topotests/mgmt_startup/test_late_bigconf.py
tests/topotests/mgmt_startup/util.py

index 3b13229af5886f3d7334dcec2ed33eea599237b8..4f46c8fabdcafdee700c2f88aae227b2e268c139 100644 (file)
@@ -42,8 +42,10 @@ def tgen(request):
     tgen = Topogen(topodef, request.module.__name__)
     tgen.start_topology()
 
+    prologue = open(f"{CWD}/r1/mgmtd.conf").read()
+
     confpath = f"{tgen.gears['r1'].gearlogdir}/r1-late-big.conf"
-    start, end = write_big_route_conf("10.0.0.0/8", ROUTE_COUNT, confpath)
+    start, end = write_big_route_conf("10.0.0.0/8", ROUTE_COUNT, confpath, prologue)
     ROUTE_RANGE[0] = start
     ROUTE_RANGE[1] = end
 
index 5e594aba6c1492ec6670f13dbcaf0f1b60109fd9..0b5bf38d10477304e7ad23695c0dbfa42289faef 100644 (file)
@@ -42,8 +42,10 @@ def tgen(request):
     tgen = Topogen(topodef, request.module.__name__)
     tgen.start_topology()
 
+    prologue = open(f"{CWD}/r1/mgmtd.conf").read()
+
     confpath = f"{tgen.gears['r1'].gearlogdir}/r1-late-big.conf"
-    start, end = write_big_route_conf("10.0.0.0/8", ROUTE_COUNT, confpath)
+    start, end = write_big_route_conf("10.0.0.0/8", ROUTE_COUNT, confpath, prologue)
     ROUTE_RANGE[0] = start
     ROUTE_RANGE[1] = end
 
@@ -74,9 +76,23 @@ def test_staticd_latestart(tgen):
     assert result is not None, "last route present and should not be"
 
     step("Starting staticd")
+    t2 = Timeout(0)
     r1.startDaemons(["staticd"])
 
     result = check_kernel(r1, ROUTE_RANGE[0], retry_timeout=60)
     assert result is None, "first route not present and should be"
-    result = check_kernel(r1, ROUTE_RANGE[1], retry_timeout=60)
+    logging.info("r1: elapsed time for first route %ss", t2.elapsed())
+
+    count = 0
+    ocount = 0
+    while count < ROUTE_COUNT:
+        rc, o, e = r1.net.cmd_status("ip -o route | wc -l")
+        if not rc:
+            if count > ocount + 100:
+                ocount = count
+                logging.info("r1: elapsed time for %d routes %s", count, t2.elapsed())
+            count = int(o)
+
+    result = check_kernel(r1, ROUTE_RANGE[1], retry_timeout=1200)
     assert result is None, "last route not present and should be"
+    logging.info("r1: elapsed time for last route %ss", t2.elapsed())
index 87a2ad442e0c0748fa12d03e8ea0a1d24bd1ce26..e366351326b52a0625f75d06cf32c8321a38573e 100644 (file)
@@ -50,11 +50,13 @@ def get_ip_networks(super_prefix, count):
     return tuple(network.subnets(count_log2))[0:count]
 
 
-def write_big_route_conf(super_prefix, count, confpath):
+def write_big_route_conf(super_prefix, count, confpath, prologue=""):
     start = None
     end = None
 
     with open(confpath, "w+", encoding="ascii") as f:
+        if prologue:
+            f.write(prologue + "\n")
         for net in get_ip_networks(super_prefix, count):
             end = net
             if not start: