Skip to content

Commit

Permalink
Merge pull request FRRouting#15059 from donaldsharp/generate_support_…
Browse files Browse the repository at this point in the history
…bundle_on_test_failure

Generate support bundle on test failure
  • Loading branch information
ton31337 authored Dec 22, 2023
2 parents 1225954 + daa80a5 commit eba1c1e
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@
step,
write_test_header,
write_test_footer,
generate_support_bundle,
)

# Required to instantiate the topology builder class.
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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")
Expand All @@ -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

Expand Down Expand Up @@ -371,17 +364,13 @@ 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")

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)
Expand Down
6 changes: 1 addition & 5 deletions tests/topotests/bgp_flowspec/test_bgp_flowspec_topo.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@
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.

Expand Down Expand Up @@ -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():
Expand Down
6 changes: 5 additions & 1 deletion tests/topotests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
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:
Expand Down Expand Up @@ -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"

Expand Down
6 changes: 3 additions & 3 deletions tests/topotests/lib/snmptest.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ def parse_notif_ipv4(self, notif):
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:]
Expand Down Expand Up @@ -222,7 +222,7 @@ def get_notif_bgp4(self, output_file):
# 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:
Expand All @@ -241,7 +241,7 @@ def get_notif_bgp4v2(self, output_file):
# 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:
Expand Down
2 changes: 2 additions & 0 deletions tools/etc/frr/support_bundle_commands.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit eba1c1e

Please sign in to comment.