mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-19 03:15:00 +00:00
test/py: mii: Add tests for mii command
Add below test cases for mii commands: mii_info -To display MII PHY info mii_list - To list MII devices mii_set_device - To set MII device mii_read - To reads register from MII PHY address mii_dump - To display data from MII PHY address Signed-off-by: Love Kumar <love.kumar@amd.com> Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
e6a8c6f5c0
commit
f0d6e29f97
1 changed files with 92 additions and 0 deletions
92
test/py/tests/test_mii.py
Normal file
92
test/py/tests/test_mii.py
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
|
# (C) Copyright 2023, Advanced Micro Devices, Inc.
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
import re
|
||||||
|
|
||||||
|
"""
|
||||||
|
Note: This test doesn't rely on boardenv_* configuration value but they can
|
||||||
|
change test behavior.
|
||||||
|
|
||||||
|
For example:
|
||||||
|
|
||||||
|
# Setup env__mii_deive_test_skip to True if tests with ethernet PHY devices
|
||||||
|
# should be skipped. For example: Missing PHY device
|
||||||
|
env__mii_device_test_skip = True
|
||||||
|
|
||||||
|
# Setup env__mii_device_test to set the MII device names. Test will be skipped
|
||||||
|
# if env_mii_device_test is not set
|
||||||
|
env__mii_device_test = {
|
||||||
|
'device_list': ['eth0', 'eth1'],
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
|
||||||
|
@pytest.mark.buildconfigspec("cmd_mii")
|
||||||
|
def test_mii_info(u_boot_console):
|
||||||
|
if u_boot_console.config.env.get("env__mii_device_test_skip", False):
|
||||||
|
pytest.skip("MII device test is not enabled!")
|
||||||
|
expected_output = "PHY"
|
||||||
|
output = u_boot_console.run_command("mii info")
|
||||||
|
if not re.search(r"PHY (.+?):", output):
|
||||||
|
pytest.skip("PHY device does not exist!")
|
||||||
|
assert expected_output in output
|
||||||
|
|
||||||
|
@pytest.mark.buildconfigspec("cmd_mii")
|
||||||
|
def test_mii_list(u_boot_console):
|
||||||
|
if u_boot_console.config.env.get("env__mii_device_test_skip", False):
|
||||||
|
pytest.skip("MII device test is not enabled!")
|
||||||
|
|
||||||
|
f = u_boot_console.config.env.get("env__mii_device_test", None)
|
||||||
|
if not f:
|
||||||
|
pytest.skip("No MII device to test!")
|
||||||
|
|
||||||
|
dev_list = f.get("device_list")
|
||||||
|
if not dev_list:
|
||||||
|
pytest.fail("No MII device list provided via env__mii_device_test!")
|
||||||
|
|
||||||
|
expected_output = "Current device"
|
||||||
|
output = u_boot_console.run_command("mii device")
|
||||||
|
mii_devices = (
|
||||||
|
re.search(r"MII devices: '(.+)'", output).groups()[0].replace("'", "").split()
|
||||||
|
)
|
||||||
|
|
||||||
|
assert len([x for x in dev_list if x in mii_devices]) == len(dev_list)
|
||||||
|
assert expected_output in output
|
||||||
|
|
||||||
|
@pytest.mark.buildconfigspec("cmd_mii")
|
||||||
|
def test_mii_set_device(u_boot_console):
|
||||||
|
test_mii_list(u_boot_console)
|
||||||
|
f = u_boot_console.config.env.get("env__mii_device_test", None)
|
||||||
|
dev_list = f.get("device_list")
|
||||||
|
output = u_boot_console.run_command("mii device")
|
||||||
|
current_dev = re.search(r"Current device: '(.+?)'", output).groups()[0]
|
||||||
|
|
||||||
|
for dev in dev_list:
|
||||||
|
u_boot_console.run_command(f"mii device {dev}")
|
||||||
|
output = u_boot_console.run_command("echo $?")
|
||||||
|
assert output.endswith("0")
|
||||||
|
|
||||||
|
u_boot_console.run_command(f"mii device {current_dev}")
|
||||||
|
output = u_boot_console.run_command("mii device")
|
||||||
|
dev = re.search(r"Current device: '(.+?)'", output).groups()[0]
|
||||||
|
assert current_dev == dev
|
||||||
|
|
||||||
|
@pytest.mark.buildconfigspec("cmd_mii")
|
||||||
|
def test_mii_read(u_boot_console):
|
||||||
|
test_mii_list(u_boot_console)
|
||||||
|
output = u_boot_console.run_command("mii info")
|
||||||
|
eth_addr = hex(int(re.search(r"PHY (.+?):", output).groups()[0], 16))
|
||||||
|
u_boot_console.run_command(f"mii read {eth_addr} 0")
|
||||||
|
output = u_boot_console.run_command("echo $?")
|
||||||
|
assert output.endswith("0")
|
||||||
|
|
||||||
|
@pytest.mark.buildconfigspec("cmd_mii")
|
||||||
|
def test_mii_dump(u_boot_console):
|
||||||
|
test_mii_list(u_boot_console)
|
||||||
|
expected_response = "PHY control register"
|
||||||
|
output = u_boot_console.run_command("mii info")
|
||||||
|
eth_addr = hex(int(re.search(r"PHY (.+?):", output).groups()[0], 16))
|
||||||
|
response = u_boot_console.run_command(f"mii dump {eth_addr} 0")
|
||||||
|
assert expected_response in response
|
||||||
|
output = u_boot_console.run_command("echo $?")
|
||||||
|
assert output.endswith("0")
|
Loading…
Add table
Reference in a new issue