Skip to content

Commit 87ab887

Browse files
Fix test_check_show_lpmode case (sonic-net#15062)
1 parent cef6d03 commit 87ab887

2 files changed

Lines changed: 22 additions & 11 deletions

File tree

tests/platform_tests/sfp/test_show_intf_xcvr.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,19 @@ def test_check_show_lpmode(duthosts, enum_rand_one_per_hwsku_frontend_hostname,
8383
return
8484
assert sfp_lpmode['rc'] == 0, "Run command '{}' failed".format(cmd_sfp_presence)
8585

86+
sfp_lpmode_data = sfp_lpmode["stdout_lines"]
87+
88+
# Check if the header is present
89+
header = sfp_lpmode_data[0]
90+
logging.info(f"The header is: {header}")
91+
if header.replace(" ", "") != "Port Low-power Mode".replace(" ", ""):
92+
logging.error("Invalid output format: Header missing")
93+
return False
94+
95+
# Check interface lpmode
96+
sfp_lpmode_info = parse_output(sfp_lpmode_data[2:])
97+
logging.info(f"The interface sfp lpmode info is: {sfp_lpmode_info}")
8698
for intf in dev_conn:
8799
if intf not in xcvr_skip_list[duthost.hostname]:
88100
assert validate_transceiver_lpmode(
89-
sfp_lpmode['stdout']), "Interface mode incorrect in 'show interface transceiver lpmode'"
101+
sfp_lpmode_info, intf), "Interface mode incorrect in 'show interface transceiver lpmode'"

tests/platform_tests/sfp/util.py

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -47,15 +47,14 @@ def get_dev_conn(duthost, conn_graph_facts, asic_index):
4747
return portmap, dev_conn
4848

4949

50-
def validate_transceiver_lpmode(output):
51-
lines = output.strip().split('\n')
52-
# Check if the header is present
53-
if lines[0].replace(" ", "") != "Port Low-power Mode".replace(" ", ""):
54-
logging.error("Invalid output format: Header missing")
50+
def validate_transceiver_lpmode(sfp_lpmode, port):
51+
lpmode = sfp_lpmode.get(port)
52+
if lpmode is None:
53+
logging.error(f"Interface {port} does not present in the show command")
5554
return False
56-
for line in lines[2:]:
57-
port, lpmode = line.strip().split()
58-
if lpmode not in ["Off", "On"]:
59-
logging.error("Invalid low-power mode {} for port {}".format(lpmode, port))
60-
return False
55+
56+
if lpmode not in ["Off", "On"]:
57+
logging.error("Invalid low-power mode {} for port {}".format(lpmode, port))
58+
return False
59+
6160
return True

0 commit comments

Comments
 (0)