[PATCH] tests/acceptance: Test powernv machines

Cédric Le Goater posted 1 patch 2 years, 9 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20210810083346.730652-1-clg@kaod.org
Maintainers: Cleber Rosa <crosa@redhat.com>, "Philippe Mathieu-Daudé" <philmd@redhat.com>, Wainer dos Santos Moschetta <wainersm@redhat.com>
There is a newer version of this series
tests/acceptance/boot_linux_console.py | 42 ++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
[PATCH] tests/acceptance: Test powernv machines
Posted by Cédric Le Goater 2 years, 9 months ago
Fetch the OpenPOWER images to boot the powernv8 and powernv9 machines
with a simple PCI layout.

Cc: Cleber Rosa <crosa@redhat.com>
Cc: Wainer dos Santos Moschetta <wainersm@redhat.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 tests/acceptance/boot_linux_console.py | 42 ++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py
index 5248c8097df9..da93a475ca87 100644
--- a/tests/acceptance/boot_linux_console.py
+++ b/tests/acceptance/boot_linux_console.py
@@ -1176,6 +1176,48 @@ def test_ppc64_e500(self):
         tar_hash = '6951d86d644b302898da2fd701739c9406527fe1'
         self.do_test_advcal_2018('19', tar_hash, 'uImage')
 
+    def do_test_ppc64_powernv(self, proc):
+
+        images_url = ('https://github.com/open-power/op-build/releases/download/v2.7/')
+
+        skiboot_url = images_url + 'skiboot.lid'
+        skiboot_hash = 'a9ffcddbf238f86cda4b2cae2882d6bd13cff8489109758a4980efaf154f4a29'
+        skiboot_path = self.fetch_asset(skiboot_url, asset_hash=skiboot_hash,
+                                       algorithm='sha256')
+
+        kernel_url = images_url + 'zImage.epapr'
+        kernel_hash = '0ab237df661727e5392cee97460e8674057a883c5f74381a128fa772588d45cd'
+        kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash,
+                                       algorithm='sha256')
+        self.vm.set_console()
+        self.vm.add_args('-bios', skiboot_path,
+                         '-kernel', kernel_path,
+                         '-append', 'console=tty0 console=hvc0',
+                         '-device', 'pcie-pci-bridge,id=bridge1,bus=pcie.1,addr=0x0',
+                         '-device', 'nvme,bus=pcie.2,addr=0x0,serial=1234',
+                         '-device', 'e1000e,bus=bridge1,addr=0x3',
+                         '-device', 'nec-usb-xhci,bus=bridge1,addr=0x2')
+        self.vm.launch()
+
+        self.wait_for_console_pattern("CPU: " + proc + " generation processor")
+        self.wait_for_console_pattern("zImage starting: loaded")
+        self.wait_for_console_pattern("Run /init as init process")
+        self.wait_for_console_pattern("Creating 1 MTD partitions")
+
+    def test_ppc_powernv8(self):
+        """
+        :avocado: tags=arch:ppc64
+        :avocado: tags=machine:powernv8
+        """
+        self.do_test_ppc64_powernv('P8')
+
+    def test_ppc_powernv9(self):
+        """
+        :avocado: tags=arch:ppc64
+        :avocado: tags=machine:powernv9
+        """
+        self.do_test_ppc64_powernv('P9')
+
     def test_ppc_g3beige(self):
         """
         :avocado: tags=arch:ppc
-- 
2.31.1


Re: [PATCH] tests/acceptance: Test powernv machines
Posted by Joel Stanley 2 years, 9 months ago
On Tue, 10 Aug 2021 at 08:34, Cédric Le Goater <clg@kaod.org> wrote:
>
> Fetch the OpenPOWER images to boot the powernv8 and powernv9 machines
> with a simple PCI layout.
>
> Cc: Cleber Rosa <crosa@redhat.com>
> Cc: Wainer dos Santos Moschetta <wainersm@redhat.com>
> Signed-off-by: Cédric Le Goater <clg@kaod.org>
> ---
>  tests/acceptance/boot_linux_console.py | 42 ++++++++++++++++++++++++++
>  1 file changed, 42 insertions(+)
>
> diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py
> index 5248c8097df9..da93a475ca87 100644
> --- a/tests/acceptance/boot_linux_console.py
> +++ b/tests/acceptance/boot_linux_console.py
> @@ -1176,6 +1176,48 @@ def test_ppc64_e500(self):
>          tar_hash = '6951d86d644b302898da2fd701739c9406527fe1'
>          self.do_test_advcal_2018('19', tar_hash, 'uImage')
>
> +    def do_test_ppc64_powernv(self, proc):
> +
> +        images_url = ('https://github.com/open-power/op-build/releases/download/v2.7/')
> +
> +        skiboot_url = images_url + 'skiboot.lid'
> +        skiboot_hash = 'a9ffcddbf238f86cda4b2cae2882d6bd13cff8489109758a4980efaf154f4a29'
> +        skiboot_path = self.fetch_asset(skiboot_url, asset_hash=skiboot_hash,
> +                                       algorithm='sha256')

What's the thought that led you to using this instead of the one that
gets packaged with qemu?

> +
> +        kernel_url = images_url + 'zImage.epapr'
> +        kernel_hash = '0ab237df661727e5392cee97460e8674057a883c5f74381a128fa772588d45cd'
> +        kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash,
> +                                       algorithm='sha256')
> +        self.vm.set_console()
> +        self.vm.add_args('-bios', skiboot_path,
> +                         '-kernel', kernel_path,
> +                         '-append', 'console=tty0 console=hvc0',
> +                         '-device', 'pcie-pci-bridge,id=bridge1,bus=pcie.1,addr=0x0',
> +                         '-device', 'nvme,bus=pcie.2,addr=0x0,serial=1234',
> +                         '-device', 'e1000e,bus=bridge1,addr=0x3',
> +                         '-device', 'nec-usb-xhci,bus=bridge1,addr=0x2')
> +        self.vm.launch()
> +
> +        self.wait_for_console_pattern("CPU: " + proc + " generation processor")
> +        self.wait_for_console_pattern("zImage starting: loaded")
> +        self.wait_for_console_pattern("Run /init as init process")
> +        self.wait_for_console_pattern("Creating 1 MTD partitions")

This is great.

Is there any value in checking for some of the devices that come up,
like USB or ethernet?

Reviewed-by: Joel Stanley <joel@jms.id.au>

> +
> +    def test_ppc_powernv8(self):
> +        """
> +        :avocado: tags=arch:ppc64
> +        :avocado: tags=machine:powernv8
> +        """
> +        self.do_test_ppc64_powernv('P8')
> +
> +    def test_ppc_powernv9(self):
> +        """
> +        :avocado: tags=arch:ppc64
> +        :avocado: tags=machine:powernv9
> +        """
> +        self.do_test_ppc64_powernv('P9')
> +
>      def test_ppc_g3beige(self):
>          """
>          :avocado: tags=arch:ppc
> --
> 2.31.1
>

Re: [PATCH] tests/acceptance: Test powernv machines
Posted by Cédric Le Goater 2 years, 9 months ago
On 8/10/21 10:36 AM, Joel Stanley wrote:
> On Tue, 10 Aug 2021 at 08:34, Cédric Le Goater <clg@kaod.org> wrote:
>>
>> Fetch the OpenPOWER images to boot the powernv8 and powernv9 machines
>> with a simple PCI layout.
>>
>> Cc: Cleber Rosa <crosa@redhat.com>
>> Cc: Wainer dos Santos Moschetta <wainersm@redhat.com>
>> Signed-off-by: Cédric Le Goater <clg@kaod.org>
>> ---
>>  tests/acceptance/boot_linux_console.py | 42 ++++++++++++++++++++++++++
>>  1 file changed, 42 insertions(+)
>>
>> diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py
>> index 5248c8097df9..da93a475ca87 100644
>> --- a/tests/acceptance/boot_linux_console.py
>> +++ b/tests/acceptance/boot_linux_console.py
>> @@ -1176,6 +1176,48 @@ def test_ppc64_e500(self):
>>          tar_hash = '6951d86d644b302898da2fd701739c9406527fe1'
>>          self.do_test_advcal_2018('19', tar_hash, 'uImage')
>>
>> +    def do_test_ppc64_powernv(self, proc):
>> +
>> +        images_url = ('https://github.com/open-power/op-build/releases/download/v2.7/')
>> +
>> +        skiboot_url = images_url + 'skiboot.lid'
>> +        skiboot_hash = 'a9ffcddbf238f86cda4b2cae2882d6bd13cff8489109758a4980efaf154f4a29'
>> +        skiboot_path = self.fetch_asset(skiboot_url, asset_hash=skiboot_hash,
>> +                                       algorithm='sha256')
> 
> What's the thought that led you to using this instead of the one that
> gets packaged with qemu?

Good question.

I considered that the skiboot.lid shipped with QEMU was somewhat a default
to make things work. The official released versions are the ones used by 
the outside world on real systems and were a better target for tests.

That said, using the default version might be enough. Maintainers, please 
advise ! 

>> +
>> +        kernel_url = images_url + 'zImage.epapr'
>> +        kernel_hash = '0ab237df661727e5392cee97460e8674057a883c5f74381a128fa772588d45cd'
>> +        kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash,
>> +                                       algorithm='sha256')
>> +        self.vm.set_console()
>> +        self.vm.add_args('-bios', skiboot_path,
>> +                         '-kernel', kernel_path,
>> +                         '-append', 'console=tty0 console=hvc0',
>> +                         '-device', 'pcie-pci-bridge,id=bridge1,bus=pcie.1,addr=0x0',
>> +                         '-device', 'nvme,bus=pcie.2,addr=0x0,serial=1234',
>> +                         '-device', 'e1000e,bus=bridge1,addr=0x3',
>> +                         '-device', 'nec-usb-xhci,bus=bridge1,addr=0x2')
>> +        self.vm.launch()
>> +
>> +        self.wait_for_console_pattern("CPU: " + proc + " generation processor")
>> +        self.wait_for_console_pattern("zImage starting: loaded")
>> +        self.wait_for_console_pattern("Run /init as init process")
>> +        self.wait_for_console_pattern("Creating 1 MTD partitions")
> 
> This is great.
> 
> Is there any value in checking for some of the devices that come up,
> like USB or ethernet?

or nvme. Yes. That's a good idea.
 
> Reviewed-by: Joel Stanley <joel@jms.id.au>

Thanks,

C. 

> 
>> +
>> +    def test_ppc_powernv8(self):
>> +        """
>> +        :avocado: tags=arch:ppc64
>> +        :avocado: tags=machine:powernv8
>> +        """
>> +        self.do_test_ppc64_powernv('P8')
>> +
>> +    def test_ppc_powernv9(self):
>> +        """
>> +        :avocado: tags=arch:ppc64
>> +        :avocado: tags=machine:powernv9
>> +        """
>> +        self.do_test_ppc64_powernv('P9')
>> +
>>      def test_ppc_g3beige(self):
>>          """
>>          :avocado: tags=arch:ppc
>> --
>> 2.31.1
>>


Re: [PATCH] tests/acceptance: Test powernv machines
Posted by Thomas Huth 2 years, 8 months ago
On 10/08/2021 11.09, Cédric Le Goater wrote:
> On 8/10/21 10:36 AM, Joel Stanley wrote:
>> On Tue, 10 Aug 2021 at 08:34, Cédric Le Goater <clg@kaod.org> wrote:
>>>
>>> Fetch the OpenPOWER images to boot the powernv8 and powernv9 machines
>>> with a simple PCI layout.
>>>
>>> Cc: Cleber Rosa <crosa@redhat.com>
>>> Cc: Wainer dos Santos Moschetta <wainersm@redhat.com>
>>> Signed-off-by: Cédric Le Goater <clg@kaod.org>
>>> ---
>>>   tests/acceptance/boot_linux_console.py | 42 ++++++++++++++++++++++++++
>>>   1 file changed, 42 insertions(+)
>>>
>>> diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py
>>> index 5248c8097df9..da93a475ca87 100644
>>> --- a/tests/acceptance/boot_linux_console.py
>>> +++ b/tests/acceptance/boot_linux_console.py
>>> @@ -1176,6 +1176,48 @@ def test_ppc64_e500(self):
>>>           tar_hash = '6951d86d644b302898da2fd701739c9406527fe1'
>>>           self.do_test_advcal_2018('19', tar_hash, 'uImage')
>>>
>>> +    def do_test_ppc64_powernv(self, proc):
>>> +
>>> +        images_url = ('https://github.com/open-power/op-build/releases/download/v2.7/')
>>> +
>>> +        skiboot_url = images_url + 'skiboot.lid'
>>> +        skiboot_hash = 'a9ffcddbf238f86cda4b2cae2882d6bd13cff8489109758a4980efaf154f4a29'
>>> +        skiboot_path = self.fetch_asset(skiboot_url, asset_hash=skiboot_hash,
>>> +                                       algorithm='sha256')
>>
>> What's the thought that led you to using this instead of the one that
>> gets packaged with qemu?
> 
> Good question.
> 
> I considered that the skiboot.lid shipped with QEMU was somewhat a default
> to make things work. The official released versions are the ones used by
> the outside world on real systems and were a better target for tests.
> 
> That said, using the default version might be enough. Maintainers, please
> advise !

IMHO:

- We want to test the things that *we* ship

- We want to download as few things as possible, since downloads
   often slow down the tests and break CI runs if the network to
   the download site is not available

  ==> I'd prefer to use the internal skiboot.lid unless there is
      really a compelling reason to use the external one.

Just my 0.02 € though.

  Thomas


Re: [PATCH] tests/acceptance: Test powernv machines
Posted by Cédric Le Goater 2 years, 8 months ago
On 8/11/21 11:07 AM, Thomas Huth wrote:
> On 10/08/2021 11.09, Cédric Le Goater wrote:
>> On 8/10/21 10:36 AM, Joel Stanley wrote:
>>> On Tue, 10 Aug 2021 at 08:34, Cédric Le Goater <clg@kaod.org> wrote:
>>>>
>>>> Fetch the OpenPOWER images to boot the powernv8 and powernv9 machines
>>>> with a simple PCI layout.
>>>>
>>>> Cc: Cleber Rosa <crosa@redhat.com>
>>>> Cc: Wainer dos Santos Moschetta <wainersm@redhat.com>
>>>> Signed-off-by: Cédric Le Goater <clg@kaod.org>
>>>> ---
>>>>   tests/acceptance/boot_linux_console.py | 42 ++++++++++++++++++++++++++
>>>>   1 file changed, 42 insertions(+)
>>>>
>>>> diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py
>>>> index 5248c8097df9..da93a475ca87 100644
>>>> --- a/tests/acceptance/boot_linux_console.py
>>>> +++ b/tests/acceptance/boot_linux_console.py
>>>> @@ -1176,6 +1176,48 @@ def test_ppc64_e500(self):
>>>>           tar_hash = '6951d86d644b302898da2fd701739c9406527fe1'
>>>>           self.do_test_advcal_2018('19', tar_hash, 'uImage')
>>>>
>>>> +    def do_test_ppc64_powernv(self, proc):
>>>> +
>>>> +        images_url = ('https://github.com/open-power/op-build/releases/download/v2.7/')
>>>> +
>>>> +        skiboot_url = images_url + 'skiboot.lid'
>>>> +        skiboot_hash = 'a9ffcddbf238f86cda4b2cae2882d6bd13cff8489109758a4980efaf154f4a29'
>>>> +        skiboot_path = self.fetch_asset(skiboot_url, asset_hash=skiboot_hash,
>>>> +                                       algorithm='sha256')
>>>
>>> What's the thought that led you to using this instead of the one that
>>> gets packaged with qemu?
>>
>> Good question.
>>
>> I considered that the skiboot.lid shipped with QEMU was somewhat a default
>> to make things work. The official released versions are the ones used by
>> the outside world on real systems and were a better target for tests.
>>
>> That said, using the default version might be enough. Maintainers, please
>> advise !
> 
> IMHO:
> 
> - We want to test the things that *we* ship
> 
> - We want to download as few things as possible, since downloads
>   often slow down the tests and break CI runs if the network to
>   the download site is not available
> 
>  ==> I'd prefer to use the internal skiboot.lid unless there is
>      really a compelling reason to use the external one.

OK. I changed the test to use the internal skiboot.lid.

Thanks,

C.





Re: [PATCH] tests/acceptance: Test powernv machines
Posted by Wainer dos Santos Moschetta 2 years, 8 months ago
Hi Cédric,

On 8/11/21 11:54 AM, Cédric Le Goater wrote:
> On 8/11/21 11:07 AM, Thomas Huth wrote:
>> On 10/08/2021 11.09, Cédric Le Goater wrote:
>>> On 8/10/21 10:36 AM, Joel Stanley wrote:
>>>> On Tue, 10 Aug 2021 at 08:34, Cédric Le Goater <clg@kaod.org> wrote:
>>>>> Fetch the OpenPOWER images to boot the powernv8 and powernv9 machines
>>>>> with a simple PCI layout.
>>>>>
>>>>> Cc: Cleber Rosa <crosa@redhat.com>
>>>>> Cc: Wainer dos Santos Moschetta <wainersm@redhat.com>
>>>>> Signed-off-by: Cédric Le Goater <clg@kaod.org>
>>>>> ---
>>>>>    tests/acceptance/boot_linux_console.py | 42 ++++++++++++++++++++++++++
>>>>>    1 file changed, 42 insertions(+)
>>>>>
>>>>> diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py
>>>>> index 5248c8097df9..da93a475ca87 100644
>>>>> --- a/tests/acceptance/boot_linux_console.py
>>>>> +++ b/tests/acceptance/boot_linux_console.py
>>>>> @@ -1176,6 +1176,48 @@ def test_ppc64_e500(self):
>>>>>            tar_hash = '6951d86d644b302898da2fd701739c9406527fe1'
>>>>>            self.do_test_advcal_2018('19', tar_hash, 'uImage')
>>>>>
>>>>> +    def do_test_ppc64_powernv(self, proc):
>>>>> +
>>>>> +        images_url = ('https://github.com/open-power/op-build/releases/download/v2.7/')
>>>>> +
>>>>> +        skiboot_url = images_url + 'skiboot.lid'
>>>>> +        skiboot_hash = 'a9ffcddbf238f86cda4b2cae2882d6bd13cff8489109758a4980efaf154f4a29'
>>>>> +        skiboot_path = self.fetch_asset(skiboot_url, asset_hash=skiboot_hash,
>>>>> +                                       algorithm='sha256')
>>>> What's the thought that led you to using this instead of the one that
>>>> gets packaged with qemu?
>>> Good question.
>>>
>>> I considered that the skiboot.lid shipped with QEMU was somewhat a default
>>> to make things work. The official released versions are the ones used by
>>> the outside world on real systems and were a better target for tests.
>>>
>>> That said, using the default version might be enough. Maintainers, please
>>> advise !
>> IMHO:
>>
>> - We want to test the things that *we* ship
>>
>> - We want to download as few things as possible, since downloads
>>    often slow down the tests and break CI runs if the network to
>>    the download site is not available
>>
>>   ==> I'd prefer to use the internal skiboot.lid unless there is
>>       really a compelling reason to use the external one.
> OK. I changed the test to use the internal skiboot.lid.

The code of patch v1 looks good to me but I will wait the v2 to put my 
reviewed-by stamp.

Thanks!

- Wainer

>
> Thanks,
>
> C.
>
>
>
>
>