[PATCH-for-10.0? v2] tests/functional: Add test for imx8mp-evk board with USDHC coverage

Bernhard Beschow posted 1 patch 8 months, 1 week ago
Failed in applying to current master (apply log)
MAINTAINERS                                 |  1 +
tests/functional/meson.build                |  1 +
tests/functional/test_aarch64_imx8mp_evk.py | 66 +++++++++++++++++++++
3 files changed, 68 insertions(+)
create mode 100755 tests/functional/test_aarch64_imx8mp_evk.py
[PATCH-for-10.0? v2] tests/functional: Add test for imx8mp-evk board with USDHC coverage
Posted by Bernhard Beschow 8 months, 1 week ago
Introduce a functional test which boots Debian 12 on the imx8mp-evk board. Since
the root filesystem resides on an SD card, the test also verifies the basic
operation of the USDHC.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>

--
v2:
* Make test file executable (Thomas)
* Omit fetch() (Thomas)
* Omit "-accel tcg" (Thomas)
* Add "snapshot=on" to make potential future tests independent

Supersedes: 20250405214900.7114-1-shentey@gmail.com
---
 MAINTAINERS                                 |  1 +
 tests/functional/meson.build                |  1 +
 tests/functional/test_aarch64_imx8mp_evk.py | 66 +++++++++++++++++++++
 3 files changed, 68 insertions(+)
 create mode 100755 tests/functional/test_aarch64_imx8mp_evk.py

diff --git a/MAINTAINERS b/MAINTAINERS
index d54b5578f8..4ceffa89dc 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -833,6 +833,7 @@ F: include/hw/arm/fsl-imx8mp.h
 F: include/hw/misc/imx8mp_*.h
 F: include/hw/pci-host/fsl_imx8m_phy.h
 F: docs/system/arm/imx8mp-evk.rst
+F: tests/functional/test_aarch64_imx8mp_evk.py
 F: tests/qtest/rs5c372-test.c
 
 MPS2 / MPS3
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index 0f8be30fe2..aaaf3472f1 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -75,6 +75,7 @@ tests_aarch64_system_quick = [
 
 tests_aarch64_system_thorough = [
   'aarch64_aspeed',
+  'aarch64_imx8mp_evk',
   'aarch64_raspi3',
   'aarch64_raspi4',
   'aarch64_replay',
diff --git a/tests/functional/test_aarch64_imx8mp_evk.py b/tests/functional/test_aarch64_imx8mp_evk.py
new file mode 100755
index 0000000000..62fee74044
--- /dev/null
+++ b/tests/functional/test_aarch64_imx8mp_evk.py
@@ -0,0 +1,66 @@
+#!/usr/bin/env python3
+#
+# Functional test that boots a Linux kernel and checks the console
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+from qemu_test import LinuxKernelTest, Asset
+
+class Imx8mpEvkMachine(LinuxKernelTest):
+
+    ASSET_IMAGE = Asset(
+        ('https://cloud.debian.org/images/cloud/bookworm/20231210-1590/'
+         'debian-12-generic-arm64-20231210-1590.tar.xz'),
+        '7ebf1577b32d5af6204df74b54ca2e4675de9b5a9fa14f3ff70b88eeb7b3b359')
+
+    KERNEL_OFFSET = 0x51000000
+    KERNEL_SIZE = 32622528
+    INITRD_OFFSET = 0x76000000
+    INITRD_SIZE = 30987766
+    DTB_OFFSET = 0x64F51000
+    DTB_SIZE = 45 * 1024
+
+    def extract(self, in_path, out_path, offset, size):
+        try:
+            with open(in_path, "rb") as source:
+                source.seek(offset)
+                data = source.read(size)
+            with open(out_path, "wb") as target:
+                target.write(data)
+        except (IOError, ValueError) as e:
+            self.log.error(f"Failed to extract {out_path}: {e}")
+            raise
+
+    def setUp(self):
+        super().setUp()
+
+        self.image_path = self.scratch_file("disk.raw")
+        self.kernel_path = self.scratch_file("linux")
+        self.initrd_path = self.scratch_file("initrd.zstd")
+        self.dtb_path = self.scratch_file("imx8mp-evk.dtb")
+
+        self.archive_extract(self.ASSET_IMAGE)
+        self.extract(self.image_path, self.kernel_path,
+                     self.KERNEL_OFFSET, self.KERNEL_SIZE)
+        self.extract(self.image_path, self.initrd_path,
+                     self.INITRD_OFFSET, self.INITRD_SIZE)
+        self.extract(self.image_path, self.dtb_path,
+                     self.DTB_OFFSET, self.DTB_SIZE)
+
+    def test_aarch64_imx8mp_evk_usdhc(self):
+        self.set_machine('imx8mp-evk')
+        self.vm.set_console(console_index=1)
+        self.vm.add_args('-m', '2G',
+                         '-smp', '4',
+                         '-kernel', self.kernel_path,
+                         '-initrd', self.initrd_path,
+                         '-dtb', self.dtb_path,
+                         '-append', 'root=/dev/mmcblk2p1',
+                         '-drive', f'file={self.image_path},if=sd,bus=2,'
+                                    'format=raw,id=mmcblk2,snapshot=on')
+
+        self.vm.launch()
+        self.wait_for_console_pattern('Welcome to ')
+
+if __name__ == '__main__':
+    LinuxKernelTest.main()
-- 
2.49.0
Re: [PATCH-for-10.0? v2] tests/functional: Add test for imx8mp-evk board with USDHC coverage
Posted by Thomas Huth 8 months, 1 week ago
On 09/04/2025 22.26, Bernhard Beschow wrote:
> Introduce a functional test which boots Debian 12 on the imx8mp-evk board. Since
> the root filesystem resides on an SD card, the test also verifies the basic
> operation of the USDHC.
> 
> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
> 
> --
> v2:
> * Make test file executable (Thomas)
> * Omit fetch() (Thomas)
> * Omit "-accel tcg" (Thomas)
> * Add "snapshot=on" to make potential future tests independent
> 
> Supersedes: 20250405214900.7114-1-shentey@gmail.com
> ---
>   MAINTAINERS                                 |  1 +
>   tests/functional/meson.build                |  1 +
>   tests/functional/test_aarch64_imx8mp_evk.py | 66 +++++++++++++++++++++
>   3 files changed, 68 insertions(+)
>   create mode 100755 tests/functional/test_aarch64_imx8mp_evk.py
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index d54b5578f8..4ceffa89dc 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -833,6 +833,7 @@ F: include/hw/arm/fsl-imx8mp.h
>   F: include/hw/misc/imx8mp_*.h
>   F: include/hw/pci-host/fsl_imx8m_phy.h
>   F: docs/system/arm/imx8mp-evk.rst
> +F: tests/functional/test_aarch64_imx8mp_evk.py
>   F: tests/qtest/rs5c372-test.c
>   
>   MPS2 / MPS3
> diff --git a/tests/functional/meson.build b/tests/functional/meson.build
> index 0f8be30fe2..aaaf3472f1 100644
> --- a/tests/functional/meson.build
> +++ b/tests/functional/meson.build
> @@ -75,6 +75,7 @@ tests_aarch64_system_quick = [
>   
>   tests_aarch64_system_thorough = [
>     'aarch64_aspeed',
> +  'aarch64_imx8mp_evk',
>     'aarch64_raspi3',
>     'aarch64_raspi4',
>     'aarch64_replay',
> diff --git a/tests/functional/test_aarch64_imx8mp_evk.py b/tests/functional/test_aarch64_imx8mp_evk.py
> new file mode 100755
> index 0000000000..62fee74044
> --- /dev/null
> +++ b/tests/functional/test_aarch64_imx8mp_evk.py
> @@ -0,0 +1,66 @@
> +#!/usr/bin/env python3
> +#
> +# Functional test that boots a Linux kernel and checks the console
> +#
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +
> +from qemu_test import LinuxKernelTest, Asset
> +

In case you respin (due to other reasons), please add a second empty line 
before the "class" statement (that's the style that we use in the other 
tests, too).

Anyway:
Reviewed-by: Thomas Huth <thuth@redhat.com>


> +class Imx8mpEvkMachine(LinuxKernelTest):
> +
> +    ASSET_IMAGE = Asset(
> +        ('https://cloud.debian.org/images/cloud/bookworm/20231210-1590/'
> +         'debian-12-generic-arm64-20231210-1590.tar.xz'),
> +        '7ebf1577b32d5af6204df74b54ca2e4675de9b5a9fa14f3ff70b88eeb7b3b359')
> +
> +    KERNEL_OFFSET = 0x51000000
> +    KERNEL_SIZE = 32622528
> +    INITRD_OFFSET = 0x76000000
> +    INITRD_SIZE = 30987766
> +    DTB_OFFSET = 0x64F51000
> +    DTB_SIZE = 45 * 1024
> +
> +    def extract(self, in_path, out_path, offset, size):
> +        try:
> +            with open(in_path, "rb") as source:
> +                source.seek(offset)
> +                data = source.read(size)
> +            with open(out_path, "wb") as target:
> +                target.write(data)
> +        except (IOError, ValueError) as e:
> +            self.log.error(f"Failed to extract {out_path}: {e}")
> +            raise
> +
> +    def setUp(self):
> +        super().setUp()
> +
> +        self.image_path = self.scratch_file("disk.raw")
> +        self.kernel_path = self.scratch_file("linux")
> +        self.initrd_path = self.scratch_file("initrd.zstd")
> +        self.dtb_path = self.scratch_file("imx8mp-evk.dtb")
> +
> +        self.archive_extract(self.ASSET_IMAGE)
> +        self.extract(self.image_path, self.kernel_path,
> +                     self.KERNEL_OFFSET, self.KERNEL_SIZE)
> +        self.extract(self.image_path, self.initrd_path,
> +                     self.INITRD_OFFSET, self.INITRD_SIZE)
> +        self.extract(self.image_path, self.dtb_path,
> +                     self.DTB_OFFSET, self.DTB_SIZE)
> +
> +    def test_aarch64_imx8mp_evk_usdhc(self):
> +        self.set_machine('imx8mp-evk')
> +        self.vm.set_console(console_index=1)
> +        self.vm.add_args('-m', '2G',
> +                         '-smp', '4',
> +                         '-kernel', self.kernel_path,
> +                         '-initrd', self.initrd_path,
> +                         '-dtb', self.dtb_path,
> +                         '-append', 'root=/dev/mmcblk2p1',
> +                         '-drive', f'file={self.image_path},if=sd,bus=2,'
> +                                    'format=raw,id=mmcblk2,snapshot=on')
> +
> +        self.vm.launch()
> +        self.wait_for_console_pattern('Welcome to ')
> +
> +if __name__ == '__main__':
> +    LinuxKernelTest.main()
Re: [PATCH-for-10.0? v2] tests/functional: Add test for imx8mp-evk board with USDHC coverage
Posted by Bernhard Beschow 7 months, 4 weeks ago

Am 10. April 2025 06:05:35 UTC schrieb Thomas Huth <thuth@redhat.com>:
>On 09/04/2025 22.26, Bernhard Beschow wrote:
>> Introduce a functional test which boots Debian 12 on the imx8mp-evk board. Since
>> the root filesystem resides on an SD card, the test also verifies the basic
>> operation of the USDHC.
>> 
>> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
>> 
>> --
>> v2:
>> * Make test file executable (Thomas)
>> * Omit fetch() (Thomas)
>> * Omit "-accel tcg" (Thomas)
>> * Add "snapshot=on" to make potential future tests independent
>> 
>> Supersedes: 20250405214900.7114-1-shentey@gmail.com
>> ---
>>   MAINTAINERS                                 |  1 +
>>   tests/functional/meson.build                |  1 +
>>   tests/functional/test_aarch64_imx8mp_evk.py | 66 +++++++++++++++++++++
>>   3 files changed, 68 insertions(+)
>>   create mode 100755 tests/functional/test_aarch64_imx8mp_evk.py
>> 
>> diff --git a/MAINTAINERS b/MAINTAINERS
>> index d54b5578f8..4ceffa89dc 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -833,6 +833,7 @@ F: include/hw/arm/fsl-imx8mp.h
>>   F: include/hw/misc/imx8mp_*.h
>>   F: include/hw/pci-host/fsl_imx8m_phy.h
>>   F: docs/system/arm/imx8mp-evk.rst
>> +F: tests/functional/test_aarch64_imx8mp_evk.py
>>   F: tests/qtest/rs5c372-test.c
>>     MPS2 / MPS3
>> diff --git a/tests/functional/meson.build b/tests/functional/meson.build
>> index 0f8be30fe2..aaaf3472f1 100644
>> --- a/tests/functional/meson.build
>> +++ b/tests/functional/meson.build
>> @@ -75,6 +75,7 @@ tests_aarch64_system_quick = [
>>     tests_aarch64_system_thorough = [
>>     'aarch64_aspeed',
>> +  'aarch64_imx8mp_evk',
>>     'aarch64_raspi3',
>>     'aarch64_raspi4',
>>     'aarch64_replay',
>> diff --git a/tests/functional/test_aarch64_imx8mp_evk.py b/tests/functional/test_aarch64_imx8mp_evk.py
>> new file mode 100755
>> index 0000000000..62fee74044
>> --- /dev/null
>> +++ b/tests/functional/test_aarch64_imx8mp_evk.py
>> @@ -0,0 +1,66 @@
>> +#!/usr/bin/env python3
>> +#
>> +# Functional test that boots a Linux kernel and checks the console
>> +#
>> +# SPDX-License-Identifier: GPL-2.0-or-later
>> +
>> +from qemu_test import LinuxKernelTest, Asset
>> +
>
>In case you respin (due to other reasons), please add a second empty line before the "class" statement (that's the style that we use in the other tests, too).
>
>Anyway:
>Reviewed-by: Thomas Huth <thuth@redhat.com>

Ping (not for 10.0)

>
>
>> +class Imx8mpEvkMachine(LinuxKernelTest):
>> +
>> +    ASSET_IMAGE = Asset(
>> +        ('https://cloud.debian.org/images/cloud/bookworm/20231210-1590/'
>> +         'debian-12-generic-arm64-20231210-1590.tar.xz'),
>> +        '7ebf1577b32d5af6204df74b54ca2e4675de9b5a9fa14f3ff70b88eeb7b3b359')
>> +
>> +    KERNEL_OFFSET = 0x51000000
>> +    KERNEL_SIZE = 32622528
>> +    INITRD_OFFSET = 0x76000000
>> +    INITRD_SIZE = 30987766
>> +    DTB_OFFSET = 0x64F51000
>> +    DTB_SIZE = 45 * 1024
>> +
>> +    def extract(self, in_path, out_path, offset, size):
>> +        try:
>> +            with open(in_path, "rb") as source:
>> +                source.seek(offset)
>> +                data = source.read(size)
>> +            with open(out_path, "wb") as target:
>> +                target.write(data)
>> +        except (IOError, ValueError) as e:
>> +            self.log.error(f"Failed to extract {out_path}: {e}")
>> +            raise
>> +
>> +    def setUp(self):
>> +        super().setUp()
>> +
>> +        self.image_path = self.scratch_file("disk.raw")
>> +        self.kernel_path = self.scratch_file("linux")
>> +        self.initrd_path = self.scratch_file("initrd.zstd")
>> +        self.dtb_path = self.scratch_file("imx8mp-evk.dtb")
>> +
>> +        self.archive_extract(self.ASSET_IMAGE)
>> +        self.extract(self.image_path, self.kernel_path,
>> +                     self.KERNEL_OFFSET, self.KERNEL_SIZE)
>> +        self.extract(self.image_path, self.initrd_path,
>> +                     self.INITRD_OFFSET, self.INITRD_SIZE)
>> +        self.extract(self.image_path, self.dtb_path,
>> +                     self.DTB_OFFSET, self.DTB_SIZE)
>> +
>> +    def test_aarch64_imx8mp_evk_usdhc(self):
>> +        self.set_machine('imx8mp-evk')
>> +        self.vm.set_console(console_index=1)
>> +        self.vm.add_args('-m', '2G',
>> +                         '-smp', '4',
>> +                         '-kernel', self.kernel_path,
>> +                         '-initrd', self.initrd_path,
>> +                         '-dtb', self.dtb_path,
>> +                         '-append', 'root=/dev/mmcblk2p1',
>> +                         '-drive', f'file={self.image_path},if=sd,bus=2,'
>> +                                    'format=raw,id=mmcblk2,snapshot=on')
>> +
>> +        self.vm.launch()
>> +        self.wait_for_console_pattern('Welcome to ')
>> +
>> +if __name__ == '__main__':
>> +    LinuxKernelTest.main()
>
Re: [PATCH-for-10.0? v2] tests/functional: Add test for imx8mp-evk board with USDHC coverage
Posted by Thomas Huth 7 months, 4 weeks ago
On 23/04/2025 11.31, Bernhard Beschow wrote:
> 
> 
> Am 10. April 2025 06:05:35 UTC schrieb Thomas Huth <thuth@redhat.com>:
>> On 09/04/2025 22.26, Bernhard Beschow wrote:
>>> Introduce a functional test which boots Debian 12 on the imx8mp-evk board. Since
>>> the root filesystem resides on an SD card, the test also verifies the basic
>>> operation of the USDHC.
>>>
>>> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
>>>
>>> --
>>> v2:
>>> * Make test file executable (Thomas)
>>> * Omit fetch() (Thomas)
>>> * Omit "-accel tcg" (Thomas)
>>> * Add "snapshot=on" to make potential future tests independent
>>>
>>> Supersedes: 20250405214900.7114-1-shentey@gmail.com
>>> ---
>>>    MAINTAINERS                                 |  1 +
>>>    tests/functional/meson.build                |  1 +
>>>    tests/functional/test_aarch64_imx8mp_evk.py | 66 +++++++++++++++++++++
>>>    3 files changed, 68 insertions(+)
>>>    create mode 100755 tests/functional/test_aarch64_imx8mp_evk.py
>>>
>>> diff --git a/MAINTAINERS b/MAINTAINERS
>>> index d54b5578f8..4ceffa89dc 100644
>>> --- a/MAINTAINERS
>>> +++ b/MAINTAINERS
>>> @@ -833,6 +833,7 @@ F: include/hw/arm/fsl-imx8mp.h
>>>    F: include/hw/misc/imx8mp_*.h
>>>    F: include/hw/pci-host/fsl_imx8m_phy.h
>>>    F: docs/system/arm/imx8mp-evk.rst
>>> +F: tests/functional/test_aarch64_imx8mp_evk.py
>>>    F: tests/qtest/rs5c372-test.c
>>>      MPS2 / MPS3
>>> diff --git a/tests/functional/meson.build b/tests/functional/meson.build
>>> index 0f8be30fe2..aaaf3472f1 100644
>>> --- a/tests/functional/meson.build
>>> +++ b/tests/functional/meson.build
>>> @@ -75,6 +75,7 @@ tests_aarch64_system_quick = [
>>>      tests_aarch64_system_thorough = [
>>>      'aarch64_aspeed',
>>> +  'aarch64_imx8mp_evk',
>>>      'aarch64_raspi3',
>>>      'aarch64_raspi4',
>>>      'aarch64_replay',
>>> diff --git a/tests/functional/test_aarch64_imx8mp_evk.py b/tests/functional/test_aarch64_imx8mp_evk.py
>>> new file mode 100755
>>> index 0000000000..62fee74044
>>> --- /dev/null
>>> +++ b/tests/functional/test_aarch64_imx8mp_evk.py
>>> @@ -0,0 +1,66 @@
>>> +#!/usr/bin/env python3
>>> +#
>>> +# Functional test that boots a Linux kernel and checks the console
>>> +#
>>> +# SPDX-License-Identifier: GPL-2.0-or-later
>>> +
>>> +from qemu_test import LinuxKernelTest, Asset
>>> +
>>
>> In case you respin (due to other reasons), please add a second empty line before the "class" statement (that's the style that we use in the other tests, too).
>>
>> Anyway:
>> Reviewed-by: Thomas Huth <thuth@redhat.com>
> 
> Ping (not for 10.0)

Peter, should this go through your arm tree, or shall I pick it up with 
other functional test patches for my next PR?

  Thomas
Re: [PATCH-for-10.0? v2] tests/functional: Add test for imx8mp-evk board with USDHC coverage
Posted by Philippe Mathieu-Daudé 7 months, 4 weeks ago
Hi Thomas,

On 23/4/25 11:40, Thomas Huth wrote:
> On 23/04/2025 11.31, Bernhard Beschow wrote:
>>
>>
>> Am 10. April 2025 06:05:35 UTC schrieb Thomas Huth <thuth@redhat.com>:
>>> On 09/04/2025 22.26, Bernhard Beschow wrote:
>>>> Introduce a functional test which boots Debian 12 on the imx8mp-evk 
>>>> board. Since
>>>> the root filesystem resides on an SD card, the test also verifies 
>>>> the basic
>>>> operation of the USDHC.
>>>>
>>>> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
>>>>
>>>> -- 
>>>> v2:
>>>> * Make test file executable (Thomas)
>>>> * Omit fetch() (Thomas)
>>>> * Omit "-accel tcg" (Thomas)
>>>> * Add "snapshot=on" to make potential future tests independent
>>>>
>>>> Supersedes: 20250405214900.7114-1-shentey@gmail.com
>>>> ---
>>>>    MAINTAINERS                                 |  1 +
>>>>    tests/functional/meson.build                |  1 +
>>>>    tests/functional/test_aarch64_imx8mp_evk.py | 66 ++++++++++++++++ 
>>>> +++++
>>>>    3 files changed, 68 insertions(+)
>>>>    create mode 100755 tests/functional/test_aarch64_imx8mp_evk.py
>>>>
>>>> diff --git a/MAINTAINERS b/MAINTAINERS
>>>> index d54b5578f8..4ceffa89dc 100644
>>>> --- a/MAINTAINERS
>>>> +++ b/MAINTAINERS
>>>> @@ -833,6 +833,7 @@ F: include/hw/arm/fsl-imx8mp.h
>>>>    F: include/hw/misc/imx8mp_*.h
>>>>    F: include/hw/pci-host/fsl_imx8m_phy.h
>>>>    F: docs/system/arm/imx8mp-evk.rst
>>>> +F: tests/functional/test_aarch64_imx8mp_evk.py
>>>>    F: tests/qtest/rs5c372-test.c
>>>>      MPS2 / MPS3
>>>> diff --git a/tests/functional/meson.build b/tests/functional/ 
>>>> meson.build
>>>> index 0f8be30fe2..aaaf3472f1 100644
>>>> --- a/tests/functional/meson.build
>>>> +++ b/tests/functional/meson.build
>>>> @@ -75,6 +75,7 @@ tests_aarch64_system_quick = [
>>>>      tests_aarch64_system_thorough = [
>>>>      'aarch64_aspeed',
>>>> +  'aarch64_imx8mp_evk',
>>>>      'aarch64_raspi3',
>>>>      'aarch64_raspi4',
>>>>      'aarch64_replay',
>>>> diff --git a/tests/functional/test_aarch64_imx8mp_evk.py b/tests/ 
>>>> functional/test_aarch64_imx8mp_evk.py
>>>> new file mode 100755
>>>> index 0000000000..62fee74044
>>>> --- /dev/null
>>>> +++ b/tests/functional/test_aarch64_imx8mp_evk.py
>>>> @@ -0,0 +1,66 @@
>>>> +#!/usr/bin/env python3
>>>> +#
>>>> +# Functional test that boots a Linux kernel and checks the console
>>>> +#
>>>> +# SPDX-License-Identifier: GPL-2.0-or-later
>>>> +
>>>> +from qemu_test import LinuxKernelTest, Asset
>>>> +
>>>
>>> In case you respin (due to other reasons), please add a second empty 
>>> line before the "class" statement (that's the style that we use in 
>>> the other tests, too).
>>>
>>> Anyway:
>>> Reviewed-by: Thomas Huth <thuth@redhat.com>
>>
>> Ping (not for 10.0)
> 
> Peter, should this go through your arm tree, or shall I pick it up with 
> other functional test patches for my next PR?

My preference would be like with previous Avocado tests: when a
(functional) test concerns mostly a dedicated subsystem, I'd rather see
the dedicated subsystem maintainers to take it, so they get familiar
with the test. Except if the maintainers are busy or unresponsive of
course.


Re: [PATCH-for-10.0? v2] tests/functional: Add test for imx8mp-evk board with USDHC coverage
Posted by Peter Maydell 7 months, 2 weeks ago
On Wed, 23 Apr 2025 at 12:31, Philippe Mathieu-Daudé <philmd@linaro.org> wrote:
>
> Hi Thomas,
>
> On 23/4/25 11:40, Thomas Huth wrote:
> > On 23/04/2025 11.31, Bernhard Beschow wrote:
> >>
> >>
> >> Am 10. April 2025 06:05:35 UTC schrieb Thomas Huth <thuth@redhat.com>:
> >>> On 09/04/2025 22.26, Bernhard Beschow wrote:
> >>>> Introduce a functional test which boots Debian 12 on the imx8mp-evk
> >>>> board. Since
> >>>> the root filesystem resides on an SD card, the test also verifies
> >>>> the basic
> >>>> operation of the USDHC.
> >>>>
> >>>> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
> >>>>
> >>>> --
> >>>> v2:
> >>>> * Make test file executable (Thomas)
> >>>> * Omit fetch() (Thomas)
> >>>> * Omit "-accel tcg" (Thomas)
> >>>> * Add "snapshot=on" to make potential future tests independent
> >>>>
> >>>> Supersedes: 20250405214900.7114-1-shentey@gmail.com
> >>>> ---
> >>>>    MAINTAINERS                                 |  1 +
> >>>>    tests/functional/meson.build                |  1 +
> >>>>    tests/functional/test_aarch64_imx8mp_evk.py | 66 ++++++++++++++++
> >>>> +++++
> >>>>    3 files changed, 68 insertions(+)
> >>>>    create mode 100755 tests/functional/test_aarch64_imx8mp_evk.py
> >>>>
> >>>> diff --git a/MAINTAINERS b/MAINTAINERS
> >>>> index d54b5578f8..4ceffa89dc 100644
> >>>> --- a/MAINTAINERS
> >>>> +++ b/MAINTAINERS
> >>>> @@ -833,6 +833,7 @@ F: include/hw/arm/fsl-imx8mp.h
> >>>>    F: include/hw/misc/imx8mp_*.h
> >>>>    F: include/hw/pci-host/fsl_imx8m_phy.h
> >>>>    F: docs/system/arm/imx8mp-evk.rst
> >>>> +F: tests/functional/test_aarch64_imx8mp_evk.py
> >>>>    F: tests/qtest/rs5c372-test.c
> >>>>      MPS2 / MPS3
> >>>> diff --git a/tests/functional/meson.build b/tests/functional/
> >>>> meson.build
> >>>> index 0f8be30fe2..aaaf3472f1 100644
> >>>> --- a/tests/functional/meson.build
> >>>> +++ b/tests/functional/meson.build
> >>>> @@ -75,6 +75,7 @@ tests_aarch64_system_quick = [
> >>>>      tests_aarch64_system_thorough = [
> >>>>      'aarch64_aspeed',
> >>>> +  'aarch64_imx8mp_evk',
> >>>>      'aarch64_raspi3',
> >>>>      'aarch64_raspi4',
> >>>>      'aarch64_replay',
> >>>> diff --git a/tests/functional/test_aarch64_imx8mp_evk.py b/tests/
> >>>> functional/test_aarch64_imx8mp_evk.py
> >>>> new file mode 100755
> >>>> index 0000000000..62fee74044
> >>>> --- /dev/null
> >>>> +++ b/tests/functional/test_aarch64_imx8mp_evk.py
> >>>> @@ -0,0 +1,66 @@
> >>>> +#!/usr/bin/env python3
> >>>> +#
> >>>> +# Functional test that boots a Linux kernel and checks the console
> >>>> +#
> >>>> +# SPDX-License-Identifier: GPL-2.0-or-later
> >>>> +
> >>>> +from qemu_test import LinuxKernelTest, Asset
> >>>> +
> >>>
> >>> In case you respin (due to other reasons), please add a second empty
> >>> line before the "class" statement (that's the style that we use in
> >>> the other tests, too).
> >>>
> >>> Anyway:
> >>> Reviewed-by: Thomas Huth <thuth@redhat.com>
> >>
> >> Ping (not for 10.0)
> >
> > Peter, should this go through your arm tree, or shall I pick it up with
> > other functional test patches for my next PR?
>
> My preference would be like with previous Avocado tests: when a
> (functional) test concerns mostly a dedicated subsystem, I'd rather see
> the dedicated subsystem maintainers to take it, so they get familiar
> with the test. Except if the maintainers are busy or unresponsive of
> course.

I don't care much either way, and in this case I was away, so I'd
have been happy for Thomas to take this via the test tree in my
absence.

But I'm back again now, so I've applied this to target-arm.next.

Since on my machine it takes 42s to run on a clang-sanitizer
build, and 96s on a debug build, I have added this to
tests/functional/meson.build in the hope of avoiding timeouts
on slow systems:

--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -12,6 +12,7 @@ endif
 # Timeouts for individual tests that can be slow e.g. with debugging enabled
 test_timeouts = {
   'aarch64_aspeed' : 600,
+  'aarch64_imx8mp_evk' : 240,
   'aarch64_raspi4' : 480,
   'aarch64_reverse_debug' : 180,
   'aarch64_rme_virt' : 1200,


thanks
-- PMM
Re: [PATCH-for-10.0? v2] tests/functional: Add test for imx8mp-evk board with USDHC coverage
Posted by Bernhard Beschow 7 months, 3 weeks ago

Am 23. April 2025 11:31:31 UTC schrieb "Philippe Mathieu-Daudé" <philmd@linaro.org>:
>Hi Thomas,
>
>On 23/4/25 11:40, Thomas Huth wrote:
>> On 23/04/2025 11.31, Bernhard Beschow wrote:
>>> 
>>> 
>>> Am 10. April 2025 06:05:35 UTC schrieb Thomas Huth <thuth@redhat.com>:
>>>> On 09/04/2025 22.26, Bernhard Beschow wrote:
>>>>> Introduce a functional test which boots Debian 12 on the imx8mp-evk board. Since
>>>>> the root filesystem resides on an SD card, the test also verifies the basic
>>>>> operation of the USDHC.
>>>>> 
>>>>> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
>>>>> 
>>>>> -- 
>>>>> v2:
>>>>> * Make test file executable (Thomas)
>>>>> * Omit fetch() (Thomas)
>>>>> * Omit "-accel tcg" (Thomas)
>>>>> * Add "snapshot=on" to make potential future tests independent
>>>>> 
>>>>> Supersedes: 20250405214900.7114-1-shentey@gmail.com
>>>>> ---
>>>>>    MAINTAINERS                                 |  1 +
>>>>>    tests/functional/meson.build                |  1 +
>>>>>    tests/functional/test_aarch64_imx8mp_evk.py | 66 ++++++++++++++++ +++++
>>>>>    3 files changed, 68 insertions(+)
>>>>>    create mode 100755 tests/functional/test_aarch64_imx8mp_evk.py
>>>>> 
>>>>> diff --git a/MAINTAINERS b/MAINTAINERS
>>>>> index d54b5578f8..4ceffa89dc 100644
>>>>> --- a/MAINTAINERS
>>>>> +++ b/MAINTAINERS
>>>>> @@ -833,6 +833,7 @@ F: include/hw/arm/fsl-imx8mp.h
>>>>>    F: include/hw/misc/imx8mp_*.h
>>>>>    F: include/hw/pci-host/fsl_imx8m_phy.h
>>>>>    F: docs/system/arm/imx8mp-evk.rst
>>>>> +F: tests/functional/test_aarch64_imx8mp_evk.py
>>>>>    F: tests/qtest/rs5c372-test.c
>>>>>      MPS2 / MPS3
>>>>> diff --git a/tests/functional/meson.build b/tests/functional/ meson.build
>>>>> index 0f8be30fe2..aaaf3472f1 100644
>>>>> --- a/tests/functional/meson.build
>>>>> +++ b/tests/functional/meson.build
>>>>> @@ -75,6 +75,7 @@ tests_aarch64_system_quick = [
>>>>>      tests_aarch64_system_thorough = [
>>>>>      'aarch64_aspeed',
>>>>> +  'aarch64_imx8mp_evk',
>>>>>      'aarch64_raspi3',
>>>>>      'aarch64_raspi4',
>>>>>      'aarch64_replay',
>>>>> diff --git a/tests/functional/test_aarch64_imx8mp_evk.py b/tests/ functional/test_aarch64_imx8mp_evk.py
>>>>> new file mode 100755
>>>>> index 0000000000..62fee74044
>>>>> --- /dev/null
>>>>> +++ b/tests/functional/test_aarch64_imx8mp_evk.py
>>>>> @@ -0,0 +1,66 @@
>>>>> +#!/usr/bin/env python3
>>>>> +#
>>>>> +# Functional test that boots a Linux kernel and checks the console
>>>>> +#
>>>>> +# SPDX-License-Identifier: GPL-2.0-or-later
>>>>> +
>>>>> +from qemu_test import LinuxKernelTest, Asset
>>>>> +
>>>> 
>>>> In case you respin (due to other reasons), please add a second empty line before the "class" statement (that's the style that we use in the other tests, too).
>>>> 
>>>> Anyway:
>>>> Reviewed-by: Thomas Huth <thuth@redhat.com>
>>> 
>>> Ping (not for 10.0)
>> 
>> Peter, should this go through your arm tree, or shall I pick it up with other functional test patches for my next PR?
>
>My preference would be like with previous Avocado tests: when a
>(functional) test concerns mostly a dedicated subsystem, I'd rather see
>the dedicated subsystem maintainers to take it, so they get familiar
>with the test. Except if the maintainers are busy or unresponsive of
>course.

Ping