On 2/4/26 09:21, Kane Chen wrote:
> The current Aspeed AST2700 functional test case strictly uses I2C bus
> 1 for its sensor tests. This hard-coded approach prevents the test
> logic from being reused for other machine types or configurations
> where I2C bus 1 might be disabled or where a different bus needs to
> be verified (e.g., I2C expanders).
>
> This refactoring allows the same I2C verification logic to be shared
> across different test scenarios by simply passing the target bus
> number.
>
> Signed-off-by: Kane-Chen-AS <kane_chen@aspeedtech.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Thanks,
C.
> ---
> .../functional/aarch64/test_aspeed_ast2700.py | 39 +++++++++++--------
> 1 file changed, 23 insertions(+), 16 deletions(-)
>
> diff --git a/tests/functional/aarch64/test_aspeed_ast2700.py b/tests/functional/aarch64/test_aspeed_ast2700.py
> index 828ea1ca53..d7eeab9c23 100755
> --- a/tests/functional/aarch64/test_aspeed_ast2700.py
> +++ b/tests/functional/aarch64/test_aspeed_ast2700.py
> @@ -15,11 +15,17 @@
>
> class AST2x00MachineSDK(QemuSystemTest):
>
> - def do_test_aarch64_aspeed_sdk_start(self, image):
> + def do_test_aarch64_aspeed_sdk_start(self, image, bus_id):
> + bus_str = str(bus_id)
> self.require_netdev('user')
> self.vm.set_console()
> - self.vm.add_args('-device',
> - 'tmp105,bus=aspeed.i2c.bus.1,address=0x4d,id=tmp-test')
> + self.vm.add_args(
> + '-device',
> + f'tmp105,'
> + f'bus=aspeed.i2c.bus.{bus_str},'
> + f'address=0x4d,'
> + f'id=tmp-test-{bus_str}'
> + )
> self.vm.add_args('-drive', 'file=' + image + ',if=mtd,format=raw',
> '-net', 'nic', '-net', 'user', '-snapshot')
>
> @@ -75,16 +81,17 @@ def verify_openbmc_boot_and_login(self, name):
> 'https://github.com/AspeedTech-BMC/openbmc/releases/download/v11.00/ast2700-a1-obmc.tar.gz',
> 'd5ceed511cd0dfefbb102fff2d731159e0472948a28066dc0d90bcd54be76525')
>
> - def do_ast2700_i2c_test(self):
> + def do_ast2700_i2c_test(self, bus_id):
> + bus_str = str(bus_id)
> exec_command_and_wait_for_pattern(self,
> - 'echo lm75 0x4d > /sys/class/i2c-dev/i2c-1/device/new_device ',
> - 'i2c i2c-1: new_device: Instantiated device lm75 at 0x4d')
> + f'echo lm75 0x4d > /sys/class/i2c-dev/i2c-{bus_str}/device/new_device ',
> + f'i2c i2c-{bus_str}: new_device: Instantiated device lm75 at 0x4d')
> exec_command_and_wait_for_pattern(self,
> - 'cat /sys/bus/i2c/devices/1-004d/hwmon/hwmon*/temp1_input', '0')
> - self.vm.cmd('qom-set', path='/machine/peripheral/tmp-test',
> + f'cat /sys/bus/i2c/devices/{bus_str}-004d/hwmon/hwmon*/temp1_input', '0')
> + self.vm.cmd('qom-set', path=f'/machine/peripheral/tmp-test-{bus_str}',
> property='temperature', value=18000)
> exec_command_and_wait_for_pattern(self,
> - 'cat /sys/bus/i2c/devices/1-004d/hwmon/hwmon*/temp1_input', '18000')
> + f'cat /sys/bus/i2c/devices/{bus_str}-004d/hwmon/hwmon*/temp1_input', '18000')
>
> def do_ast2700_pcie_test(self):
> exec_command_and_wait_for_pattern(self,
> @@ -99,7 +106,7 @@ def do_ast2700_pcie_test(self):
> 'ip addr show dev eth2',
> 'inet 10.0.2.15/24')
>
> - def start_ast2700_test(self, name):
> + def start_ast2700_test(self, name, bus_id):
> num_cpu = 4
> load_images_list = [
> {
> @@ -128,12 +135,12 @@ def start_ast2700_test(self, name):
>
> self.vm.add_args('-smp', str(num_cpu))
> self.do_test_aarch64_aspeed_sdk_start(
> - self.scratch_file(name, 'image-bmc'))
> + self.scratch_file(name, 'image-bmc'), bus_id)
>
> - def start_ast2700_test_vbootrom(self, name):
> + def start_ast2700_test_vbootrom(self, name, bus_id):
> self.vm.add_args('-bios', 'ast27x0_bootrom.bin')
> self.do_test_aarch64_aspeed_sdk_start(
> - self.scratch_file(name, 'image-bmc'))
> + self.scratch_file(name, 'image-bmc'), bus_id)
>
> def test_aarch64_ast2700a1_evb_sdk_v11_00(self):
> self.set_machine('ast2700a1-evb')
> @@ -142,9 +149,9 @@ def test_aarch64_ast2700a1_evb_sdk_v11_00(self):
> self.archive_extract(self.ASSET_SDK_V1100_AST2700A1)
> self.vm.add_args('-device', 'e1000e,netdev=net1,bus=pcie.2')
> self.vm.add_args('-netdev', 'user,id=net1')
> - self.start_ast2700_test('ast2700-a1')
> + self.start_ast2700_test('ast2700-a1', 1)
> self.verify_openbmc_boot_and_login('ast2700-a1')
> - self.do_ast2700_i2c_test()
> + self.do_ast2700_i2c_test(1)
> self.do_ast2700_pcie_test()
>
> def test_aarch64_ast2700a1_evb_sdk_vbootrom_v11_00(self):
> @@ -154,7 +161,7 @@ def test_aarch64_ast2700a1_evb_sdk_vbootrom_v11_00(self):
> self.archive_extract(self.ASSET_SDK_V1100_AST2700A1)
> self.vm.add_args('-device', 'e1000e,netdev=net1,bus=pcie.2')
> self.vm.add_args('-netdev', 'user,id=net1')
> - self.start_ast2700_test_vbootrom('ast2700-a1')
> + self.start_ast2700_test_vbootrom('ast2700-a1', 1)
> self.verify_vbootrom_firmware_flow()
> self.verify_openbmc_boot_start()
>