]> git.puffer.fish Git - mirror/frr.git/commitdiff
tests: Fix zebra_seg6_route 16109/head
authorDonald Sharp <sharpd@nvidia.com>
Wed, 29 May 2024 18:52:44 +0000 (14:52 -0400)
committerDonald Sharp <sharpd@nvidia.com>
Wed, 29 May 2024 18:52:44 +0000 (14:52 -0400)
Locally this test would occassionally fail for me
because the connected route the sharp route being
installed has not fully come up yet due to heavy
load and start up slowness.  Add a bit of code
to look for the problem and make sure it doesn't
happen.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
tests/topotests/zebra_seg6_route/r1/routes_setup.json [new file with mode: 0644]
tests/topotests/zebra_seg6_route/test_zebra_seg6_route.py

diff --git a/tests/topotests/zebra_seg6_route/r1/routes_setup.json b/tests/topotests/zebra_seg6_route/r1/routes_setup.json
new file mode 100644 (file)
index 0000000..d131e4a
--- /dev/null
@@ -0,0 +1,28 @@
+{
+  "2001::/64":[
+    {
+      "prefix":"2001::/64",
+      "prefixLen":64,
+      "protocol":"connected",
+      "vrfName":"default",
+      "selected":true,
+      "destSelected":true,
+      "distance":0,
+      "metric":0,
+      "installed":true,
+      "internalStatus":16,
+      "internalFlags":8,
+      "internalNextHopNum":1,
+      "internalNextHopActiveNum":1,
+      "nexthops":[
+        {
+          "flags":3,
+          "fib":true,
+          "directlyConnected":true,
+          "interfaceName":"dum0",
+          "active":true
+        }
+      ]
+    }
+  ]
+}
index f872f7a2587f75ec779c1e24baa613ba5404edf7..4a4cf0624f6b27784f14041cee72815950d76d84 100755 (executable)
@@ -73,6 +73,16 @@ def test_zebra_seg6_routes():
             return False
         return topotest.json_cmp(output, expected)
 
+    def check_connected(router, dest, expected):
+        logger.info("Checking for connected")
+        output = json.loads(router.vtysh_cmd("show ipv6 route {} json".format(dest)))
+        return topotest.json_cmp(output, expected)
+
+    expected = open_json_file(os.path.join(CWD, "{}/routes_setup.json".format("r1")))
+    test_func = partial(check_connected, r1, "2001::/64", expected)
+    success, result = topotest.run_and_expect(test_func, None, count=20, wait=1)
+    assert result is None, "Failed to fully setup connected routes needed"
+
     manifests = open_json_file(os.path.join(CWD, "{}/routes.json".format("r1")))
     for manifest in manifests:
         dest = manifest["in"]["dest"]