diff mbox series

[16/26] tests/acceptance: Test Sandalfoot initrd on the PReP/40p

Message ID 20191028073441.6448-17-philmd@redhat.com
State New
Headers show
Series tests/acceptance: Queue for 4.2 | expand

Commit Message

Philippe Mathieu-Daudé Oct. 28, 2019, 7:34 a.m. UTC
From: Philippe Mathieu-Daudé <f4bug@amsat.org>

User case from:
https://mail.coreboot.org/pipermail/openbios/2018-May/010360.html

Sandalfoot info:
http://www.juneau-lug.org/sandalfoot.php

Acked-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
v3:
- use avocado_qemu.wait_for_console_pattern (Cleber)
- use exec_command_and_wait_for_pattern
- check getenv(AVOCADO_ALLOW_UNTRUSTED_CODE) (pm215)
---
 tests/acceptance/ppc_prep_40p.py | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

Comments

Cleber Rosa Oct. 28, 2019, 7:08 p.m. UTC | #1
On Mon, Oct 28, 2019 at 08:34:31AM +0100, Philippe Mathieu-Daudé wrote:
> From: Philippe Mathieu-Daudé <f4bug@amsat.org>
> 
> User case from:
> https://mail.coreboot.org/pipermail/openbios/2018-May/010360.html
> 
> Sandalfoot info:
> http://www.juneau-lug.org/sandalfoot.php
> 
> Acked-by: David Gibson <david@gibson.dropbear.id.au>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> v3:
> - use avocado_qemu.wait_for_console_pattern (Cleber)
> - use exec_command_and_wait_for_pattern
> - check getenv(AVOCADO_ALLOW_UNTRUSTED_CODE) (pm215)
> ---
>  tests/acceptance/ppc_prep_40p.py | 31 +++++++++++++++++++++++++++++++
>  1 file changed, 31 insertions(+)
> 
> diff --git a/tests/acceptance/ppc_prep_40p.py b/tests/acceptance/ppc_prep_40p.py
> index b4109a7af3..c5ecabf52f 100644
> --- a/tests/acceptance/ppc_prep_40p.py
> +++ b/tests/acceptance/ppc_prep_40p.py
> @@ -11,6 +11,7 @@ import logging
>  from avocado import skipIf
>  from avocado import skipUnless
>  from avocado_qemu import MachineTest
> +from avocado_qemu import exec_command_and_wait_for_pattern
>  from avocado_qemu import wait_for_console_pattern
>  
>  
> @@ -101,3 +102,33 @@ class IbmPrep40pMachine(MachineTest):
>  
>          self.vm.launch()
>          wait_for_console_pattern(self, 'NetBSD/prep BOOT, Revision 1.9')
> +
> +    @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code')
> +    def test_sandalfoot_busybox(self):
> +        """
> +        :avocado: tags=arch:ppc
> +        :avocado: tags=machine:40p
> +        """
> +        drive_url = ('http://www.juneau-lug.org/zImage.initrd.sandalfoot')
> +        drive_hash = 'dacacfc4085ea51d34d99ef70e972b849e2c6949'
> +        drive_path = self.fetch_asset(drive_url, asset_hash=drive_hash)
> +
> +        self.vm.set_machine('40p')
> +        self.vm.set_console()
> +        self.vm.add_args('-cdrom', drive_path,
> +                         '-boot', 'd')
> +
> +        self.vm.launch()
> +        wait_for_console_pattern(self, 'Now booting the kernel')

I could never get past this point.  Any ideas?

- Cleber.

> +
> +        msg = 'Please press Enter to activate this console.'
> +        wait_for_console_pattern(self, msg)
> +
> +        version = 'BusyBox v0.60.0 (2001.08.19-09:26+0000) Built-in shell (ash)'
> +        exec_command_and_wait_for_pattern(self, '', version)
> +
> +        uname = 'Linux ppc 2.4.18 #5 Wed May 21 23:50:43 AKDT 2003 ppc unknown'
> +        exec_command_and_wait_for_pattern(self, 'uname -a', uname)
> +
> +        cpu = 'PReP IBM 6015/7020 (Sandalfoot/Sandalbow)'
> +        exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo', cpu)
> -- 
> 2.21.0
>
Cédric Le Goater Dec. 3, 2021, 10:09 a.m. UTC | #2
On 10/28/19 20:08, Cleber Rosa wrote:
> On Mon, Oct 28, 2019 at 08:34:31AM +0100, Philippe Mathieu-Daudé wrote:
>> From: Philippe Mathieu-Daudé <f4bug@amsat.org>
>>
>> User case from:
>> https://mail.coreboot.org/pipermail/openbios/2018-May/010360.html
>>
>> Sandalfoot info:
>> http://www.juneau-lug.org/sandalfoot.php
>>
>> Acked-by: David Gibson <david@gibson.dropbear.id.au>
>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>> ---
>> v3:
>> - use avocado_qemu.wait_for_console_pattern (Cleber)
>> - use exec_command_and_wait_for_pattern
>> - check getenv(AVOCADO_ALLOW_UNTRUSTED_CODE) (pm215)
>> ---
>>   tests/acceptance/ppc_prep_40p.py | 31 +++++++++++++++++++++++++++++++
>>   1 file changed, 31 insertions(+)
>>
>> diff --git a/tests/acceptance/ppc_prep_40p.py b/tests/acceptance/ppc_prep_40p.py
>> index b4109a7af3..c5ecabf52f 100644
>> --- a/tests/acceptance/ppc_prep_40p.py
>> +++ b/tests/acceptance/ppc_prep_40p.py
>> @@ -11,6 +11,7 @@ import logging
>>   from avocado import skipIf
>>   from avocado import skipUnless
>>   from avocado_qemu import MachineTest
>> +from avocado_qemu import exec_command_and_wait_for_pattern
>>   from avocado_qemu import wait_for_console_pattern
>>   
>>   
>> @@ -101,3 +102,33 @@ class IbmPrep40pMachine(MachineTest):
>>   
>>           self.vm.launch()
>>           wait_for_console_pattern(self, 'NetBSD/prep BOOT, Revision 1.9')
>> +
>> +    @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code')
>> +    def test_sandalfoot_busybox(self):
>> +        """
>> +        :avocado: tags=arch:ppc
>> +        :avocado: tags=machine:40p
>> +        """
>> +        drive_url = ('http://www.juneau-lug.org/zImage.initrd.sandalfoot')
>> +        drive_hash = 'dacacfc4085ea51d34d99ef70e972b849e2c6949'
>> +        drive_path = self.fetch_asset(drive_url, asset_hash=drive_hash)
>> +
>> +        self.vm.set_machine('40p')
>> +        self.vm.set_console()
>> +        self.vm.add_args('-cdrom', drive_path,
>> +                         '-boot', 'd')
>> +
>> +        self.vm.launch()
>> +        wait_for_console_pattern(self, 'Now booting the kernel')
> 
> I could never get past this point.  Any ideas?

I think this is because the message below :

>> +
>> +        msg = 'Please press Enter to activate this console.'

waits for a Line Feed and the console interaction does a readline.

It would be interesting to include this acceptance/avocado test for
the 40p machine because QEMU still supports the 604 CPUs quite well.

Thanks,

C.


>> +        wait_for_console_pattern(self, msg)
>> +
>> +        version = 'BusyBox v0.60.0 (2001.08.19-09:26+0000) Built-in shell (ash)'
>> +        exec_command_and_wait_for_pattern(self, '', version)
>> +
>> +        uname = 'Linux ppc 2.4.18 #5 Wed May 21 23:50:43 AKDT 2003 ppc unknown'
>> +        exec_command_and_wait_for_pattern(self, 'uname -a', uname)
>> +
>> +        cpu = 'PReP IBM 6015/7020 (Sandalfoot/Sandalbow)'
>> +        exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo', cpu)
>> -- 
>> 2.21.0
>>
> 
> 
>
diff mbox series

Patch

diff --git a/tests/acceptance/ppc_prep_40p.py b/tests/acceptance/ppc_prep_40p.py
index b4109a7af3..c5ecabf52f 100644
--- a/tests/acceptance/ppc_prep_40p.py
+++ b/tests/acceptance/ppc_prep_40p.py
@@ -11,6 +11,7 @@  import logging
 from avocado import skipIf
 from avocado import skipUnless
 from avocado_qemu import MachineTest
+from avocado_qemu import exec_command_and_wait_for_pattern
 from avocado_qemu import wait_for_console_pattern
 
 
@@ -101,3 +102,33 @@  class IbmPrep40pMachine(MachineTest):
 
         self.vm.launch()
         wait_for_console_pattern(self, 'NetBSD/prep BOOT, Revision 1.9')
+
+    @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code')
+    def test_sandalfoot_busybox(self):
+        """
+        :avocado: tags=arch:ppc
+        :avocado: tags=machine:40p
+        """
+        drive_url = ('http://www.juneau-lug.org/zImage.initrd.sandalfoot')
+        drive_hash = 'dacacfc4085ea51d34d99ef70e972b849e2c6949'
+        drive_path = self.fetch_asset(drive_url, asset_hash=drive_hash)
+
+        self.vm.set_machine('40p')
+        self.vm.set_console()
+        self.vm.add_args('-cdrom', drive_path,
+                         '-boot', 'd')
+
+        self.vm.launch()
+        wait_for_console_pattern(self, 'Now booting the kernel')
+
+        msg = 'Please press Enter to activate this console.'
+        wait_for_console_pattern(self, msg)
+
+        version = 'BusyBox v0.60.0 (2001.08.19-09:26+0000) Built-in shell (ash)'
+        exec_command_and_wait_for_pattern(self, '', version)
+
+        uname = 'Linux ppc 2.4.18 #5 Wed May 21 23:50:43 AKDT 2003 ppc unknown'
+        exec_command_and_wait_for_pattern(self, 'uname -a', uname)
+
+        cpu = 'PReP IBM 6015/7020 (Sandalfoot/Sandalbow)'
+        exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo', cpu)