summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonatas Abraitis <donatas@opensourcerouting.org>2023-12-22 09:32:32 +0200
committerGitHub <noreply@github.com>2023-12-22 09:32:32 +0200
commiteba1c1e23bd6f8cdba53de47f68112993e8fde77 (patch)
tree19ec3591f00067e3eb488bc95fa8b19de8d0e494
parent1225954fb6ead0a69c3f4f6871349b12655cb242 (diff)
parentdaa80a5afa8b31248fa4395f7b86faee33eaec40 (diff)
Merge pull request #15059 from donaldsharp/generate_support_bundle_on_test_failure
Generate support bundle on test failure
-rwxr-xr-xtests/topotests/bgp_evpn_overlay_index_gateway/test_bgp_evpn_overlay_index_gateway.py11
-rw-r--r--tests/topotests/bgp_flowspec/test_bgp_flowspec_topo.py6
-rwxr-xr-xtests/topotests/conftest.py6
-rw-r--r--tests/topotests/lib/snmptest.py6
-rw-r--r--tools/etc/frr/support_bundle_commands.conf2
5 files changed, 11 insertions, 20 deletions
diff --git a/tests/topotests/bgp_evpn_overlay_index_gateway/test_bgp_evpn_overlay_index_gateway.py b/tests/topotests/bgp_evpn_overlay_index_gateway/test_bgp_evpn_overlay_index_gateway.py
index 1066269292..2041a4091d 100755
--- a/tests/topotests/bgp_evpn_overlay_index_gateway/test_bgp_evpn_overlay_index_gateway.py
+++ b/tests/topotests/bgp_evpn_overlay_index_gateway/test_bgp_evpn_overlay_index_gateway.py
@@ -58,7 +58,6 @@ from lib.common_config import (
step,
write_test_header,
write_test_footer,
- generate_support_bundle,
)
# Required to instantiate the topology builder class.
@@ -277,8 +276,6 @@ def test_evpn_gateway_ip_basic_topo(request):
result, assertmsg = evpn_gateway_ip_show_op_check("base")
- if result is not None:
- generate_support_bundle()
assert result is None, assertmsg
write_test_footer(tc_name)
@@ -319,8 +316,6 @@ def test_evpn_gateway_ip_flap_rt5(request):
)
result, assertmsg = evpn_gateway_ip_show_op_check("no_rt5")
- if result is not None:
- generate_support_bundle()
assert result is None, assertmsg
step("Advertise type-5 routes again")
@@ -339,8 +334,6 @@ def test_evpn_gateway_ip_flap_rt5(request):
)
result, assertmsg = evpn_gateway_ip_show_op_check("base")
- if result is not None:
- generate_support_bundle()
assert result is None, assertmsg
@@ -371,8 +364,6 @@ def test_evpn_gateway_ip_flap_rt2(request):
pe1.cmd_raises("ip link set dev vxlan100 down")
result, assertmsg = evpn_gateway_ip_show_op_check("no_rt2")
- if result is not None:
- generate_support_bundle()
assert result is None, assertmsg
step("Bring up VxLAN interface at PE1 and advertise type-2 routes again")
@@ -380,8 +371,6 @@ def test_evpn_gateway_ip_flap_rt2(request):
pe1.cmd_raises("ip link set dev vxlan100 up")
result, assertmsg = evpn_gateway_ip_show_op_check("base")
- if result is not None:
- generate_support_bundle()
assert result is None, assertmsg
write_test_footer(tc_name)
diff --git a/tests/topotests/bgp_flowspec/test_bgp_flowspec_topo.py b/tests/topotests/bgp_flowspec/test_bgp_flowspec_topo.py
index a2be85962f..57aeea87cb 100644
--- a/tests/topotests/bgp_flowspec/test_bgp_flowspec_topo.py
+++ b/tests/topotests/bgp_flowspec/test_bgp_flowspec_topo.py
@@ -51,7 +51,6 @@ sys.path.append(os.path.join(CWD, "../"))
from lib import topotest
from lib.topogen import Topogen, TopoRouter, get_topogen
from lib.topolog import logger
-from lib.common_config import generate_support_bundle
# Required to instantiate the topology builder class.
@@ -140,10 +139,7 @@ def test_bgp_convergence():
)
_, res = topotest.run_and_expect(test_func, None, count=210, wait=1)
assertmsg = "BGP router network did not converge"
- if res is not None:
- generate_support_bundle()
- assert res is None, assertmsg
- generate_support_bundle()
+ assert res is None, assertmsg
def test_bgp_flowspec():
diff --git a/tests/topotests/conftest.py b/tests/topotests/conftest.py
index c63a67545e..b1f8d50d06 100755
--- a/tests/topotests/conftest.py
+++ b/tests/topotests/conftest.py
@@ -26,7 +26,7 @@ from munet.base import Commander, proc_error
from munet.cleanup import cleanup_current, cleanup_previous
from munet.config import ConfigOptionsProxy
from munet.testing.util import pause_test
-
+from lib.common_config import generate_support_bundle
from lib import topolog, topotest
try:
@@ -600,6 +600,10 @@ def pytest_runtest_setup(item):
os.environ["PYTEST_TOPOTEST_SCRIPTDIR"] = script_dir
+def pytest_exception_interact(node, call, report):
+ generate_support_bundle()
+
+
def pytest_runtest_makereport(item, call):
"Log all assert messages to default logger with error level"
diff --git a/tests/topotests/lib/snmptest.py b/tests/topotests/lib/snmptest.py
index 5c4e97a5d2..bb7c0787c1 100644
--- a/tests/topotests/lib/snmptest.py
+++ b/tests/topotests/lib/snmptest.py
@@ -112,7 +112,7 @@ class SnmpTester(object):
notif = re.sub(":", "", notif)
notif = re.sub('"([0-9]{2}) ([0-9]{2}) "', r"\1\2", notif)
notif = re.sub('"([0-9]{2}) "', r"\1", notif)
- elems = re.findall("([0-9,\.]+) = ([0-9,\.]+)", notif)
+ elems = re.findall(r"([0-9,\.]+) = ([0-9,\.]+)", notif)
# remove common part
elems = elems[1:]
@@ -222,7 +222,7 @@ class SnmpTester(object):
# don't consider additional application messages
notifs = [elem for index, elem in enumerate(notifs_first) if index % 2 != 0]
- oid_v4 = "1\.3\.6\.1\.2\.1\.15"
+ oid_v4 = r"1\.3\.6\.1\.2\.1\.15"
for one_notif in notifs:
is_ipv4_notif = re.search(oid_v4, one_notif)
if is_ipv4_notif != None:
@@ -241,7 +241,7 @@ class SnmpTester(object):
# don't consider additional application messages
notifs = [elem for index, elem in enumerate(results) if index % 2 != 0]
- oid_v6 = "1\.3\.6\.1\.3\.5\.1"
+ oid_v6 = r"1\.3\.6\.1\.3\.5\.1"
for one_notif in notifs:
is_ipv6_notif = re.search(oid_v6, one_notif)
if is_ipv6_notif != None:
diff --git a/tools/etc/frr/support_bundle_commands.conf b/tools/etc/frr/support_bundle_commands.conf
index b7a1708248..1eed65aec8 100644
--- a/tools/etc/frr/support_bundle_commands.conf
+++ b/tools/etc/frr/support_bundle_commands.conf
@@ -34,6 +34,8 @@ show bgp nexthop
show bgp vrf all summary
show bgp vrf all ipv4
show bgp vrf all ipv6
+show bgp vrf all ipv4 vpn
+show bgp vrf all ipv6 vpn
show bgp vrf all neighbors
show bgp evpn route