diff mbox series

tests/functional: Add a ppc sam460ex test

Message ID 20250203092606.491933-1-clg@redhat.com (mailing list archive)
State New
Headers show
Series tests/functional: Add a ppc sam460ex test | expand

Commit Message

Cédric Le Goater Feb. 3, 2025, 9:26 a.m. UTC
The test sequence boots from kernel a sam460ex machine with a
virtio-net device to check PCI.

The buildroot is built with config :

  BR2_powerpc=y
  BR2_powerpc_440fp=y

and the kernel with the '44x/canyonlands' deconfig and virtio support.

Cc: BALATON Zoltan <balaton@eik.bme.hu>
Signed-off-by: Cédric Le Goater <clg@redhat.com>
---
 MAINTAINERS                           |  1 +
 tests/functional/meson.build          |  1 +
 tests/functional/test_ppc_sam460ex.py | 38 +++++++++++++++++++++++++++
 3 files changed, 40 insertions(+)
 create mode 100644 tests/functional/test_ppc_sam460ex.py

Comments

BALATON Zoltan Feb. 3, 2025, 11:29 a.m. UTC | #1
On Mon, 3 Feb 2025, Cédric Le Goater wrote:
> The test sequence boots from kernel a sam460ex machine with a
> virtio-net device to check PCI.
>
> The buildroot is built with config :
>
>  BR2_powerpc=y
>  BR2_powerpc_440fp=y
>
> and the kernel with the '44x/canyonlands' deconfig and virtio support.
>
> Cc: BALATON Zoltan <balaton@eik.bme.hu>
> Signed-off-by: Cédric Le Goater <clg@redhat.com>
> ---
> MAINTAINERS                           |  1 +
> tests/functional/meson.build          |  1 +
> tests/functional/test_ppc_sam460ex.py | 38 +++++++++++++++++++++++++++
> 3 files changed, 40 insertions(+)
> create mode 100644 tests/functional/test_ppc_sam460ex.py
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 8d30c5bafd87..e4ab6031511b 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -1555,6 +1555,7 @@ F: pc-bios/canyonlands.dt[sb]
> F: pc-bios/u-boot-sam460ex-20100605.bin
> F: roms/u-boot-sam460ex
> F: docs/system/ppc/amigang.rst
> +F: tests/functional/test_ppc_sam460ex.py
>
> pegasos2
> M: BALATON Zoltan <balaton@eik.bme.hu>
> diff --git a/tests/functional/meson.build b/tests/functional/meson.build
> index 868f4a64b60b..6a5f1dc405cb 100644
> --- a/tests/functional/meson.build
> +++ b/tests/functional/meson.build
> @@ -193,6 +193,7 @@ tests_ppc_system_thorough = [
>   'ppc_40p',
>   'ppc_amiga',
>   'ppc_bamboo',
> +  'ppc_sam460ex',

Instead of adding a new file this could be within ppc_amiga which was 
meant to be a place for all AmigaNG boards but only has amigaone for now. 
Unless there's a good reason for it to be separate due to how tests work 
that I'm not aware of.

Regards,
BALATON Zoltan

>   'ppc_mac',
>   'ppc_mpc8544ds',
>   'ppc_tuxrun',
> diff --git a/tests/functional/test_ppc_sam460ex.py b/tests/functional/test_ppc_sam460ex.py
> new file mode 100644
> index 000000000000..31cf9dd6de83
> --- /dev/null
> +++ b/tests/functional/test_ppc_sam460ex.py
> @@ -0,0 +1,38 @@
> +#!/usr/bin/env python3
> +#
> +# Functional test that boots a sam460ex machine with a PPC 460EX CPU
> +#
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +
> +from qemu_test import LinuxKernelTest, Asset
> +from qemu_test import exec_command_and_wait_for_pattern
> +
> +
> +class sam460exTest(LinuxKernelTest):
> +
> +    ASSET_BR2_SAM460EX_LINUX = Asset(
> +        'https://github.com/legoater/qemu-ppc-boot/raw/refs/heads/main/buildroot/qemu_ppc_sam460ex-2023.11-8-gdcd9f0f6eb-20240105/vmlinux',
> +        '6f46346f3e20e8b5fc050ff363f350f8b9d76a051b9e0bd7ea470cc680c14df2')
> +
> +    def test_ppc_sam460ex_buildroot(self):
> +        self.set_machine('sam460ex')
> +        self.require_netdev('user')
> +
> +        linux_path = self.ASSET_BR2_SAM460EX_LINUX.fetch()
> +
> +        self.vm.set_console()
> +        self.vm.add_args('-kernel', linux_path,
> +                         '-device', 'virtio-net-pci,netdev=net0',
> +                         '-netdev', 'user,id=net0')
> +        self.vm.launch()
> +
> +        self.wait_for_console_pattern('Linux version')
> +        self.wait_for_console_pattern('Hardware name: amcc,canyonlands 460EX')
> +        self.wait_for_console_pattern('/init as init process')
> +        self.wait_for_console_pattern('lease of 10.0.2.15 obtained')
> +        self.wait_for_console_pattern('buildroot login:')
> +        exec_command_and_wait_for_pattern(self, 'root', '#')
> +        exec_command_and_wait_for_pattern(self, 'poweroff', 'System Halted')
> +
> +if __name__ == '__main__':
> +    LinuxKernelTest.main()
>
Thomas Huth Feb. 3, 2025, 12:25 p.m. UTC | #2
On 03/02/2025 12.29, BALATON Zoltan wrote:
> On Mon, 3 Feb 2025, Cédric Le Goater wrote:
>> The test sequence boots from kernel a sam460ex machine with a
>> virtio-net device to check PCI.
>>
>> The buildroot is built with config :
>>
>>  BR2_powerpc=y
>>  BR2_powerpc_440fp=y
>>
>> and the kernel with the '44x/canyonlands' deconfig and virtio support.
>>
>> Cc: BALATON Zoltan <balaton@eik.bme.hu>
>> Signed-off-by: Cédric Le Goater <clg@redhat.com>
>> ---
>> MAINTAINERS                           |  1 +
>> tests/functional/meson.build          |  1 +
>> tests/functional/test_ppc_sam460ex.py | 38 +++++++++++++++++++++++++++
>> 3 files changed, 40 insertions(+)
>> create mode 100644 tests/functional/test_ppc_sam460ex.py
>>
>> diff --git a/MAINTAINERS b/MAINTAINERS
>> index 8d30c5bafd87..e4ab6031511b 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -1555,6 +1555,7 @@ F: pc-bios/canyonlands.dt[sb]
>> F: pc-bios/u-boot-sam460ex-20100605.bin
>> F: roms/u-boot-sam460ex
>> F: docs/system/ppc/amigang.rst
>> +F: tests/functional/test_ppc_sam460ex.py
>>
>> pegasos2
>> M: BALATON Zoltan <balaton@eik.bme.hu>
>> diff --git a/tests/functional/meson.build b/tests/functional/meson.build
>> index 868f4a64b60b..6a5f1dc405cb 100644
>> --- a/tests/functional/meson.build
>> +++ b/tests/functional/meson.build
>> @@ -193,6 +193,7 @@ tests_ppc_system_thorough = [
>>   'ppc_40p',
>>   'ppc_amiga',
>>   'ppc_bamboo',
>> +  'ppc_sam460ex',
> 
> Instead of adding a new file this could be within ppc_amiga which was meant 
> to be a place for all AmigaNG boards but only has amigaone for now. Unless 
> there's a good reason for it to be separate due to how tests work that I'm 
> not aware of.

Tests that are in separate files can later be run in parallel, so I think it 
makes sense to keep this in a separate file.

  Thomas
diff mbox series

Patch

diff --git a/MAINTAINERS b/MAINTAINERS
index 8d30c5bafd87..e4ab6031511b 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1555,6 +1555,7 @@  F: pc-bios/canyonlands.dt[sb]
 F: pc-bios/u-boot-sam460ex-20100605.bin
 F: roms/u-boot-sam460ex
 F: docs/system/ppc/amigang.rst
+F: tests/functional/test_ppc_sam460ex.py
 
 pegasos2
 M: BALATON Zoltan <balaton@eik.bme.hu>
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index 868f4a64b60b..6a5f1dc405cb 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -193,6 +193,7 @@  tests_ppc_system_thorough = [
   'ppc_40p',
   'ppc_amiga',
   'ppc_bamboo',
+  'ppc_sam460ex',
   'ppc_mac',
   'ppc_mpc8544ds',
   'ppc_tuxrun',
diff --git a/tests/functional/test_ppc_sam460ex.py b/tests/functional/test_ppc_sam460ex.py
new file mode 100644
index 000000000000..31cf9dd6de83
--- /dev/null
+++ b/tests/functional/test_ppc_sam460ex.py
@@ -0,0 +1,38 @@ 
+#!/usr/bin/env python3
+#
+# Functional test that boots a sam460ex machine with a PPC 460EX CPU
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+from qemu_test import LinuxKernelTest, Asset
+from qemu_test import exec_command_and_wait_for_pattern
+
+
+class sam460exTest(LinuxKernelTest):
+
+    ASSET_BR2_SAM460EX_LINUX = Asset(
+        'https://github.com/legoater/qemu-ppc-boot/raw/refs/heads/main/buildroot/qemu_ppc_sam460ex-2023.11-8-gdcd9f0f6eb-20240105/vmlinux',
+        '6f46346f3e20e8b5fc050ff363f350f8b9d76a051b9e0bd7ea470cc680c14df2')
+
+    def test_ppc_sam460ex_buildroot(self):
+        self.set_machine('sam460ex')
+        self.require_netdev('user')
+
+        linux_path = self.ASSET_BR2_SAM460EX_LINUX.fetch()
+
+        self.vm.set_console()
+        self.vm.add_args('-kernel', linux_path,
+                         '-device', 'virtio-net-pci,netdev=net0',
+                         '-netdev', 'user,id=net0')
+        self.vm.launch()
+
+        self.wait_for_console_pattern('Linux version')
+        self.wait_for_console_pattern('Hardware name: amcc,canyonlands 460EX')
+        self.wait_for_console_pattern('/init as init process')
+        self.wait_for_console_pattern('lease of 10.0.2.15 obtained')
+        self.wait_for_console_pattern('buildroot login:')
+        exec_command_and_wait_for_pattern(self, 'root', '#')
+        exec_command_and_wait_for_pattern(self, 'poweroff', 'System Halted')
+
+if __name__ == '__main__':
+    LinuxKernelTest.main()