]> git.puffer.fish Git - matthieu/frr.git/commitdiff
tests: test new XPath 1.0 predicate functionality
authorChristian Hopps <chopps@labn.net>
Sat, 6 Jan 2024 09:47:04 +0000 (09:47 +0000)
committerChristian Hopps <chopps@labn.net>
Sun, 7 Jan 2024 15:17:56 +0000 (15:17 +0000)
Signed-off-by: Christian Hopps <chopps@labn.net>
tests/topotests/mgmt_oper/test_querying.py
tests/topotests/mgmt_oper/test_scale.py

index e53ea52c987a4dab8a4cbc81c41cba49fa01269e..220f2b4abd5ee3b081efdde57043e0dc969e803f 100644 (file)
@@ -51,6 +51,16 @@ def test_oper_simple(tgen):
         pytest.skip(tgen.errors)
 
     query_results = [
+        # Non-key specific query with function filtering selector
+        '/frr-interface:lib/interface[contains(name,"eth")]/vrf',
+        # Non-key specific query with child value filtering selector
+        '/frr-interface:lib/interface[vrf="red"]/vrf',
+        '/frr-interface:lib/interface[./vrf="red"]/vrf',
+        # Container query with function filtering selector
+        '/frr-interface:lib/interface[contains(name,"eth")]/state',
+        # Multi list elemenet with function filtering selector
+        '/frr-interface:lib/interface[contains(name,"eth")]',
+        #
         # Specific list entry after non-specific lists
         '/frr-vrf:lib/vrf[name="default"]/frr-zebra:zebra/ribs/'
         'rib[afi-safi-name="frr-routing:ipv4-unicast"][table-id="254"]/'
index d7a0e25ad8196124cfc63b865bea7a70e56c6a71..391400f9145c8d77430e7da1763ccffc45fa0366 100644 (file)
@@ -11,7 +11,7 @@
 """
 Test static route functionality
 """
-import logging
+import re
 import time
 
 import pytest
@@ -63,5 +63,11 @@ def test_oper_simple(tgen):
     check_kernel_32(r1, "20.0.0.0", count, vrf, 1000)
 
     step(f"All {count} routes installed in kernel, continuing")
-    output = r1.cmd_raises("vtysh -c 'show mgmt get-data /frr-vrf:lib'")
-    step("Got output: output")
+    # output = r1.cmd_raises("vtysh -c 'show mgmt get-data /frr-vrf:lib'")
+    # step(f"Got output: {output[0:1024]}")
+
+    query = '/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route[contains(prefix,"20.0.0.12")]/prefix'
+    output = r1.cmd_raises(f"vtysh -c 'show mgmt get-data {query}'")
+    matches = re.findall(r'"prefix":', output)
+    # 20.0.0.12 + 20.0.0.12{0,1,2,3,4,5,6,7,8,9}
+    assert len(matches) == 11