]> git.puffer.fish Git - mirror/frr.git/commitdiff
tests: add tests for mgmt get-data with config
authorIgor Ryzhov <iryzhov@nfware.com>
Sat, 13 Jan 2024 20:58:19 +0000 (22:58 +0200)
committerIgor Ryzhov <iryzhov@nfware.com>
Mon, 15 Jan 2024 08:27:33 +0000 (10:27 +0200)
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
tests/topotests/mgmt_oper/oper.py
tests/topotests/mgmt_oper/r1/frr-simple.conf
tests/topotests/mgmt_oper/simple-results/result-intf-description.json [new file with mode: 0644]
tests/topotests/mgmt_oper/simple-results/result-intf-eth0-only-config.json [new file with mode: 0644]
tests/topotests/mgmt_oper/simple-results/result-intf-eth0-with-config.json [new file with mode: 0644]
tests/topotests/mgmt_oper/test_simple.py

index e3386067bc321bf580905dd61c9464784f13d436..0f6c3cdf5f1ee218a4caa102e866d74829310c93 100644 (file)
@@ -66,7 +66,7 @@ def do_oper_test(tgen, query_results):
     r1 = tgen.gears["r1"].net
 
     qcmd = (
-        r"vtysh -c 'show mgmt get-data {}' "
+        r"vtysh -c 'show mgmt get-data {} {}' "
         r"""| sed -e 's/"phy-address": ".*"/"phy-address": "rubout"/'"""
         r"""| sed -e 's/"uptime": ".*"/"uptime": "rubout"/'"""
         r"""| sed -e 's/"vrf": "[0-9]*"/"vrf": "rubout"/'"""
@@ -81,7 +81,7 @@ def do_oper_test(tgen, query_results):
         if doreset:
             doreset = False
         expected = open(qr[1], encoding="ascii").read()
-        output = r1.cmd_nostatus(qcmd.format(qr[0]))
+        output = r1.cmd_nostatus(qcmd.format(qr[0], qr[2] if len(qr) > 2 else ""))
 
         try:
             ojson = json.loads(output)
index cf8ba160f4b780f2d8b99c607d2ba2647d53b7ac..d262afe359450f0a40f5e44ca1e5c2f23c6e8bb8 100644 (file)
@@ -14,10 +14,12 @@ debug mgmt client backend
 
 interface r1-eth0
   ip address 1.1.1.1/24
+  description r1-eth0-desc
 exit
 
 interface r1-eth1 vrf red
   ip address 3.3.3.1/24
+  description r1-eth1-desc
 exit
 ip route 11.11.11.11/32 1.1.1.2
-!ip route 13.13.13.13/32 3.3.3.2 vrf red
\ No newline at end of file
+!ip route 13.13.13.13/32 3.3.3.2 vrf red
diff --git a/tests/topotests/mgmt_oper/simple-results/result-intf-description.json b/tests/topotests/mgmt_oper/simple-results/result-intf-description.json
new file mode 100644 (file)
index 0000000..8f8092e
--- /dev/null
@@ -0,0 +1,14 @@
+{
+  "frr-interface:lib": {
+    "interface": [
+      {
+        "name": "r1-eth0",
+        "description": "r1-eth0-desc"
+      },
+      {
+        "name": "r1-eth1",
+        "description": "r1-eth1-desc"
+      }
+    ]
+  }
+}
diff --git a/tests/topotests/mgmt_oper/simple-results/result-intf-eth0-only-config.json b/tests/topotests/mgmt_oper/simple-results/result-intf-eth0-only-config.json
new file mode 100644 (file)
index 0000000..adcf990
--- /dev/null
@@ -0,0 +1,10 @@
+{
+       "frr-interface:lib": {
+               "interface": [
+                       {
+                               "name": "r1-eth0",
+                               "description": "r1-eth0-desc"
+                       }
+               ]
+       }
+}
diff --git a/tests/topotests/mgmt_oper/simple-results/result-intf-eth0-with-config.json b/tests/topotests/mgmt_oper/simple-results/result-intf-eth0-with-config.json
new file mode 100644 (file)
index 0000000..47c9686
--- /dev/null
@@ -0,0 +1,25 @@
+{
+       "frr-interface:lib": {
+               "interface": [
+                       {
+                               "name": "r1-eth0",
+                               "vrf": "default",
+                               "description": "r1-eth0-desc",
+                               "state": {
+                                       "if-index": "rubout",
+                                       "mtu": 1500,
+                                       "mtu6": 1500,
+                                       "speed": 10000,
+                                       "metric": 0,
+                                       "phy-address": "rubout"
+                               },
+                               "frr-zebra:zebra": {
+                                       "state": {
+                                               "up-count": 0,
+                                               "down-count": 0
+                                       }
+                               }
+                       }
+               ]
+       }
+}
index 008733ee724ccc8bab20ec2e7cfadb002e6562b3..2f75dfc822f2ebf49702c5c70f201dcc48810d8b 100644 (file)
@@ -112,6 +112,21 @@ def test_oper_simple(tgen):
             'route[prefix="1.1.1.0/24"]/route-entry[protocol="connected"]/metric',
             "simple-results/result-singleton-metric.json",
         ),
+        (
+            '/frr-interface:lib/interface[name="r1-eth0"]',
+            "simple-results/result-intf-eth0-with-config.json",
+            "with-config",
+        ),
+        (
+            '/frr-interface:lib/interface[name="r1-eth0"]',
+            "simple-results/result-intf-eth0-only-config.json",
+            "only-config",
+        ),
+        (
+            "/frr-interface:lib/interface/description",
+            "simple-results/result-intf-description.json",
+            "with-config",
+        ),
         # Interface state
         (
             '/frr-interface:lib/interface[name="r1-eth0"]/state',