qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 18/26] tests/boot_console: Test booting HP-UX firmware upgrade


From: Philippe Mathieu-Daudé
Subject: [PATCH 18/26] tests/boot_console: Test booting HP-UX firmware upgrade
Date: Mon, 28 Oct 2019 08:34:33 +0100

From: Philippe Mathieu-Daudé <address@hidden>

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_ALLOW_UNTRUSTED_CODE=yes \
    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 <address@hidden> 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 <address@hidden>
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
---
v2:
- check getenv(AVOCADO_ALLOW_UNTRUSTED_CODE) (pm215)

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 | 27 ++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/tests/acceptance/boot_linux_console.py 
b/tests/acceptance/boot_linux_console.py
index f94dc4bbca..67b396169b 100644
--- a/tests/acceptance/boot_linux_console.py
+++ b/tests/acceptance/boot_linux_console.py
@@ -13,6 +13,7 @@ import lzma
 import gzip
 import shutil
 
+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
@@ -357,3 +358,29 @@ class BootLinuxConsole(MachineTest):
         self.vm.launch()
         console_pattern = 'Kernel command line: %s' % kernel_command_line
         self.wait_for_console_pattern(console_pattern)
+
+    @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code')
+    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')
+
+        exec_command_and_wait_for_pattern(self, 'exit',
+                                                'UPDATE>')
+        exec_command_and_wait_for_pattern(self, 'ls',
+                                                'IMAGE1B')
+        exec_command_and_wait_for_pattern(self, 'exit',
+                                                'THIS UTILITY WILL NOW '
+                                                'RESET THE SYSTEM.....')
-- 
2.21.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]