]> git.proxmox.com Git - mirror_frr.git/blame - tests/topotests/bgp_comm_list_delete/test_bgp_comm-list_delete.py
Merge pull request #12798 from donaldsharp/rib_match_multicast
[mirror_frr.git] / tests / topotests / bgp_comm_list_delete / test_bgp_comm-list_delete.py
CommitLineData
5bb05cce 1#!/usr/bin/env python
acddc0ed 2# SPDX-License-Identifier: ISC
5bb05cce
DA
3
4#
5# bgp_comm-list_delete.py
6# Part of NetDEF Topology Tests
7#
8# Copyright (c) 2019 by
9# Network Device Education Foundation, Inc. ("NetDEF")
10#
5bb05cce
DA
11
12"""
13bgp_comm-list_delete.py:
14
15Test if works the following commands:
16route-map test permit 10
17 set comm-list <arg> delete
18"""
19
20import os
21import sys
22import json
5bb05cce 23import pytest
52ffb4e6 24import functools
5bb05cce
DA
25
26CWD = os.path.dirname(os.path.realpath(__file__))
787e7624 27sys.path.append(os.path.join(CWD, "../"))
5bb05cce
DA
28
29# pylint: disable=C0413
52ffb4e6 30from lib import topotest
5bb05cce 31from lib.topogen import Topogen, TopoRouter, get_topogen
5bb05cce 32
5ad1fd54
DS
33pytestmark = [pytest.mark.bgpd]
34
787e7624 35
e82b531d
CH
36def build_topo(tgen):
37 for routern in range(1, 3):
38 tgen.add_router("r{}".format(routern))
5bb05cce 39
e82b531d
CH
40 switch = tgen.add_switch("s1")
41 switch.add_link(tgen.gears["r1"])
42 switch.add_link(tgen.gears["r2"])
5bb05cce 43
5bb05cce
DA
44
45def setup_module(mod):
e82b531d 46 tgen = Topogen(build_topo, mod.__name__)
5bb05cce
DA
47 tgen.start_topology()
48
49 router_list = tgen.routers()
50
e5f0ed14 51 for i, (rname, router) in enumerate(router_list.items(), 1):
5bb05cce 52 router.load_config(
787e7624 53 TopoRouter.RD_ZEBRA, os.path.join(CWD, "{}/zebra.conf".format(rname))
5bb05cce
DA
54 )
55 router.load_config(
787e7624 56 TopoRouter.RD_BGP, os.path.join(CWD, "{}/bgpd.conf".format(rname))
5bb05cce
DA
57 )
58
59 tgen.start_router()
60
787e7624 61
5bb05cce
DA
62def teardown_module(mod):
63 tgen = get_topogen()
64 tgen.stop_topology()
65
787e7624 66
5bb05cce
DA
67def test_bgp_maximum_prefix_invalid():
68 tgen = get_topogen()
69
70 if tgen.routers_have_failure():
71 pytest.skip(tgen.errors)
72
52ffb4e6
DA
73 r2 = tgen.gears["r2"]
74
75 def _bgp_converge():
76 output = json.loads(r2.vtysh_cmd("show ip bgp neighbor 192.168.255.1 json"))
77 expected = {
78 "192.168.255.1": {
79 "bgpState": "Established",
80 "addressFamilyInfo": {
81 "ipv4Unicast": {
82 "acceptedPrefixCounter": 2,
83 }
84 },
85 }
86 }
87 return topotest.json_cmp(output, expected)
88
89 test_func = functools.partial(_bgp_converge)
90 _, result = topotest.run_and_expect(test_func, None, count=60, wait=0.5)
91 assert result is None, "Can't converge initially"
92
93 def _bgp_comm_list_delete():
94 output = json.loads(r2.vtysh_cmd("show ip bgp 172.16.255.254/32 json"))
95 expected = {"paths": [{"community": {"list": ["333:333"]}}]}
96 return topotest.json_cmp(output, expected)
97
98 test_func = functools.partial(_bgp_comm_list_delete)
99 _, result = topotest.run_and_expect(test_func, not None, count=60, wait=0.5)
100 assert result is not None, "333:333 community SHOULD be stripped from r1"
787e7624 101
5bb05cce 102
787e7624 103if __name__ == "__main__":
5bb05cce
DA
104 args = ["-s"] + sys.argv[1:]
105 sys.exit(pytest.main(args))