[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240903221549.1215842-3-mohan.prasad@microchip.com>
Date: Wed, 4 Sep 2024 03:45:48 +0530
From: Mohan Prasad J <mohan.prasad@...rochip.com>
To: <netdev@...r.kernel.org>, <davem@...emloft.net>, <kuba@...nel.org>
CC: <shuah@...nel.org>, <bryan.whitehead@...rochip.com>,
<mohan.prasad@...rochip.com>, <UNGLinuxDriver@...rochip.com>,
<edumazet@...gle.com>, <pabeni@...hat.com>, <linux-kernel@...r.kernel.org>,
<linux-kselftest@...r.kernel.org>, <horms@...nel.org>,
<brett.creeley@....com>, <rosenp@...il.com>
Subject: [PATCH net-next 2/3] selftests: lan743x: Add testcase to check speed and duplex state of lan743x
Add testcase for checking speed and duplex states for
lan743x network driver.
Testcase comprises of varying the network speed and duplex
state to 10/100/1000Mbps and half/full via ethtool.
Signed-off-by: Mohan Prasad J <mohan.prasad@...rochip.com>
---
.../net/hw/microchip/lan743x/lan743x.py | 33 +++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/tools/testing/selftests/drivers/net/hw/microchip/lan743x/lan743x.py b/tools/testing/selftests/drivers/net/hw/microchip/lan743x/lan743x.py
index f1ad97dc2..59f0be2a7 100755
--- a/tools/testing/selftests/drivers/net/hw/microchip/lan743x/lan743x.py
+++ b/tools/testing/selftests/drivers/net/hw/microchip/lan743x/lan743x.py
@@ -36,12 +36,45 @@ def verify_autonegotiation(ifname: str, expected_state: str) -> None:
actual_state = autoneg_match.group(1)
ksft_eq(actual_state, expected_state)
+def set_speed_and_duplex(ifname: str, speed: str, duplex: str) -> None:
+ """Set the speed and duplex state for the interface"""
+ process = ethtool(f"--change {ifname} speed {speed} duplex {duplex} autoneg on")
+
+ if process.ret != 0:
+ raise KsftFailEx(f"Not able to set speeed and duplex parameters for {ifname}")
+ ksft_pr(f"Speed: {speed} Mbps, Duplex: {duplex} set for Interface: {ifname}")
+
+def verify_speed_and_duplex(ifname: str, expected_speed: str, expected_duplex: str) -> None:
+ verify_link_up(ifname)
+ """Verifying the speed and duplex state for the interface"""
+ output = ethtool(f"{ifname}")
+ with open(f"/sys/class/net/{ifname}/speed", "r") as fp:
+ actual_speed = fp.read().strip()
+ with open(f"/sys/class/net/{ifname}/duplex", "r") as fp:
+ actual_duplex = fp.read().strip()
+
+ ksft_eq(actual_speed, expected_speed)
+ ksft_eq(actual_duplex, expected_duplex)
+
def test_autonegotiation(cfg) -> None:
for state in ["off", "on"]:
set_autonegotiation_state(cfg.ifname, state)
time.sleep(5)
verify_autonegotiation(cfg.ifname, state)
+def test_network_speed(cfg) -> None:
+ speeds = ["10", "100", "1000"]
+ duplex_modes = ["half", "full"]
+
+ for speed in speeds:
+ for duplex in duplex_modes:
+ # Skip for speed = 1000Mbps, duplex = Half
+ if speed == "1000" and duplex == "half":
+ continue
+ set_speed_and_duplex(cfg.ifname, speed, duplex)
+ time.sleep(5)
+ verify_speed_and_duplex(cfg.ifname, speed, duplex)
+
def main() -> None:
with NetDrvEpEnv(__file__) as cfg:
ksft_run(globs=globals(), case_pfx={"test_"}, args=(cfg,))
--
2.43.0
Powered by blists - more mailing lists