]> git.proxmox.com Git - mirror_frr.git/commitdiff
tests: Fix zebra_seg6_route to not always reinstall the same route
authorDonald Sharp <sharpd@nvidia.com>
Fri, 29 Oct 2021 14:21:28 +0000 (10:21 -0400)
committerDonald Sharp <sharpd@nvidia.com>
Fri, 29 Oct 2021 17:17:54 +0000 (13:17 -0400)
This code has two issues:

a) The loop to test for successful installation re-installs
the route every time it loops.  A system under load will
have issues ensuring the route is installed and repeated
attempts does not help

b) The nexthop group installation was always failing
but never noticed (because of the previous commit)
and the test was always passing, when it should
have never passed.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
tests/topotests/zebra_seg6_route/r1/routes.json
tests/topotests/zebra_seg6_route/test_zebra_seg6_route.py

index a0c15b8fe44836ebc305b7024997c7d16ffdfdef..50ac4f7174a8f1553468d01d61e3b8cd46500f26 100644 (file)
@@ -2,7 +2,7 @@
   {
     "in": {
       "dest": "1::1",
-      "nh": "2001::1",
+      "nh": "2001::2",
       "sid": "a::"
     },
     "out":[{
index cdad988b813db1e76a6757ec678f37bee5012902..399af748a11f849eea3a79cc581f1370746e9d5e 100755 (executable)
@@ -79,11 +79,7 @@ def test_zebra_seg6local_routes():
     logger.info("Test for seg6local route install via ZAPI was start.")
     r1 = tgen.gears["r1"]
 
-    def check(router, dest, nh, sid, expected):
-        router.vtysh_cmd(
-            "sharp install seg6-routes {} "
-            "nexthop-seg6 {} encap {} 1".format(dest, nh, sid)
-        )
+    def check(router, dest, expected):
         output = json.loads(router.vtysh_cmd("show ipv6 route {} json".format(dest)))
         output = output.get("{}/128".format(dest))
         if output is None:
@@ -92,19 +88,17 @@ def test_zebra_seg6local_routes():
 
     manifests = open_json_file(os.path.join(CWD, "{}/routes.json".format("r1")))
     for manifest in manifests:
-        logger.info(
-            "CHECK {} {} {}".format(
-                manifest["in"]["dest"], manifest["in"]["nh"], manifest["in"]["sid"]
+        dest = manifest["in"]["dest"]
+        nh = manifest["in"]["nh"]
+        sid = manifest["in"]["sid"]
+
+        r1.vtysh_cmd(
+            "sharp install seg6-routes {} nexthop-seg6 {} encap {} 1".format(
+                dest, nh, sid
             )
         )
-        test_func = partial(
-            check,
-            r1,
-            manifest["in"]["dest"],
-            manifest["in"]["nh"],
-            manifest["in"]["sid"],
-            manifest["out"],
-        )
+        logger.info("CHECK {} {} {}".format(dest, nh, sid))
+        test_func = partial(check, r1, dest, manifest["out"])
         success, result = topotest.run_and_expect(test_func, None, count=5, wait=1)
         assert result is None, "Failed"