tests: Updated assert message for better debugging

Updating topojson script's assert messages,
which will help in better debugging, when
test will fail.

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
This commit is contained in:
Kuldeep Kashyap 2022-10-11 05:27:50 +05:30
parent afd4d90111
commit d63c7094e4
20 changed files with 310 additions and 315 deletions

View File

@ -121,7 +121,7 @@ def setup_module(mod):
# Required linux kernel version for this suite to run.
result = required_linux_kernel_version("4.15")
if result is not True:
pytest.skip("Kernel requirements are not met")
pytest.skip("Kernel requirements are not met, kernel version should be >=4.15")
testsuite_run_time = time.asctime(time.localtime(time.time()))
logger.info("Testsuite start time: {}".format(testsuite_run_time))
@ -1148,9 +1148,9 @@ def test_bgp_with_loopback_with_same_subnet_p1(request):
tgen, addr_type, dut, input_dict_r1, expected=False
) # pylint: disable=E1123
assert result is not True, (
"Testcase {} : Failed \n".format(tc_name)
+ "Expected behavior: routes should not present in fib \n"
+ "Error: {}".format(result)
"Testcase {} : Failed \n "
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(tc_name, dut, result)
)
step("Verify Ipv4 and Ipv6 network installed in r3 RIB but not in FIB")
@ -1169,9 +1169,9 @@ def test_bgp_with_loopback_with_same_subnet_p1(request):
tgen, addr_type, dut, input_dict_r1, expected=False
) # pylint: disable=E1123
assert result is not True, (
"Testcase {} : Failed \n".format(tc_name)
+ "Expected behavior: routes should not present in fib \n"
+ "Error: {}".format(result)
"Testcase {} : Failed \n "
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(tc_name, dut, result)
)
write_test_footer(tc_name)

View File

@ -83,7 +83,7 @@ def setup_module(mod):
# Required linux kernel version for this suite to run.
result = required_linux_kernel_version("4.15")
if result is not True:
pytest.skip("Kernel requirements are not met")
pytest.skip("Kernel requirements are not met, kernel version should be >= 4.15")
testsuite_run_time = time.asctime(time.localtime(time.time()))
logger.info("Testsuite start time: {}".format(testsuite_run_time))
@ -317,17 +317,18 @@ def test_bgp_no_advertise_community_p0(request):
)
result = verify_bgp_rib(tgen, addr_type, dut, input_dict, expected=False)
assert result is not True, "Testcase {} : Failed \n ".format(
tc_name
) + " Routes still present in R3 router. Error: {}".format(result)
assert result is not True, (
"Testcase {} : Failed \n Expected: "
"Routes still present in {} router. Found: {}".format(tc_name, dut, result)
)
result = verify_rib(
tgen, addr_type, dut, input_dict, protocol=protocol, expected=False
)
assert (
result is not True
), "Testcase {} : Failed \n Routes still present in R3 router. Error: {}".format(
tc_name, result
), "Testcase {} : Failed \n Expected: Routes still present in {} router. Found: {}".format(
tc_name, dut, result
)
step("Remove and Add no advertise community")

View File

@ -87,7 +87,7 @@ def setup_module(mod):
# Required linux kernel version for this suite to run.
result = required_linux_kernel_version("4.14")
if result is not True:
pytest.skip("Kernel requirements are not met")
pytest.skip("Kernel requirements are not met, kernel version should be >= 4.14")
testsuite_run_time = time.asctime(time.localtime(time.time()))
logger.info("Testsuite start time: {}".format(testsuite_run_time))
@ -305,8 +305,10 @@ def test_bgp_no_export_local_as_and_internet_communities_p0(request):
],
expected=False,
)
assert result is not True, "Testcase {} : Failed \n Error: {}".format(
tc_name, result
assert result is not True, (
"Testcase {} : Failed \n "
"Expected: Routes are still present in rib of r3 \n "
"Found: {}".format(tc_name, result)
)
step("Remove route-map from redistribute static on R1")

View File

@ -90,7 +90,7 @@ def setup_module(mod):
# Required linux kernel version for this suite to run.
result = required_linux_kernel_version("4.15")
if result is not True:
pytest.skip("Kernel requirements are not met")
pytest.skip("Kernel requirements are not met, kernel version should be >=4.15")
testsuite_run_time = time.asctime(time.localtime(time.time()))
logger.info("Testsuite start time: {}".format(testsuite_run_time))
@ -436,7 +436,9 @@ def test_ecmp_remove_redistribute_static(request):
)
assert (
result is not True
), "Testcase {} : Failed \n Routes still" " present in RIB".format(tc_name)
), "Testcase {} : Failed \n Expected: Routes still present in {} RIB. Found: {}".format(
tc_name, dut, result
)
logger.info("Enable redistribute static")
input_dict_2 = {
@ -621,7 +623,9 @@ def test_ecmp_remove_static_route(request):
)
assert (
result is not True
), "Testcase {} : Failed \n Routes still" " present in RIB".format(tc_name)
), "Testcase {} : Failed \n Expected: Routes still present in {} RIB. Found: {}".format(
tc_name, dut, result
)
for addr_type in ADDR_TYPES:
# Enable static routes
@ -727,7 +731,9 @@ def test_ecmp_remove_nw_advertise(request):
)
assert (
result is not True
), "Testcase {} : Failed \n Routes still" " present in RIB".format(tc_name)
), "Testcase {} : Failed \n Expected: Routes still present in {} RIB. Found: {}".format(
tc_name, dut, result
)
static_or_nw(tgen, topo, tc_name, "advertise_nw", "r2")
for addr_type in ADDR_TYPES:

View File

@ -90,7 +90,7 @@ def setup_module(mod):
# Required linux kernel version for this suite to run.
result = required_linux_kernel_version("4.15")
if result is not True:
pytest.skip("Kernel requirements are not met")
pytest.skip("Kernel requirements are not met, kernel version should be >=4.15")
testsuite_run_time = time.asctime(time.localtime(time.time()))
logger.info("Testsuite start time: {}".format(testsuite_run_time))
@ -437,7 +437,9 @@ def test_ecmp_remove_redistribute_static(request):
)
assert (
result is not True
), "Testcase {} : Failed \n Routes still" " present in RIB".format(tc_name)
), "Testcase {} : Failed \n Expected: Routes still present in {} RIB. Found: {}".format(
tc_name, dut, result
)
logger.info("Enable redistribute static")
input_dict_2 = {
@ -622,7 +624,9 @@ def test_ecmp_remove_static_route(request):
)
assert (
result is not True
), "Testcase {} : Failed \n Routes still" " present in RIB".format(tc_name)
), "Testcase {} : Failed \n Expected: Routes still present in {} RIB. Found: {}".format(
tc_name, dut, result
)
for addr_type in ADDR_TYPES:
# Enable static routes
@ -730,7 +734,9 @@ def test_ecmp_remove_nw_advertise(request):
)
assert (
result is not True
), "Testcase {} : Failed \n Routes still" " present in RIB".format(tc_name)
), "Testcase {} : Failed \n Expected: Routes still present in {} RIB. Found: {}".format(
tc_name, dut, result
)
static_or_nw(tgen, topo, tc_name, "advertise_nw", "r2")
for addr_type in ADDR_TYPES:

View File

@ -240,17 +240,18 @@ def test_ecmp_fast_convergence(request, test_type, tgen, topo):
logger.info("Ensure BGP has processed the cli")
r2 = tgen.gears["r2"]
output = r2.vtysh_cmd("show run")
verify = re.search(r"fast-convergence", output )
assert verify is not None, (
"r2 does not have the fast convergence command yet")
verify = re.search(r"fast-convergence", output)
assert verify is not None, "r2 does not have the fast convergence command yet"
logger.info("Shutdown one link b/w r2 and r3")
shutdown_bringup_interface(tgen, "r2", intf1, False)
logger.info("Verify bgp neighbors goes down immediately")
result = verify_bgp_convergence(tgen, topo, dut="r2", expected=False)
assert result is not True, "Testcase {} : Failed \n Error: {}".format(
tc_name, result
assert result is not True, (
"Testcase {} : Failed \n "
"Expected: BGP should not be converged for {} \n "
"Found: {}".format(tc_name, "r2", result)
)
logger.info("Shutdown second link b/w r2 and r3")
@ -258,8 +259,10 @@ def test_ecmp_fast_convergence(request, test_type, tgen, topo):
logger.info("Verify bgp neighbors goes down immediately")
result = verify_bgp_convergence(tgen, topo, dut="r2", expected=False)
assert result is not True, "Testcase {} : Failed \n Error: {}".format(
tc_name, result
assert result is not True, (
"Testcase {} : Failed \n "
"Expected: BGP should not be converged for {} \n "
"Found: {}".format(tc_name, "r2", result)
)
write_test_footer(tc_name)

View File

@ -160,7 +160,7 @@ def setup_module(mod):
# Required linux kernel version for this suite to run.
result = required_linux_kernel_version("4.16")
if result is not True:
pytest.skip("Kernel requirements are not met")
pytest.skip("Kernel requirements are not met, kernel version should be >=4.16")
testsuite_run_time = time.asctime(time.localtime(time.time()))
logger.info("Testsuite start time: {}".format(testsuite_run_time))
@ -1033,11 +1033,9 @@ def test_BGP_GR_TC_4_p0(request):
)
assert result is not True, (
"Testcase {} : Failed \n "
"r1: routes are still present in BGP RIB\n Error: {}".format(
tc_name, result
)
"Expected: Routes should not be present in {} BGP RIB \n "
"Found: {}".format(tc_name, dut, result)
)
logger.info(" Expected behavior: {}".format(result))
# Verifying RIB routes
result = verify_rib(
@ -1045,9 +1043,9 @@ def test_BGP_GR_TC_4_p0(request):
)
assert result is not True, (
"Testcase {} : Failed \n "
"r1: routes are still present in ZEBRA\n Error: {}".format(tc_name, result)
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(tc_name, dut, result)
)
logger.info(" Expected behavior: {}".format(result))
logger.info("[Phase 5] : R2 is about to come up now ")
start_router_daemons(tgen, "r2", ["bgpd"])
@ -1506,10 +1504,10 @@ def test_BGP_GR_TC_6_1_2_p1(request):
result = verify_r_bit(
tgen, topo, addr_type, input_dict, dut="r2", peer="r1", expected=False
)
assert (
result is not True
), "Testcase {} : Failed \n " "r2: R-bit is set to True\n Error: {}".format(
tc_name, result
assert result is not True, (
"Testcase {} : Failed \n "
"Expected: R-bit should not be set to True in r2\n"
"Found: {}".format(tc_name, result)
)
logger.info("Restart BGPd on R2 ")
@ -1528,10 +1526,10 @@ def test_BGP_GR_TC_6_1_2_p1(request):
result = verify_r_bit(
tgen, topo, addr_type, input_dict, dut="r2", peer="r1", expected=False
)
assert (
result is not True
), "Testcase {} : Failed \n " "r2: R-bit is set to True\n Error: {}".format(
tc_name, result
assert result is not True, (
"Testcase {} : Failed \n "
"Expected: R-bit should not be set to True in r2\n"
"Found: {}".format(tc_name, result)
)
write_test_footer(tc_name)

View File

@ -160,7 +160,7 @@ def setup_module(mod):
# Required linux kernel version for this suite to run.
result = required_linux_kernel_version("4.16")
if result is not True:
pytest.skip("Kernel requirements are not met")
pytest.skip("Kernel requirements are not met, kernel version should be >=4.16")
testsuite_run_time = time.asctime(time.localtime(time.time()))
logger.info("Testsuite start time: {}".format(testsuite_run_time))

View File

@ -160,7 +160,7 @@ def setup_module(mod):
# Required linux kernel version for this suite to run.
result = required_linux_kernel_version("4.16")
if result is not True:
pytest.skip("Kernel requirements are not met")
pytest.skip("Kernel requirements are not met, kernel version should be >=4.16")
testsuite_run_time = time.asctime(time.localtime(time.time()))
logger.info("Testsuite start time: {}".format(testsuite_run_time))
@ -829,11 +829,9 @@ def test_BGP_GR_TC_20_p1(request):
)
assert result is not True, (
"Testcase {} : Failed \n "
"r1: routes are still present in BGP RIB\n Error: {}".format(
tc_name, result
)
"Expected: Routes should not be present in {} BGP RIB \n "
"Found: {}".format(tc_name, dut, result)
)
logger.info(" Expected behavior: {}".format(result))
# Verifying RIB routes
result = verify_rib(
@ -841,9 +839,9 @@ def test_BGP_GR_TC_20_p1(request):
)
assert result is not True, (
"Testcase {} : Failed \n "
"r1: routes are still present in ZEBRA\n Error: {}".format(tc_name, result)
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(tc_name, dut, result)
)
logger.info(" Expected behavior: {}".format(result))
logger.info("[Phase 5] : R2 is about to come up now ")
@ -1117,7 +1115,8 @@ def test_BGP_GR_TC_31_1_p1(request):
)
assert result is not True, (
"Testcase {} : Failed \n "
"r1: routes are still present in ZEBRA\n Error: {}".format(tc_name, result)
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(tc_name, dut, result)
)
logger.info("[Phase 4] : R1 is about to come up now ")
@ -1599,11 +1598,9 @@ def test_BGP_GR_TC_9_p1(request):
)
assert result is not True, (
"Testcase {} : Failed \n "
"r1: routes are still present in BGP RIB\n Error: {}".format(
tc_name, result
)
"Expected: Routes should not be present in {} BGP RIB \n "
"Found: {}".format(tc_name, dut, result)
)
logger.info(" Expected behavior: {}".format(result))
# Verifying RIB routes
protocol = "bgp"
@ -1612,9 +1609,9 @@ def test_BGP_GR_TC_9_p1(request):
)
assert result is not True, (
"Testcase {} : Failed \n "
"r1: routes are still present in ZEBRA\n Error: {}".format(tc_name, result)
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(tc_name, dut, result)
)
logger.info(" Expected behavior: {}".format(result))
logger.info("[Phase 5] : R2 is about to come up now ")
start_router_daemons(tgen, "r2", ["bgpd"])
@ -1643,10 +1640,10 @@ def test_BGP_GR_TC_9_p1(request):
result = verify_f_bit(
tgen, topo, addr_type, input_dict, dut="r1", peer="r2", expected=False
)
assert (
result is not True
), "Testcase {} : Failed \n " "r1: F-bit is set to True\n Error: {}".format(
tc_name, result
assert result is not True, (
"Testcase {} : Failed \n "
"Expected: F-bit should not be set to True in r1\n"
"Found: {}".format(tc_name, result)
)
write_test_footer(tc_name)
@ -1781,11 +1778,9 @@ def test_BGP_GR_TC_17_p1(request):
)
assert result is not True, (
"Testcase {} : Failed \n "
"r1: routes are still present in BGP RIB\n Error: {}".format(
tc_name, result
)
"Expected: Routes should not be present in {} BGP RIB \n "
"Found: {}".format(tc_name, dut, result)
)
logger.info(" Expected behavior: {}".format(result))
# Verifying RIB routes
protocol = "bgp"
@ -1794,9 +1789,9 @@ def test_BGP_GR_TC_17_p1(request):
)
assert result is not True, (
"Testcase {} : Failed \n "
"r1: routes are still present in ZEBRA\n Error: {}".format(tc_name, result)
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(tc_name, dut, result)
)
logger.info(" Expected behavior: {}".format(result))
logger.info("[Phase 5] : R2 is about to come up now ")
start_router_daemons(tgen, "r2", ["bgpd"])
@ -1817,10 +1812,10 @@ def test_BGP_GR_TC_17_p1(request):
result = verify_r_bit(
tgen, topo, addr_type, input_dict, dut="r1", peer="r2", expected=False
)
assert (
result is not True
), "Testcase {} : Failed \n " "r1: R-bit is set to True\n Error: {}".format(
tc_name, result
assert result is not True, (
"Testcase {} : Failed \n "
"Expected: R-bit should not be set to True in r1\n"
"Found: {}".format(tc_name, result)
)
# Verifying BGP RIB routes
@ -2026,10 +2021,10 @@ def test_BGP_GR_TC_43_p1(request):
result = verify_rib(
tgen, addr_type, dut, input_topo, next_hop, protocol, expected=False
)
assert (
result is not True
), "Testcase {} :Failed \n Routes are still present \n Error {}".format(
tc_name, result
assert result is not True, (
"Testcase {} : Failed \n "
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(tc_name, dut, result)
)
dut = "r2"
@ -2043,18 +2038,18 @@ def test_BGP_GR_TC_43_p1(request):
)
assert result is not True, (
"Testcase {} : Failed \n "
"r2: routes are still present in BGP RIB\n Error: {}".format(
tc_name, result
)
"Expected: Routes should not be present in {} BGP RIB \n "
"Found: {}".format(tc_name, dut, result)
)
protocol = "bgp"
result = verify_rib(
tgen, addr_type, dut, input_topo, next_hop, protocol, expected=False
)
assert (
result is not True
), "Testcase {} :Failed \n Routes are still present \n Error {}".format(
tc_name, result
assert result is not True, (
"Testcase {} : Failed \n "
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(tc_name, dut, result)
)
step(
@ -2353,17 +2348,17 @@ def test_BGP_GR_TC_44_p1(request):
)
assert result is not True, (
"Testcase {} : Failed \n "
"r1: routes are still present in BGP RIB\n Error: {}".format(
tc_name, result
)
"Expected: Routes should not be present in {} BGP RIB \n "
"Found: {}".format(tc_name, dut, result)
)
result = verify_rib(
tgen, addr_type, dut, input_topo, next_hop, protocol, expected=False
)
assert (
result is not True
), "Testcase {} :Failed \n Routes are still present \n Error {}".format(
tc_name, result
assert result is not True, (
"Testcase {} : Failed \n "
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(tc_name, dut, result)
)
step("Bring up BGPd on R2 and remove GR related config from R1 in global level")

View File

@ -160,7 +160,7 @@ def setup_module(mod):
# Required linux kernel version for this suite to run.
result = required_linux_kernel_version("4.16")
if result is not True:
pytest.skip("Kernel requirements are not met")
pytest.skip("Kernel requirements are not met, kernel version should be >=4.16")
testsuite_run_time = time.asctime(time.localtime(time.time()))
logger.info("Testsuite start time: {}".format(testsuite_run_time))
@ -1157,7 +1157,8 @@ def test_BGP_GR_TC_48_p1(request):
)
assert result is not True, (
"Testcase {} : Failed \n "
"r1: routes are still present in ZEBRA\n Error: {}".format(tc_name, result)
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(tc_name, dut, result)
)
dut = "r2"
@ -1171,16 +1172,17 @@ def test_BGP_GR_TC_48_p1(request):
)
assert result is not True, (
"Testcase {} : Failed \n "
"r2: routes are still present in BGP RIB\n Error: {}".format(
tc_name, result
)
"Expected: Routes should not be present in {} BGP RIB \n "
"Found: {}".format(tc_name, dut, result)
)
result = verify_rib(
tgen, addr_type, dut, input_topo, next_hop, protocol, expected=False
)
assert result is not True, (
"Testcase {} : Failed \n "
"r2: routes are still present in ZEBRA\n Error: {}".format(tc_name, result)
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(tc_name, dut, result)
)
step("Bring up BGP on R1 and remove Peer-level GR config from R1")
@ -1542,16 +1544,17 @@ def BGP_GR_TC_52_p1(request):
)
assert result is not True, (
"Testcase {} : Failed \n "
"r1: routes are still present in BGP RIB\n Error: {}".format(
tc_name, result
)
"Expected: Routes should not be present in {} BGP RIB \n "
"Found: {}".format(tc_name, dut, result)
)
result = verify_rib(
tgen, addr_type, dut, input_topo, next_hop, protocol, expected=False
)
assert result is not True, (
"Testcase {} : Failed \n "
"r1: routes are still present in ZEBRA\n Error: {}".format(tc_name, result)
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(tc_name, dut, result)
)
step("Bring up BGP on R2 and remove Peer-level GR config from R1")

View File

@ -155,7 +155,7 @@ def setup_module(mod):
# Required linux kernel version for this suite to run.
result = required_linux_kernel_version("4.16")
if result is not True:
pytest.skip("Kernel requirements are not met")
pytest.skip("Kernel requirements are not met, kernel version should be >=4.16")
global ADDR_TYPES
@ -528,10 +528,10 @@ def test_BGP_GR_TC_3_p0(request):
result = verify_eor(
tgen, topo, addr_type, input_dict, dut="r2", peer="r1", expected=False
)
assert (
result is not True
), "Testcase {} : Failed \n " "r2: EOR is set to True\n Error: {}".format(
tc_name, result
assert result is not True, (
"Testcase {} : Failed \n "
"Expected: EOR should not be set to True in r2\n"
"Found: {}".format(tc_name, result)
)
logger.info(
@ -675,10 +675,10 @@ def test_BGP_GR_TC_11_p0(request):
result = verify_eor(
tgen, topo, addr_type, input_dict, dut="r1", peer="r3", expected=False
)
assert (
result is not True
), "Testcase {} : Failed \n " "r1: EOR is set to True\n Error: {}".format(
tc_name, result
assert result is not True, (
"Testcase {} : Failed \n "
"Expected: EOR should not be set to True in r1\n"
"Found: {}".format(tc_name, result)
)
logger.info(
@ -706,10 +706,10 @@ def test_BGP_GR_TC_11_p0(request):
result = verify_eor(
tgen, topo, addr_type, input_dict, dut="r3", peer="r1", expected=False
)
assert (
result is not True
), "Testcase {} : Failed \n " "r3: EOR is set to True\n Error: {}".format(
tc_name, result
assert result is not True, (
"Testcase {} : Failed \n "
"Expected: EOR should not be set to True in r3\n"
"Found: {}".format(tc_name, result)
)
write_test_footer(tc_name)
@ -1474,38 +1474,33 @@ def test_BGP_GR_18_p1(request):
result = verify_bgp_rib(tgen, addr_type, dut, input_dict_1, expected=False)
assert result is not True, (
"Testcase {} : Failed \n "
"r6: routes are still present in BGP RIB\n Error: {}".format(
tc_name, result
)
"Expected: Routes should not be present in {} BGP RIB \n "
"Found: {}".format(tc_name, dut, result)
)
logger.info(" Expected behavior: {}".format(result))
# Verifying RIB routes before shutting down BGPd daemon
result = verify_rib(tgen, addr_type, dut, input_dict_1, expected=False)
assert result is not True, (
"Testcase {} : Failed \n "
"r6: routes are still present in ZEBRA\n Error: {}".format(tc_name, result)
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(tc_name, dut, result)
)
logger.info(" Expected behavior: {}".format(result))
# Verifying BGP RIB routes
dut = "r2"
result = verify_bgp_rib(tgen, addr_type, dut, input_dict_1, expected=False)
assert result is not True, (
"Testcase {} : Failed \n "
"r2: routes are still present in BGP RIB\n Error: {}".format(
tc_name, result
)
"Expected: Routes should not be present in {} BGP RIB \n "
"Found: {}".format(tc_name, dut, result)
)
logger.info(" Expected behavior: {}".format(result))
# Verifying RIB routes before shutting down BGPd daemon
result = verify_rib(tgen, addr_type, dut, input_dict_1, expected=False)
assert result is not True, (
"Testcase {} : Failed \n "
"r6: routes are still present in ZEBRA\n Error: {}".format(tc_name, result)
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(tc_name, dut, result)
)
logger.info(" Expected behavior: {}".format(result))
write_test_footer(tc_name)

View File

@ -155,7 +155,7 @@ def setup_module(mod):
# Required linux kernel version for this suite to run.
result = required_linux_kernel_version("4.16")
if result is not True:
pytest.skip("Kernel requirements are not met")
pytest.skip("Kernel requirements are not met, kernel version should be >=4.16")
global ADDR_TYPES
@ -726,19 +726,17 @@ def test_BGP_GR_chaos_29_p1(request):
result = verify_bgp_rib(tgen, addr_type, dut, input_dict, expected=False)
assert result is not True, (
"Testcase {} : Failed \n "
"r3: routes are still present in BGP RIB\n Error: {}".format(
tc_name, result
)
"Expected: Routes should not be present in {} BGP RIB \n "
"Found: {}".format(tc_name, dut, result)
)
logger.info(" Expected behavior: {}".format(result))
# Verifying RIB routes before shutting down BGPd daemon
result = verify_rib(tgen, addr_type, dut, input_dict, expected=False)
assert result is not True, (
"Testcase {} : Failed \n "
"r3: routes are still present in ZEBRA\n Error: {}".format(tc_name, result)
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(tc_name, dut, result)
)
logger.info(" Expected behavior: {}".format(result))
logger.info("[Step 4] : Start BGPd daemon on R1..")
@ -981,11 +979,9 @@ def test_BGP_GR_chaos_33_p1(request):
)
assert result is not True, (
"Testcase {} : Failed \n "
"r3: routes are still present in BGP RIB\n Error: {}".format(
tc_name, result
)
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(tc_name, dut, result)
)
logger.info(" Expected behavior: {}".format(result))
if addr_type == "ipv6":
if "link_local" in PREFERRED_NEXT_HOP:
@ -998,11 +994,9 @@ def test_BGP_GR_chaos_33_p1(request):
)
assert result is not True, (
"Testcase {} : Failed \n "
"r3: routes are still present in ZEBRA\n Error: {}".format(
tc_name, result
)
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(tc_name, dut, result)
)
logger.info(" Expected behavior: {}".format(result))
logger.info("[Step 4] : Start BGPd daemon on R1 and R4..")
@ -1182,31 +1176,28 @@ def test_BGP_GR_chaos_34_2_p1(request):
result = verify_f_bit(
tgen, topo, addr_type, input_dict, "r3", "r1", expected=False
)
assert (
result is not True
), "Testcase {} : Failed \n " "r3: F-bit is set to True\n Error: {}".format(
tc_name, result
assert result is not True, (
"Testcase {} : Failed \n "
"Expected: F-bit should not be set to True in r3\n"
"Found: {}".format(tc_name, result)
)
logger.info(" Expected behavior: {}".format(result))
# Verifying BGP RIB routes after starting BGPd daemon
input_dict_1 = {key: topo["routers"][key] for key in ["r1"]}
result = verify_bgp_rib(tgen, addr_type, dut, input_dict_1, expected=False)
assert result is not True, (
"Testcase {} : Failed \n "
"r3: routes are still present in BGP RIB\n Error: {}".format(
tc_name, result
)
"Expected: Routes should not be present in {} BGP RIB \n "
"Found: {}".format(tc_name, dut, result)
)
logger.info(" Expected behavior: {}".format(result))
# Verifying RIB routes
result = verify_rib(tgen, addr_type, dut, input_dict_1, expected=False)
assert result is not True, (
"Testcase {} : Failed \n "
"r3: routes are still present in ZEBRA\n Error: {}".format(tc_name, result)
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(tc_name, dut, result)
)
logger.info(" Expected behavior: {}".format(result))
write_test_footer(tc_name)

View File

@ -155,7 +155,7 @@ def setup_module(mod):
# Required linux kernel version for this suite to run.
result = required_linux_kernel_version("4.16")
if result is not True:
pytest.skip("Kernel requirements are not met")
pytest.skip("Kernel requirements are not met, kernel version should be >=4.16")
global ADDR_TYPES
@ -380,12 +380,11 @@ def test_BGP_GR_chaos_34_1_p1(request):
result = verify_f_bit(
tgen, topo, addr_type, input_dict_2, "r3", "r1", expected=False
)
assert (
result is not True
), "Testcase {} : Failed \n " "r3: F-bit is set to True\n Error: {}".format(
tc_name, result
assert result is not True, (
"Testcase {} : Failed \n "
"Expected: F-bit should not be set to True in r3\n"
"Found: {}".format(tc_name, result)
)
logger.info(" Expected behavior: {}".format(result))
logger.info("[Step 3] : Kill BGPd daemon on R1..")
@ -402,19 +401,17 @@ def test_BGP_GR_chaos_34_1_p1(request):
result = verify_bgp_rib(tgen, addr_type, dut, input_dict, expected=False)
assert result is not True, (
"Testcase {} : Failed \n "
"r3: routes are still present in BGP RIB\n Error: {}".format(
tc_name, result
)
"Expected: Routes should not be present in {} BGP RIB \n "
"Found: {}".format(tc_name, dut, result)
)
logger.info(" Expected behavior: {}".format(result))
# Verifying RIB routes
result = verify_rib(tgen, addr_type, dut, input_dict, expected=False)
assert result is not True, (
"Testcase {} : Failed \n "
"r3: routes are still present in ZEBRA\n Error: {}".format(tc_name, result)
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(tc_name, dut, result)
)
logger.info(" Expected behavior: {}".format(result))
# Start BGPd daemon on R1
start_router_daemons(tgen, "r1", ["bgpd"])
@ -587,31 +584,28 @@ def test_BGP_GR_chaos_32_p1(request):
result = verify_eor(
tgen, topo, addr_type, input_dict_3, dut="r5", peer="r1", expected=False
)
assert (
result is not True
), "Testcase {} : Failed \n " "r5: EOR is set to TRUE\n Error: {}".format(
tc_name, result
assert result is not True, (
"Testcase {} : Failed \n "
"Expected: EOR should not be set to True in r5\n"
"Found: {}".format(tc_name, result)
)
logger.info(" Expected behavior: {}".format(result))
# Verifying BGP RIB routes after starting BGPd daemon
input_dict_1 = {key: topo["routers"][key] for key in ["r5"]}
result = verify_bgp_rib(tgen, addr_type, dut, input_dict_1, expected=False)
assert result is not True, (
"Testcase {} : Failed \n "
"r3: routes are still present in BGP RIB\n Error: {}".format(
tc_name, result
)
"Expected: Routes should not be present in {} BGP RIB \n "
"Found: {}".format(tc_name, dut, result)
)
logger.info(" Expected behavior: {}".format(result))
# Verifying RIB routes
result = verify_rib(tgen, addr_type, dut, input_dict_1, expected=False)
assert result is not True, (
"Testcase {} : Failed \n "
"r3: routes are still present in ZEBRA\n Error: {}".format(tc_name, result)
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(tc_name, dut, result)
)
logger.info(" Expected behavior: {}".format(result))
write_test_footer(tc_name)
@ -716,12 +710,11 @@ def test_BGP_GR_chaos_37_p1(request):
result = verify_eor(
tgen, topo, addr_type, input_dict, dut="r3", peer="r1", expected=False
)
assert (
result is not True
), "Testcase {} : Failed \n " "r3: EOR is set to True\n Error: {}".format(
tc_name, result
assert result is not True, (
"Testcase {} : Failed \n "
"Expected: EOR should not be set to True in r3\n"
"Found: {}".format(tc_name, result)
)
logger.info(" Expected behavior: {}".format(result))
# Verifying BGP RIB routes after starting BGPd daemon
dut = "r1"
@ -783,10 +776,10 @@ def test_BGP_GR_chaos_37_p1(request):
result = verify_eor(
tgen, topo, addr_type, input_dict_3, dut="r1", peer="r3", expected=False
)
assert (
result is not True
), "Testcase {} : Failed \n " "r1: EOR is set to True\n Error: {}".format(
tc_name, result
assert result is not True, (
"Testcase {} : Failed \n "
"Expected: EOR should not be set to True in r1\n"
"Found: {}".format(tc_name, result)
)
write_test_footer(tc_name)
@ -941,19 +934,17 @@ def test_BGP_GR_chaos_30_p1(request):
result = verify_bgp_rib(tgen, addr_type, dut, input_dict, expected=False)
assert result is not True, (
"Testcase {} : Failed \n "
"r1: routes are still present in BGP RIB\n Error: {}".format(
tc_name, result
)
"Expected: Routes should not be present in {} BGP RIB \n "
"Found: {}".format(tc_name, dut, result)
)
logger.info(" Expected behavior: {}".format(result))
# Verifying RIB routes before shutting down BGPd daemon
result = verify_rib(tgen, addr_type, dut, input_dict, expected=False)
assert result is not True, (
"Testcase {} : Failed \n "
"r1: routes are still present in ZEBRA\n Error: {}".format(tc_name, result)
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(tc_name, dut, result)
)
logger.info(" Expected behavior: {}".format(result))
write_test_footer(tc_name)
@ -1356,7 +1347,8 @@ def BGP_GR_TC_7_p1(request):
result = verify_rib(tgen, addr_type, dut, input_dict_1, expected=False)
assert result is not True, (
"Testcase {} : Failed \n "
"r1: routes are still present in ZEBRA\n Error: {}".format(tc_name, result)
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(tc_name, dut, result)
)
write_test_footer(tc_name)

View File

@ -157,7 +157,7 @@ def setup_module(mod):
# Required linux kernel version for this suite to run.
result = required_linux_kernel_version("4.16")
if result is not True:
pytest.skip("Kernel requirements are not met")
pytest.skip("Kernel requirements are not met, kernel version should be >=4.16")
global ADDR_TYPES
@ -420,10 +420,10 @@ def test_BGP_GR_TC_23_p1(request):
result = verify_eor(
tgen, topo, addr_type, input_dict, dut="r1", peer="r2", expected=False
)
assert (
result is not True
), "Testcase {} : Failed \n " "r1: EOR is set to True\n Error: {}".format(
tc_name, result
assert result is not True, (
"Testcase {} : Failed \n "
"Expected: EOR should not be set to True in r2\n"
"Found: {}".format(tc_name, result)
)
# Verifying BGP RIB routes received from router R1
@ -547,19 +547,17 @@ def test_BGP_GR_20_p1(request):
result = verify_bgp_rib(tgen, addr_type, dut, input_dict_1, expected=False)
assert result is not True, (
"Testcase {} : Failed \n "
"r3: routes are still present in BGP RIB\n Error: {}".format(
tc_name, result
)
"Expected: Routes should not be present in {} BGP RIB \n "
"Found: {}".format(tc_name, dut, result)
)
logger.info(" Expected behavior: {}".format(result))
# Verifying RIB routes before shutting down BGPd daemon
result = verify_rib(tgen, addr_type, dut, input_dict_1, expected=False)
assert result is not True, (
"Testcase {} : Failed \n "
"r3: routes are still present in ZEBRA\n Error: {}".format(tc_name, result)
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(tc_name, dut, result)
)
logger.info(" Expected behavior: {}".format(result))
# Start BGPd daemon on R1
start_router_daemons(tgen, "r1", ["bgpd"])

View File

@ -248,7 +248,7 @@ def setup_module(mod):
# Required linux kernel version for this suite to run.
result = required_linux_kernel_version("4.16")
if result is not True:
pytest.skip("Kernel requirements are not met")
pytest.skip("Kernel requirements are not met, kernel version should be >=4.16")
global ADDR_TYPES

View File

@ -92,7 +92,7 @@ def setup_module(mod):
# Required linux kernel version for this suite to run.
result = required_linux_kernel_version("4.16")
if result is not True:
pytest.skip("Kernel requirements are not met")
pytest.skip("Kernel requirements are not met, kernel version should be >=4.16")
testsuite_run_time = time.asctime(time.localtime(time.time()))
logger.info("Testsuite start time: {}".format(testsuite_run_time))

View File

@ -87,7 +87,7 @@ def setup_module(mod):
# Required linux kernel version for this suite to run.
result = required_linux_kernel_version("4.16")
if result is not True:
pytest.skip("Kernel requirements are not met")
pytest.skip("Kernel requirements are not met, kernel version should be >=4.16")
testsuite_run_time = time.asctime(time.localtime(time.time()))
logger.info("Testsuite start time: {}".format(testsuite_run_time))

View File

@ -346,9 +346,12 @@ def test_ip_prefix_lists_out_permit(request):
result = verify_rib(
tgen, "ipv4", dut, input_dict, protocol=protocol, expected=False
)
assert (
result is not True
), "Testcase {} : Failed \n Error: Routes still" " present in RIB".format(tc_name)
assert result is not True, ("Testcase {} : Failed \n "
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(
tc_name, dut, result
))
write_test_footer(tc_name)
@ -444,9 +447,11 @@ def test_ip_prefix_lists_in_deny_and_permit_any(request):
result = verify_rib(
tgen, "ipv4", dut, input_dict, protocol=protocol, expected=False
)
assert (
result is not True
), "Testcase {} : Failed \n Error: Routes still" " present in RIB".format(tc_name)
assert result is not True, ("Testcase {} : Failed \n "
"Expected: Routes should not be present in {} BGP RIB \n "
"Found: {}".format(
tc_name, dut, result
))
write_test_footer(tc_name)
@ -644,9 +649,12 @@ def test_ip_prefix_lists_out_deny_and_permit_any(request):
result = verify_rib(
tgen, "ipv4", dut, input_dict, protocol=protocol, expected=False
)
assert (
result is not True
), "Testcase {} : Failed \n Error: Routes still" " present in RIB".format(tc_name)
assert result is not True, ("Testcase {} : Failed \n "
"Expected: Routes should not be present in {} BGP RIB \n "
"Found: {}".format(
tc_name, dut, result
))
write_test_footer(tc_name)
@ -778,9 +786,11 @@ def test_modify_prefix_lists_in_permit_to_deny(request):
result = verify_rib(
tgen, "ipv4", dut, input_dict, protocol=protocol, expected=False
)
assert (
result is not True
), "Testcase {} : Failed \n Error: Routes still" " present in RIB".format(tc_name)
assert result is not True, ("Testcase {} : Failed \n "
"Expected: Routes should not be present in {} BGP RIB \n "
"Found: {}".format(
tc_name, dut, result
))
write_test_footer(tc_name)
@ -882,9 +892,11 @@ def test_modify_prefix_lists_in_deny_to_permit(request):
result = verify_rib(
tgen, "ipv4", dut, input_dict, protocol=protocol, expected=False
)
assert (
result is not True
), "Testcase {} : Failed \n Error: Routes still" " present in RIB".format(tc_name)
assert result is not True, ("Testcase {} : Failed \n "
"Expected: Routes should not be present in {} BGP RIB \n "
"Found: {}".format(
tc_name, dut, result
))
# Modify ip prefix list
input_dict_1 = {
@ -1051,9 +1063,11 @@ def test_modify_prefix_lists_out_permit_to_deny(request):
result = verify_rib(
tgen, "ipv4", dut, input_dict, protocol=protocol, expected=False
)
assert (
result is not True
), "Testcase {} : Failed \n Error: Routes still" " present in RIB".format(tc_name)
assert result is not True, ("Testcase {} : Failed \n "
"Expected: Routes should not be present in {} BGP RIB \n "
"Found: {}".format(
tc_name, dut, result
))
write_test_footer(tc_name)
@ -1157,9 +1171,11 @@ def test_modify_prefix_lists_out_deny_to_permit(request):
result = verify_rib(
tgen, "ipv4", dut, input_dict, protocol=protocol, expected=False
)
assert (
result is not True
), "Testcase {} : Failed \n Error: Routes still" " present in RIB".format(tc_name)
assert result is not True, ("Testcase {} : Failed \n "
"Expected: Routes should not be present in {} BGP RIB \n "
"Found: {}".format(
tc_name, dut, result
))
# Modify ip prefix list
input_dict_1 = {
@ -1324,9 +1340,11 @@ def test_ip_prefix_lists_implicit_deny(request):
result = verify_rib(
tgen, "ipv4", dut, input_dict_1, protocol=protocol, expected=False
)
assert (
result is not True
), "Testcase {} : Failed \n Error: Routes still" " present in RIB".format(tc_name)
assert result is not True, ("Testcase {} : Failed \n "
"Expected: Routes should not be present in {} BGP RIB \n "
"Found: {}".format(
tc_name, dut, result
))
write_test_footer(tc_name)

View File

@ -444,12 +444,11 @@ def test_route_map_inbound_outbound_same_neighbor_p0(request):
result = verify_rib(
tgen, adt, dut, input_dict_2, protocol=protocol, expected=False
)
assert (
result is not True
), "Testcase {} : Failed \nroutes are not present in rib \n Error: {}".format(
tc_name, result
)
logger.info("Expected behaviour: {}".format(result))
assert result is not True, ("Testcase {} : Failed \n "
"Expected: Routes should not be present in {} BGP RIB \n "
"Found: {}".format(
tc_name, dut, result
))
# Verifying RIB routes
dut = "r4"
@ -467,12 +466,11 @@ def test_route_map_inbound_outbound_same_neighbor_p0(request):
result = verify_rib(
tgen, adt, dut, input_dict, protocol=protocol, expected=False
)
assert (
result is not True
), "Testcase {} : Failed \nroutes are not present in rib \n Error: {}".format(
tc_name, result
)
logger.info("Expected behaviour: {}".format(result))
assert result is not True, ("Testcase {} : Failed \n "
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(
tc_name, dut, result
))
write_test_footer(tc_name)
@ -666,12 +664,11 @@ def test_route_map_with_action_values_combination_of_prefix_action_p0(
result = verify_rib(
tgen, adt, dut, input_dict_2, protocol=protocol, expected=False
)
assert (
result is not True
), "Testcase {} : Failed \nRoutes are still present \n Error: {}".format(
tc_name, result
)
logger.info("Expected behaviour: {}".format(result))
assert result is not True, ("Testcase {} : Failed \n "
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(
tc_name, dut, result
))
else:
result = verify_rib(tgen, adt, dut, input_dict_2, protocol=protocol)
assert result is True, "Testcase {} : Failed \n Error: {}".format(

View File

@ -1022,12 +1022,11 @@ def test_modify_prefix_list_referenced_by_rmap_p0():
result = verify_rib(
tgen, addr_type, dut, input_dict, protocol=protocol, expected=False
)
assert (
result is not True
), "Testcase {} : Failed \nroutes are not present \n Error: {}".format(
tc_name, result
)
logger.info("Expected behaviour: {}".format(result))
assert result is not True, ("Testcase {} : Failed \n "
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(
tc_name, dut, result
))
# Verifying RIB routes
dut = "r4"
@ -1036,11 +1035,11 @@ def test_modify_prefix_list_referenced_by_rmap_p0():
result = verify_rib(
tgen, addr_type, dut, input_dict, protocol=protocol, expected=False
)
assert (
result is not True
), "Testcase {} : Failed \nExpected behaviour: routes are not present \n Error: {}".format(
tc_name, result
)
assert result is not True, ("Testcase {} : Failed \n "
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(
tc_name, dut, result
))
write_test_footer(tc_name)
@ -1293,12 +1292,11 @@ def test_remove_prefix_list_referenced_by_rmap_p0():
result = verify_rib(
tgen, addr_type, dut, input_dict, protocol=protocol, expected=False
)
assert (
result is not True
), "Testcase {} : Failed \nroutes are not present \n Error: {}".format(
tc_name, result
)
logger.info("Expected behaviour: {}".format(result))
assert result is not True, ("Testcase {} : Failed \n "
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(
tc_name, dut, result
))
# Verifying RIB routes
dut = "r4"
@ -1307,12 +1305,11 @@ def test_remove_prefix_list_referenced_by_rmap_p0():
result = verify_rib(
tgen, addr_type, dut, input_dict, protocol=protocol, expected=False
)
assert (
result is not True
), "Testcase {} : Failed \nroutes are not present \n Error: {}".format(
tc_name, result
)
logger.info("Expected behaviour: {}".format(result))
assert result is not True, ("Testcase {} : Failed \n "
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(
tc_name, dut, result
))
write_test_footer(tc_name)
@ -2139,12 +2136,11 @@ def test_add_remove_rmap_to_specific_neighbor_p0():
result = verify_rib(
tgen, addr_type, dut, input_dict, protocol=protocol, expected=False
)
assert (
result is not True
), "Testcase {} : Failed \n Error Routes are still present: {}".format(
tc_name, result
)
logger.info("Expected behaviour: {}".format(result))
assert result is not True, ("Testcase {} : Failed \n "
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(
tc_name, dut, result
))
# Remove applied rmap from neighbor
input_dict_4 = {
@ -2553,12 +2549,11 @@ def test_rmap_without_match_and_set_clause_p0():
result = verify_rib(
tgen, addr_type, dut, input_dict, protocol=protocol, expected=False
)
assert (
result is not True
), "Testcase {} : Failed \nroutes are not present \n Error: {}".format(
tc_name, result
)
logger.info("Expected behaviour: {}".format(result))
assert result is not True, ("Testcase {} : Failed \n "
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(
tc_name, dut, result
))
write_test_footer(tc_name)
# Uncomment next line for debugging
@ -2801,12 +2796,11 @@ def test_set_localpref_weight_to_ebgp_and_med_to_ibgp_peers_p0():
input_dict_3_addr_type[addr_type],
expected=False,
)
assert (
result is not True
), "Testcase {} : Failed \nAttributes are not set \n Error: {}".format(
tc_name, result
)
logger.info("Expected behaviour: {}".format(result))
assert result is not True, ("Testcase {} : Failed \n "
"Expected: BGP attributes should not be set in {} FIB \n "
"Found: {}".format(
tc_name, dut, result
))
# Verifying RIB routes
dut = "r5"
@ -2835,12 +2829,11 @@ def test_set_localpref_weight_to_ebgp_and_med_to_ibgp_peers_p0():
input_dict_3_addr_type[addr_type],
expected=False,
)
assert (
result is not True
), "Testcase {} : Failed \nAttributes are not set \n Error: {}".format(
tc_name, result
)
logger.info("Expected behaviour: {}".format(result))
assert result is not True, ("Testcase {} : Failed \n "
"Expected: BGP attributes should not be set in {} FIB \n "
"Found: {}".format(
tc_name, dut, result
))
write_test_footer(tc_name)
@ -3644,12 +3637,11 @@ def test_create_rmap_match_prefix_list_to_deny_in_and_outbound_prefixes_p0():
result = verify_rib(
tgen, addr_type, dut, input_dict, protocol=protocol, expected=False
)
assert (
result is not True
), "Testcase {} : Failed \nroutes are not present \n Error: {}".format(
tc_name, result
)
logger.info("Expected behaviour: {}".format(result))
assert result is not True, ("Testcase {} : Failed \n "
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(
tc_name, dut, result
))
# Verifying RIB routes
dut = "r4"
@ -3658,12 +3650,11 @@ def test_create_rmap_match_prefix_list_to_deny_in_and_outbound_prefixes_p0():
result = verify_rib(
tgen, addr_type, dut, input_dict, protocol=protocol, expected=False
)
assert (
result is not True
), "Testcase {} : Failed \nroutes are not present \n Error: {}".format(
tc_name, result
)
logger.info("Expected behaviour: {}".format(result))
assert result is not True, ("Testcase {} : Failed \n "
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(
tc_name, dut, result
))
write_test_footer(tc_name)
@ -3963,12 +3954,11 @@ def test_create_rmap_to_match_tag_deny_outbound_prefixes_p0():
result = verify_rib(
tgen, addr_type, dut, input_dict, protocol=protocol, expected=False
)
assert (
result is not True
), "Testcase {} : Failed \nroutes are denied \n Error: {}".format(
tc_name, result
)
logger.info("Expected behaviour: {}".format(result))
assert result is not True, ("Testcase {} : Failed \n "
"Expected: Routes should not be present in {} FIB \n "
"Found: {}".format(
tc_name, dut, result
))
write_test_footer(tc_name)