[PULL 11/11] tests/functional: Add gb200 tests

Cédric Le Goater posted 11 patches 7 months, 1 week ago
Maintainers: "Cédric Le Goater" <clg@kaod.org>, Peter Maydell <peter.maydell@linaro.org>, Steven Lee <steven_lee@aspeedtech.com>, Troy Lee <leetroy@gmail.com>, Jamin Lin <jamin_lin@aspeedtech.com>, Andrew Jeffery <andrew@codeconstruct.com.au>, Joel Stanley <joel@jms.id.au>, Paolo Bonzini <pbonzini@redhat.com>, Fabiano Rosas <farosas@suse.de>, Laurent Vivier <lvivier@redhat.com>
There is a newer version of this series
[PULL 11/11] tests/functional: Add gb200 tests
Posted by Cédric Le Goater 7 months, 1 week ago
From: Ed Tanous <etanous@nvidia.com>

To support the newly added gb200 machine, add appropriate tests and
extend do_test_arm_aspeed_openbmc() to support the hostname of this
new system: "gb200nvl-obmc".

Signed-off-by: Ed Tanous <etanous@nvidia.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Link: https://lore.kernel.org/qemu-devel/20250703144249.3348879-5-etanous@nvidia.com
[ clg: Adjust commit log to document do_test_arm_aspeed_openbmc() change ]
Signed-off-by: Cédric Le Goater <clg@redhat.com>
---
 tests/functional/aspeed.py                    |  9 +++++--
 tests/functional/meson.build                  |  2 ++
 .../test_arm_aspeed_gb200nvl_bmc.py           | 26 +++++++++++++++++++
 3 files changed, 35 insertions(+), 2 deletions(-)
 create mode 100644 tests/functional/test_arm_aspeed_gb200nvl_bmc.py

diff --git a/tests/functional/aspeed.py b/tests/functional/aspeed.py
index 7a40d5dda736..b131703c5283 100644
--- a/tests/functional/aspeed.py
+++ b/tests/functional/aspeed.py
@@ -8,8 +8,13 @@
 class AspeedTest(LinuxKernelTest):
 
     def do_test_arm_aspeed_openbmc(self, machine, image, uboot='2019.04',
-                                   cpu_id='0x0', soc='AST2500 rev A1'):
-        hostname = machine.removesuffix('-bmc')
+                                   cpu_id='0x0', soc='AST2500 rev A1',
+                                   image_hostname=None):
+        # Allow for the image hostname to not end in "-bmc"
+        if image_hostname is not None:
+            hostname = image_hostname
+        else:
+            hostname = machine.removesuffix('-bmc')
 
         self.set_machine(machine)
         self.vm.set_console()
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index fb87b957aa6c..050c9000b95c 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -33,6 +33,7 @@ test_timeouts = {
   'arm_aspeed_ast2600' : 1200,
   'arm_aspeed_bletchley' : 480,
   'arm_aspeed_catalina' : 480,
+  'arm_aspeed_gb200nvl_bmc' : 480,
   'arm_aspeed_rainier' : 480,
   'arm_bpim2u' : 500,
   'arm_collie' : 180,
@@ -129,6 +130,7 @@ tests_arm_system_thorough = [
   'arm_aspeed_ast2600',
   'arm_aspeed_bletchley',
   'arm_aspeed_catalina',
+  'arm_aspeed_gb200nvl_bmc',
   'arm_aspeed_rainier',
   'arm_bpim2u',
   'arm_canona1100',
diff --git a/tests/functional/test_arm_aspeed_gb200nvl_bmc.py b/tests/functional/test_arm_aspeed_gb200nvl_bmc.py
new file mode 100644
index 000000000000..8e8e3f05c1b2
--- /dev/null
+++ b/tests/functional/test_arm_aspeed_gb200nvl_bmc.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python3
+#
+# Functional test that boots the ASPEED machines
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+from qemu_test import Asset
+from aspeed import AspeedTest
+
+
+class GB200Machine(AspeedTest):
+
+    ASSET_GB200_FLASH = Asset(
+        'https://github.com/legoater/qemu-aspeed-boot/raw/refs/heads/master/images/gb200nvl-obmc/obmc-phosphor-image-gb200nvl-obmc-20250702182348.static.mtd.xz',
+        'b84819317cb3dc762895ad507705978ef000bfc77c50c33a63bdd37921db0dbc')
+
+    def test_arm_aspeed_gb200_openbmc(self):
+        image_path = self.uncompress(self.ASSET_GB200_FLASH)
+
+        self.do_test_arm_aspeed_openbmc('gb200nvl-bmc', image=image_path,
+                                        uboot='2019.04', cpu_id='0xf00',
+                                        soc='AST2600 rev A3',
+                                        image_hostname='gb200nvl-obmc')
+
+if __name__ == '__main__':
+    AspeedTest.main()
-- 
2.50.0


Re: [PULL 11/11] tests/functional: Add gb200 tests
Posted by Philippe Mathieu-Daudé 1 month, 2 weeks ago
Hi Ed, Cédric,

On 4/7/25 10:37, Cédric Le Goater wrote:
> From: Ed Tanous <etanous@nvidia.com>
> 
> To support the newly added gb200 machine, add appropriate tests and
> extend do_test_arm_aspeed_openbmc() to support the hostname of this
> new system: "gb200nvl-obmc".
> 
> Signed-off-by: Ed Tanous <etanous@nvidia.com>
> Reviewed-by: Cédric Le Goater <clg@redhat.com>
> Link: https://lore.kernel.org/qemu-devel/20250703144249.3348879-5-etanous@nvidia.com
> [ clg: Adjust commit log to document do_test_arm_aspeed_openbmc() change ]
> Signed-off-by: Cédric Le Goater <clg@redhat.com>
> ---
>   tests/functional/aspeed.py                    |  9 +++++--
>   tests/functional/meson.build                  |  2 ++
>   .../test_arm_aspeed_gb200nvl_bmc.py           | 26 +++++++++++++++++++
>   3 files changed, 35 insertions(+), 2 deletions(-)
>   create mode 100644 tests/functional/test_arm_aspeed_gb200nvl_bmc.py
> 
> diff --git a/tests/functional/aspeed.py b/tests/functional/aspeed.py
> index 7a40d5dda736..b131703c5283 100644
> --- a/tests/functional/aspeed.py
> +++ b/tests/functional/aspeed.py
> @@ -8,8 +8,13 @@
>   class AspeedTest(LinuxKernelTest):
>   
>       def do_test_arm_aspeed_openbmc(self, machine, image, uboot='2019.04',
> -                                   cpu_id='0x0', soc='AST2500 rev A1'):
> -        hostname = machine.removesuffix('-bmc')
> +                                   cpu_id='0x0', soc='AST2500 rev A1',
> +                                   image_hostname=None):
> +        # Allow for the image hostname to not end in "-bmc"
> +        if image_hostname is not None:
> +            hostname = image_hostname
> +        else:
> +            hostname = machine.removesuffix('-bmc')
>   
>           self.set_machine(machine)
>           self.vm.set_console()
> diff --git a/tests/functional/meson.build b/tests/functional/meson.build
> index fb87b957aa6c..050c9000b95c 100644
> --- a/tests/functional/meson.build
> +++ b/tests/functional/meson.build
> @@ -33,6 +33,7 @@ test_timeouts = {
>     'arm_aspeed_ast2600' : 1200,
>     'arm_aspeed_bletchley' : 480,
>     'arm_aspeed_catalina' : 480,
> +  'arm_aspeed_gb200nvl_bmc' : 480,
>     'arm_aspeed_rainier' : 480,
>     'arm_bpim2u' : 500,
>     'arm_collie' : 180,
> @@ -129,6 +130,7 @@ tests_arm_system_thorough = [
>     'arm_aspeed_ast2600',
>     'arm_aspeed_bletchley',
>     'arm_aspeed_catalina',
> +  'arm_aspeed_gb200nvl_bmc',
>     'arm_aspeed_rainier',
>     'arm_bpim2u',
>     'arm_canona1100',
> diff --git a/tests/functional/test_arm_aspeed_gb200nvl_bmc.py b/tests/functional/test_arm_aspeed_gb200nvl_bmc.py
> new file mode 100644
> index 000000000000..8e8e3f05c1b2
> --- /dev/null
> +++ b/tests/functional/test_arm_aspeed_gb200nvl_bmc.py
> @@ -0,0 +1,26 @@
> +#!/usr/bin/env python3
> +#
> +# Functional test that boots the ASPEED machines
> +#
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +
> +from qemu_test import Asset
> +from aspeed import AspeedTest
> +
> +
> +class GB200Machine(AspeedTest):
> +
> +    ASSET_GB200_FLASH = Asset(
> +        'https://github.com/legoater/qemu-aspeed-boot/raw/refs/heads/master/images/gb200nvl-obmc/obmc-phosphor-image-gb200nvl-obmc-20250702182348.static.mtd.xz',

This test is failing for me:

2025-12-21 11:10:40,608 - qemu-test - INFO - Downloading 
https://github.com/legoater/qemu-aspeed-boot/raw/refs/heads/master/images/gb200nvl-obmc/obmc-phosphor-image-gb200nvl-obmc-20250702182348.static.mtd.xz 
to 
/builds/philmd/qemu/functional-cache/download/b84819317cb3dc762895ad507705978ef000bfc77c50c33a63bdd37921db0dbc...
2025-12-21 11:10:40,798 - qemu-test - ERROR - Unable to download 
https://github.com/legoater/qemu-aspeed-boot/raw/refs/heads/master/images/gb200nvl-obmc/obmc-phosphor-image-gb200nvl-obmc-20250702182348.static.mtd.xz: 
HTTP error 404
urllib.error.HTTPError: HTTP Error 404: Not Found
qemu_test.asset.AssetError: 
https://github.com/legoater/qemu-aspeed-boot/raw/refs/heads/master/images/gb200nvl-obmc/obmc-phosphor-image-gb200nvl-obmc-20250702182348.static.mtd.xz: 
Unable to download: HTTP error 404
make: *** [Makefile:170: run-ninja] Error 1


Re: [PULL 11/11] tests/functional: Add gb200 tests
Posted by Cédric Le Goater 1 month, 2 weeks ago
Hi,

+ Patrick

On 12/21/25 15:56, Philippe Mathieu-Daudé wrote:
> Hi Ed, Cédric,
> 
> On 4/7/25 10:37, Cédric Le Goater wrote:
>> From: Ed Tanous <etanous@nvidia.com>
>>
>> To support the newly added gb200 machine, add appropriate tests and
>> extend do_test_arm_aspeed_openbmc() to support the hostname of this
>> new system: "gb200nvl-obmc".
>>
>> Signed-off-by: Ed Tanous <etanous@nvidia.com>
>> Reviewed-by: Cédric Le Goater <clg@redhat.com>
>> Link: https://lore.kernel.org/qemu-devel/20250703144249.3348879-5-etanous@nvidia.com
>> [ clg: Adjust commit log to document do_test_arm_aspeed_openbmc() change ]
>> Signed-off-by: Cédric Le Goater <clg@redhat.com>
>> ---
>>   tests/functional/aspeed.py                    |  9 +++++--
>>   tests/functional/meson.build                  |  2 ++
>>   .../test_arm_aspeed_gb200nvl_bmc.py           | 26 +++++++++++++++++++
>>   3 files changed, 35 insertions(+), 2 deletions(-)
>>   create mode 100644 tests/functional/test_arm_aspeed_gb200nvl_bmc.py
>>
>> diff --git a/tests/functional/aspeed.py b/tests/functional/aspeed.py
>> index 7a40d5dda736..b131703c5283 100644
>> --- a/tests/functional/aspeed.py
>> +++ b/tests/functional/aspeed.py
>> @@ -8,8 +8,13 @@
>>   class AspeedTest(LinuxKernelTest):
>>       def do_test_arm_aspeed_openbmc(self, machine, image, uboot='2019.04',
>> -                                   cpu_id='0x0', soc='AST2500 rev A1'):
>> -        hostname = machine.removesuffix('-bmc')
>> +                                   cpu_id='0x0', soc='AST2500 rev A1',
>> +                                   image_hostname=None):
>> +        # Allow for the image hostname to not end in "-bmc"
>> +        if image_hostname is not None:
>> +            hostname = image_hostname
>> +        else:
>> +            hostname = machine.removesuffix('-bmc')
>>           self.set_machine(machine)
>>           self.vm.set_console()
>> diff --git a/tests/functional/meson.build b/tests/functional/meson.build
>> index fb87b957aa6c..050c9000b95c 100644
>> --- a/tests/functional/meson.build
>> +++ b/tests/functional/meson.build
>> @@ -33,6 +33,7 @@ test_timeouts = {
>>     'arm_aspeed_ast2600' : 1200,
>>     'arm_aspeed_bletchley' : 480,
>>     'arm_aspeed_catalina' : 480,
>> +  'arm_aspeed_gb200nvl_bmc' : 480,
>>     'arm_aspeed_rainier' : 480,
>>     'arm_bpim2u' : 500,
>>     'arm_collie' : 180,
>> @@ -129,6 +130,7 @@ tests_arm_system_thorough = [
>>     'arm_aspeed_ast2600',
>>     'arm_aspeed_bletchley',
>>     'arm_aspeed_catalina',
>> +  'arm_aspeed_gb200nvl_bmc',
>>     'arm_aspeed_rainier',
>>     'arm_bpim2u',
>>     'arm_canona1100',
>> diff --git a/tests/functional/test_arm_aspeed_gb200nvl_bmc.py b/tests/functional/test_arm_aspeed_gb200nvl_bmc.py
>> new file mode 100644
>> index 000000000000..8e8e3f05c1b2
>> --- /dev/null
>> +++ b/tests/functional/test_arm_aspeed_gb200nvl_bmc.py
>> @@ -0,0 +1,26 @@
>> +#!/usr/bin/env python3
>> +#
>> +# Functional test that boots the ASPEED machines
>> +#
>> +# SPDX-License-Identifier: GPL-2.0-or-later
>> +
>> +from qemu_test import Asset
>> +from aspeed import AspeedTest
>> +
>> +
>> +class GB200Machine(AspeedTest):
>> +
>> +    ASSET_GB200_FLASH = Asset(
>> +        'https://github.com/legoater/qemu-aspeed-boot/raw/refs/heads/master/images/gb200nvl-obmc/obmc-phosphor-image-gb200nvl-obmc-20250702182348.static.mtd.xz',
> 
> This test is failing for me:
> 
> 2025-12-21 11:10:40,608 - qemu-test - INFO - Downloading https://github.com/legoater/qemu-aspeed-boot/raw/refs/heads/master/images/gb200nvl-obmc/obmc-phosphor-image-gb200nvl-obmc-20250702182348.static.mtd.xz to /builds/philmd/qemu/functional-cache/download/b84819317cb3dc762895ad507705978ef000bfc77c50c33a63bdd37921db0dbc...
> 2025-12-21 11:10:40,798 - qemu-test - ERROR - Unable to download https://github.com/legoater/qemu-aspeed-boot/raw/refs/heads/master/images/gb200nvl-obmc/obmc-phosphor-image-gb200nvl-obmc-20250702182348.static.mtd.xz: HTTP error 404
> urllib.error.HTTPError: HTTP Error 404: Not Found
> qemu_test.asset.AssetError: https://github.com/legoater/qemu-aspeed-boot/raw/refs/heads/master/images/gb200nvl-obmc/obmc-phosphor-image-gb200nvl-obmc-20250702182348.static.mtd.xz: Unable to download: HTTP error 404
> make: *** [Makefile:170: run-ninja] Error 1
> 

I believe this due to :

   https://github.com/legoater/qemu-aspeed-boot/commit/52451b2472eeb40aa97e131aeea327e9d4a8a78a

To fix, I can 'revert' the change above or we can fix QEMU.

Thanks,

C.


Re: [PULL 11/11] tests/functional: Add gb200 tests
Posted by Patrick Williams 1 month, 2 weeks ago
I wonder if I broke Catalina also by moving files around. I’ll double check these URIs and send a fix for QEMU. 

— Patrick Williams

> On Dec 21, 2025, at 1:06 PM, Cédric Le Goater <clg@redhat.com> wrote:
> 
> Hi,
> 
> + Patrick
> 
>> On 12/21/25 15:56, Philippe Mathieu-Daudé wrote:
>> Hi Ed, Cédric,
>>> On 4/7/25 10:37, Cédric Le Goater wrote:
>>> From: Ed Tanous <etanous@nvidia.com>
>>> 
>>> To support the newly added gb200 machine, add appropriate tests and
>>> extend do_test_arm_aspeed_openbmc() to support the hostname of this
>>> new system: "gb200nvl-obmc".
>>> 
>>> Signed-off-by: Ed Tanous <etanous@nvidia.com>
>>> Reviewed-by: Cédric Le Goater <clg@redhat.com>
>>> Link: https://lore.kernel.org/qemu-devel/20250703144249.3348879-5-etanous@nvidia.com
>>> [ clg: Adjust commit log to document do_test_arm_aspeed_openbmc() change ]
>>> Signed-off-by: Cédric Le Goater <clg@redhat.com>
>>> ---
>>>   tests/functional/aspeed.py                    |  9 +++++--
>>>   tests/functional/meson.build                  |  2 ++
>>>   .../test_arm_aspeed_gb200nvl_bmc.py           | 26 +++++++++++++++++++
>>>   3 files changed, 35 insertions(+), 2 deletions(-)
>>>   create mode 100644 tests/functional/test_arm_aspeed_gb200nvl_bmc.py
>>> 
>>> diff --git a/tests/functional/aspeed.py b/tests/functional/aspeed.py
>>> index 7a40d5dda736..b131703c5283 100644
>>> --- a/tests/functional/aspeed.py
>>> +++ b/tests/functional/aspeed.py
>>> @@ -8,8 +8,13 @@
>>>   class AspeedTest(LinuxKernelTest):
>>>       def do_test_arm_aspeed_openbmc(self, machine, image, uboot='2019.04',
>>> -                                   cpu_id='0x0', soc='AST2500 rev A1'):
>>> -        hostname = machine.removesuffix('-bmc')
>>> +                                   cpu_id='0x0', soc='AST2500 rev A1',
>>> +                                   image_hostname=None):
>>> +        # Allow for the image hostname to not end in "-bmc"
>>> +        if image_hostname is not None:
>>> +            hostname = image_hostname
>>> +        else:
>>> +            hostname = machine.removesuffix('-bmc')
>>>           self.set_machine(machine)
>>>           self.vm.set_console()
>>> diff --git a/tests/functional/meson.build b/tests/functional/meson.build
>>> index fb87b957aa6c..050c9000b95c 100644
>>> --- a/tests/functional/meson.build
>>> +++ b/tests/functional/meson.build
>>> @@ -33,6 +33,7 @@ test_timeouts = {
>>>     'arm_aspeed_ast2600' : 1200,
>>>     'arm_aspeed_bletchley' : 480,
>>>     'arm_aspeed_catalina' : 480,
>>> +  'arm_aspeed_gb200nvl_bmc' : 480,
>>>     'arm_aspeed_rainier' : 480,
>>>     'arm_bpim2u' : 500,
>>>     'arm_collie' : 180,
>>> @@ -129,6 +130,7 @@ tests_arm_system_thorough = [
>>>     'arm_aspeed_ast2600',
>>>     'arm_aspeed_bletchley',
>>>     'arm_aspeed_catalina',
>>> +  'arm_aspeed_gb200nvl_bmc',
>>>     'arm_aspeed_rainier',
>>>     'arm_bpim2u',
>>>     'arm_canona1100',
>>> diff --git a/tests/functional/test_arm_aspeed_gb200nvl_bmc.py b/tests/functional/test_arm_aspeed_gb200nvl_bmc.py
>>> new file mode 100644
>>> index 000000000000..8e8e3f05c1b2
>>> --- /dev/null
>>> +++ b/tests/functional/test_arm_aspeed_gb200nvl_bmc.py
>>> @@ -0,0 +1,26 @@
>>> +#!/usr/bin/env python3
>>> +#
>>> +# Functional test that boots the ASPEED machines
>>> +#
>>> +# SPDX-License-Identifier: GPL-2.0-or-later
>>> +
>>> +from qemu_test import Asset
>>> +from aspeed import AspeedTest
>>> +
>>> +
>>> +class GB200Machine(AspeedTest):
>>> +
>>> +    ASSET_GB200_FLASH = Asset(
>>> +        'https://github.com/legoater/qemu-aspeed-boot/raw/refs/heads/master/images/gb200nvl-obmc/obmc-phosphor-image-gb200nvl-obmc-20250702182348.static.mtd.xz',
>> This test is failing for me:
>> 2025-12-21 11:10:40,608 - qemu-test - INFO - Downloading https://github.com/legoater/qemu-aspeed-boot/raw/refs/heads/master/images/gb200nvl-obmc/obmc-phosphor-image-gb200nvl-obmc-20250702182348.static.mtd.xz to /builds/philmd/qemu/functional-cache/download/b84819317cb3dc762895ad507705978ef000bfc77c50c33a63bdd37921db0dbc...
>> 2025-12-21 11:10:40,798 - qemu-test - ERROR - Unable to download https://github.com/legoater/qemu-aspeed-boot/raw/refs/heads/master/images/gb200nvl-obmc/obmc-phosphor-image-gb200nvl-obmc-20250702182348.static.mtd.xz: HTTP error 404
>> urllib.error.HTTPError: HTTP Error 404: Not Found
>> qemu_test.asset.AssetError: https://github.com/legoater/qemu-aspeed-boot/raw/refs/heads/master/images/gb200nvl-obmc/obmc-phosphor-image-gb200nvl-obmc-20250702182348.static.mtd.xz: Unable to download: HTTP error 404
>> make: *** [Makefile:170: run-ninja] Error 1
> 
> I believe this due to :
> 
>  https://github.com/legoater/qemu-aspeed-boot/commit/52451b2472eeb40aa97e131aeea327e9d4a8a78a
> 
> To fix, I can 'revert' the change above or we can fix QEMU.
> 
> Thanks,
> 
> C.
>