summaryrefslogtreecommitdiffstats
path: root/tests/topotests/mgmt_rpc/test_rpc.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-08-05 09:56:25 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-08-05 09:56:25 +0000
commit289582b3dcbeb23328325d224c7db7de66a3a55f (patch)
tree989c36d57aab945c36e34c952f438746ce18b3bd /tests/topotests/mgmt_rpc/test_rpc.py
parentReleasing progress-linux version 10.0.1-0.1~progress7.99u1. (diff)
downloadfrr-289582b3dcbeb23328325d224c7db7de66a3a55f.tar.xz
frr-289582b3dcbeb23328325d224c7db7de66a3a55f.zip
Merging upstream version 10.1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/topotests/mgmt_rpc/test_rpc.py')
-rw-r--r--tests/topotests/mgmt_rpc/test_rpc.py74
1 files changed, 74 insertions, 0 deletions
diff --git a/tests/topotests/mgmt_rpc/test_rpc.py b/tests/topotests/mgmt_rpc/test_rpc.py
new file mode 100644
index 0000000..618d902
--- /dev/null
+++ b/tests/topotests/mgmt_rpc/test_rpc.py
@@ -0,0 +1,74 @@
+# -*- coding: utf-8 eval: (blacken-mode 1) -*-
+# SPDX-License-Identifier: ISC
+#
+# March 21 2024, Igor Ryzhov <iryzhov@nfware.com>
+#
+# Copyright (c) 2024, NFWare Inc.
+#
+
+"""
+Test YANG Notifications
+"""
+import json
+import os
+import threading
+
+import pytest
+from lib.topogen import Topogen
+from lib.topotest import json_cmp
+
+pytestmark = [pytest.mark.ripd, pytest.mark.mgmtd]
+
+CWD = os.path.dirname(os.path.realpath(__file__))
+
+
+@pytest.fixture(scope="module")
+def tgen(request):
+ "Setup/Teardown the environment and provide tgen argument to tests"
+
+ topodef = {"s1": ("r1",)}
+
+ tgen = Topogen(topodef, request.module.__name__)
+ tgen.start_topology()
+
+ router_list = tgen.routers()
+ for rname, router in router_list.items():
+ router.load_frr_config("frr.conf")
+
+ tgen.start_router()
+ yield tgen
+ tgen.stop_topology()
+
+
+def test_backend_rpc(tgen):
+ if tgen.routers_have_failure():
+ pytest.skip(tgen.errors)
+
+ r1 = tgen.gears["r1"]
+
+ be_client_path = "/usr/lib/frr/mgmtd_testc"
+ rc, _, _ = r1.net.cmd_status(be_client_path + " --help")
+
+ if rc:
+ pytest.skip("No mgmtd_testc")
+
+ out = []
+
+ def run_testc():
+ output = r1.net.cmd_raises(
+ be_client_path + " --timeout 10 --log file:mgmt_testc.log"
+ )
+ out.append(json.loads(output))
+
+ t = threading.Thread(target=run_testc)
+ t.start()
+
+ r1.vtysh_cmd("clear ip rip vrf testname")
+
+ t.join()
+
+ jsout = out[0]
+
+ expected = {"frr-ripd:clear-rip-route": {"vrf": "testname"}}
+ result = json_cmp(jsout, expected)
+ assert result is None