On Tue, Nov 21, 2023 at 02:10:51PM +0530, Love Kumar wrote: > 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.ku...@amd.com> > --- > test/py/tests/test_mii.py | 68 +++++++++++++++++++++++++++++++++++++++ > 1 file changed, 68 insertions(+) > create mode 100644 test/py/tests/test_mii.py > > diff --git a/test/py/tests/test_mii.py b/test/py/tests/test_mii.py > new file mode 100644 > index 000000000000..b213df3e3f2e > --- /dev/null > +++ b/test/py/tests/test_mii.py > @@ -0,0 +1,68 @@ > +# 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 > + > +It also checks for MII PHY device exist or not, it skips the test if PHY > device > +does not exist. > +""" > + > +@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!") > + expected_output = "Current device" > + output = u_boot_console.run_command("mii device") > + if not re.search(r"Current device: '(.+?)'", output): > + pytest.skip("PHY device does not exist!") > + assert expected_output in output > + > +@pytest.mark.buildconfigspec("cmd_mii") > +def test_mii_set_device(u_boot_console): > + test_mii_list(u_boot_console) > + output = u_boot_console.run_command("mii device") > + eth_num = re.search(r"MII devices: '(.+?)'", output).groups()[0] > + u_boot_console.run_command(f"mii device {eth_num}") > + output = u_boot_console.run_command("echo $?")
OK, so this here breaks the next test for me: => mii device FEC0 => mii info Incorrect PHY address. Range should be 0-31 mii - MII utility commands ... But doing "mii info 0" next does work. However, what also works if I have not done "mii device FEC0" but just "mii device" then "mii info" works. And if I do "mii info 0" and then "mii info" it also works, because I assume there's some struct member being set somewhere or similar? So good news / bad news, the test looks good and seems to have found an issue that needs to be resolved. The question is, does this patch work as-is on your platforms? I suspect it does and this is just a problem on the FEC driver as it looked OK on another platform here real quick, and I just want to confirm. -- Tom
signature.asc
Description: PGP signature