diff mbox series

[2/2] tests/boot_console: Test booting HP-UX firmware upgrade

Message ID 20191010122128.29000-3-f4bug@amsat.org
State New
Headers show
Series tests/acceptance: Add tests for the PA-RISC machine | expand

Commit Message

Philippe Mathieu-Daudé Oct. 10, 2019, 12:21 p.m. UTC
Add a test which boots a HP-UX firmware upgrade CD-ROM.
It exercise the PCI LSI53C895A SCSI controller.

The ISO image comes from:
https://web.archive.org/web/20101204061612/http://ftp.parisc-linux.org/kernels/712/PF_C7120023

This test is very quick, less than 3s:

  $ avocado --show=app,console run -t arch:hppa tests/acceptance/boot_linux_console.py
  console: Firmware Version 6.1
  console: Duplex Console IO Dependent Code (IODC) revision 1
  console: Memory Test/Initialization Completed
  console: ------------------------------------------------------------------------------
  console: (c) Copyright 2017-2018 Helge Deller <deller@gmx.de> and SeaBIOS developers.
  console: ------------------------------------------------------------------------------
  console: Processor   Speed            State           Coprocessor State  Cache Size
  console: ---------  --------   ---------------------  -----------------  ----------
  console: 0      250 MHz    Active                 Functional            0 KB
  console: Available memory:     512 MB
  console: Good memory required: 16 MB
  console: Primary boot path:    FWSCSI.0.0
  console: Alternate boot path:  FWSCSI.2.0
  console: Console path:         SERIAL_1.9600.8.none
  console: Keyboard path:        PS2
  console: Available boot devices:
  console: 1. DVD/CD [lsi 00:00.0 2:0 Drive QEMU QEMU CD-ROM 2.5+]
  console: Booting from DVD/CD [lsi 00:00.0 2:0 Drive QEMU QEMU CD-ROM 2.5+]
  console: Booting...
  console: Boot IO Dependent Code (IODC) revision 153
  console: HARD Booted.
  console: ISL Revision A.00.25 November 18, 1992
  console: ISL booting  ODE UPDATE ; stable off ; RUN
  console: Loading...
  console: ***************************************************************************
  console: ******                                                               ******
  console: ******             Offline Diagnostic Environment                    ******
  console: ******                                                               ******
  console: ******      (C) Copyright Hewlett-Packard Co 1993                    ******
  console: ******                    All Rights Reserved                        ******
  console: ******                                                               ******
  console: ******  HP shall not be liable for any damages resulting from the    ******
  console: ******  use of this program.                                         ******
  console: ******                                                               ******
  console: ******                TC  Version A.00.15                            ******
  console: ******                SysLib Version A.00.44                         ******
  console: ******                                                               ******
  console: ***************************************************************************
  console: Type HELP for command information.
  console: ISL_CMD> UPDATE ; stable off ; RUN
  console: ***************************************************************************
  console: ******                                                               ******
  console: ******                           PDC UPDATER                         ******
  console: ******                                                               ******
  console: ******    Copyright (C) 1993, 1994, 1995 by Hewlett-Packard Company  ******
  console: ******                         Version A.00.19                       ******
  console: ******                                                               ******
  console: ***************************************************************************
  console: Type HELP for command information.
  console: Stable Storage will NOT be updated
  console: STARTING EXECUTION OF UPDATE
  console: Unrecognized MODEL TYPE = 502
  console: ERROR 0001
  console: UPDATE PAUSED> exit
  console: UPDATE>
  console: UPDATE> ls
  console: Modules on this boot media are:
  console: filename    type    size     created   description
  console: -----------------------------------------------------------------------------
  console: DAGGER      DATA    118      96/02/15  ?
  console: IMAGE1A     DATA    512      96/02/15  ?
  console: IMAGE1B     DATA    388      96/02/15  ?
  console: UPDATE> exit
  console: THIS UTILITY WILL NOW RESET THE SYSTEM.....
  PASS (2.39 s)
  JOB TIME   : 2.54 s

Suggested-by: Sven Schnelle <svens@stackframe.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
I know this is not a 'Linux' test, but all our console functions
reside in this file and I don't want to duplicate again.
Maybe we could rename this file as 'boot_console_tests.py' or
extract the console related functions.
---
 tests/acceptance/boot_linux_console.py | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

Comments

Wainer dos Santos Moschetta Jan. 29, 2020, 6:28 p.m. UTC | #1
On 10/10/19 9:21 AM, Philippe Mathieu-Daudé wrote:
> Add a test which boots a HP-UX firmware upgrade CD-ROM.
> It exercise the PCI LSI53C895A SCSI controller.
>
> The ISO image comes from:
> https://web.archive.org/web/20101204061612/http://ftp.parisc-linux.org/kernels/712/PF_C7120023
>
> This test is very quick, less than 3s:
>
>    $ avocado --show=app,console run -t arch:hppa tests/acceptance/boot_linux_console.py
>    console: Firmware Version 6.1
>    console: Duplex Console IO Dependent Code (IODC) revision 1
>    console: Memory Test/Initialization Completed
>    console: ------------------------------------------------------------------------------
>    console: (c) Copyright 2017-2018 Helge Deller <deller@gmx.de> and SeaBIOS developers.
>    console: ------------------------------------------------------------------------------
>    console: Processor   Speed            State           Coprocessor State  Cache Size
>    console: ---------  --------   ---------------------  -----------------  ----------
>    console: 0      250 MHz    Active                 Functional            0 KB
>    console: Available memory:     512 MB
>    console: Good memory required: 16 MB
>    console: Primary boot path:    FWSCSI.0.0
>    console: Alternate boot path:  FWSCSI.2.0
>    console: Console path:         SERIAL_1.9600.8.none
>    console: Keyboard path:        PS2
>    console: Available boot devices:
>    console: 1. DVD/CD [lsi 00:00.0 2:0 Drive QEMU QEMU CD-ROM 2.5+]
>    console: Booting from DVD/CD [lsi 00:00.0 2:0 Drive QEMU QEMU CD-ROM 2.5+]
>    console: Booting...
>    console: Boot IO Dependent Code (IODC) revision 153
>    console: HARD Booted.
>    console: ISL Revision A.00.25 November 18, 1992
>    console: ISL booting  ODE UPDATE ; stable off ; RUN
>    console: Loading...
>    console: ***************************************************************************
>    console: ******                                                               ******
>    console: ******             Offline Diagnostic Environment                    ******
>    console: ******                                                               ******
>    console: ******      (C) Copyright Hewlett-Packard Co 1993                    ******
>    console: ******                    All Rights Reserved                        ******
>    console: ******                                                               ******
>    console: ******  HP shall not be liable for any damages resulting from the    ******
>    console: ******  use of this program.                                         ******
>    console: ******                                                               ******
>    console: ******                TC  Version A.00.15                            ******
>    console: ******                SysLib Version A.00.44                         ******
>    console: ******                                                               ******
>    console: ***************************************************************************
>    console: Type HELP for command information.
>    console: ISL_CMD> UPDATE ; stable off ; RUN
>    console: ***************************************************************************
>    console: ******                                                               ******
>    console: ******                           PDC UPDATER                         ******
>    console: ******                                                               ******
>    console: ******    Copyright (C) 1993, 1994, 1995 by Hewlett-Packard Company  ******
>    console: ******                         Version A.00.19                       ******
>    console: ******                                                               ******
>    console: ***************************************************************************
>    console: Type HELP for command information.
>    console: Stable Storage will NOT be updated
>    console: STARTING EXECUTION OF UPDATE
>    console: Unrecognized MODEL TYPE = 502
>    console: ERROR 0001
>    console: UPDATE PAUSED> exit
>    console: UPDATE>
>    console: UPDATE> ls
>    console: Modules on this boot media are:
>    console: filename    type    size     created   description
>    console: -----------------------------------------------------------------------------
>    console: DAGGER      DATA    118      96/02/15  ?
>    console: IMAGE1A     DATA    512      96/02/15  ?
>    console: IMAGE1B     DATA    388      96/02/15  ?
>    console: UPDATE> exit
>    console: THIS UTILITY WILL NOW RESET THE SYSTEM.....
>    PASS (2.39 s)
>    JOB TIME   : 2.54 s
>
> Suggested-by: Sven Schnelle <svens@stackframe.org>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> I know this is not a 'Linux' test, but all our console functions
> reside in this file and I don't want to duplicate again.
> Maybe we could rename this file as 'boot_console_tests.py' or
> extract the console related functions.

Yeah, there is some discussion about the fact that boot_linux_console 
contain more than just Linux boot tests. Also the 'boot something' 
acceptance tests list is growing fast, thus IMO soon we gonna need to 
re-organize the code. So I'm ok to merge this in boot_linux_console, 
then later refactor it all.

I could not test it because the changes no longer applies. The code 
looks good though, so:

Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com>

- Wainer

> ---
>   tests/acceptance/boot_linux_console.py | 25 +++++++++++++++++++++++++
>   1 file changed, 25 insertions(+)
>
> diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py
> index f05452824e..8bfcd0625a 100644
> --- a/tests/acceptance/boot_linux_console.py
> +++ b/tests/acceptance/boot_linux_console.py
> @@ -378,3 +378,28 @@ class BootLinuxConsole(Test):
>           self.vm.launch()
>           console_pattern = 'Kernel command line: %s' % kernel_command_line
>           self.wait_for_console_pattern(console_pattern)
> +
> +    def test_hppa_fwupdate(self):
> +        """
> +        :avocado: tags=arch:hppa
> +        :avocado: tags=device:lsi53c895a
> +        """
> +        cdrom_url = ('https://github.com/philmd/qemu-testing-blob/raw/ec1b741/'
> +                     'hppa/hp9000/712/C7120023.frm')
> +        cdrom_hash = '17944dee46f768791953009bcda551be5ab9fac9'
> +        cdrom_path = self.fetch_asset(cdrom_url, asset_hash=cdrom_hash)
> +
> +        self.vm.set_console()
> +        self.vm.add_args('-cdrom', cdrom_path,
> +                         '-boot', 'd',
> +                         '-no-reboot')
> +        self.vm.launch()
> +        self.wait_for_console_pattern('Unrecognized MODEL TYPE = 502')
> +
> +        self.exec_command_and_wait_for_pattern('exit',
> +                                               'UPDATE>')
> +        self.exec_command_and_wait_for_pattern('ls',
> +                                               'IMAGE1B')
> +        self.exec_command_and_wait_for_pattern('exit',
> +                                               'THIS UTILITY WILL NOW '
> +                                               'RESET THE SYSTEM.....')
diff mbox series

Patch

diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py
index f05452824e..8bfcd0625a 100644
--- a/tests/acceptance/boot_linux_console.py
+++ b/tests/acceptance/boot_linux_console.py
@@ -378,3 +378,28 @@  class BootLinuxConsole(Test):
         self.vm.launch()
         console_pattern = 'Kernel command line: %s' % kernel_command_line
         self.wait_for_console_pattern(console_pattern)
+
+    def test_hppa_fwupdate(self):
+        """
+        :avocado: tags=arch:hppa
+        :avocado: tags=device:lsi53c895a
+        """
+        cdrom_url = ('https://github.com/philmd/qemu-testing-blob/raw/ec1b741/'
+                     'hppa/hp9000/712/C7120023.frm')
+        cdrom_hash = '17944dee46f768791953009bcda551be5ab9fac9'
+        cdrom_path = self.fetch_asset(cdrom_url, asset_hash=cdrom_hash)
+
+        self.vm.set_console()
+        self.vm.add_args('-cdrom', cdrom_path,
+                         '-boot', 'd',
+                         '-no-reboot')
+        self.vm.launch()
+        self.wait_for_console_pattern('Unrecognized MODEL TYPE = 502')
+
+        self.exec_command_and_wait_for_pattern('exit',
+                                               'UPDATE>')
+        self.exec_command_and_wait_for_pattern('ls',
+                                               'IMAGE1B')
+        self.exec_command_and_wait_for_pattern('exit',
+                                               'THIS UTILITY WILL NOW '
+                                               'RESET THE SYSTEM.....')