Skip to content

Commit cd2f900

Browse files
mssonicbldcyw233
andauthored
[action] [PR:21582] fix: only disable route check for T2 (#21613)
Change the temporarily_disable_route_check fixture logic to only apply to T2 topology for now. What is the motivation for this PR? The current disable-and-enable routeCheck monitor logic is causing test flakiness on some non-T2 platforms (see #16876 (comment)). Certain platforms require additional time to restart the routeCheck monitor, which can leave it inactive when the next test begins and result in false failures. We would like to address this issue urgently in this PR. In a follow-up PR, I will properly enhance the temporarily_disable_route_check fixture so that: Users can choose which topologies apply the disable-and-enable routeCheck behavior The fixture uses a wait_until() timeout to verify the routeCheck status is as expected before proceeding to the next step How did you do it? How did you verify/test it? I ran the updated login on a non-T2 platform (Mx) and can confirm it's working well: https://elastictest.org/scheduler/testplan/693272f7392767e9bf67e930 image I also verified the logic on T2 platform and can confirm it's still having this logic: https://elastictest.org/scheduler/testplan/6932767fbcc3fac23371a83c image Signed-off-by: Chenyang Wang <[email protected]> Co-authored-by: Chenyang Wang <[email protected]>
1 parent ae2621e commit cd2f900

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

tests/conftest.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2993,13 +2993,17 @@ def _remove_entry(table_name, key_name, config):
29932993

29942994

29952995
@pytest.fixture(scope="module", autouse=True)
2996-
def temporarily_disable_route_check(request, duthosts):
2996+
def temporarily_disable_route_check(request, tbinfo, duthosts):
29972997
check_flag = False
29982998
for m in request.node.iter_markers():
29992999
if m.name == "disable_route_check":
30003000
check_flag = True
30013001
break
30023002

3003+
if 't2' not in tbinfo['topo']['name']:
3004+
logger.info("Topology is not T2, skipping temporarily_disable_route_check fixture")
3005+
check_flag = False
3006+
30033007
def wait_for_route_check_to_pass(dut):
30043008

30053009
def run_route_check():

tests/pc/test_po_cleanup.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,13 @@ def ignore_expected_loganalyzer_exceptions(enum_rand_one_per_hwsku_frontend_host
4040

4141

4242
@pytest.fixture(autouse=True)
43-
def disable_route_check_for_duthost(duthosts, enum_rand_one_per_hwsku_frontend_hostname):
44-
duthost = duthosts[enum_rand_one_per_hwsku_frontend_hostname]
45-
logging.info("Stopping route check on DUT {}".format(duthost.hostname))
46-
stop_route_checker_on_duthost(duthost)
43+
def disable_route_check_for_duthost(tbinfo, duthosts, enum_rand_one_per_hwsku_frontend_hostname):
44+
if 't2' not in tbinfo['topo']['name']:
45+
logging.info("Topology is not T2, skipping disabling route check")
46+
else:
47+
duthost = duthosts[enum_rand_one_per_hwsku_frontend_hostname]
48+
logging.info("Stopping route check on DUT {}".format(duthost.hostname))
49+
stop_route_checker_on_duthost(duthost)
4750

4851
yield
4952

0 commit comments

Comments
 (0)