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 <del...@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 <sv...@stackframe.org> Signed-off-by: Philippe Mathieu-Daudé <f4...@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(+) 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.....') -- 2.21.0