mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-30 19:48:19 +00:00 
			
		
		
		
	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>
		
			
				
	
	
		
			93 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # 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")
 |