All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] tests/acceptance: Test NetBSD 5.1 on the Jazz Magnum machine
@ 2021-07-05  0:26 Philippe Mathieu-Daudé
  2021-07-05  0:58 ` Finn Thain
  2021-07-05  6:25 ` Mark Cave-Ayland
  0 siblings, 2 replies; 5+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-07-05  0:26 UTC (permalink / raw)
  To: qemu-devel
  Cc: Finn Thain, Mark Cave-Ayland, Laurent Vivier,
	Wainer dos Santos Moschetta, Philippe Mathieu-Daudé,
	Kamil Rytarowski, Reinoud Zandijk, Cleber Rosa,
	Hervé Poussineau, Ryo ONODERA, Philippe Mathieu-Daudé,
	Aurelien Jarno

Test NetBSD 5.1 on the Jazz Magnum machine. As the firmware is not
redistributable, it has to be extracted from the floppy configuration
disk coming with a Mips Magnum 4000 system, then the NTPROM_BIN_PATH
environment variable has to be set. For convenience a NVRAM pre-
initialized to boot NetBSD is included. The test can be run as:

  $ NTPROM_BIN_PATH=/path/to/ntprom.bin \
    avocado --show=app,console \
    run -t machine:magnum tests/acceptance/
  Fetching asset from tests/acceptance/machine_mips_jazz.py:MipsJazz.test_magnum_netbsd_5_1
   (1/1) tests/acceptance/machine_mips_jazz.py:MipsJazz.test_magnum_netbsd_5_1:
  console: EISA Bus 0 Initialization In Progress... Direct Memory Access (DMA) System Control Port B Timer 1 OK.
  console: ARC Multiboot Version 174 (SGI Version 2.6)
  console: Copyright (c) 1991,1992  Microsoft Corporation
  console: Actions:
  console: Start Windows NT
  console: Run a program
  console: Run setup
  console: Use the arrow keys to select.
  console: Press Enter to choose.
  console: Program to run:
  console: scsi(0)cdrom(2)fdisk(0)boot scsi(0)cdrom(2)fdisk(0)netbsd
  console: NetBSD/arc Bootstrap, Revision 1.1
  console: (builds@b7.netbsd.org, Sat Nov  6 14:06:36 UTC 2010)
  console: devopen: scsi(0)cdrom(2)fdisk(0) type disk file netbsd
  console: NetBSD 5.1 (RAMDISK) #0: Sat Nov  6 14:17:36 UTC 2010
  console: builds@b7.netbsd.org:/home/builds/ab/netbsd-5-1-RELEASE/arc/201011061943Z-obj/home/builds/ab/netbsd-5-1-RELEASE/src/sys/arch/arc/compile/RAMDISK
  console: MIPS Magnum
  console: total memory = 128 MB
  console: avail memory = 117 MB
  console: mainbus0 (root)
  console: cpu0 at mainbus0: MIPS R4000 CPU (0x400) Rev. 0.0 with MIPS R4010 FPC Rev. 0.0
  console: cpu0: 8KB/16B direct-mapped L1 Instruction cache, 48 TLB entries
  console: cpu0: 8KB/16B direct-mapped write-back L1 Data cache
  console: jazzio0 at mainbus0
  console: timer0 at jazzio0 addr 0xe0000228
  console: mcclock0 at jazzio0 addr 0xe0004000: mc146818 compatible time-of-day clock
  console: LPT1 at jazzio0 addr 0xe0008000 intr 0 not configured
  console: fdc0 at jazzio0 addr 0xe0003000 intr 1
  console: fd0 at fdc0 drive 1: 1.44MB, 80 cyl, 2 head, 18 sec
  console: MAGNUM at jazzio0 addr 0xe000c000 intr 2 not configured
  console: VXL at jazzio0 addr 0xe0800000 intr 3 not configured
  console: sn0 at jazzio0 addr 0xe0001000 intr 4: SONIC Ethernet
  console: sn0: Ethernet address 00:00:00:00:00:00
  console: asc0 at jazzio0 addr 0xe0002000 intr 5: NCR53C94, 25MHz, SCSI ID 7
  console: scsibus0 at asc0: 8 targets, 8 luns per target
  console: pckbc0 at jazzio0 addr 0xe0005000 intr 6
  console: pckbd0 at pckbc0 (kbd slot)
  console: wskbd0 at pckbd0 (mux ignored)
  console: pms at jazzio0 addr 0xe0005000 intr 7 not configured
  console: com0 at jazzio0 addr 0xe0006000 intr 8: ns16550a, working fifo
  console: com0: txfifo disabled
  console: com0: console
  console: com1 at jazzio0 addr 0xe0007000 intr 9: ns16550a, working fifo
  console: com1: txfifo disabled
  console: jazzisabr0 at mainbus0
  console: isa0 at jazzisabr0
  console: isapnp0 at isa0 port 0x279: ISA Plug 'n Play device support
  console: scsibus0: waiting 2 seconds for devices to settle...
  console: cd0 at scsibus0 target 2 lun 0: <QEMU, QEMU CD-ROM, 2.5+> cdrom removable
  console: boot device: <unknown>
  console: root on md0a dumps on md0b
  console: root file system type: ffs
  console: WARNING: preposterous TOD clock time
  console: WARNING: using filesystem time
  console: WARNING: CHECK AND RESET THE DATE!
  console: erase ^H, werase ^W, kill ^U, intr ^C, status ^T
  console: Terminal type? [vt100]
  console: Erase is backspace.
  console: S
  console: (I)nstall, (S)hell or (H)alt ?
  console: #
  console: # ifconfig sn0 10.0.2.3/24
  console: # # #
  console: # ping -c 3 10.0.2.2
  console: # # # # # PING 10.0.2.2 (10.0.2.2): 56 data bytes
  console: 64 bytes from 10.0.2.2: icmp_seq=0 ttl=255 time=12.526 ms
  console: 64 bytes from 10.0.2.2: icmp_seq=1 ttl=255 time=2.324 ms
  console: 64 bytes from 10.0.2.2: icmp_seq=2 ttl=255 time=0.608 ms
  console: ----10.0.2.2 PING Statistics----
  console: 3 packets transmitted, 3 packets received, 0.0% packet loss
  console: shutdown -r now
  console: round-trip min/avg/max/stddev = 0.608/5.153/12.526/6.443 ms
  console: # Shutdown NOW!
  console: shutdown: [pid 14]
  console: # sh: /usr/bin/wall: not found
  console: reboot by root:
  console: System shutdown time has arrived
  console: About to run shutdown hooks...
  console: .: Can't open /etc/rc.shutdown
  console: Done running shutdown hooks.
  console: syncing disks... done
  console: unmounting file systems... done
  console: rebooting...
  PASS (39.06 s)
  RESULTS    : PASS 1 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0
  JOB TIME   : 39.54 s

Inspired-by: Hervé Poussineau <hpoussin@reactos.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 .../machine_mips_jazz.d/nvram.bin.xz          | Bin 0 -> 700 bytes
 tests/acceptance/machine_mips_jazz.py         |  96 ++++++++++++++++++
 2 files changed, 96 insertions(+)
 create mode 100644 tests/acceptance/machine_mips_jazz.d/nvram.bin.xz
 create mode 100644 tests/acceptance/machine_mips_jazz.py

diff --git a/tests/acceptance/machine_mips_jazz.d/nvram.bin.xz b/tests/acceptance/machine_mips_jazz.d/nvram.bin.xz
new file mode 100644
index 0000000000000000000000000000000000000000..4648bb31a75bd1a6ee06818a1bf0f2109203ced3
GIT binary patch
literal 700
zcmV;t0z>`%H+ooF000E$*0e?f03iV!0000G&sfah5B~ysT>t=TewJhU2JbgNgw@93
z9ne@Of$dv11>H(&qfaP~{?QVNDD*)y9o<}llIpWo;zi4K%|O3oZX7;e0I%^w=#ho%
zm*3>5KcVeDb)hM{s=^@xl3*6CLiEr>=o;i$-UTTwy=`4vF_aQ@AM-}hS_gfV?dXL~
zr6}Ck7jr0Pd6X49Gycxm@5wylC8aWC%NAZ^DQmjk9v0R)a7u1hsY5)le9~S_G;wnI
zNEhT-#4+m{FhwCCTK#>itkJ+zGLq(>iH&;ourQ75=5X0GCmKgT34hXv`!lNS@Vv~9
z#dTZb1?<x%e;6UaEZ?$JT@1SBP5my9l7&XSs?W+Ufr||*z035xw~`at6Ee$`W+96+
z+GJc@N)TzeY@b#YPn@xQT6#fKq_~pFo)=4ZKP9K_BO1_^7pVTQNp$u}nKgZ>DkCrj
z^?l-ksd=`Q%7w&-3CkM)A-1nkM@y=-6N=HiA4b<WBKS^=)!oj-ZC_{*DGqZD2VzX1
zK{*4jgOsj!UPEwQ?*VD-2^<k{1^m(NV;8Ya)p-pwGWqQ7CAgX4w5vWiB095j=yfi%
zkXq_?C-K4b7)51+8S-t@;sSpTEtU7x1UZ|?WWEp59W6%y5<X+<RS_F7)N!aN8Lm!&
z-jRJ50VM#t_NLVKQ`#MuEWzq1$^|tn4L1MW?!$H&fc<(y1QHv6-#@=cN*d%QYMaA0
z+L!W3-k!*7dONwgWwK{?$5Yf5d8TRJIgw7WHR@zI6hLrbArpq|%Ax#6+d)m|&Wh%|
z!pU{tbl$cCNXE=B0Pf|j?*P-9X*vQHCH?48MX**q?{Zss*9HdGiu@Se*+j_z00023
i?D;I-mde`z0hR@TAOHX;UY-@P#Ao{g000001X)@jNK0n`

literal 0
HcmV?d00001

diff --git a/tests/acceptance/machine_mips_jazz.py b/tests/acceptance/machine_mips_jazz.py
new file mode 100644
index 00000000000..0b6640edc12
--- /dev/null
+++ b/tests/acceptance/machine_mips_jazz.py
@@ -0,0 +1,96 @@
+# Functional tests for the Jazz machines.
+#
+# Copyright (c) 2021 Philippe Mathieu-Daudé <f4bug@amsat.org>
+#
+# This work is licensed under the terms of the GNU GPL, version 2 or later.
+# See the COPYING file in the top-level directory.
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+import os
+import lzma
+import shutil
+
+from avocado import skipUnless
+from avocado_qemu import Test
+from avocado_qemu import exec_command
+from avocado_qemu import exec_command_and_wait_for_pattern
+from avocado_qemu import interrupt_interactive_console_until_pattern
+from avocado_qemu import wait_for_console_pattern
+
+from tesseract_utils import tesseract_available, tesseract_ocr
+
+class MipsJazz(Test):
+
+    timeout = 60
+
+    @skipUnless(os.getenv('NTPROM_BIN_PATH'), 'NTPROM_BIN_PATH not available')
+    def test_magnum_netbsd_5_1(self):
+        """
+        :avocado: tags=arch:mips64el
+        :avocado: tags=machine:magnum
+        :avocado: tags=os:netbsd
+        :avocado: tags=device:sonic
+        :avocado: tags=device:esp
+        """
+        drive_url = ('http://archive.netbsd.org/pub/NetBSD-archive/'
+                     'NetBSD-5.1/iso/arccd-5.1.iso')
+        drive_hash = ('c91a57fb373636247d1f1ce283a610ba529e208604a'
+                      'f2a9e0237551fb3d25459c7697775af8c8d35a9764e'
+                      'fca87cfb591f363643e93417cfdb8857215ceb405e')
+        drive_path = self.fetch_asset(drive_url, asset_hash=drive_hash,
+                                      algorithm='sha512')
+        ntprom_hash = '316de17820192c89b8ee6d9936ab8364a739ca53'
+        ntprom_path = self.fetch_asset('file://' + os.getenv('NTPROM_BIN_PATH'),
+                                       asset_hash=ntprom_hash, algorithm='sha1')
+        nvram_size = 8200
+        nvram_path = 'nvram.bin'
+        nvram_xz_hash = '3d4565124ff2369706b97e1d0ef127a68c23d418'
+        nvram_xz_path = os.path.dirname(os.path.abspath(__file__)) \
+                        + '/machine_mips_jazz.d/nvram.bin.xz'
+        nvram_xz_path = self.fetch_asset('file://' + nvram_xz_path,
+                                         asset_hash=nvram_xz_hash,
+                                         algorithm='sha1')
+
+        with lzma.open(nvram_xz_path, 'rb') as f_in:
+            with open(nvram_path, 'wb') as f_out:
+                shutil.copyfileobj(f_in, f_out)
+                f_out.seek(nvram_size)
+                f_out.write(b'\0')
+
+        self.vm.set_console()
+        self.vm.add_args('-bios', ntprom_path,
+                         '-drive', 'if=scsi,unit=2,media=cdrom,format=raw,file='
+                                   + drive_path,
+                         '-global', 'ds1225y.filename=' + nvram_path,
+                         '-global', 'ds1225y.size=' + str(nvram_size),
+                         '-nic', 'user,model=dp83932,mac=00:00:00:02:03:04')
+        self.vm.launch()
+
+        console_pattern = 'ARC Multiboot Version 174 (SGI Version 2.6)'
+        wait_for_console_pattern(self, console_pattern)
+
+        wait_for_console_pattern(self, 'Use the arrow keys to select.')
+        exec_command(self, '\x1b[B') # Cursor Control 'Down'
+
+        program = 'scsi(0)cdrom(2)fdisk(0)boot scsi(0)cdrom(2)fdisk(0)netbsd'
+        exec_command(self, program)
+        wait_for_console_pattern(self, 'NetBSD/arc Bootstrap, Revision 1.1')
+
+        # Terminal type? [vt100]
+        console_pattern = 'erase ^H, werase ^W, kill ^U, intr ^C, status ^T'
+        wait_for_console_pattern(self, console_pattern)
+
+        # (I)nstall, (S)hell or (H)alt
+        exec_command_and_wait_for_pattern(self, '', 'Erase is backspace.')
+        exec_command(self, 'S')
+        interrupt_interactive_console_until_pattern(self, '#')
+
+        exec_command(self, 'ifconfig sn0 10.0.2.3/24')
+        interrupt_interactive_console_until_pattern(self, '#')
+
+        exec_command_and_wait_for_pattern(self, 'ping -c 3 10.0.2.2',
+                '3 packets transmitted, 3 packets received, 0.0% packet loss')
+
+        exec_command_and_wait_for_pattern(self, 'shutdown -r now',
+                                          'rebooting...')
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] tests/acceptance: Test NetBSD 5.1 on the Jazz Magnum machine
  2021-07-05  0:26 [PATCH] tests/acceptance: Test NetBSD 5.1 on the Jazz Magnum machine Philippe Mathieu-Daudé
@ 2021-07-05  0:58 ` Finn Thain
  2021-07-05  9:50   ` Philippe Mathieu-Daudé
  2021-07-05  6:25 ` Mark Cave-Ayland
  1 sibling, 1 reply; 5+ messages in thread
From: Finn Thain @ 2021-07-05  0:58 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé
  Cc: Mark Cave-Ayland, qemu-devel, Wainer dos Santos Moschetta,
	Laurent Vivier, Kamil Rytarowski, Reinoud Zandijk, Cleber Rosa,
	Hervé Poussineau, Ryo ONODERA, Philippe Mathieu-Daudé,
	Aurelien Jarno

[-- Attachment #1: Type: text/plain, Size: 12675 bytes --]

On Mon, 5 Jul 2021, Philippe Mathieu-Daudé wrote:

> Test NetBSD 5.1 on the Jazz Magnum machine. As the firmware is not
> redistributable, it has to be extracted from the floppy configuration
> disk coming with a Mips Magnum 4000 system, then the NTPROM_BIN_PATH
> environment variable has to be set. For convenience a NVRAM pre-
> initialized to boot NetBSD is included. The test can be run as:
> 
>   $ NTPROM_BIN_PATH=/path/to/ntprom.bin \
>     avocado --show=app,console \
>     run -t machine:magnum tests/acceptance/
>   Fetching asset from tests/acceptance/machine_mips_jazz.py:MipsJazz.test_magnum_netbsd_5_1
>    (1/1) tests/acceptance/machine_mips_jazz.py:MipsJazz.test_magnum_netbsd_5_1:
>   console: EISA Bus 0 Initialization In Progress... Direct Memory Access (DMA) System Control Port B Timer 1 OK.
>   console: ARC Multiboot Version 174 (SGI Version 2.6)
>   console: Copyright (c) 1991,1992  Microsoft Corporation
>   console: Actions:
>   console: Start Windows NT
>   console: Run a program
>   console: Run setup
>   console: Use the arrow keys to select.
>   console: Press Enter to choose.
>   console: Program to run:
>   console: scsi(0)cdrom(2)fdisk(0)boot scsi(0)cdrom(2)fdisk(0)netbsd
>   console: NetBSD/arc Bootstrap, Revision 1.1
>   console: (builds@b7.netbsd.org, Sat Nov  6 14:06:36 UTC 2010)
>   console: devopen: scsi(0)cdrom(2)fdisk(0) type disk file netbsd
>   console: NetBSD 5.1 (RAMDISK) #0: Sat Nov  6 14:17:36 UTC 2010
>   console: builds@b7.netbsd.org:/home/builds/ab/netbsd-5-1-RELEASE/arc/201011061943Z-obj/home/builds/ab/netbsd-5-1-RELEASE/src/sys/arch/arc/compile/RAMDISK
>   console: MIPS Magnum
>   console: total memory = 128 MB
>   console: avail memory = 117 MB
>   console: mainbus0 (root)
>   console: cpu0 at mainbus0: MIPS R4000 CPU (0x400) Rev. 0.0 with MIPS R4010 FPC Rev. 0.0
>   console: cpu0: 8KB/16B direct-mapped L1 Instruction cache, 48 TLB entries
>   console: cpu0: 8KB/16B direct-mapped write-back L1 Data cache
>   console: jazzio0 at mainbus0
>   console: timer0 at jazzio0 addr 0xe0000228
>   console: mcclock0 at jazzio0 addr 0xe0004000: mc146818 compatible time-of-day clock
>   console: LPT1 at jazzio0 addr 0xe0008000 intr 0 not configured
>   console: fdc0 at jazzio0 addr 0xe0003000 intr 1
>   console: fd0 at fdc0 drive 1: 1.44MB, 80 cyl, 2 head, 18 sec
>   console: MAGNUM at jazzio0 addr 0xe000c000 intr 2 not configured
>   console: VXL at jazzio0 addr 0xe0800000 intr 3 not configured
>   console: sn0 at jazzio0 addr 0xe0001000 intr 4: SONIC Ethernet
>   console: sn0: Ethernet address 00:00:00:00:00:00
>   console: asc0 at jazzio0 addr 0xe0002000 intr 5: NCR53C94, 25MHz, SCSI ID 7
>   console: scsibus0 at asc0: 8 targets, 8 luns per target
>   console: pckbc0 at jazzio0 addr 0xe0005000 intr 6
>   console: pckbd0 at pckbc0 (kbd slot)
>   console: wskbd0 at pckbd0 (mux ignored)
>   console: pms at jazzio0 addr 0xe0005000 intr 7 not configured
>   console: com0 at jazzio0 addr 0xe0006000 intr 8: ns16550a, working fifo
>   console: com0: txfifo disabled
>   console: com0: console
>   console: com1 at jazzio0 addr 0xe0007000 intr 9: ns16550a, working fifo
>   console: com1: txfifo disabled
>   console: jazzisabr0 at mainbus0
>   console: isa0 at jazzisabr0
>   console: isapnp0 at isa0 port 0x279: ISA Plug 'n Play device support
>   console: scsibus0: waiting 2 seconds for devices to settle...
>   console: cd0 at scsibus0 target 2 lun 0: <QEMU, QEMU CD-ROM, 2.5+> cdrom removable
>   console: boot device: <unknown>
>   console: root on md0a dumps on md0b
>   console: root file system type: ffs
>   console: WARNING: preposterous TOD clock time
>   console: WARNING: using filesystem time
>   console: WARNING: CHECK AND RESET THE DATE!
>   console: erase ^H, werase ^W, kill ^U, intr ^C, status ^T
>   console: Terminal type? [vt100]
>   console: Erase is backspace.
>   console: S
>   console: (I)nstall, (S)hell or (H)alt ?
>   console: #
>   console: # ifconfig sn0 10.0.2.3/24
>   console: # # #
>   console: # ping -c 3 10.0.2.2
>   console: # # # # # PING 10.0.2.2 (10.0.2.2): 56 data bytes
>   console: 64 bytes from 10.0.2.2: icmp_seq=0 ttl=255 time=12.526 ms
>   console: 64 bytes from 10.0.2.2: icmp_seq=1 ttl=255 time=2.324 ms
>   console: 64 bytes from 10.0.2.2: icmp_seq=2 ttl=255 time=0.608 ms
>   console: ----10.0.2.2 PING Statistics----
>   console: 3 packets transmitted, 3 packets received, 0.0% packet loss
>   console: shutdown -r now
>   console: round-trip min/avg/max/stddev = 0.608/5.153/12.526/6.443 ms
>   console: # Shutdown NOW!
>   console: shutdown: [pid 14]
>   console: # sh: /usr/bin/wall: not found
>   console: reboot by root:
>   console: System shutdown time has arrived
>   console: About to run shutdown hooks...
>   console: .: Can't open /etc/rc.shutdown
>   console: Done running shutdown hooks.
>   console: syncing disks... done
>   console: unmounting file systems... done
>   console: rebooting...
>   PASS (39.06 s)
>   RESULTS    : PASS 1 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0
>   JOB TIME   : 39.54 s
> 
> Inspired-by: Hervé Poussineau <hpoussin@reactos.org>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>  .../machine_mips_jazz.d/nvram.bin.xz          | Bin 0 -> 700 bytes
>  tests/acceptance/machine_mips_jazz.py         |  96 ++++++++++++++++++
>  2 files changed, 96 insertions(+)
>  create mode 100644 tests/acceptance/machine_mips_jazz.d/nvram.bin.xz
>  create mode 100644 tests/acceptance/machine_mips_jazz.py
> 
> diff --git a/tests/acceptance/machine_mips_jazz.d/nvram.bin.xz b/tests/acceptance/machine_mips_jazz.d/nvram.bin.xz
> new file mode 100644
> index 0000000000000000000000000000000000000000..4648bb31a75bd1a6ee06818a1bf0f2109203ced3
> GIT binary patch
> literal 700
> zcmV;t0z>`%H+ooF000E$*0e?f03iV!0000G&sfah5B~ysT>t=TewJhU2JbgNgw@93
> z9ne@Of$dv11>H(&qfaP~{?QVNDD*)y9o<}llIpWo;zi4K%|O3oZX7;e0I%^w=#ho%
> zm*3>5KcVeDb)hM{s=^@xl3*6CLiEr>=o;i$-UTTwy=`4vF_aQ@AM-}hS_gfV?dXL~
> zr6}Ck7jr0Pd6X49Gycxm@5wylC8aWC%NAZ^DQmjk9v0R)a7u1hsY5)le9~S_G;wnI
> zNEhT-#4+m{FhwCCTK#>itkJ+zGLq(>iH&;ourQ75=5X0GCmKgT34hXv`!lNS@Vv~9
> z#dTZb1?<x%e;6UaEZ?$JT@1SBP5my9l7&XSs?W+Ufr||*z035xw~`at6Ee$`W+96+
> z+GJc@N)TzeY@b#YPn@xQT6#fKq_~pFo)=4ZKP9K_BO1_^7pVTQNp$u}nKgZ>DkCrj
> z^?l-ksd=`Q%7w&-3CkM)A-1nkM@y=-6N=HiA4b<WBKS^=)!oj-ZC_{*DGqZD2VzX1
> zK{*4jgOsj!UPEwQ?*VD-2^<k{1^m(NV;8Ya)p-pwGWqQ7CAgX4w5vWiB095j=yfi%
> zkXq_?C-K4b7)51+8S-t@;sSpTEtU7x1UZ|?WWEp59W6%y5<X+<RS_F7)N!aN8Lm!&
> z-jRJ50VM#t_NLVKQ`#MuEWzq1$^|tn4L1MW?!$H&fc<(y1QHv6-#@=cN*d%QYMaA0
> z+L!W3-k!*7dONwgWwK{?$5Yf5d8TRJIgw7WHR@zI6hLrbArpq|%Ax#6+d)m|&Wh%|
> z!pU{tbl$cCNXE=B0Pf|j?*P-9X*vQHCH?48MX**q?{Zss*9HdGiu@Se*+j_z00023
> i?D;I-mde`z0hR@TAOHX;UY-@P#Ao{g000001X)@jNK0n`
> 
> literal 0
> HcmV?d00001
> 
> diff --git a/tests/acceptance/machine_mips_jazz.py b/tests/acceptance/machine_mips_jazz.py
> new file mode 100644
> index 00000000000..0b6640edc12
> --- /dev/null
> +++ b/tests/acceptance/machine_mips_jazz.py
> @@ -0,0 +1,96 @@
> +# Functional tests for the Jazz machines.
> +#
> +# Copyright (c) 2021 Philippe Mathieu-Daudé <f4bug@amsat.org>
> +#
> +# This work is licensed under the terms of the GNU GPL, version 2 or later.
> +# See the COPYING file in the top-level directory.
> +#
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +
> +import os
> +import lzma
> +import shutil
> +
> +from avocado import skipUnless
> +from avocado_qemu import Test
> +from avocado_qemu import exec_command
> +from avocado_qemu import exec_command_and_wait_for_pattern
> +from avocado_qemu import interrupt_interactive_console_until_pattern
> +from avocado_qemu import wait_for_console_pattern
> +
> +from tesseract_utils import tesseract_available, tesseract_ocr
> +
> +class MipsJazz(Test):
> +
> +    timeout = 60
> +
> +    @skipUnless(os.getenv('NTPROM_BIN_PATH'), 'NTPROM_BIN_PATH not available')
> +    def test_magnum_netbsd_5_1(self):
> +        """
> +        :avocado: tags=arch:mips64el
> +        :avocado: tags=machine:magnum
> +        :avocado: tags=os:netbsd
> +        :avocado: tags=device:sonic
> +        :avocado: tags=device:esp
> +        """
> +        drive_url = ('http://archive.netbsd.org/pub/NetBSD-archive/'
> +                     'NetBSD-5.1/iso/arccd-5.1.iso')

This can be updated to NetBSD 9.2 (the regressions in NetBSD have been 
fixed).

> +        drive_hash = ('c91a57fb373636247d1f1ce283a610ba529e208604a'
> +                      'f2a9e0237551fb3d25459c7697775af8c8d35a9764e'
> +                      'fca87cfb591f363643e93417cfdb8857215ceb405e')
> +        drive_path = self.fetch_asset(drive_url, asset_hash=drive_hash,
> +                                      algorithm='sha512')
> +        ntprom_hash = '316de17820192c89b8ee6d9936ab8364a739ca53'
> +        ntprom_path = self.fetch_asset('file://' + os.getenv('NTPROM_BIN_PATH'),
> +                                       asset_hash=ntprom_hash, algorithm='sha1')
> +        nvram_size = 8200

This nvram_size setting can be omitted now that Mark's recent patches have 
resolved the SONIC PROM issues in mainline.

You would need the extra 8 bytes of NVRAM only if you wanted to alter the 
stored MAC address after starting the guest. The configuration function in 
the ARC firmware allows for that but this test doesn't need it.

> +        nvram_path = 'nvram.bin'

Does the test work when nvram.bin is uninitialized by the ARC firmware?

> +        nvram_xz_hash = '3d4565124ff2369706b97e1d0ef127a68c23d418'
> +        nvram_xz_path = os.path.dirname(os.path.abspath(__file__)) \
> +                        + '/machine_mips_jazz.d/nvram.bin.xz'
> +        nvram_xz_path = self.fetch_asset('file://' + nvram_xz_path,
> +                                         asset_hash=nvram_xz_hash,
> +                                         algorithm='sha1')
> +
> +        with lzma.open(nvram_xz_path, 'rb') as f_in:
> +            with open(nvram_path, 'wb') as f_out:
> +                shutil.copyfileobj(f_in, f_out)
> +                f_out.seek(nvram_size)
> +                f_out.write(b'\0')
> +
> +        self.vm.set_console()
> +        self.vm.add_args('-bios', ntprom_path,
> +                         '-drive', 'if=scsi,unit=2,media=cdrom,format=raw,file='
> +                                   + drive_path,
> +                         '-global', 'ds1225y.filename=' + nvram_path,
> +                         '-global', 'ds1225y.size=' + str(nvram_size),
> +                         '-nic', 'user,model=dp83932,mac=00:00:00:02:03:04')

Perhaps the default MAC address (from the SONIC PROM) would be more 
appropriate? Alternatively, if you want to check that '00:00:00:02:03:04' 
actually got used, you can do this:

erase ^H, werase ^W, kill ^U, intr ^C, status ^T
Terminal type? [vt100] 
Erase is backspace.                                                     
(I)nstall, (S)hell or (H)alt ? s
# ifconfig
sn0: flags=0x8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
        ec_capabilities=1<VLAN_MTU>
        ec_enabled=0
        address: 00:00:00:02:03:04
lo0: flags=0x8048<LOOPBACK,RUNNING,MULTICAST> mtu 33160
# 

> +        self.vm.launch()
> +
> +        console_pattern = 'ARC Multiboot Version 174 (SGI Version 2.6)'
> +        wait_for_console_pattern(self, console_pattern)
> +
> +        wait_for_console_pattern(self, 'Use the arrow keys to select.')
> +        exec_command(self, '\x1b[B') # Cursor Control 'Down'
> +
> +        program = 'scsi(0)cdrom(2)fdisk(0)boot scsi(0)cdrom(2)fdisk(0)netbsd'
> +        exec_command(self, program)
> +        wait_for_console_pattern(self, 'NetBSD/arc Bootstrap, Revision 1.1')
> +
> +        # Terminal type? [vt100]
> +        console_pattern = 'erase ^H, werase ^W, kill ^U, intr ^C, status ^T'
> +        wait_for_console_pattern(self, console_pattern)
> +
> +        # (I)nstall, (S)hell or (H)alt
> +        exec_command_and_wait_for_pattern(self, '', 'Erase is backspace.')
> +        exec_command(self, 'S')
> +        interrupt_interactive_console_until_pattern(self, '#')
> +
> +        exec_command(self, 'ifconfig sn0 10.0.2.3/24')
> +        interrupt_interactive_console_until_pattern(self, '#')
> +
> +        exec_command_and_wait_for_pattern(self, 'ping -c 3 10.0.2.2',
> +                '3 packets transmitted, 3 packets received, 0.0% packet loss')
> +
> +        exec_command_and_wait_for_pattern(self, 'shutdown -r now',
> +                                          'rebooting...')
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] tests/acceptance: Test NetBSD 5.1 on the Jazz Magnum machine
  2021-07-05  0:26 [PATCH] tests/acceptance: Test NetBSD 5.1 on the Jazz Magnum machine Philippe Mathieu-Daudé
  2021-07-05  0:58 ` Finn Thain
@ 2021-07-05  6:25 ` Mark Cave-Ayland
  1 sibling, 0 replies; 5+ messages in thread
From: Mark Cave-Ayland @ 2021-07-05  6:25 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel
  Cc: Finn Thain, Laurent Vivier, Wainer dos Santos Moschetta,
	Kamil Rytarowski, Reinoud Zandijk, Cleber Rosa,
	Hervé Poussineau, Ryo ONODERA, Philippe Mathieu-Daudé,
	Aurelien Jarno

On 05/07/2021 01:26, Philippe Mathieu-Daudé wrote:

> Test NetBSD 5.1 on the Jazz Magnum machine. As the firmware is not
> redistributable, it has to be extracted from the floppy configuration
> disk coming with a Mips Magnum 4000 system, then the NTPROM_BIN_PATH
> environment variable has to be set. For convenience a NVRAM pre-
> initialized to boot NetBSD is included. The test can be run as:
> 
>    $ NTPROM_BIN_PATH=/path/to/ntprom.bin \
>      avocado --show=app,console \
>      run -t machine:magnum tests/acceptance/
>    Fetching asset from tests/acceptance/machine_mips_jazz.py:MipsJazz.test_magnum_netbsd_5_1
>     (1/1) tests/acceptance/machine_mips_jazz.py:MipsJazz.test_magnum_netbsd_5_1:
>    console: EISA Bus 0 Initialization In Progress... Direct Memory Access (DMA) System Control Port B Timer 1 OK.
>    console: ARC Multiboot Version 174 (SGI Version 2.6)
>    console: Copyright (c) 1991,1992  Microsoft Corporation
>    console: Actions:
>    console: Start Windows NT
>    console: Run a program
>    console: Run setup
>    console: Use the arrow keys to select.
>    console: Press Enter to choose.
>    console: Program to run:
>    console: scsi(0)cdrom(2)fdisk(0)boot scsi(0)cdrom(2)fdisk(0)netbsd
>    console: NetBSD/arc Bootstrap, Revision 1.1
>    console: (builds@b7.netbsd.org, Sat Nov  6 14:06:36 UTC 2010)
>    console: devopen: scsi(0)cdrom(2)fdisk(0) type disk file netbsd
>    console: NetBSD 5.1 (RAMDISK) #0: Sat Nov  6 14:17:36 UTC 2010
>    console: builds@b7.netbsd.org:/home/builds/ab/netbsd-5-1-RELEASE/arc/201011061943Z-obj/home/builds/ab/netbsd-5-1-RELEASE/src/sys/arch/arc/compile/RAMDISK
>    console: MIPS Magnum
>    console: total memory = 128 MB
>    console: avail memory = 117 MB
>    console: mainbus0 (root)
>    console: cpu0 at mainbus0: MIPS R4000 CPU (0x400) Rev. 0.0 with MIPS R4010 FPC Rev. 0.0
>    console: cpu0: 8KB/16B direct-mapped L1 Instruction cache, 48 TLB entries
>    console: cpu0: 8KB/16B direct-mapped write-back L1 Data cache
>    console: jazzio0 at mainbus0
>    console: timer0 at jazzio0 addr 0xe0000228
>    console: mcclock0 at jazzio0 addr 0xe0004000: mc146818 compatible time-of-day clock
>    console: LPT1 at jazzio0 addr 0xe0008000 intr 0 not configured
>    console: fdc0 at jazzio0 addr 0xe0003000 intr 1
>    console: fd0 at fdc0 drive 1: 1.44MB, 80 cyl, 2 head, 18 sec
>    console: MAGNUM at jazzio0 addr 0xe000c000 intr 2 not configured
>    console: VXL at jazzio0 addr 0xe0800000 intr 3 not configured
>    console: sn0 at jazzio0 addr 0xe0001000 intr 4: SONIC Ethernet
>    console: sn0: Ethernet address 00:00:00:00:00:00
>    console: asc0 at jazzio0 addr 0xe0002000 intr 5: NCR53C94, 25MHz, SCSI ID 7
>    console: scsibus0 at asc0: 8 targets, 8 luns per target
>    console: pckbc0 at jazzio0 addr 0xe0005000 intr 6
>    console: pckbd0 at pckbc0 (kbd slot)
>    console: wskbd0 at pckbd0 (mux ignored)
>    console: pms at jazzio0 addr 0xe0005000 intr 7 not configured
>    console: com0 at jazzio0 addr 0xe0006000 intr 8: ns16550a, working fifo
>    console: com0: txfifo disabled
>    console: com0: console
>    console: com1 at jazzio0 addr 0xe0007000 intr 9: ns16550a, working fifo
>    console: com1: txfifo disabled
>    console: jazzisabr0 at mainbus0
>    console: isa0 at jazzisabr0
>    console: isapnp0 at isa0 port 0x279: ISA Plug 'n Play device support
>    console: scsibus0: waiting 2 seconds for devices to settle...
>    console: cd0 at scsibus0 target 2 lun 0: <QEMU, QEMU CD-ROM, 2.5+> cdrom removable
>    console: boot device: <unknown>
>    console: root on md0a dumps on md0b
>    console: root file system type: ffs
>    console: WARNING: preposterous TOD clock time
>    console: WARNING: using filesystem time
>    console: WARNING: CHECK AND RESET THE DATE!
>    console: erase ^H, werase ^W, kill ^U, intr ^C, status ^T
>    console: Terminal type? [vt100]
>    console: Erase is backspace.
>    console: S
>    console: (I)nstall, (S)hell or (H)alt ?
>    console: #
>    console: # ifconfig sn0 10.0.2.3/24
>    console: # # #
>    console: # ping -c 3 10.0.2.2
>    console: # # # # # PING 10.0.2.2 (10.0.2.2): 56 data bytes
>    console: 64 bytes from 10.0.2.2: icmp_seq=0 ttl=255 time=12.526 ms
>    console: 64 bytes from 10.0.2.2: icmp_seq=1 ttl=255 time=2.324 ms
>    console: 64 bytes from 10.0.2.2: icmp_seq=2 ttl=255 time=0.608 ms
>    console: ----10.0.2.2 PING Statistics----
>    console: 3 packets transmitted, 3 packets received, 0.0% packet loss
>    console: shutdown -r now
>    console: round-trip min/avg/max/stddev = 0.608/5.153/12.526/6.443 ms
>    console: # Shutdown NOW!
>    console: shutdown: [pid 14]
>    console: # sh: /usr/bin/wall: not found
>    console: reboot by root:
>    console: System shutdown time has arrived
>    console: About to run shutdown hooks...
>    console: .: Can't open /etc/rc.shutdown
>    console: Done running shutdown hooks.
>    console: syncing disks... done
>    console: unmounting file systems... done
>    console: rebooting...
>    PASS (39.06 s)
>    RESULTS    : PASS 1 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0
>    JOB TIME   : 39.54 s
> 
> Inspired-by: Hervé Poussineau <hpoussin@reactos.org>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>   .../machine_mips_jazz.d/nvram.bin.xz          | Bin 0 -> 700 bytes
>   tests/acceptance/machine_mips_jazz.py         |  96 ++++++++++++++++++
>   2 files changed, 96 insertions(+)
>   create mode 100644 tests/acceptance/machine_mips_jazz.d/nvram.bin.xz
>   create mode 100644 tests/acceptance/machine_mips_jazz.py
> 
> diff --git a/tests/acceptance/machine_mips_jazz.d/nvram.bin.xz b/tests/acceptance/machine_mips_jazz.d/nvram.bin.xz
> new file mode 100644
> index 0000000000000000000000000000000000000000..4648bb31a75bd1a6ee06818a1bf0f2109203ced3
> GIT binary patch
> literal 700
> zcmV;t0z>`%H+ooF000E$*0e?f03iV!0000G&sfah5B~ysT>t=TewJhU2JbgNgw@93
> z9ne@Of$dv11>H(&qfaP~{?QVNDD*)y9o<}llIpWo;zi4K%|O3oZX7;e0I%^w=#ho%
> zm*3>5KcVeDb)hM{s=^@xl3*6CLiEr>=o;i$-UTTwy=`4vF_aQ@AM-}hS_gfV?dXL~
> zr6}Ck7jr0Pd6X49Gycxm@5wylC8aWC%NAZ^DQmjk9v0R)a7u1hsY5)le9~S_G;wnI
> zNEhT-#4+m{FhwCCTK#>itkJ+zGLq(>iH&;ourQ75=5X0GCmKgT34hXv`!lNS@Vv~9
> z#dTZb1?<x%e;6UaEZ?$JT@1SBP5my9l7&XSs?W+Ufr||*z035xw~`at6Ee$`W+96+
> z+GJc@N)TzeY@b#YPn@xQT6#fKq_~pFo)=4ZKP9K_BO1_^7pVTQNp$u}nKgZ>DkCrj
> z^?l-ksd=`Q%7w&-3CkM)A-1nkM@y=-6N=HiA4b<WBKS^=)!oj-ZC_{*DGqZD2VzX1
> zK{*4jgOsj!UPEwQ?*VD-2^<k{1^m(NV;8Ya)p-pwGWqQ7CAgX4w5vWiB095j=yfi%
> zkXq_?C-K4b7)51+8S-t@;sSpTEtU7x1UZ|?WWEp59W6%y5<X+<RS_F7)N!aN8Lm!&
> z-jRJ50VM#t_NLVKQ`#MuEWzq1$^|tn4L1MW?!$H&fc<(y1QHv6-#@=cN*d%QYMaA0
> z+L!W3-k!*7dONwgWwK{?$5Yf5d8TRJIgw7WHR@zI6hLrbArpq|%Ax#6+d)m|&Wh%|
> z!pU{tbl$cCNXE=B0Pf|j?*P-9X*vQHCH?48MX**q?{Zss*9HdGiu@Se*+j_z00023
> i?D;I-mde`z0hR@TAOHX;UY-@P#Ao{g000001X)@jNK0n`
> 
> literal 0
> HcmV?d00001
> 
> diff --git a/tests/acceptance/machine_mips_jazz.py b/tests/acceptance/machine_mips_jazz.py
> new file mode 100644
> index 00000000000..0b6640edc12
> --- /dev/null
> +++ b/tests/acceptance/machine_mips_jazz.py
> @@ -0,0 +1,96 @@
> +# Functional tests for the Jazz machines.
> +#
> +# Copyright (c) 2021 Philippe Mathieu-Daudé <f4bug@amsat.org>
> +#
> +# This work is licensed under the terms of the GNU GPL, version 2 or later.
> +# See the COPYING file in the top-level directory.
> +#
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +
> +import os
> +import lzma
> +import shutil
> +
> +from avocado import skipUnless
> +from avocado_qemu import Test
> +from avocado_qemu import exec_command
> +from avocado_qemu import exec_command_and_wait_for_pattern
> +from avocado_qemu import interrupt_interactive_console_until_pattern
> +from avocado_qemu import wait_for_console_pattern
> +
> +from tesseract_utils import tesseract_available, tesseract_ocr
> +
> +class MipsJazz(Test):
> +
> +    timeout = 60
> +
> +    @skipUnless(os.getenv('NTPROM_BIN_PATH'), 'NTPROM_BIN_PATH not available')
> +    def test_magnum_netbsd_5_1(self):
> +        """
> +        :avocado: tags=arch:mips64el
> +        :avocado: tags=machine:magnum
> +        :avocado: tags=os:netbsd
> +        :avocado: tags=device:sonic
> +        :avocado: tags=device:esp
> +        """
> +        drive_url = ('http://archive.netbsd.org/pub/NetBSD-archive/'
> +                     'NetBSD-5.1/iso/arccd-5.1.iso')

Is there a particular reason while the old version of NetBSD is being used? I'm 
currently testing NetBSD/arc using the latest NetBSD-9.2-arc.iso.

> +        drive_hash = ('c91a57fb373636247d1f1ce283a610ba529e208604a'
> +                      'f2a9e0237551fb3d25459c7697775af8c8d35a9764e'
> +                      'fca87cfb591f363643e93417cfdb8857215ceb405e')
> +        drive_path = self.fetch_asset(drive_url, asset_hash=drive_hash,
> +                                      algorithm='sha512')
> +        ntprom_hash = '316de17820192c89b8ee6d9936ab8364a739ca53'
> +        ntprom_path = self.fetch_asset('file://' + os.getenv('NTPROM_BIN_PATH'),
> +                                       asset_hash=ntprom_hash, algorithm='sha1')
> +        nvram_size = 8200
> +        nvram_path = 'nvram.bin'
> +        nvram_xz_hash = '3d4565124ff2369706b97e1d0ef127a68c23d418'
> +        nvram_xz_path = os.path.dirname(os.path.abspath(__file__)) \
> +                        + '/machine_mips_jazz.d/nvram.bin.xz'
> +        nvram_xz_path = self.fetch_asset('file://' + nvram_xz_path,
> +                                         asset_hash=nvram_xz_hash,
> +                                         algorithm='sha1')
> +
> +        with lzma.open(nvram_xz_path, 'rb') as f_in:
> +            with open(nvram_path, 'wb') as f_out:
> +                shutil.copyfileobj(f_in, f_out)
> +                f_out.seek(nvram_size)
> +                f_out.write(b'\0')
> +
> +        self.vm.set_console()
> +        self.vm.add_args('-bios', ntprom_path,
> +                         '-drive', 'if=scsi,unit=2,media=cdrom,format=raw,file='
> +                                   + drive_path,
> +                         '-global', 'ds1225y.filename=' + nvram_path,
> +                         '-global', 'ds1225y.size=' + str(nvram_size),

You can drop the ds1225y.size=8200 parameter since that was a workaround for older 
QEMU versions that didn't have PROM support (see 
https://lists.gnu.org/archive/html/qemu-devel/2021-06/msg06951.html). The current 
version of QEMU will expose the MAC address provided by -nic via the PROM directly.

Also given that you are using "Run a program" you may not even need an nvram file 
once this option has been removed.

> +                         '-nic', 'user,model=dp83932,mac=00:00:00:02:03:04')
> +        self.vm.launch()
> +
> +        console_pattern = 'ARC Multiboot Version 174 (SGI Version 2.6)'
> +        wait_for_console_pattern(self, console_pattern)
> +
> +        wait_for_console_pattern(self, 'Use the arrow keys to select.')
> +        exec_command(self, '\x1b[B') # Cursor Control 'Down'

Probably worth mentioning this is the "Run a program" option in the comment?

> +        program = 'scsi(0)cdrom(2)fdisk(0)boot scsi(0)cdrom(2)fdisk(0)netbsd'
> +        exec_command(self, program)
> +        wait_for_console_pattern(self, 'NetBSD/arc Bootstrap, Revision 1.1')
> +
> +        # Terminal type? [vt100]
> +        console_pattern = 'erase ^H, werase ^W, kill ^U, intr ^C, status ^T'
> +        wait_for_console_pattern(self, console_pattern)
> +
> +        # (I)nstall, (S)hell or (H)alt
> +        exec_command_and_wait_for_pattern(self, '', 'Erase is backspace.')
> +        exec_command(self, 'S')
> +        interrupt_interactive_console_until_pattern(self, '#')
> +
> +        exec_command(self, 'ifconfig sn0 10.0.2.3/24')
> +        interrupt_interactive_console_until_pattern(self, '#')
> +
> +        exec_command_and_wait_for_pattern(self, 'ping -c 3 10.0.2.2',
> +                '3 packets transmitted, 3 packets received, 0.0% packet loss')
> +
> +        exec_command_and_wait_for_pattern(self, 'shutdown -r now',
> +                                          'rebooting...')
> 

Otherwise seems good to me.


ATB,

Mark.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] tests/acceptance: Test NetBSD 5.1 on the Jazz Magnum machine
  2021-07-05  0:58 ` Finn Thain
@ 2021-07-05  9:50   ` Philippe Mathieu-Daudé
  2021-07-07  1:03     ` Finn Thain
  0 siblings, 1 reply; 5+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-07-05  9:50 UTC (permalink / raw)
  To: Finn Thain
  Cc: Mark Cave-Ayland, qemu-devel, Wainer dos Santos Moschetta,
	Laurent Vivier, Kamil Rytarowski, Reinoud Zandijk, Cleber Rosa,
	Hervé Poussineau, Ryo ONODERA, Philippe Mathieu-Daudé,
	Aurelien Jarno

On 7/5/21 2:58 AM, Finn Thain wrote:
> On Mon, 5 Jul 2021, Philippe Mathieu-Daudé wrote:
> 
>> Test NetBSD 5.1 on the Jazz Magnum machine. As the firmware is not
>> redistributable, it has to be extracted from the floppy configuration
>> disk coming with a Mips Magnum 4000 system, then the NTPROM_BIN_PATH
>> environment variable has to be set. For convenience a NVRAM pre-
>> initialized to boot NetBSD is included. The test can be run as:
>>
>>   $ NTPROM_BIN_PATH=/path/to/ntprom.bin \
>>     avocado --show=app,console \
>>     run -t machine:magnum tests/acceptance/
>>   Fetching asset from tests/acceptance/machine_mips_jazz.py:MipsJazz.test_magnum_netbsd_5_1
>>    (1/1) tests/acceptance/machine_mips_jazz.py:MipsJazz.test_magnum_netbsd_5_1:
>>   console: EISA Bus 0 Initialization In Progress... Direct Memory Access (DMA) System Control Port B Timer 1 OK.
>>   console: ARC Multiboot Version 174 (SGI Version 2.6)
>>   console: Copyright (c) 1991,1992  Microsoft Corporation
>>   console: Actions:
>>   console: Start Windows NT
>>   console: Run a program
>>   console: Run setup
>>   console: Use the arrow keys to select.
>>   console: Press Enter to choose.
>>   console: Program to run:
>>   console: scsi(0)cdrom(2)fdisk(0)boot scsi(0)cdrom(2)fdisk(0)netbsd
>>   console: NetBSD/arc Bootstrap, Revision 1.1
>>   console: (builds@b7.netbsd.org, Sat Nov  6 14:06:36 UTC 2010)
>>   console: devopen: scsi(0)cdrom(2)fdisk(0) type disk file netbsd
>>   console: NetBSD 5.1 (RAMDISK) #0: Sat Nov  6 14:17:36 UTC 2010
>>   console: builds@b7.netbsd.org:/home/builds/ab/netbsd-5-1-RELEASE/arc/201011061943Z-obj/home/builds/ab/netbsd-5-1-RELEASE/src/sys/arch/arc/compile/RAMDISK
>>   console: MIPS Magnum

>> +class MipsJazz(Test):
>> +
>> +    timeout = 60
>> +
>> +    @skipUnless(os.getenv('NTPROM_BIN_PATH'), 'NTPROM_BIN_PATH not available')
>> +    def test_magnum_netbsd_5_1(self):
>> +        """
>> +        :avocado: tags=arch:mips64el
>> +        :avocado: tags=machine:magnum
>> +        :avocado: tags=os:netbsd
>> +        :avocado: tags=device:sonic
>> +        :avocado: tags=device:esp
>> +        """
>> +        drive_url = ('http://archive.netbsd.org/pub/NetBSD-archive/'
>> +                     'NetBSD-5.1/iso/arccd-5.1.iso')
> 
> This can be updated to NetBSD 9.2 (the regressions in NetBSD have been 
> fixed).

Indeed, with this change:

-- >8 --
diff --git a/tests/acceptance/machine_mips_jazz.py
b/tests/acceptance/machine_mips_jazz.py
index 0b6640edc12..54968959372 100644
--- a/tests/acceptance/machine_mips_jazz.py
+++ b/tests/acceptance/machine_mips_jazz.py
@@ -33,13 +33,11 @@ def test_magnum_netbsd_5_1(self):
         :avocado: tags=device:sonic
         :avocado: tags=device:esp
         """
-        drive_url = ('http://archive.netbsd.org/pub/NetBSD-archive/'
-                     'NetBSD-5.1/iso/arccd-5.1.iso')
-        drive_hash = ('c91a57fb373636247d1f1ce283a610ba529e208604a'
-                      'f2a9e0237551fb3d25459c7697775af8c8d35a9764e'
-                      'fca87cfb591f363643e93417cfdb8857215ceb405e')
+        drive_url = ('http://cdn.netbsd.org/pub/NetBSD/'
+                     'NetBSD-9.2/images/NetBSD-9.2-arc.iso')
+        drive_hash = '409c61aee5459e762cdb120d2591ed2e'
         drive_path = self.fetch_asset(drive_url, asset_hash=drive_hash,
-                                      algorithm='sha512')
+                                      algorithm='md5')
         ntprom_hash = '316de17820192c89b8ee6d9936ab8364a739ca53'
         ntprom_path = self.fetch_asset('file://' +
os.getenv('NTPROM_BIN_PATH'),
                                        asset_hash=ntprom_hash,
algorithm='sha1')
---

I get:

console: [   1.0000000] NetBSD 9.2 (RAMDISK) #0: Wed May 12 13:15:55 UTC
2021
console: [   1.0000000]
mkrepro@mkrepro.NetBSD.org:/usr/src/sys/arch/arc/compile/RAMDISK
console: [   1.0000000] MIPS Magnum
...
console: # [   6.1232105]
pmap_tlb_update_addr(0x87eb5f60,0x69a000,0x1ee59e, 0)
...
console: [  20.2174752] rebooting...
PASS (48.98 s)

>> +        nvram_path = 'nvram.bin'
> 
> Does the test work when nvram.bin is uninitialized by the ARC firmware?

No, because the serial is not used by default.

> Perhaps the default MAC address (from the SONIC PROM) would be more 
> appropriate? Alternatively, if you want to check that '00:00:00:02:03:04' 
> actually got used, you can do this:
> 
> erase ^H, werase ^W, kill ^U, intr ^C, status ^T
> Terminal type? [vt100] 
> Erase is backspace.                                                     
> (I)nstall, (S)hell or (H)alt ? s
> # ifconfig
> sn0: flags=0x8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
>         ec_capabilities=1<VLAN_MTU>
>         ec_enabled=0
>         address: 00:00:00:02:03:04
> lo0: flags=0x8048<LOOPBACK,RUNNING,MULTICAST> mtu 33160
> # 

I noticed it was not working, maybe I'm missing one of Mark's patches.

Thanks for the review,

Phil.


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] tests/acceptance: Test NetBSD 5.1 on the Jazz Magnum machine
  2021-07-05  9:50   ` Philippe Mathieu-Daudé
@ 2021-07-07  1:03     ` Finn Thain
  0 siblings, 0 replies; 5+ messages in thread
From: Finn Thain @ 2021-07-07  1:03 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé
  Cc: Mark Cave-Ayland, qemu-devel, Wainer dos Santos Moschetta,
	Laurent Vivier, Kamil Rytarowski, Reinoud Zandijk, Cleber Rosa,
	Hervé Poussineau, Ryo ONODERA, Philippe Mathieu-Daudé,
	Aurelien Jarno

[-- Attachment #1: Type: text/plain, Size: 5461 bytes --]

On Mon, 5 Jul 2021, Philippe Mathieu-Daudé wrote:

> On 7/5/21 2:58 AM, Finn Thain wrote:
> > On Mon, 5 Jul 2021, Philippe Mathieu-Daudé wrote:
> > 
> >> Test NetBSD 5.1 on the Jazz Magnum machine. As the firmware is not
> >> redistributable, it has to be extracted from the floppy configuration
> >> disk coming with a Mips Magnum 4000 system, then the NTPROM_BIN_PATH
> >> environment variable has to be set. For convenience a NVRAM pre-
> >> initialized to boot NetBSD is included. The test can be run as:
> >>
> >>   $ NTPROM_BIN_PATH=/path/to/ntprom.bin \
> >>     avocado --show=app,console \
> >>     run -t machine:magnum tests/acceptance/
> >>   Fetching asset from tests/acceptance/machine_mips_jazz.py:MipsJazz.test_magnum_netbsd_5_1
> >>    (1/1) tests/acceptance/machine_mips_jazz.py:MipsJazz.test_magnum_netbsd_5_1:
> >>   console: EISA Bus 0 Initialization In Progress... Direct Memory Access (DMA) System Control Port B Timer 1 OK.
> >>   console: ARC Multiboot Version 174 (SGI Version 2.6)
> >>   console: Copyright (c) 1991,1992  Microsoft Corporation
> >>   console: Actions:
> >>   console: Start Windows NT
> >>   console: Run a program
> >>   console: Run setup
> >>   console: Use the arrow keys to select.
> >>   console: Press Enter to choose.
> >>   console: Program to run:
> >>   console: scsi(0)cdrom(2)fdisk(0)boot scsi(0)cdrom(2)fdisk(0)netbsd
> >>   console: NetBSD/arc Bootstrap, Revision 1.1
> >>   console: (builds@b7.netbsd.org, Sat Nov  6 14:06:36 UTC 2010)
> >>   console: devopen: scsi(0)cdrom(2)fdisk(0) type disk file netbsd
> >>   console: NetBSD 5.1 (RAMDISK) #0: Sat Nov  6 14:17:36 UTC 2010
> >>   console: builds@b7.netbsd.org:/home/builds/ab/netbsd-5-1-RELEASE/arc/201011061943Z-obj/home/builds/ab/netbsd-5-1-RELEASE/src/sys/arch/arc/compile/RAMDISK
> >>   console: MIPS Magnum
> 
> >> +class MipsJazz(Test):
> >> +
> >> +    timeout = 60
> >> +
> >> +    @skipUnless(os.getenv('NTPROM_BIN_PATH'), 'NTPROM_BIN_PATH not available')
> >> +    def test_magnum_netbsd_5_1(self):
> >> +        """
> >> +        :avocado: tags=arch:mips64el
> >> +        :avocado: tags=machine:magnum
> >> +        :avocado: tags=os:netbsd
> >> +        :avocado: tags=device:sonic
> >> +        :avocado: tags=device:esp
> >> +        """
> >> +        drive_url = ('http://archive.netbsd.org/pub/NetBSD-archive/'
> >> +                     'NetBSD-5.1/iso/arccd-5.1.iso')
> > 
> > This can be updated to NetBSD 9.2 (the regressions in NetBSD have been 
> > fixed).
> 
> Indeed, with this change:
> 
> -- >8 --
> diff --git a/tests/acceptance/machine_mips_jazz.py
> b/tests/acceptance/machine_mips_jazz.py
> index 0b6640edc12..54968959372 100644
> --- a/tests/acceptance/machine_mips_jazz.py
> +++ b/tests/acceptance/machine_mips_jazz.py
> @@ -33,13 +33,11 @@ def test_magnum_netbsd_5_1(self):
>          :avocado: tags=device:sonic
>          :avocado: tags=device:esp
>          """
> -        drive_url = ('http://archive.netbsd.org/pub/NetBSD-archive/'
> -                     'NetBSD-5.1/iso/arccd-5.1.iso')
> -        drive_hash = ('c91a57fb373636247d1f1ce283a610ba529e208604a'
> -                      'f2a9e0237551fb3d25459c7697775af8c8d35a9764e'
> -                      'fca87cfb591f363643e93417cfdb8857215ceb405e')
> +        drive_url = ('http://cdn.netbsd.org/pub/NetBSD/'
> +                     'NetBSD-9.2/images/NetBSD-9.2-arc.iso')
> +        drive_hash = '409c61aee5459e762cdb120d2591ed2e'
>          drive_path = self.fetch_asset(drive_url, asset_hash=drive_hash,
> -                                      algorithm='sha512')
> +                                      algorithm='md5')
>          ntprom_hash = '316de17820192c89b8ee6d9936ab8364a739ca53'
>          ntprom_path = self.fetch_asset('file://' +
> os.getenv('NTPROM_BIN_PATH'),
>                                         asset_hash=ntprom_hash,
> algorithm='sha1')
> ---
> 
> I get:
> 
> console: [   1.0000000] NetBSD 9.2 (RAMDISK) #0: Wed May 12 13:15:55 UTC
> 2021
> console: [   1.0000000]
> mkrepro@mkrepro.NetBSD.org:/usr/src/sys/arch/arc/compile/RAMDISK
> console: [   1.0000000] MIPS Magnum
> ...
> console: # [   6.1232105]
> pmap_tlb_update_addr(0x87eb5f60,0x69a000,0x1ee59e, 0)
> ...
> console: [  20.2174752] rebooting...
> PASS (48.98 s)
> 
> >> +        nvram_path = 'nvram.bin'
> > 
> > Does the test work when nvram.bin is uninitialized by the ARC firmware?
> 
> No, because the serial is not used by default.
> 
> > Perhaps the default MAC address (from the SONIC PROM) would be more 
> > appropriate? Alternatively, if you want to check that '00:00:00:02:03:04' 
> > actually got used, you can do this:
> > 
> > erase ^H, werase ^W, kill ^U, intr ^C, status ^T
> > Terminal type? [vt100] 
> > Erase is backspace.                                                     
> > (I)nstall, (S)hell or (H)alt ? s
> > # ifconfig
> > sn0: flags=0x8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
> >         ec_capabilities=1<VLAN_MTU>
> >         ec_enabled=0
> >         address: 00:00:00:02:03:04
> > lo0: flags=0x8048<LOOPBACK,RUNNING,MULTICAST> mtu 33160
> > # 
> 
> I noticed it was not working, maybe I'm missing one of Mark's patches.
> 

That's strange. The MAC address is correct on mainline (as at 711c0418c8, 
at least) for NetBSD and Linux guests hosted on my x86 machine.

> Thanks for the review,
> 
> Phil.
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-07-07  1:04 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-05  0:26 [PATCH] tests/acceptance: Test NetBSD 5.1 on the Jazz Magnum machine Philippe Mathieu-Daudé
2021-07-05  0:58 ` Finn Thain
2021-07-05  9:50   ` Philippe Mathieu-Daudé
2021-07-07  1:03     ` Finn Thain
2021-07-05  6:25 ` Mark Cave-Ayland

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.