[PATCH] test/py: mii: Add tests for mii command

Tom Rini trini at konsulko.com
Tue Nov 21 23:27:25 CET 2023


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.kumar at 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.
> +"""
> +
> + at 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
> +
> + at 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
> +
> + at 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20231121/cb9f252c/attachment.sig>


More information about the U-Boot mailing list