mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-03 11:01:48 +00:00
tests: [topojson]Update assert/error messages
Few assert/error messages are updated for test scripts for better debugging. Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
This commit is contained in:
parent
2273550f04
commit
db726bb8b7
@ -829,10 +829,11 @@ def test_RT_verification_auto_p0(request):
|
||||
}
|
||||
|
||||
result = verify_rib(tgen, addr_type, "d2", input_routes, expected=False)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} :Failed \n Routes are still present: {}".format(tc_name, result)
|
||||
logger.info("Expected Behavior: {}".format(result))
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: Routes should not be present in {} RIB \n "
|
||||
"Found: {}".format(tc_name, "d2", result)
|
||||
)
|
||||
|
||||
step(
|
||||
"Revert back to original VNI number for all 3 VRFs on Edge-1 "
|
||||
@ -965,12 +966,11 @@ def test_RT_verification_auto_p0(request):
|
||||
result = verify_attributes_for_evpn_routes(
|
||||
tgen, topo, "d2", input_routes_1, rt="auto", rt_peer="e1", expected=False
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} :Failed \n Malfaromed Auto-RT value accepted: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: Malformed Auto-RT value should not be accepted \n "
|
||||
"Found: {}".format(tc_name, "d2", result)
|
||||
)
|
||||
logger.info("Expected Behavior: {}".format(result))
|
||||
|
||||
step("Configure VNI number more than boundary limit (16777215)")
|
||||
|
||||
@ -1000,12 +1000,11 @@ def test_RT_verification_auto_p0(request):
|
||||
result = verify_attributes_for_evpn_routes(
|
||||
tgen, topo, "d2", input_routes_1, rt="auto", rt_peer="e1", expected=False
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} :Failed \n Malfaromed Auto-RT value accepted: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: Malformed Auto-RT value should not be accepted \n "
|
||||
"Found: {}".format(tc_name, "d2", result)
|
||||
)
|
||||
logger.info("Expected Behavior: {}".format(result))
|
||||
|
||||
step("Un-configure VNI number more than boundary limit (16777215)")
|
||||
|
||||
|
@ -848,17 +848,17 @@ def test_RT_verification_manual_p0(request):
|
||||
}
|
||||
result = verify_rib(tgen, addr_type, "d1", input_routes, expected=False)
|
||||
assert result is not True, (
|
||||
"Testcase {} :Failed \n Expected Behavior: Routes are still "
|
||||
"present \n Error: {}".format(tc_name, result)
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: Routes should not be present in {} RIB \n "
|
||||
"Found: {}".format(tc_name, "d1", result)
|
||||
)
|
||||
logger.info("Expected Behavior: {}".format(result))
|
||||
|
||||
result = verify_rib(tgen, addr_type, "d2", input_routes, expected=False)
|
||||
assert result is not True, (
|
||||
"Testcase {} :Failed \n Expected Behavior: Routes are still "
|
||||
"present \n Error: {}".format(tc_name, result)
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: Routes should not be present in {} RIB \n "
|
||||
"Found: {}".format(tc_name, "d2", result)
|
||||
)
|
||||
logger.info("Expected Behavior: {}".format(result))
|
||||
|
||||
step(
|
||||
"Configure RT value as 100:100000010000010000101010 to check "
|
||||
@ -900,10 +900,10 @@ def test_RT_verification_manual_p0(request):
|
||||
tgen, topo, dut, input_routes, rt="100:100000010000010000101010", expected=False
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} :Failed \n Expected Behavior: RT value of out"
|
||||
" of boundary \n Error: {}".format(tc_name, result)
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: RT value out of boundary error \n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
logger.info("Expected Behavior: {}".format(result))
|
||||
|
||||
write_test_footer(tc_name)
|
||||
|
||||
@ -1316,18 +1316,20 @@ def test_evpn_routes_from_VNFs_p1(request):
|
||||
for addr_type in ADDR_TYPES:
|
||||
input_routes = {key: topo["routers"][key] for key in ["r1"]}
|
||||
result = verify_rib(tgen, addr_type, "d2", input_routes, expected=False)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase :Failed \n Routes are still present: {}".format(result)
|
||||
logger.info("Expected Behavior: {}".format(result))
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: Routes should not be present in {} RIB \n "
|
||||
"Found: {}".format(tc_name, "d2", result)
|
||||
)
|
||||
|
||||
for addr_type in ADDR_TYPES:
|
||||
input_routes = {key: topo["routers"][key] for key in ["r1"]}
|
||||
result = verify_rib(tgen, addr_type, "r3", input_routes, expected=False)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} :Failed \n Routes are still present: {}".format(tc_name, result)
|
||||
logger.info("Expected Behavior: {}".format(result))
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: Routes should not be present in {} RIB \n "
|
||||
"Found: {}".format(tc_name, "r3", result)
|
||||
)
|
||||
|
||||
step("Re-advertise IP prefixes from VFN(R1).")
|
||||
step(
|
||||
@ -1401,16 +1403,18 @@ def test_evpn_routes_from_VNFs_p1(request):
|
||||
}
|
||||
|
||||
result = verify_rib(tgen, addr_type, "d2", input_routes, expected=False)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} :Failed \n Routes are still present: {}".format(tc_name, result)
|
||||
logger.info("Expected Behavior: {}".format(result))
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: Routes should not be present in {} RIB \n "
|
||||
"Found: {}".format(tc_name, "d2", result)
|
||||
)
|
||||
|
||||
result = verify_rib(tgen, addr_type, "r4", input_routes, expected=False)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} :Failed \n Routes are still present: {}".format(tc_name, result)
|
||||
logger.info("Expected Behavior: {}".format(result))
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: Routes should not be present in {} RIB \n "
|
||||
"Found: {}".format(tc_name, "r4", result)
|
||||
)
|
||||
|
||||
step("Add vrf BLUE on router Edge-1 again.")
|
||||
interface = topo["routers"]["e1"]["links"]["r2-link1"]["interface"]
|
||||
@ -1504,16 +1508,18 @@ def test_evpn_routes_from_VNFs_p1(request):
|
||||
}
|
||||
|
||||
result = verify_rib(tgen, addr_type, "d2", input_routes, expected=False)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} :Failed \n Routes are still present: {}".format(tc_name, result)
|
||||
logger.info("Expected Behavior: {}".format(result))
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: Routes should not be present in {} RIB \n "
|
||||
"Found: {}".format(tc_name, "d2", result)
|
||||
)
|
||||
|
||||
result = verify_rib(tgen, addr_type, "r4", input_routes, expected=False)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} :Failed \n Routes are still present: {}".format(tc_name, result)
|
||||
logger.info("Expected Behavior: {}".format(result))
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: Routes should not be present in {} RIB \n "
|
||||
"Found: {}".format(tc_name, "r4", result)
|
||||
)
|
||||
|
||||
step("Advertise IPv6 address-family in EVPN advertisements " "for VRF GREEN.")
|
||||
addr_type = "ipv6"
|
||||
|
@ -1136,16 +1136,18 @@ def verify_upstream_iif(
|
||||
if group_addr_json[src_address]["joinState"] != "Joined":
|
||||
errormsg = (
|
||||
"[DUT %s]: Verifying iif "
|
||||
"(Inbound Interface) for (%s,%s) and"
|
||||
" joinState :%s [FAILED]!! "
|
||||
" Expected: %s, Found: %s"
|
||||
"(Inbound Interface) and joinState "
|
||||
"for (%s, %s), Expected iif: %s, "
|
||||
"Found iif : %s, and Expected "
|
||||
"joinState :%s , Found joinState: %s"
|
||||
% (
|
||||
dut,
|
||||
src_address,
|
||||
grp_addr,
|
||||
group_addr_json[src_address]["joinState"],
|
||||
in_interface,
|
||||
group_addr_json[src_address]["inboundInterface"],
|
||||
joinState,
|
||||
group_addr_json[src_address]["joinState"]
|
||||
)
|
||||
)
|
||||
return errormsg
|
||||
@ -1153,16 +1155,18 @@ def verify_upstream_iif(
|
||||
elif group_addr_json[src_address]["joinState"] != joinState:
|
||||
errormsg = (
|
||||
"[DUT %s]: Verifying iif "
|
||||
"(Inbound Interface) for (%s,%s) and"
|
||||
" joinState :%s [FAILED]!! "
|
||||
" Expected: %s, Found: %s"
|
||||
"(Inbound Interface) and joinState "
|
||||
"for (%s, %s), Expected iif: %s, "
|
||||
"Found iif : %s, and Expected "
|
||||
"joinState :%s , Found joinState: %s"
|
||||
% (
|
||||
dut,
|
||||
src_address,
|
||||
grp_addr,
|
||||
group_addr_json[src_address]["joinState"],
|
||||
in_interface,
|
||||
group_addr_json[src_address]["inboundInterface"],
|
||||
joinState,
|
||||
group_addr_json[src_address]["joinState"]
|
||||
)
|
||||
)
|
||||
return errormsg
|
||||
@ -1171,16 +1175,18 @@ def verify_upstream_iif(
|
||||
if group_addr_json[src_address]["regState"] != regState:
|
||||
errormsg = (
|
||||
"[DUT %s]: Verifying iif "
|
||||
"(Inbound Interface) for (%s,%s) and"
|
||||
" rejstate :%s [FAILED]!! "
|
||||
" Expected: %s, Found: %s"
|
||||
"(Inbound Interface) and regState "
|
||||
"for (%s, %s), Expected iif: %s, "
|
||||
"Found iif : %s, and Expected "
|
||||
"regState :%s , Found regState: %s"
|
||||
% (
|
||||
dut,
|
||||
src_address,
|
||||
grp_addr,
|
||||
group_addr_json[src_address]["regState"],
|
||||
in_interface,
|
||||
group_addr_json[src_address]["inboundInterface"],
|
||||
regState,
|
||||
group_addr_json[src_address]["regState"]
|
||||
)
|
||||
)
|
||||
return errormsg
|
||||
|
@ -151,7 +151,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 version should be >= 4.15")
|
||||
|
||||
testsuite_run_time = time.asctime(time.localtime(time.time()))
|
||||
logger.info("Testsuite start time: {}".format(testsuite_run_time))
|
||||
@ -691,10 +691,10 @@ def test_BSR_CRP_with_blackhole_address_p1(request):
|
||||
result = verify_rib(
|
||||
tgen, "ipv4", "f1", input_routes, protocol="static", expected=False
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "Route is still present \n Error {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: Routes should not be present in {} RIB \n "
|
||||
"Found: {}".format(tc_name, "f1", result)
|
||||
)
|
||||
|
||||
# Use scapy to send pre-defined packet from senser to receiver
|
||||
@ -740,10 +740,10 @@ def test_BSR_CRP_with_blackhole_address_p1(request):
|
||||
|
||||
step("Verify if b1 chosen as BSR in l1")
|
||||
result = verify_pim_bsr(tgen, topo, "l1", BSR_IP_1, expected=False)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "b1 is not chosen as BSR in l1 \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: b1 should be chosen as BSR \n "
|
||||
"Found: {}".format(tc_name, "l1", result)
|
||||
)
|
||||
|
||||
state_after = get_pim_interface_traffic(tgen, state_dict)
|
||||
@ -788,9 +788,8 @@ def test_BSR_CRP_with_blackhole_address_p1(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Routes:[{}, {}] are still present \n Error {}".format(
|
||||
tc_name, BSR1_ADDR, CRP, result
|
||||
)
|
||||
"Expected: Routes should not be present in {} RIB \n "
|
||||
"Found: {}".format(tc_name, "f1", result)
|
||||
)
|
||||
|
||||
step("Sending BSR after removing black-hole address for BSR and candidate RP")
|
||||
@ -915,9 +914,8 @@ def test_new_router_fwd_p0(request):
|
||||
result = verify_pim_bsr(tgen, topo, "l1", bsr_ip, expected=False)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"BSR data is present after no-forward bsm also \n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: BSR data should not be present after no-forward bsm \n "
|
||||
"Found: {}".format(tc_name, "l1", result)
|
||||
)
|
||||
|
||||
# unconfigure unicast bsm on f1-i1-eth2
|
||||
@ -1042,10 +1040,10 @@ def test_int_bsm_config_p1(request):
|
||||
result = verify_mroutes(
|
||||
tgen, "i1", src_addr, GROUP_ADDRESS, iif, oil, expected=False
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "Mroutes are still present \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (S, G) should be cleared from mroute table\n "
|
||||
"Found: {}".format(tc_name, "i1", result)
|
||||
)
|
||||
|
||||
# unconfigure bsm processing on f1 on f1-i1-eth2
|
||||
@ -1066,10 +1064,10 @@ def test_int_bsm_config_p1(request):
|
||||
# Verify bsr state in i1
|
||||
step("Verify if b1 is not chosen as BSR in i1")
|
||||
result = verify_pim_bsr(tgen, topo, "i1", bsr_ip, expected=False)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "b1 is chosen as BSR in i1 \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: b1 should not be chosen as BSR \n "
|
||||
"Found: {}".format(tc_name, "i1", result)
|
||||
)
|
||||
|
||||
# check if mroute still not installed because of rp not available
|
||||
@ -1079,7 +1077,8 @@ def test_int_bsm_config_p1(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"mroute installed but rp not available \n Error: {}".format(tc_name, result)
|
||||
"Expected: [{}]: mroute (S, G) should not be installed as RP is not available\n "
|
||||
"Found: {}".format(tc_name, "i1", result)
|
||||
)
|
||||
|
||||
# configure bsm processing on i1 on f1-i1-eth2
|
||||
@ -1536,11 +1535,10 @@ def test_BSM_timeout_p0(request):
|
||||
result = verify_pim_grp_rp_source(
|
||||
tgen, topo, "f1", group, rp_source="BSR", expected=False
|
||||
)
|
||||
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "bsr has not aged out in f1 \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: bsr should be aged out \n "
|
||||
"Found: {}".format(tc_name, "f1", result)
|
||||
)
|
||||
|
||||
# Verify RP mapping removed after hold timer expires
|
||||
@ -1567,9 +1565,8 @@ def test_BSM_timeout_p0(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"join state is up and join timer is running in l1 \n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: Upstream Join State timer should not run\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
# Verify ip mroute is not installed
|
||||
@ -1577,10 +1574,10 @@ def test_BSM_timeout_p0(request):
|
||||
result = verify_mroutes(
|
||||
tgen, dut, src_addr, GROUP_ADDRESS, iif, oil, expected=False
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "mroute installed in l1 \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (S, G) should not be installed \n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("clear BSM database before moving to next case")
|
||||
@ -1717,10 +1714,10 @@ def test_iif_join_state_p0(request):
|
||||
result = verify_rib(
|
||||
tgen, "ipv4", "l1", input_dict, protocol="static", expected=False
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "Routes:{} are still present \n Error {}".format(
|
||||
tc_name, rp_ip, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: Routes should not be present in {} BGP RIB \n "
|
||||
"Found: {}".format(tc_name, "l1", result)
|
||||
)
|
||||
|
||||
# Check RP unreachable
|
||||
@ -1742,10 +1739,10 @@ def test_iif_join_state_p0(request):
|
||||
result = verify_mroutes(
|
||||
tgen, dut, src_addr, GROUP_ADDRESS, iif, oil, expected=False
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "mroute installed in l1 \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (S, G) should not be installed \n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
# Add back route for RP to make it reachable
|
||||
|
@ -131,7 +131,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 version should be >= 4.15")
|
||||
|
||||
testsuite_run_time = time.asctime(time.localtime(time.time()))
|
||||
logger.info("Testsuite start time: {}".format(testsuite_run_time))
|
||||
@ -455,11 +455,11 @@ def test_starg_mroute_p0(request):
|
||||
result = verify_mroutes(
|
||||
tgen, dut, src_addr, GROUP_ADDRESS, iif, oil, retry_timeout=20, expected=False
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "mroute installed in l1 \n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
assert result is not True, ("Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (S, G) should not be installed \n "
|
||||
"Found: {}".format(
|
||||
tc_name, dut, result
|
||||
))
|
||||
|
||||
# Send BSM again to configure rp
|
||||
step("Add back RP by sending BSM from b1")
|
||||
@ -802,11 +802,11 @@ def test_BSR_election_p0(request):
|
||||
# Verify bsr state in FHR
|
||||
step("Verify if b2 is not chosen as bsr in f1")
|
||||
result = verify_pim_bsr(tgen, topo, "f1", bsr_ip2, expected=False)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "b2 is chosen as bsr in f1 \n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
assert result is not True, ("Testcase {} : Failed \n "
|
||||
"Expected: [{}]: b2 should not be chosen as bsr \n "
|
||||
"Found: {}".format(
|
||||
tc_name, "f1", result
|
||||
))
|
||||
|
||||
# Verify if b1 is still chosen as bsr
|
||||
step("Verify if b1 is still chosen as bsr in f1")
|
||||
|
@ -159,7 +159,7 @@ def setup_module(mod):
|
||||
# Required linux kernel version for this suite to run.
|
||||
result = required_linux_kernel_version("4.19")
|
||||
if result is not True:
|
||||
pytest.skip("Kernel requirements are not met")
|
||||
pytest.skip("Kernel version should be >= 4.19")
|
||||
|
||||
testsuite_run_time = time.asctime(time.localtime(time.time()))
|
||||
logger.info("Testsuite start time: {}".format(testsuite_run_time))
|
||||
@ -880,12 +880,11 @@ def test_verify_mroute_when_same_receiver_joining_5_diff_sources_p0(request):
|
||||
data["oil"],
|
||||
expected=False,
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n mroutes are still present \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (S, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, data["dut"], result)
|
||||
)
|
||||
logger.info("Expected Behavior: {}".format(result))
|
||||
|
||||
step(
|
||||
"Source which is stopped got removed , other source"
|
||||
@ -1100,12 +1099,11 @@ def test_verify_mroute_when_frr_is_transit_router_p2(request):
|
||||
result = verify_mroutes(
|
||||
tgen, "c1", "*", IGMP_JOIN, "c1-c2-eth1", "c1-l1-eth0", expected=False
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n mroutes are still present \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (*, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, "c1", result)
|
||||
)
|
||||
logger.info("Expected Behavior: {}".format(result))
|
||||
|
||||
write_test_footer(tc_name)
|
||||
|
||||
@ -1209,12 +1207,11 @@ def test_verify_mroute_when_RP_unreachable_p1(request):
|
||||
result = verify_mroutes(
|
||||
tgen, "f1", "*", IGMP_JOIN, "f1-r2-eth3", "f1-i8-eth2", expected=False
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n mroutes are still present \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (*, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, "f1", result)
|
||||
)
|
||||
logger.info("Expected Behavior: {}".format(result))
|
||||
|
||||
step("IGMP groups are present verify using 'show ip igmp group'")
|
||||
dut = "l1"
|
||||
|
@ -157,7 +157,7 @@ def setup_module(mod):
|
||||
# Required linux kernel version for this suite to run.
|
||||
result = required_linux_kernel_version("4.19")
|
||||
if result is not True:
|
||||
pytest.skip("Kernel requirements are not met")
|
||||
pytest.skip("Kernel version should be >= 4.19")
|
||||
|
||||
testsuite_run_time = time.asctime(time.localtime(time.time()))
|
||||
logger.info("Testsuite start time: {}".format(testsuite_run_time))
|
||||
@ -454,12 +454,11 @@ def test_verify_mroute_and_traffic_when_pimd_restarted_p2(request):
|
||||
data["oil"],
|
||||
expected=False,
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n mroutes are still present \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (S, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, data["dut"], result)
|
||||
)
|
||||
logger.info("Expected Behavior: {}".format(result))
|
||||
|
||||
write_test_footer(tc_name)
|
||||
|
||||
@ -663,12 +662,11 @@ def test_verify_mroute_and_traffic_when_frr_restarted_p2(request):
|
||||
data["oil"],
|
||||
expected=False,
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n mroutes are still present \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (S, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, data["dut"], result)
|
||||
)
|
||||
logger.info("Expected Behavior: {}".format(result))
|
||||
|
||||
write_test_footer(tc_name)
|
||||
|
||||
@ -1053,8 +1051,9 @@ def test_verify_mroute_after_shut_noshut_of_upstream_interface_p1(request):
|
||||
tgen, "l1", "Unknown", source, IGMP_JOIN_RANGE_2, expected=False
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed Error: \n "
|
||||
"mroutes are still present, after waiting for 10 mins".format(tc_name)
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: Upstream IIF should be unknown \n "
|
||||
"Found: {}".format(tc_name, "l1", result)
|
||||
)
|
||||
|
||||
step("No shut the Source interface just after the upstream is expired" " from FRR1")
|
||||
@ -1085,12 +1084,11 @@ def test_verify_mroute_after_shut_noshut_of_upstream_interface_p1(request):
|
||||
data["oil"],
|
||||
expected=False,
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n mroutes are still present \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (S, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, data["dut"], result)
|
||||
)
|
||||
logger.info("Expected Behavior: {}".format(result))
|
||||
|
||||
write_test_footer(tc_name)
|
||||
|
||||
@ -1410,9 +1408,11 @@ def test_verify_mroute_when_FRR_is_FHR_and_LHR_p0(request):
|
||||
data["oil"],
|
||||
expected=False,
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed Error: \nmroutes are still present".format(tc_name)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (S, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, data["dut"], result)
|
||||
)
|
||||
|
||||
write_test_footer(tc_name)
|
||||
|
||||
@ -1607,12 +1607,11 @@ def test_verify_mroute_when_5_different_receiver_joining_same_sources_p0(request
|
||||
data["oil"],
|
||||
expected=False,
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n mroutes are still present \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (S, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, data["dut"], result)
|
||||
)
|
||||
logger.info("Expected Behavior: {}".format(result))
|
||||
|
||||
step(
|
||||
"No traffic impact observed on other receivers verify using"
|
||||
@ -1820,12 +1819,11 @@ def test_verify_oil_iif_for_mroute_after_shut_noshut_source_interface_p1(request
|
||||
"f1-i8-eth2",
|
||||
expected=False,
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n mroutes are" " still present \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (S, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, data["dut"], result)
|
||||
)
|
||||
logger.info("Expected Behavior: {}".format(result))
|
||||
|
||||
result = verify_upstream_iif(
|
||||
tgen, "f1", "Unknown", "10.0.5.2", _IGMP_JOIN_RANGE, joinState="NotJoined"
|
||||
|
@ -171,7 +171,7 @@ def setup_module(mod):
|
||||
# Required linux kernel version for this suite to run.
|
||||
result = required_linux_kernel_version("4.19")
|
||||
if result is not True:
|
||||
pytest.skip("Kernel requirements are not met")
|
||||
pytest.skip("Kernel version should be >= 4.19")
|
||||
|
||||
testsuite_run_time = time.asctime(time.localtime(time.time()))
|
||||
logger.info("Testsuite start time: {}".format(testsuite_run_time))
|
||||
@ -549,12 +549,11 @@ def test_verify_oil_when_join_prune_sent_scenario_1_p1(request):
|
||||
|
||||
input_traffic = {"l1": {"traffic_sent": [intf_l1_i1]}}
|
||||
result = verify_multicast_traffic(tgen, input_traffic, expected=False)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " " Traffic is not stopped yet \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: Multicast traffic should be stopped \n "
|
||||
"Found: {}".format(tc_name, "l1", result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
step(
|
||||
"IGMP groups are remove from FRR1 node 'show ip igmp groups'"
|
||||
@ -565,12 +564,11 @@ def test_verify_oil_when_join_prune_sent_scenario_1_p1(request):
|
||||
result = verify_igmp_groups(
|
||||
tgen, dut, intf_l1_i1, IGMP_JOIN_RANGE_1, expected=False
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "IGMP groups are not deleted \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: IGMP groups should be deleted \n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
dut = "f1"
|
||||
result = verify_igmp_groups(tgen, dut, intf_f1_i8, IGMP_JOIN_RANGE_1)
|
||||
@ -609,12 +607,11 @@ def test_verify_oil_when_join_prune_sent_scenario_1_p1(request):
|
||||
data["oil"],
|
||||
expected=False,
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "mroutes are still present \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (S, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, data["dut"], result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
for data in input_dict_l1:
|
||||
result = verify_upstream_iif(
|
||||
@ -627,9 +624,9 @@ def test_verify_oil_when_join_prune_sent_scenario_1_p1(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"upstream entries are still present \n Error: {}".format(tc_name, result)
|
||||
"Expected: [{}]: Upstream IIF {} should not be present \n "
|
||||
"Found: {}".format(tc_name, data["dut"], data["iif"], result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
input_dict_f1 = [
|
||||
{
|
||||
@ -677,12 +674,11 @@ def test_verify_oil_when_join_prune_sent_scenario_1_p1(request):
|
||||
|
||||
input_traffic = {"f1": {"traffic_sent": [intf_f1_i8]}}
|
||||
result = verify_multicast_traffic(tgen, input_traffic, expected=False)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " " Traffic is not stopped yet \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: Multicast traffic should be stopped \n "
|
||||
"Found: {}".format(tc_name, "f1", result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
step(
|
||||
"IGMP groups are remove from FRR1 node 'show ip igmp groups'"
|
||||
@ -693,12 +689,11 @@ def test_verify_oil_when_join_prune_sent_scenario_1_p1(request):
|
||||
result = verify_igmp_groups(
|
||||
tgen, dut, intf_f1_i8, IGMP_JOIN_RANGE_1, expected=False
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "IGMP groups are not deleted \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: IGMP groups should be deleted \n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
step(
|
||||
"(*,G) and (S,G) OIL got prune state (none) from all the nodes"
|
||||
@ -732,12 +727,11 @@ def test_verify_oil_when_join_prune_sent_scenario_1_p1(request):
|
||||
data["oil"],
|
||||
expected=False,
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "mroutes are still present \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (S, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, data["dut"], result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
for data in input_dict_l1:
|
||||
result = verify_upstream_iif(
|
||||
@ -750,9 +744,9 @@ def test_verify_oil_when_join_prune_sent_scenario_1_p1(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"upstream entries are still present \n Error: {}".format(tc_name, result)
|
||||
"Expected: [{}]: Upstream IIF {} should not be present \n "
|
||||
"Found: {}".format(tc_name, data["dut"], data["iif"], result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
shutdown_bringup_interface(tgen, "f1", intf_f1_i8, True)
|
||||
shutdown_bringup_interface(tgen, "l1", intf_l1_i1, True)
|
||||
@ -920,12 +914,11 @@ def test_verify_oil_when_join_prune_sent_scenario_2_p1(request):
|
||||
data["oil"],
|
||||
expected=False,
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "mroutes are still present \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (S, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, data["dut"], result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
input_dict_l1_r2 = [
|
||||
{
|
||||
@ -984,12 +977,11 @@ def test_verify_oil_when_join_prune_sent_scenario_2_p1(request):
|
||||
data["oil"],
|
||||
expected=False,
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "mroutes are still present \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (S, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, data["dut"], result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
step("After prune is sent verify upstream got removed in FRR1 node")
|
||||
|
||||
@ -1004,9 +996,9 @@ def test_verify_oil_when_join_prune_sent_scenario_2_p1(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"upstream entries are still present \n Error: {}".format(tc_name, result)
|
||||
"Expected: [{}]: Upstream IIF {} should not be present \n "
|
||||
"Found: {}".format(tc_name, data["dut"], data["iif"], result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
write_test_footer(tc_name)
|
||||
|
||||
@ -1143,12 +1135,11 @@ def test_shut_noshut_source_interface_when_upstream_cleared_from_LHR_p1(request)
|
||||
result = verify_mroutes(
|
||||
tgen, "f1", source_i2, IGMP_JOIN_RANGE_1, intf_f1_i2, intf_f1_r2, expected=False
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n mroutes are" " still present \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (S, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, "f1", result)
|
||||
)
|
||||
logger.info("Expected Behavior: {}".format(result))
|
||||
|
||||
step(
|
||||
"After waiting for (S,G) timeout from FRR1 for same"
|
||||
@ -1159,9 +1150,11 @@ def test_shut_noshut_source_interface_when_upstream_cleared_from_LHR_p1(request)
|
||||
result = verify_upstream_iif(
|
||||
tgen, "l1", "Unknown", source_i2, IGMP_JOIN_RANGE_1, expected=False
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed Error: \n mroutes are still present".format(tc_name)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: Upstream IIF should be Unknown \n "
|
||||
"Found: {}".format(tc_name, "l1", result)
|
||||
)
|
||||
|
||||
step("No shut the Source interface just after the upstream is expired" " from FRR1")
|
||||
shutdown_bringup_interface(tgen, "f1", intf_f1_i2, True)
|
||||
@ -1352,9 +1345,11 @@ def test_shut_noshut_receiver_interface_when_upstream_cleared_from_LHR_p1(reques
|
||||
result = verify_upstream_iif(
|
||||
tgen, "l1", "Unknown", source_i2, IGMP_JOIN_RANGE_1, expected=False
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed Error: \nmroutes are still present".format(tc_name)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: Upstream IIF should be Unknown \n "
|
||||
"Found: {}".format(tc_name, "l1", result)
|
||||
)
|
||||
|
||||
step("No shut the Source interface just after the upstream is expired" " from FRR1")
|
||||
shutdown_bringup_interface(tgen, "l1", intf_l1_i1, True)
|
||||
@ -1556,12 +1551,11 @@ def test_verify_remove_add_igmp_config_to_receiver_interface_p0(request):
|
||||
dut = "l1"
|
||||
interface = topo["routers"]["l1"]["links"]["i1"]["interface"]
|
||||
result = verify_igmp_groups(tgen, dut, interface, IGMP_JOIN_RANGE_1, expected=False)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n Groups are not" " present \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: IGMP groups should not be present \n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
intf_l1_r2 = topo["routers"]["l1"]["links"]["r2"]["interface"]
|
||||
intf_l1_i1 = topo["routers"]["l1"]["links"]["i1"]["interface"]
|
||||
@ -1655,12 +1649,11 @@ def test_verify_remove_add_igmp_config_to_receiver_interface_p0(request):
|
||||
dut = "l1"
|
||||
interface = topo["routers"]["l1"]["links"]["i1"]["interface"]
|
||||
result = verify_igmp_groups(tgen, dut, interface, IGMP_JOIN_RANGE_1, expected=False)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n Groups are not" " present \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: IGMP groups should not be present \n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
result = verify_multicast_traffic(tgen, input_traffic)
|
||||
assert result is True, "Testcase {}: Failed Error: {}".format(tc_name, result)
|
||||
@ -1777,12 +1770,11 @@ def test_verify_remove_add_igmp_config_to_receiver_interface_p0(request):
|
||||
result = verify_mroutes(
|
||||
tgen, dut, source, IGMP_JOIN_RANGE_1, iif, oil, 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: [{}]: mroute (S, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
write_test_footer(tc_name)
|
||||
|
||||
@ -1962,12 +1954,11 @@ def test_verify_remove_add_igmp_commands_when_pim_configured_p0(request):
|
||||
)
|
||||
|
||||
result = verify_igmp_config(tgen, input_dict_1, expected=False)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "IGMP interface is not removed \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: IGMP interface should be removed \n "
|
||||
"Found: {}".format(tc_name, data["dut"], result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
step("Verify that no core is observed")
|
||||
if tgen.routers_have_failure():
|
||||
@ -2849,12 +2840,11 @@ def test_mroute_after_removing_RP_sending_IGMP_prune_p2(request):
|
||||
data["oil"],
|
||||
expected=False,
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "mroute still present \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (S, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, data["dut"], result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
for data in input_dict_sg:
|
||||
result = verify_mroutes(
|
||||
@ -2886,9 +2876,9 @@ def test_mroute_after_removing_RP_sending_IGMP_prune_p2(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"IGMP groups still present still present \n Error: {}".format(tc_name, result)
|
||||
"Expected: [{}]: IGMP groups should not present \n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
step(
|
||||
"After receiving the IGMP prune from FRR1 , verify traffic "
|
||||
@ -3180,12 +3170,11 @@ def test_prune_sent_to_LHR_and_FHR_when_PIMnbr_down_p2(request):
|
||||
data["oil"],
|
||||
expected=False,
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "mroute still present \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (S, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, data["dut"], result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
for data in input_dict_sg_i1:
|
||||
result = verify_mroutes(
|
||||
@ -3209,12 +3198,11 @@ def test_prune_sent_to_LHR_and_FHR_when_PIMnbr_down_p2(request):
|
||||
IGMP_JOIN_RANGE_1,
|
||||
expected=False,
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "upstream still present \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: Upstream IIF interface {} should not be present\n"
|
||||
"Found: {}".format(tc_name, data["dut"], data["iif"], result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
for data in input_dict_sg_i1:
|
||||
result = verify_upstream_iif(
|
||||
@ -3234,12 +3222,11 @@ def test_prune_sent_to_LHR_and_FHR_when_PIMnbr_down_p2(request):
|
||||
result = verify_pim_rp_info(
|
||||
tgen, topo, dut, GROUP_RANGE_1, "Unknown", rp_address, SOURCE, expected=False
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "RP iif is not updated \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: RP IIF should be updated as Unknown \n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
step("Verify mroute after No shut the link from LHR to RP from RP node")
|
||||
|
||||
@ -3366,8 +3353,9 @@ def test_prune_sent_to_LHR_and_FHR_when_PIMnbr_down_p2(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"upstream is still present after shut the link from "
|
||||
"FHR to RP from RP node \n Error: {}".format(tc_name, result)
|
||||
"Expected: [{}]: Upstream IIF interface {} should not be present"
|
||||
" after shutting link from RP to FHR \n"
|
||||
"Found: {}".format(tc_name, data["dut"], data["iif"], result)
|
||||
)
|
||||
|
||||
step(" No shut the link from FHR to RP from RP node")
|
||||
@ -3383,12 +3371,11 @@ def test_prune_sent_to_LHR_and_FHR_when_PIMnbr_down_p2(request):
|
||||
result = verify_pim_rp_info(
|
||||
tgen, topo, dut, GROUP_RANGE_1, "Unknown", rp_address, SOURCE, expected=False
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "RP iif is not updated \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: RP IIF should be updated as Unknown \n"
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
step("Verify mroute after Noshut the link from FHR to RP from RP node")
|
||||
|
||||
@ -3515,8 +3502,9 @@ def test_prune_sent_to_LHR_and_FHR_when_PIMnbr_down_p2(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"upstream is still present after shut the link from "
|
||||
"FHR to RP from FHR node \n Error: {}".format(tc_name, result)
|
||||
"Expected: [{}]: Upstream IIF interface {} should not be present"
|
||||
" after shutting link from FHR to RP \n"
|
||||
"Found: {}".format(tc_name, data["dut"], data["iif"], result)
|
||||
)
|
||||
|
||||
step(" No shut the link from FHR to RP from FHR node")
|
||||
@ -3531,12 +3519,11 @@ def test_prune_sent_to_LHR_and_FHR_when_PIMnbr_down_p2(request):
|
||||
result = verify_pim_rp_info(
|
||||
tgen, topo, dut, GROUP_RANGE_1, "Unknown", rp_address, SOURCE, expected=False
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "RP iif is not updated \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: RP IIF should be updated as Unknown \n"
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
step("Verify mroute after No Shut the link from FHR to RP from FHR node")
|
||||
|
||||
@ -3966,12 +3953,10 @@ def test_verify_multicast_traffic_when_LHR_connected_to_RP_p1(request):
|
||||
expected=False,
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n"
|
||||
" Expected Behaviour: mroutes are cleared \n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (S, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, data["dut"], result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
shutdown_bringup_interface(tgen, "r2", intf_r2_i3, True)
|
||||
|
||||
@ -4035,12 +4020,11 @@ def test_verify_multicast_traffic_when_LHR_connected_to_RP_p1(request):
|
||||
data["oil"],
|
||||
expected=False,
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n" "mroutes are cleared \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (S, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, data["dut"], result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
shutdown_bringup_interface(tgen, "l1", intf_l1_i1, True)
|
||||
|
||||
@ -4110,12 +4094,11 @@ def test_verify_multicast_traffic_when_LHR_connected_to_RP_p1(request):
|
||||
data["oil"],
|
||||
expected=False,
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n" " mroutes are cleared \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (S, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, data["dut"], result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
shutdown_bringup_interface(tgen, "r2", intf_r2_f1, True)
|
||||
|
||||
@ -4178,12 +4161,11 @@ def test_verify_multicast_traffic_when_LHR_connected_to_RP_p1(request):
|
||||
result = verify_mroutes(
|
||||
tgen, dut, src_address, _IGMP_JOIN_RANGE, iif, oil, expected=False
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n" " mroutes are cleared \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (S, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
shutdown_bringup_interface(tgen, "l1", intf_l1_r2, True)
|
||||
|
||||
@ -4380,12 +4362,11 @@ def test_verify_multicast_traffic_when_FHR_connected_to_RP_p1(request):
|
||||
data["oil"],
|
||||
expected=False,
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n" " mroutes are cleared \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (S, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, data["dut"], result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
step("No shut the receiver(l1) port in 1 min interval")
|
||||
|
||||
@ -4446,12 +4427,11 @@ def test_verify_multicast_traffic_when_FHR_connected_to_RP_p1(request):
|
||||
data["oil"],
|
||||
expected=False,
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n" " mroutes are cleared \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (S, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, data["dut"], result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
step("No shut the source(r2) port in 1 min interval")
|
||||
|
||||
@ -4518,12 +4498,11 @@ def test_verify_multicast_traffic_when_FHR_connected_to_RP_p1(request):
|
||||
data["oil"],
|
||||
expected=False,
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n" " mroutes are cleared \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (S, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, data["dut"], result)
|
||||
)
|
||||
logger.info("Expected Behaviour: {}".format(result))
|
||||
|
||||
write_test_footer(tc_name)
|
||||
|
||||
|
@ -136,7 +136,7 @@ def setup_module(mod):
|
||||
# Required linux kernel version for this suite to run.
|
||||
result = required_linux_kernel_version("4.19")
|
||||
if result is not True:
|
||||
pytest.skip("Kernel requirements are not met")
|
||||
pytest.skip("Kernel version should be >= 4.19")
|
||||
|
||||
testsuite_run_time = time.asctime(time.localtime(time.time()))
|
||||
logger.info("Testsuite start time: {}".format(testsuite_run_time))
|
||||
@ -424,9 +424,8 @@ def test_mroute_when_RP_reachable_default_route_p2(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"mroutes(S,G) are present after delete of static routes on c1 \n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: mroute (S, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, data["dut"], result)
|
||||
)
|
||||
|
||||
result = verify_upstream_iif(
|
||||
@ -439,9 +438,8 @@ def test_mroute_when_RP_reachable_default_route_p2(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"upstream is present after delete of static routes on c1 \n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: Upstream IIF interface {} should not be present\n "
|
||||
"Found: {}".format(tc_name, data["dut"], data["iif"], result)
|
||||
)
|
||||
|
||||
for data in input_dict_starg:
|
||||
@ -456,9 +454,8 @@ def test_mroute_when_RP_reachable_default_route_p2(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"mroutes(*,G) are present after delete of static routes on c1 \n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: mroute (S, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, data["dut"], result)
|
||||
)
|
||||
|
||||
result = verify_upstream_iif(
|
||||
@ -471,9 +468,8 @@ def test_mroute_when_RP_reachable_default_route_p2(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"upstream is present after delete of static routes on c1 \n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: Upstream IIF interface {} should not be present\n "
|
||||
"Found: {}".format(tc_name, data["dut"], data["iif"], result)
|
||||
)
|
||||
|
||||
step("Configure default routes on c2")
|
||||
@ -499,9 +495,9 @@ def test_mroute_when_RP_reachable_default_route_p2(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"RP info is unknown after removing static route from c2 \n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: RP Info should not be Unknown after removing static"
|
||||
" route from c2 \n"
|
||||
"Found: {}".format(tc_name, data["dut"], data["iif"], result)
|
||||
)
|
||||
|
||||
step("Verify (s,g) populated after adding default route ")
|
||||
@ -720,10 +716,10 @@ def test_mroute_with_RP_default_route_all_nodes_p2(request):
|
||||
data["oil"],
|
||||
expected=False,
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "mroutes are still present \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (S, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, data["dut"], result)
|
||||
)
|
||||
|
||||
result = verify_upstream_iif(
|
||||
@ -734,10 +730,10 @@ def test_mroute_with_RP_default_route_all_nodes_p2(request):
|
||||
IGMP_JOIN_RANGE_1,
|
||||
expected=False,
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "upstream is still present \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: Upstream IIF interface {} should not be present\n "
|
||||
"Found: {}".format(tc_name, data["dut"], data["iif"], result)
|
||||
)
|
||||
|
||||
step("Configure default routes on all the nodes")
|
||||
@ -777,9 +773,9 @@ def test_mroute_with_RP_default_route_all_nodes_p2(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"RP info is unknown after removing static route from c2 \n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: RP Info should not be Unknown after removing static"
|
||||
" route from c2 \n"
|
||||
"Found: {}".format(tc_name, data["dut"], data["iif"], result)
|
||||
)
|
||||
|
||||
step("Verify (s,g) populated after adding default route ")
|
||||
|
@ -375,9 +375,8 @@ def test_add_delete_static_RP_p0(request):
|
||||
result = verify_igmp_groups(tgen, dut, interface, GROUP_ADDRESS, expected=False)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r1: igmp group present without any IGMP join \n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: IGMP groups should not be present without any IGMP join\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r1: Verify show ip pim interface traffic without any IGMP join")
|
||||
@ -445,17 +444,18 @@ def test_add_delete_static_RP_p0(request):
|
||||
result = verify_pim_rp_info(
|
||||
tgen, TOPO, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE, expected=False
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "r1: RP info present \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: RP info should not be present \n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r1: Verify upstream IIF interface")
|
||||
result = verify_upstream_iif(tgen, dut, iif, STAR, GROUP_ADDRESS, expected=False)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r1: upstream IIF interface present \n Error: {}".format(tc_name, result)
|
||||
"Expected: [{}]: Upstream IIF interface {} should not be present\n "
|
||||
"Found: {}".format(tc_name, dut, iif, result)
|
||||
)
|
||||
|
||||
step("r1: Verify upstream join state and join timer")
|
||||
@ -464,24 +464,25 @@ def test_add_delete_static_RP_p0(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r1: upstream join state is up and join timer is running \n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: Upstream Join State timer should not run\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
# 20
|
||||
step("r1: Verify PIM state")
|
||||
result = verify_pim_state(tgen, dut, iif, oif, GROUP_ADDRESS, expected=False)
|
||||
assert result is not True, "Testcase {} :Failed \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: PIM state should not be up \n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r1: Verify ip mroutes")
|
||||
result = verify_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif, expected=False)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "r1: mroutes are still present \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (*, G) should not be present \n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r1: Verify show ip pim interface traffic without any IGMP join")
|
||||
@ -638,9 +639,8 @@ def test_SPT_RPT_path_same_p1(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r3: (S, G) upstream join state is up and join timer is running\n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: Upstream Join State timer should not run\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r3: Verify (S, G) ip mroutes")
|
||||
@ -767,16 +767,16 @@ def test_not_reachable_static_RP_p0(request):
|
||||
result = verify_pim_state(tgen, dut, iif, oif, GROUP_ADDRESS, expected=False)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"OIL is not same and IIF is not cleared on R1 \n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: OIL should be same and IIF should be cleared\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r1: upstream IIF should be unknown , verify using show ip pim" "upstream")
|
||||
result = verify_upstream_iif(tgen, dut, iif, STAR, GROUP_ADDRESS, expected=False)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r1: upstream IIF is not unknown \n Error: {}".format(tc_name, result)
|
||||
"Expected: [{}]: Upstream IIF interface {} should be unknown \n "
|
||||
"Found: {}".format(tc_name, dut, iif, result)
|
||||
)
|
||||
|
||||
step(
|
||||
@ -788,9 +788,8 @@ def test_not_reachable_static_RP_p0(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r1: join state is joined and timer is not stopped \n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: Upstream Join State timer should not run\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step(
|
||||
@ -811,11 +810,9 @@ def test_not_reachable_static_RP_p0(request):
|
||||
result = verify_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif, expected=False)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r1: (*, G) are not cleared from mroute table \n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: mroute (*, G) should be cleared from mroute table\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
logger.info("Expected behavior: %s", result)
|
||||
|
||||
# Uncomment next line for debugging
|
||||
# tgen.mininet_cli()
|
||||
@ -877,10 +874,10 @@ def test_add_RP_after_join_received_p1(request):
|
||||
result = verify_pim_rp_info(
|
||||
tgen, TOPO, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE, expected=False
|
||||
)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "r1: rp-info is present \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: RP-info should not be present \n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("joinTx value before join sent")
|
||||
@ -905,7 +902,8 @@ def test_add_RP_after_join_received_p1(request):
|
||||
result = verify_upstream_iif(tgen, dut, iif, STAR, GROUP_ADDRESS, expected=False)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r1: upstream IFF interface is present \n Error: {}".format(tc_name, result)
|
||||
"Expected: [{}]: Upstream IIF interface {} should not be present \n "
|
||||
"Found: {}".format(tc_name, dut, iif, result)
|
||||
)
|
||||
|
||||
step("r1: Verify upstream join state and join timer")
|
||||
@ -915,25 +913,24 @@ def test_add_RP_after_join_received_p1(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r1: upstream join state is joined and timer is running \n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: Upstream Join State timer should not run\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r1: Verify PIM state")
|
||||
result = verify_pim_state(tgen, dut, iif, oif, GROUP_ADDRESS, expected=False)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "r1: PIM state is up\n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: PIM state should not be up\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r1: Verify ip mroutes")
|
||||
result = verify_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif, expected=False)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "r1: mroutes are still present\n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (*, G) should not be present in mroute table \n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r1: Configure static RP")
|
||||
@ -1058,7 +1055,8 @@ def test_reachable_static_RP_after_join_p0(request):
|
||||
result = verify_upstream_iif(tgen, dut, iif, STAR, GROUP_ADDRESS, expected=False)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r1: upstream IIF interface is present\n Error: {}".format(tc_name, result)
|
||||
"Expected: [{}]: Upstream IIF interface {} should not be present \n "
|
||||
"Found: {}".format(tc_name, dut, iif, result)
|
||||
)
|
||||
|
||||
step("r1 : Verify upstream join state and join timer")
|
||||
@ -1067,25 +1065,24 @@ def test_reachable_static_RP_after_join_p0(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r1: upstream join state is joined and timer is running\n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: Upstream Join State timer should not run\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r1 : Verify PIM state")
|
||||
result = verify_pim_state(tgen, dut, iif, oif, GROUP_ADDRESS, expected=False)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "r1: PIM state is up\n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: PIM state should not be up \n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r1 : Verify ip mroutes")
|
||||
result = verify_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif, expected=False)
|
||||
assert (
|
||||
result is not True
|
||||
), "Testcase {} : Failed \n " "r1: mroutes are still present\n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: mroute (*, G) should not be present \n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r1: Make RP reachable")
|
||||
@ -1329,9 +1326,8 @@ def test_send_join_on_higher_preffered_rp_p1(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r1: rp-info is present for group 225.1.1.1 \n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: RP-info should not be present \n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step(
|
||||
|
@ -536,8 +536,9 @@ def test_RP_configured_as_LHR_1_p1(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r3: (S, G) upstream join state is joined and join"
|
||||
" timer is running \n Error: {}".format(tc_name, result)
|
||||
"Expected: [{}]: Upstream Join State should not be Joined and "
|
||||
"join timer should not run\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r3: Verify (S, G) ip mroutes")
|
||||
@ -741,9 +742,9 @@ def test_RP_configured_as_LHR_2_p1(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r3: (S,G) upstream state is joined and join timer is running\n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: Upstream Join State should not be Joined and "
|
||||
"join timer should not run\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r3: Verify (S, G) ip mroutes")
|
||||
@ -947,9 +948,9 @@ def test_RP_configured_as_FHR_1_p1(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r3: (S,G) upstream state is joined and join timer is running\n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: Upstream Join State should not be Joined and "
|
||||
"join timer should not run\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r3: Verify (S, G) ip mroutes")
|
||||
@ -1154,9 +1155,9 @@ def test_RP_configured_as_FHR_2_p2(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r3: (S,G) upstream state is joined and join timer is running\n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: Upstream Join State should not be Joined and "
|
||||
"join timer should not run\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r3: Verify (S, G) ip mroutes")
|
||||
@ -1279,9 +1280,9 @@ def test_SPT_RPT_path_different_p1(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r3: (S,G) upstream state is joined and join timer is running\n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: Upstream Join State should not be Joined and "
|
||||
"join timer should not run\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r3: Verify (S, G) ip mroutes")
|
||||
@ -1303,9 +1304,9 @@ def test_SPT_RPT_path_different_p1(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r2: (S,G) upstream state is joined and join timer is running\n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: Upstream Join State should not be Joined and "
|
||||
"join timer should not run\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r2: Verify (S, G) ip mroutes")
|
||||
|
@ -452,9 +452,9 @@ def test_restart_pimd_process_p2(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r3: (S,G) upstream state is joined and join timer is running\n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: Upstream Join State should not be Joined and "
|
||||
"join timer should not run\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r3: Verify (S, G) ip mroutes")
|
||||
@ -620,9 +620,9 @@ def test_multiple_groups_same_RP_address_p2(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r3: (S,G) upstream state is joined and join timer is running\n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: Upstream Join State should not be Joined and "
|
||||
"join timer should not run\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r3: Verify (S, G) ip mroutes")
|
||||
@ -644,9 +644,9 @@ def test_multiple_groups_same_RP_address_p2(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r2: (S,G) upstream state is joined and join timer is running\n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: Upstream Join State should not be Joined and "
|
||||
"join timer should not run\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r2: Verify (S, G) ip mroutes")
|
||||
@ -765,9 +765,9 @@ def test_multiple_groups_same_RP_address_p2(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r2: (S,G) upstream state is joined and join timer is running\n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: Upstream Join State should not be Joined and "
|
||||
"join timer should not run\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r2: Verify (S, G) ip mroutes")
|
||||
@ -787,9 +787,9 @@ def test_multiple_groups_same_RP_address_p2(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r3: (S,G) upstream state is joined and join timer is running\n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: Upstream Join State should not be Joined and "
|
||||
"join timer should not run\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r3: Verify (S, G) ip mroutes")
|
||||
@ -963,9 +963,9 @@ def test_multiple_groups_different_RP_address_p2(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r2: (S,G) upstream state is joined and join timer is running\n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: Upstream Join State should not be Joined and "
|
||||
"join timer should not run\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r2: Verify (S, G) ip mroutes")
|
||||
@ -985,9 +985,9 @@ def test_multiple_groups_different_RP_address_p2(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r3: (S,G) upstream state is joined and join timer is running\n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: Upstream Join State should not be Joined and "
|
||||
"join timer should not run\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r3: Verify (S, G) ip mroutes")
|
||||
@ -1053,9 +1053,9 @@ def test_multiple_groups_different_RP_address_p2(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r4: (S,G) upstream state is joined and join timer is running\n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: Upstream Join State should not be Joined and "
|
||||
"join timer should not run\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r4: Verify (S, G) ip mroutes")
|
||||
@ -1073,8 +1073,11 @@ def test_multiple_groups_different_RP_address_p2(request):
|
||||
result = verify_join_state_and_timer(
|
||||
tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST_2, expected=False
|
||||
)
|
||||
assert result is not True, "Testcase {} :Failed \n Error: {}".format(
|
||||
tc_name, result
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"Expected: [{}]: Upstream Join State should not be Joined and "
|
||||
"join timer should not run\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r3: Verify (S, G) ip mroutes")
|
||||
@ -1224,9 +1227,9 @@ def test_multiple_groups_different_RP_address_p2(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r2: (S,G) upstream state is joined and join timer is running\n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: Upstream Join State should not be Joined and "
|
||||
"join timer should not run\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r2: Verify (S, G) ip mroutes")
|
||||
@ -1246,9 +1249,9 @@ def test_multiple_groups_different_RP_address_p2(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r3: (S,G) upstream state is joined and join timer is running\n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: Upstream Join State should not be Joined and "
|
||||
"join timer should not run\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r3: Verify (S, G) ip mroutes")
|
||||
@ -1314,9 +1317,9 @@ def test_multiple_groups_different_RP_address_p2(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r4: (S,G) upstream state is joined and join timer is running\n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: Upstream Join State should not be Joined and "
|
||||
"join timer should not run\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r4: Verify (S, G) ip mroutes")
|
||||
@ -1336,9 +1339,9 @@ def test_multiple_groups_different_RP_address_p2(request):
|
||||
)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r3: (S,G) upstream state is joined and join timer is running\n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: Upstream Join State should not be Joined and "
|
||||
"join timer should not run\n "
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r3: Verify (S, G) ip mroutes")
|
||||
@ -1462,9 +1465,8 @@ def test_shutdown_primary_path_p1(request):
|
||||
result = verify_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif, expected=False)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r1: (*,G) mroutes are not cleared after shut of R1 to R3 link\n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: mroute (*, G) should be cleared \n"
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r2: Verify (*, G) ip mroutes")
|
||||
@ -1474,9 +1476,8 @@ def test_shutdown_primary_path_p1(request):
|
||||
result = verify_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif, expected=False)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r2: (*,G) mroutes are not cleared after shut of R1 to R3 link\n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: mroute (*, G) should be cleared \n"
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r3: Verify (*, G) ip mroutes")
|
||||
@ -1486,9 +1487,9 @@ def test_shutdown_primary_path_p1(request):
|
||||
result = verify_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif, expected=False)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r3: (*,G) mroutes are not cleared after shut of R1 to R3 link\n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: mroute (*, G) should be cleared after shutting"
|
||||
"link from R1 to R3 \n"
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r3: No shutdown the link from R1 to R3 from R3 node")
|
||||
@ -1647,9 +1648,9 @@ def test_delete_RP_shut_noshut_upstream_interface_p1(request):
|
||||
result = verify_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif, expected=False)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r1: (*,G) mroutes are not cleared after shut of R1 to R0 link\n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: mroute (*, G) should be cleared after shutting"
|
||||
"link from R1 to R0 \n"
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r2: Verify (*, G) ip mroutes cleared")
|
||||
@ -1659,9 +1660,9 @@ def test_delete_RP_shut_noshut_upstream_interface_p1(request):
|
||||
result = verify_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif, expected=False)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r2: (*,G) mroutes are not cleared after shut of R1 to R0 link\n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: mroute (*, G) should be cleared after shutting"
|
||||
"link from R1 to R0 \n"
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
write_test_footer(tc_name)
|
||||
@ -1770,9 +1771,9 @@ def test_delete_RP_shut_noshut_RP_interface_p1(request):
|
||||
result = verify_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif, expected=False)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r1: (*,G) mroutes are not cleared after shut of R1 to R2 and R3 link\n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: mroute (*, G) should be cleared after shutting"
|
||||
"link from R2 to R3 \n"
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
step("r2: Verify (*, G) ip mroutes cleared")
|
||||
@ -1782,9 +1783,9 @@ def test_delete_RP_shut_noshut_RP_interface_p1(request):
|
||||
result = verify_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif, expected=False)
|
||||
assert result is not True, (
|
||||
"Testcase {} : Failed \n "
|
||||
"r2: (*,G) mroutes are not cleared after shut of R1 to R2 and R3 link\n Error: {}".format(
|
||||
tc_name, result
|
||||
)
|
||||
"Expected: [{}]: mroute (*, G) should be cleared after shutting"
|
||||
"link from R2 to R3 \n"
|
||||
"Found: {}".format(tc_name, dut, result)
|
||||
)
|
||||
|
||||
write_test_footer(tc_name)
|
||||
|
Loading…
Reference in New Issue
Block a user