Skip to content

Commit 524d6b4

Browse files
authored
[action] [PR:21582] fix: only disable route check for T2 (#930)
<!-- Please make sure you've read and understood our contributing guidelines; https://github.com/sonic-net/SONiC/blob/gh-pages/CONTRIBUTING.md Please provide following information to help code review process a bit easier: --> ### Description of PR <!-- - Please include a summary of the change and which issue is fixed. - Please also include relevant motivation and context. Where should reviewer start? background context? - List any dependencies that are required for this change. --> Change the `temporarily_disable_route_check` fixture logic to only apply to T2 topology for now. Summary: Fixes # (issue) Microsoft ADO 36101536 ### Type of change <!-- - Fill x for your type of change. - e.g. - [x] Bug fix --> - [x] Bug fix - [ ] Testbed and Framework(new/improvement) - [ ] New Test case - [ ] Skipped for non-supported platforms - [ ] Test case improvement ### Back port request - [ ] 202205 - [ ] 202305 - [ ] 202311 - [ ] 202405 - [ ] 202411 - [x] 202505 - [x] 202511 ### Approach #### 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 sonic-net/sonic-mgmt#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 <img width="1609" height="202" alt="image" src="https://github.com/user-attachments/assets/e631a351-1372-412d-bca7-6b4ef5d8112a" /> I also verified the logic on T2 platform and can confirm it's still having this logic: https://elastictest.org/scheduler/testplan/6932767fbcc3fac23371a83c <img width="1963" height="546" alt="image" src="https://github.com/user-attachments/assets/261dd79b-c847-4a82-9409-d87e48a3cfa8" /> #### Any platform specific information? #### Supported testbed topology if it's a new test case? ### Documentation <!-- (If it's a new feature, new test case) Did you update documentation/Wiki relevant to your implementation? Link to the wiki page? -->
1 parent c651efa commit 524d6b4

2 files changed

Lines changed: 12 additions & 5 deletions

File tree

tests/conftest.py

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

27342734

27352735
@pytest.fixture(scope="module", autouse=True)
2736-
def temporarily_disable_route_check(request, duthosts):
2736+
def temporarily_disable_route_check(request, tbinfo, duthosts):
27372737
check_flag = False
27382738
for m in request.node.iter_markers():
27392739
if m.name == "disable_route_check":
27402740
check_flag = True
27412741
break
27422742

2743+
if 't2' not in tbinfo['topo']['name']:
2744+
logger.info("Topology is not T2, skipping temporarily_disable_route_check fixture")
2745+
check_flag = False
2746+
27432747
def wait_for_route_check_to_pass(dut):
27442748

27452749
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)