X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=tests%2Ftopotests%2Fzebra_opaque%2Ftest_zebra_opaque.py;h=25fbb97806deeb52a59caf363317bf580edbdc09;hb=12906cb1c84b4de54874365d4a02a040ed9632d1;hp=2339b0f5b0bfaf65084f74e9401d7f40b2ce5a2e;hpb=22e135b4519a209db6cc07abdacd0953a1c344c5;p=mirror_frr.git diff --git a/tests/topotests/zebra_opaque/test_zebra_opaque.py b/tests/topotests/zebra_opaque/test_zebra_opaque.py index 2339b0f5b..25fbb9780 100644 --- a/tests/topotests/zebra_opaque/test_zebra_opaque.py +++ b/tests/topotests/zebra_opaque/test_zebra_opaque.py @@ -1,22 +1,9 @@ #!/usr/bin/env python +# SPDX-License-Identifier: ISC # Copyright (c) 2021 by # Donatas Abraitis # -# Permission to use, copy, modify, and/or distribute this software -# for any purpose with or without fee is hereby granted, provided -# that the above copyright notice and this permission notice appear -# in all copies. -# -# THE SOFTWARE IS PROVIDED "AS IS" AND NETDEF DISCLAIMS ALL WARRANTIES -# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NETDEF BE LIABLE FOR -# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY -# DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -# WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE -# OF THIS SOFTWARE. -# """ Test if Opaque Data is accessable from other daemons in Zebra @@ -25,7 +12,6 @@ Test if Opaque Data is accessable from other daemons in Zebra import os import sys import json -import time import pytest import functools @@ -35,26 +21,13 @@ sys.path.append(os.path.join(CWD, "../")) # pylint: disable=C0413 from lib import topotest from lib.topogen import Topogen, TopoRouter, get_topogen -from lib.topolog import logger -from mininet.topo import Topo - -pytestmark = [pytest.mark.bgpd] - - -class TemplateTopo(Topo): - def build(self, *_args, **_opts): - tgen = get_topogen(self) - for routern in range(1, 3): - tgen.add_router("r{}".format(routern)) - - switch = tgen.add_switch("s1") - switch.add_link(tgen.gears["r1"]) - switch.add_link(tgen.gears["r2"]) +pytestmark = [pytest.mark.bgpd, pytest.mark.ospfd, pytest.mark.ospf6d] def setup_module(mod): - tgen = Topogen(TemplateTopo, mod.__name__) + topodef = {"s1": ("r1", "r2"), "s2": ("r3", "r4")} + tgen = Topogen(topodef, mod.__name__) tgen.start_topology() router_list = tgen.routers() @@ -66,6 +39,12 @@ def setup_module(mod): router.load_config( TopoRouter.RD_BGP, os.path.join(CWD, "{}/bgpd.conf".format(rname)) ) + router.load_config( + TopoRouter.RD_OSPF, os.path.join(CWD, "{}/ospfd.conf".format(rname)) + ) + router.load_config( + TopoRouter.RD_OSPF6, os.path.join(CWD, "{}/ospf6d.conf".format(rname)) + ) tgen.start_router() @@ -81,8 +60,6 @@ def test_zebra_opaque(): if tgen.routers_have_failure(): pytest.skip(tgen.errors) - router = tgen.gears["r1"] - def _bgp_converge(router): output = json.loads(router.vtysh_cmd("show ip route 192.168.1.0/24 json")) expected = { @@ -95,11 +72,45 @@ def test_zebra_opaque(): } return topotest.json_cmp(output, expected) + def _ospf_converge(router): + output = json.loads(router.vtysh_cmd("show ip route 192.168.1.0/24 json")) + expected = { + "192.168.1.0/24": [ + { + "ospfPathType": "Intra-Area", + "ospfAreaId": "0.0.0.0", + } + ] + } + return topotest.json_cmp(output, expected) + + def _ospf6_converge(router): + output = json.loads(router.vtysh_cmd("show ipv6 route 2001:db8:1::/64 json")) + expected = { + "2001:db8:1::/64": [ + { + "ospfPathType": "Intra-Area", + "ospfAreaId": "0.0.0.0", + } + ] + } + return topotest.json_cmp(output, expected) + + router = tgen.gears["r1"] test_func = functools.partial(_bgp_converge, router) success, result = topotest.run_and_expect(test_func, None, count=60, wait=0.5) - assert result is None, 'Cannot see BGP community aliases "{}"'.format(router) + router = tgen.gears["r3"] + test_func = functools.partial(_ospf_converge, router) + success, result = topotest.run_and_expect(test_func, None, count=60, wait=0.5) + assert result is None, 'Cannot see OSPFv2 opaque attributes "{}"'.format(router) + + router = tgen.gears["r3"] + test_func = functools.partial(_ospf6_converge, router) + success, result = topotest.run_and_expect(test_func, None, count=60, wait=0.5) + assert result is None, 'Cannot see OSPFv3 opaque attributes "{}"'.format(router) + if __name__ == "__main__": args = ["-s"] + sys.argv[1:]