All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] tests/boot_linux_console: Test booting NetBSD via U-Boot on OrangePi PC
@ 2020-01-18 19:16 Philippe Mathieu-Daudé
  2020-01-18 19:16 ` [PATCH 1/4] Acceptance tests: Extract _console_interaction() Philippe Mathieu-Daudé
                   ` (4 more replies)
  0 siblings, 5 replies; 11+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-01-18 19:16 UTC (permalink / raw)
  To: qemu-devel, Cleber Rosa, Niek Linnenbank
  Cc: Fam Zheng, Eduardo Habkost, Alex Bennée,
	Philippe Mathieu-Daudé,
	Kamil Rytarowski, qemu-arm, Philippe Mathieu-Daudé

This series add a test on the OrangePi PC for:
- SD Card booting
- U-boot & UART
- NetBSD 9

I simply followed Niek description in docs/orangepi.rst:
https://www.mail-archive.com/qemu-devel@nongnu.org/msg669347.html

The sdcard image is big, but the test runs very quick (1min),
even on Travis CI: https://travis-ci.org/philmd/qemu/jobs/638823612#L3778

(11/48) tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_arm_orangepi_uboot_netbsd9:  PASS (65.17 s)

  $ TMPDIR=/tmp AVOCADO_ALLOW_LARGE_STORAGE=yes avocado --show=app,console run -t machine:orangepi-pc tests/acceptance/boot_linux_console.py
  JOB ID     : 4e11f0d22d121fd766ab5f0956ec464cf9fce64b
  JOB LOG    : /home/phil/avocado/job-results/job-2020-01-18T19.14-4e11f0d/job.log
   (1/1) tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_arm_orangepi_uboot_netbsd9:
  console: U-Boot SPL 2020.01+dfsg-1 (Jan 08 2020 - 08:19:44 +0000)
  console: DRAM: 1024 MiB
  console: Failed to set core voltage! Can't set CPU frequency
  console: Trying to boot from MMC1
  console: U-Boot 2020.01+dfsg-1 (Jan 08 2020 - 08:19:44 +0000) Allwinner Technology
  console: CPU:   Allwinner H3 (SUN8I 0000)
  console: Model: Xunlong Orange Pi Plus / Plus 2
  console: DRAM:  1 GiB
  console: MMC:   Device 'mmc@1c11000': seq 1 is in use by 'mmc@1c10000'
  console: mmc@1c0f000: 0, mmc@1c10000: 2, mmc@1c11000: 1
  console: Loading Environment from FAT... Warning: HDMI PHY init timeout!
  console: Warning: HDMI PHY init timeout!
  console: In:    serial
  console: Out:   serial
  console: Err:   serial
  console: Net:   phy interface7
  console: Could not get PHY for ethernet@1c30000: addr 0
  console: No ethernet found.
  console: starting USB...
  console: Bus usb@1c1b000: USB EHCI 1.00
  console: Bus usb@1c1d000: USB EHCI 1.00
  console: scanning bus usb@1c1b000 for devices... 1 USB Device(s) found
  console: scanning bus usb@1c1d000 for devices... 1 USB Device(s) found
  console: scanning usb for storage devices... 0 Storage Device(s) found
  console: Hit any key to stop autoboot:  0
  console: =>
  console: =>
  console: =>
  console: =>
  console: =>
  console: =>
  console: =>
  console: =>
  console: =>
  console: =>
  console: =>
  console: =>
  console: =>
  console: =>
  console: =>
  console: =>
  console: =>
  console: =>
  console: =>
  console: => setenv bootargs root=ld0a
  console: => setenv kernel netbsd-GENERIC.ub
  console: => setenv fdtfile dtb/sun8i-h3-orangepi-pc.dtb
  console: => setenv bootcmd 'fatload mmc 0:1 ${kernel_addr_r} ${kernel}; fatload mmc 0:1 ${fdt_addr_r} ${fdtfile}; fdt addr ${fdt_addr_r}; bootm ${kernel_addr_r} - ${fdt_addr_r}'
  console: => boot
  console: 8850008 bytes read in 2583 ms (3.3 MiB/s)
  console: 28162 bytes read in 34 ms (808.6 KiB/s)
  console: ## Booting kernel from Legacy Image at 42000000 ...
  console: Image Name:   NetBSD/earmv7hf 9.0_RC1
  console: Image Type:   ARM Linux Kernel Image (no loading done) (uncompressed)
  console: Data Size:    8849944 Bytes = 8.4 MiB
  console: Load Address: 00000000
  console: Entry Point:  00000000
  console: Verifying Checksum ... OK
  console: ## Flattened Device Tree blob at 43000000
  console: Booting using the fdt blob at 0x43000000
  console: XIP Kernel Image (no loading done)
  console: Loading Device Tree to 49ff6000, end 49fffe01 ... OK
  console: Starting kernel ...
  console: [   1.0000000] NetBSD/evbarm (fdt) booting ...
  console: [   1.0000000] [ Kernel symbol table missing! ]
  console: [   1.0000000] Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
  console: [   1.0000000]     2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
  console: [   1.0000000]     2018, 2019 The NetBSD Foundation, Inc.  All rights reserved.
  console: [   1.0000000] Copyright (c) 1982, 1986, 1989, 1991, 1993
  console: [   1.0000000]     The Regents of the University of California.  All rights reserved.
  console: [   1.0000000] NetBSD 9.0_RC1 (GENERIC) #0: Wed Nov 27 16:14:52 UTC 2019
  console: [   1.0000000]         mkrepro@mkrepro.NetBSD.org:/usr/src/sys/arch/evbarm/compile/GENERIC
  console: [   1.0000000] total memory = 1024 MB
  console: [   1.0000000] avail memory = 1003 MB
  console: [   1.0000000] armfdt0 (root)
  console: [   1.0000000] simplebus0 at armfdt0: Xunlong Orange Pi PC
  console: [   1.0000000] simplebus1 at simplebus0
  console: [   1.0000000] simplebus2 at simplebus0
  console: [   1.0000000] cpus0 at simplebus0
  console: [   1.0000000] simplebus3 at simplebus0
  console: [   1.0000000] cpu0 at cpus0: Cortex-A7 r0p5 (Cortex V7A core)
  console: [   1.0000000] cpu0: DC enabled IC enabled WB enabled LABT branch prediction enabled
  console: [   1.0000000] cpu0: 32KB/64B 2-way L1 VIPT Instruction cache
  console: [   1.0000000] cpu0: 32KB/64B 2-way write-back-locking-C L1 PIPT Data cache
  console: [   1.0000000] cpu0: 2304KB/64B 16-way write-through L2 PIPT Unified cache
  console: [   1.0000000] vfp0 at cpu0: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
  console: [   1.0000000] cpufreqdt0 at cpu0
  console: [   1.0000000] cpu1 at cpus0
  console: [   1.0000000] cpufreqdt1 at cpu1
  console: [   1.0000000] cpu2 at cpus0
  console: [   1.0000000] cpufreqdt2 at cpu2
  console: [   1.0000000] cpu3 at cpus0
  console: [   1.0000000] cpufreqdt3 at cpu3
  console: [   1.0000000] gic0 at simplebus1: GIC
  console: [   1.0000000] armgic0 at gic0: Generic Interrupt Controller, 160 sources (160 valid)
  console: [   1.0000000] armgic0: 256 Priorities, 128 SPIs, 16 PPIs, 16 SGIs
  console: [   1.0000000] fclock0 at simplebus2: 24000000 Hz fixed clock (osc24M)
  console: [   1.0000000] fclock1 at simplebus2: 32768 Hz fixed clock (ext_osc32k)
  console: [   1.0000000] gtmr0 at simplebus0: Generic Timer
  console: [   1.0000000] gtmr0: interrupting on GIC irq 27
  console: [   1.0000000] armgtmr0 at gtmr0: Generic Timer (24000 kHz, virtual)
  console: [   1.0000060] sun8ih3ccu0 at simplebus1: H3 CCU
  console: [   1.0000060] sun8ih3rccu0 at simplebus1: H3 PRCM CCU
  console: [   1.0000060] sunxigpio0 at simplebus1: PIO
  console: [   1.0000060] gpio0 at sunxigpio0: 94 pins
  console: [   1.0000060] sunxigpio0: interrupting on GIC irq 43
  console: [   1.0000060] sunxigpio1 at simplebus1: PIO
  console: [   1.0000060] gpio1 at sunxigpio1: 12 pins
  console: [   1.0000060] sunxigpio1: interrupting on GIC irq 77
  console: [   1.0000060] sunxisramc0 at simplebus1: SRAM Controller
  console: [   1.0000060] sun6idma0 at simplebus1: DMA controller (12 channels)
  console: [   1.0000060] sun6idma0: interrupting on GIC irq 82
  console: [   1.0000060] connector0 at simplebus0: HDMI connector
  console: [   1.0000060] com0 at simplebus1: ns16550a, working fifo
  console: [   1.0000060] com0: console
  console: [   1.0000060] com0: interrupting on GIC irq 32
  console: [   1.0000060] fregulator0 at simplebus0: vcc3v3
  console: [   1.0000060] fregulator1 at simplebus0: usb0-vbus
  console: [   1.0000060] fregulator2 at simplebus0: vcc3v0
  console: [   1.0000060] fregulator3 at simplebus0: vcc5v0
  console: [   1.0000060] sunxiusbphy0 at simplebus1: USB PHY
  console: [   1.0000060] /soc/clock@1000000 at simplebus1 not configured
  console: [   1.0000060] /soc/mixer@1100000 at simplebus1 not configured
  console: [   1.0000060] /soc/lcd-controller@1c0c000 at simplebus1 not configured
  console: [   1.0000060] /soc/hdmi@1ee0000 at simplebus1 not configured
  console: [   1.0000060] sunxirtc0 at simplebus1: RTC
  console: [   1.0000060] emac0 at simplebus1: EMAC
  console: [   1.0000060] emac0: Ethernet address 52:54:00:12:34:56
  console: [   1.0000060] emac0: interrupting on GIC irq 114
  console: [   1.0000060] ukphy0 at emac0 phy 1: OUI 0x0088a0, model 0x0000, rev. 0
  console: [   1.0000060] ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 100baseT4, auto
  console: [   1.0000060] h3codec0 at simplebus1: H3 Audio Codec (analog part)
  console: [   1.0000060] /soc/hdmi-phy@1ef0000 at simplebus1 not configured
  console: [   1.0000060] /opp_table0 at simplebus0 not configured
  console: [   1.0000060] sunxitwi0 at simplebus1: Marvell TWSI controller
  console: [   1.0000060] sunxitwi0: interrupting on GIC irq 76
  console: [   1.0000060] iic0 at sunxitwi0: I2C bus
  console: [   1.0000060] sy8106a0 at iic0 addr 0x65: Silergy SY8106A regulator
  console: [   1.0000060] /display-engine at simplebus0 not configured
  console: [   1.0000060] sunximmc0 at simplebus1: SD/MMC controller
  console: [   1.0000060] sunximmc0: interrupting on GIC irq 92
  console: [   1.0000060] motg0 at simplebus1: 'otg' mode not supported
  console: [   1.0000060] ehci0 at simplebus1: EHCI
  console: [   1.0000060] ehci0: interrupting on GIC irq 104
  console: ehci0: ohci or uhci probably not configured
  console: [   1.0000060] usb0 at ehci0: USB revision 2.0
  console: [   1.0000060] ohci0 at simplebus1: OHCI
  console: [   1.0000060] ohci0: interrupting on GIC irq 105
  console: [   1.0000060] ohci0: OHCI version 1.0
  console: [   1.0000060] usb1 at ohci0: USB revision 1.0
  console: [   1.0000060] ehci1 at simplebus1: EHCI
  console: [   1.0000060] ehci1: interrupting on GIC irq 106
  console: ehci1: ohci or uhci probably not configured
  console: [   1.0000060] usb2 at ehci1: USB revision 2.0
  console: [   1.0000060] ohci1 at simplebus1: OHCI
  console: [   1.0000060] ohci1: interrupting on GIC irq 107
  console: [   1.0000060] ohci1: OHCI version 1.0
  -console: [   1.0000060] usb3 at ohci1: USB revision 1.0
  console: [   1.0000060] ehci2 at simplebus1: EHCI
  console: [   1.0000060] ehci2: interrupting on GIC irq 108
  console: ehci2: ohci or uhci probably not configured
  console: [   1.0000060] usb4 at ehci2: USB revision 2.0
  console: [   1.0000060] ohci2 at simplebus1: OHCI
  console: [   1.0000060] ohci2: interrupting on GIC irq 109
  console: [   1.0000060] ohci2: OHCI version 1.0
  console: [   1.0000060] usb5 at ohci2: USB revision 1.0
  console: [   1.0000060] ehci3 at simplebus1: EHCI
  console: [   1.0000060] ehci3: interrupting on GIC irq 110
  console: ehci3: ohci or uhci probably not configured
  console: [   1.0000060] usb6 at ehci3: USB revision 2.0
  console: [   1.0000060] ohci3 at simplebus1: OHCI
  console: [   1.0000060] ohci3: interrupting on GIC irq 111
  console: [   1.0000060] ohci3: OHCI version 1.0
  console: [   1.0000060] usb7 at ohci3: USB revision 1.0
  console: [   1.0000060] sunxiwdt0 at simplebus1: Watchdog
  console: [   1.0000060] sunxiwdt0: default watchdog period is 16 seconds
  console: [   1.0000060] sunxicodec0 at simplebus1: H3 Audio Codec
  console: [   1.0000060] audio0 at sunxicodec0: playback, capture, full duplex, independent
  console: [   1.0000060] audio0: slinear_le:16 2ch 48000Hz, blk 40ms for playback
  console: [   1.0000060] audio0: slinear_le:16 2ch 48000Hz, blk 40ms for recording
  console: [   1.0000060] spkr0 at audio0: PC Speaker (synthesized)
  console: [   1.0000060] wsbell at spkr0 not configured
  console: [   1.0000060] /soc/ir@1f02000 at simplebus1 not configured
  console: [   1.0000060] /soc/gpu@1c40000 at simplebus1 not configured
  console: [   1.0000060] psci0 at simplebus0: PSCI 0.1
  console: [   1.0000060] gpioleds0 at simplebus0: orangepi:green:pwr orangepi:red:status
  console: [   1.0000060] gpiokeys0 at simplebus0: sw4
  console: [   1.0000060] sunxitimer0 at simplebus1: Timer
  console: [   1.0000060] /soc/video-codec@1c0e000 at simplebus1 not configured
  console: [   1.0000060] cpu3: Cortex-A7 r0p5 (Cortex V7A core)
  console: [   1.0000060] cpu3: DC enabled IC enabled WB enabled LABT branch prediction enabled
  console: [   1.0000060] cpu3: 32KB/64B 2-way L1 VIPT Instruction cache
  console: [   1.0000060] cpu3: 32KB/64B 2-way write-back-locking-C L1 PIPT Data cache
  console: [   1.0160154] cpu3: 2304KB/64B 16-way write-through L2 PIPT Unified cache
  console: [   1.0234452] vfp3 at cpu3: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
  console: [   1.0291986] cpu1: Cortex-A7 r0p5 (Cortex V7A core)
  console: [   1.0291986] cpu1: DC enabled IC enabled WB enabled LABT branch prediction enabled
  console: [   1.0291986] cpu1: 32KB/64B 2-way L1 VIPT Instruction cache
  console: [   1.0394135] cpu1: 32KB/64B 2-way write-back-locking-C L1 PIPT Data cache
  console: [   1.0394135] cpu1: 2304KB/64B 16-way write-through L2 PIPT Unified cache
  console: [   1.0394135] vfp1 at cpu1: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
  console: [   1.0493315] cpu2: Cortex-A7 r0p5 (Cortex V7A core)
  console: [   1.0634020] cpu2: DC enabled IC enabled WB enabled LABT branch prediction enabled
  console: [   1.0694913] cpu2: 32KB/64B 2-way L1 VIPT Instruction cache
  console: [   1.0694913] cpu2: 32KB/64B 2-way write-back-locking-C L1 PIPT Data cache
  console: [   1.0806243] cpu2: 2304KB/64B 16-way write-through L2 PIPT Unified cache
  console: [   1.0896281] vfp2 at cpu2: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
  console: [   1.6053940] sdmmc0 at sunximmc0
  console: [   1.9566931] uhub0 at usb0: NetBSD (0000) EHCI root hub (0000), class 9/0, rev 2.00/1.00, addr 1
  console: [   2.0663940] uhub1 at usb2: NetBSD (0000) EHCI root hub (0000), class 9/0, rev 2.00/1.00, addr 1
  console: [   2.1170633] uhub2 at usb1: NetBSD (0000) OHCI root hub (0000), class 9/0, rev 1.00/1.00, addr 1
  console: [   2.2277627] uhub3 at usb4: NetBSD (0000) EHCI root hub (0000), class 9/0, rev 2.00/1.00, addr 1
  console: [   2.2800297] uhub4 at usb3: NetBSD (0000) OHCI root hub (0000), class 9/0, rev 1.00/1.00, addr 1
  console: [   2.3289886] uhub5 at usb6: NetBSD (0000) EHCI root hub (0000), class 9/0, rev 2.00/1.00, addr 1
  console: [   2.4083724] uhub6 at usb7: NetBSD (0000) OHCI root hub (0000), class 9/0, rev 1.00/1.00, addr 1
  console: [   2.4895047] uhub7 at usb5: NetBSD (0000) OHCI root hub (0000), class 9/0, rev 1.00/1.00, addr 1
  console: [   2.8171937] sdmmc0: SD card status: 4-bit, C0
  console: [   2.8234040] ld0 at sdmmc0: <0xaa:0x5859:QEMU!:0x01:0xdeadbeef:0x062>
  console: [   2.8743967] ld0: 1290 MB, 655 cyl, 64 head, 63 sec, 512 bytes/sect x 2642944 sectors
  console: [   3.1588850] ld0: 4-bit width, High-Speed/SDR25, 50.000 MHz
  console: [   4.9942260] WARNING: 4 errors while detecting hardware; check system log.
  console: [   5.0142912] boot device: ld0
  console: [   5.0551260] root on ld0a dumps on ld0b
  console: [   5.2175484] root file system type: ffs
  console: [   5.2858559] kern.module.path=/stand/evbarm/9.0/modules
  console: Tue Jan 18 18:15:15 UTC 2050
  console: Starting root file system check:
  PASS (35.96 s)
  RESULTS    : PASS 1 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0
  JOB TIME   : 36.09 s

Based-on: <20200108200020.4745-1-nieklinnenbank@gmail.com>
"Add Allwinner H3 SoC and Orange Pi PC Machine" v3
https://www.mail-archive.com/qemu-devel@nongnu.org/msg669328.html

Philippe Mathieu-Daudé (4):
  Acceptance tests: Extract _console_interaction()
  Acceptance tests: Add interrupt_interactive_console_until_pattern()
  tests/boot_linux_console: Test booting NetBSD via U-Boot on OrangePi
    PC
  .travis.yml: Allow untrusted code and large files

 .travis.yml                               |  2 +
 tests/acceptance/avocado_qemu/__init__.py | 59 ++++++++++++++++-----
 tests/acceptance/boot_linux_console.py    | 63 +++++++++++++++++++++++
 3 files changed, 110 insertions(+), 14 deletions(-)

-- 
2.21.1



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

* [PATCH 1/4] Acceptance tests: Extract _console_interaction()
  2020-01-18 19:16 [PATCH 0/4] tests/boot_linux_console: Test booting NetBSD via U-Boot on OrangePi PC Philippe Mathieu-Daudé
@ 2020-01-18 19:16 ` Philippe Mathieu-Daudé
  2020-01-19  0:26   ` Niek Linnenbank
  2020-01-18 19:16 ` [PATCH 2/4] Acceptance tests: Add interrupt_interactive_console_until_pattern() Philippe Mathieu-Daudé
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 11+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-01-18 19:16 UTC (permalink / raw)
  To: qemu-devel, Cleber Rosa, Niek Linnenbank
  Cc: Fam Zheng, Eduardo Habkost, Alex Bennée,
	Philippe Mathieu-Daudé,
	Kamil Rytarowski, qemu-arm, Philippe Mathieu-Daudé

Since we are going to re-use the code shared between
wait_for_console_pattern() and exec_command_and_wait_for_pattern(),
extract the common part into a local function.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 tests/acceptance/avocado_qemu/__init__.py | 31 +++++++++++++----------
 1 file changed, 17 insertions(+), 14 deletions(-)

diff --git a/tests/acceptance/avocado_qemu/__init__.py b/tests/acceptance/avocado_qemu/__init__.py
index 6618ea67c1..0a50fcf2be 100644
--- a/tests/acceptance/avocado_qemu/__init__.py
+++ b/tests/acceptance/avocado_qemu/__init__.py
@@ -55,19 +55,14 @@ def pick_default_qemu_bin(arch=None):
         return qemu_bin_from_src_dir_path
 
 
-def wait_for_console_pattern(test, success_message, failure_message=None):
-    """
-    Waits for messages to appear on the console, while logging the content
-
-    :param test: an Avocado test containing a VM that will have its console
-                 read and probed for a success or failure message
-    :type test: :class:`avocado_qemu.Test`
-    :param success_message: if this message appears, test succeeds
-    :param failure_message: if this message appears, test fails
-    """
+def _console_interaction(test, success_message, failure_message,
+                         send_string):
     console = test.vm.console_socket.makefile()
     console_logger = logging.getLogger('console')
     while True:
+        if send_string:
+            test.vm.console_socket.sendall(send_string.encode())
+            send_string = None # send only once
         msg = console.readline().strip()
         if not msg:
             continue
@@ -79,6 +74,17 @@ def wait_for_console_pattern(test, success_message, failure_message=None):
             fail = 'Failure message found in console: %s' % failure_message
             test.fail(fail)
 
+def wait_for_console_pattern(test, success_message, failure_message=None):
+    """
+    Waits for messages to appear on the console, while logging the content
+
+    :param test: an Avocado test containing a VM that will have its console
+                 read and probed for a success or failure message
+    :type test: :class:`avocado_qemu.Test`
+    :param success_message: if this message appears, test succeeds
+    :param failure_message: if this message appears, test fails
+    """
+    _console_interaction(test, success_message, failure_message, None)
 
 def exec_command_and_wait_for_pattern(test, command,
                                       success_message, failure_message=None):
@@ -94,10 +100,7 @@ def exec_command_and_wait_for_pattern(test, command,
     :param success_message: if this message appears, test succeeds
     :param failure_message: if this message appears, test fails
     """
-    command += '\r'
-    test.vm.console_socket.sendall(command.encode())
-    wait_for_console_pattern(test, success_message, failure_message)
-
+    _console_interaction(test, success_message, failure_message, command + '\r')
 
 class Test(avocado.Test):
     def _get_unique_tag_val(self, tag_name):
-- 
2.21.1



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

* [PATCH 2/4] Acceptance tests: Add interrupt_interactive_console_until_pattern()
  2020-01-18 19:16 [PATCH 0/4] tests/boot_linux_console: Test booting NetBSD via U-Boot on OrangePi PC Philippe Mathieu-Daudé
  2020-01-18 19:16 ` [PATCH 1/4] Acceptance tests: Extract _console_interaction() Philippe Mathieu-Daudé
@ 2020-01-18 19:16 ` Philippe Mathieu-Daudé
  2020-01-19  0:26   ` Niek Linnenbank
  2020-01-18 19:16 ` [PATCH 3/4] tests/boot_linux_console: Test booting NetBSD via U-Boot on OrangePi PC Philippe Mathieu-Daudé
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 11+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-01-18 19:16 UTC (permalink / raw)
  To: qemu-devel, Cleber Rosa, Niek Linnenbank
  Cc: Fam Zheng, Eduardo Habkost, Alex Bennée,
	Philippe Mathieu-Daudé,
	Kamil Rytarowski, qemu-arm, Philippe Mathieu-Daudé

We need a function to interrupt interactive consoles.

Example: Interrupt U-Boot to set different environment values.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 tests/acceptance/avocado_qemu/__init__.py | 32 +++++++++++++++++++++--
 1 file changed, 30 insertions(+), 2 deletions(-)

diff --git a/tests/acceptance/avocado_qemu/__init__.py b/tests/acceptance/avocado_qemu/__init__.py
index 0a50fcf2be..d4358eb431 100644
--- a/tests/acceptance/avocado_qemu/__init__.py
+++ b/tests/acceptance/avocado_qemu/__init__.py
@@ -56,13 +56,15 @@ def pick_default_qemu_bin(arch=None):
 
 
 def _console_interaction(test, success_message, failure_message,
-                         send_string):
+                         send_string, keep_sending=False):
+    assert not keep_sending or send_string
     console = test.vm.console_socket.makefile()
     console_logger = logging.getLogger('console')
     while True:
         if send_string:
             test.vm.console_socket.sendall(send_string.encode())
-            send_string = None # send only once
+            if not keep_sending:
+                send_string = None # send only once
         msg = console.readline().strip()
         if not msg:
             continue
@@ -74,6 +76,32 @@ def _console_interaction(test, success_message, failure_message,
             fail = 'Failure message found in console: %s' % failure_message
             test.fail(fail)
 
+def interrupt_interactive_console_until_pattern(test, success_message,
+                                                failure_message=None,
+                                                interrupt_string='\r'):
+    """
+    Keep sending a string to interrupt a console prompt, while logging the
+    console output. Typical use case is to break a boot loader prompt, such:
+
+        Press a key within 5 seconds to interrupt boot process.
+        5
+        4
+        3
+        2
+        1
+        Booting default image...
+
+    :param test: an Avocado test containing a VM that will have its console
+                 read and probed for a success or failure message
+    :type test: :class:`avocado_qemu.Test`
+    :param success_message: if this message appears, test succeeds
+    :param failure_message: if this message appears, test fails
+    :param interrupt_string: a string to send to the console before trying
+                             to read a new line
+    """
+    _console_interaction(test, success_message, failure_message,
+                         interrupt_string, True)
+
 def wait_for_console_pattern(test, success_message, failure_message=None):
     """
     Waits for messages to appear on the console, while logging the content
-- 
2.21.1



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

* [PATCH 3/4] tests/boot_linux_console: Test booting NetBSD via U-Boot on OrangePi PC
  2020-01-18 19:16 [PATCH 0/4] tests/boot_linux_console: Test booting NetBSD via U-Boot on OrangePi PC Philippe Mathieu-Daudé
  2020-01-18 19:16 ` [PATCH 1/4] Acceptance tests: Extract _console_interaction() Philippe Mathieu-Daudé
  2020-01-18 19:16 ` [PATCH 2/4] Acceptance tests: Add interrupt_interactive_console_until_pattern() Philippe Mathieu-Daudé
@ 2020-01-18 19:16 ` Philippe Mathieu-Daudé
  2020-01-19  0:25   ` Niek Linnenbank
  2020-01-18 19:16 ` [PATCH 4/4] .travis.yml: Allow untrusted code and large files Philippe Mathieu-Daudé
  2020-01-19  8:52 ` [PATCH 0/4] tests/boot_linux_console: Test booting NetBSD via U-Boot on OrangePi PC Kamil Rytarowski
  4 siblings, 1 reply; 11+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-01-18 19:16 UTC (permalink / raw)
  To: qemu-devel, Cleber Rosa, Niek Linnenbank
  Cc: Fam Zheng, Eduardo Habkost, Alex Bennée,
	Philippe Mathieu-Daudé,
	Kamil Rytarowski, qemu-arm, Philippe Mathieu-Daudé

This test boots U-Boot then NetBSD (stored on a SD card) on
a OrangePi PC board.

As it requires ~1.3GB of storage, it is disabled by default.

U-Boot is built by the Debian project [1], and the SD card image
is provided by the NetBSD organization [2].

Once the compressed SD card image is downloaded (304MB) and
extracted, this test is fast:

  $ AVOCADO_ALLOW_LARGE_STORAGE=yes \
    avocado --show=app,console run -t machine:orangepi-pc \
      tests/acceptance/boot_linux_console.py
  console: U-Boot SPL 2020.01+dfsg-1 (Jan 08 2020 - 08:19:44 +0000)
  console: DRAM: 1024 MiB
  console: U-Boot 2020.01+dfsg-1 (Jan 08 2020 - 08:19:44 +0000) Allwinner Technology
  console: CPU:   Allwinner H3 (SUN8I 0000)
  console: scanning bus usb@1c1b000 for devices... 1 USB Device(s) found
  console: scanning bus usb@1c1d000 for devices... 1 USB Device(s) found
  console: scanning usb for storage devices... 0 Storage Device(s) found
  console: Hit any key to stop autoboot:  0
  console: => setenv bootargs root=ld0a
  console: => setenv kernel netbsd-GENERIC.ub
  console: => setenv fdtfile dtb/sun8i-h3-orangepi-pc.dtb
  console: => boot
  console: ## Booting kernel from Legacy Image at 42000000 ...
  console: Image Name:   NetBSD/earmv7hf 9.0_RC1
  console: Image Type:   ARM Linux Kernel Image (no loading done) (uncompressed)
  console: XIP Kernel Image (no loading done)
  console: Loading Device Tree to 49ff6000, end 49fffe01 ... OK
  console: Starting kernel ...
  console: [   1.0000000] NetBSD/evbarm (fdt) booting ...
  console: [   1.0000000] NetBSD 9.0_RC1 (GENERIC) #0: Wed Nov 27 16:14:52 UTC 2019
  console: [   1.0000000] simplebus0 at armfdt0: Xunlong Orange Pi PC
  console: [   1.0000000] cpu0 at cpus0: Cortex-A7 r0p5 (Cortex V7A core)
  console: [   1.0000000] cpu0: DC enabled IC enabled WB enabled LABT branch prediction enabled
  console: [   1.0000000] cpu0: 32KB/64B 2-way L1 VIPT Instruction cache
  console: [   1.0000000] cpu0: 32KB/64B 2-way write-back-locking-C L1 PIPT Data cache
  console: [   1.0000000] cpu0: 2304KB/64B 16-way write-through L2 PIPT Unified cache
  console: [   1.0000000] vfp0 at cpu0: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
  ...
  console: [   2.8171937] sdmmc0: SD card status: 4-bit, C0
  console: [   2.8234040] ld0 at sdmmc0: <0xaa:0x5859:QEMU!:0x01:0xdeadbeef:0x062>
  console: [   2.8743967] ld0: 1290 MB, 655 cyl, 64 head, 63 sec, 512 bytes/sect x 2642944 sectors
  console: [   3.1588850] ld0: 4-bit width, High-Speed/SDR25, 50.000 MHz
  console: [   4.9942260] WARNING: 4 errors while detecting hardware; check system log.
  console: [   5.0142912] boot device: ld0
  console: [   5.0551260] root on ld0a dumps on ld0b
  console: [   5.2175484] root file system type: ffs
  console: [   5.2858559] kern.module.path=/stand/evbarm/9.0/modules
  console: Tue Jan 18 18:15:15 UTC 2050
  console: Starting root file system check:
  PASS (35.96 s)
  RESULTS    : PASS 1 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0
  JOB TIME   : 36.09 s

Note, this test only took ~65 seconds to run on Travis-CI, see: [3].

This test is based on a description from Niek Linnenbank from [4].

[1] https://wiki.debian.org/InstallingDebianOn/Allwinner#Creating_a_bootable_SD_Card_with_u-boot
[2] https://wiki.netbsd.org/ports/evbarm/allwinner/
[3] https://travis-ci.org/philmd/qemu/jobs/638823612#L3778
[4] https://www.mail-archive.com/qemu-devel@nongnu.org/msg669347.html

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 tests/acceptance/boot_linux_console.py | 63 ++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py
index 55d0b8b036..56d3d6e9eb 100644
--- a/tests/acceptance/boot_linux_console.py
+++ b/tests/acceptance/boot_linux_console.py
@@ -16,6 +16,7 @@ import shutil
 from avocado import skipUnless
 from avocado_qemu import Test
 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 avocado.utils import process
 from avocado.utils import archive
@@ -551,6 +552,68 @@ class BootLinuxConsole(Test):
                                       'to <orangepipc>')
         self.wait_for_console_pattern('Starting Load Kernel Modules...')
 
+    @skipUnless(os.getenv('AVOCADO_ALLOW_LARGE_STORAGE'), 'storage limited')
+    def test_arm_orangepi_uboot_netbsd9(self):
+        """
+        :avocado: tags=arch:arm
+        :avocado: tags=machine:orangepi-pc
+        """
+        # This test download a 304MB compressed image and expand it to 1.3GB...
+        deb_url = ('http://snapshot.debian.org/archive/debian/'
+                   '20200108T145233Z/pool/main/u/u-boot/'
+                   'u-boot-sunxi_2020.01%2Bdfsg-1_armhf.deb')
+        deb_hash = 'f67f404a80753ca3d1258f13e38f2b060e13db99'
+        deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash)
+        # We use the common OrangePi PC 'plus' build of U-Boot for our secondary
+        # program loader (SPL). We will then set the path to the more specific
+        # OrangePi "PC" device tree blob with 'setenv fdtfile' in U-Boot prompt,
+        # before to boot NetBSD.
+        uboot_path = '/usr/lib/u-boot/orangepi_plus/u-boot-sunxi-with-spl.bin'
+        uboot_path = self.extract_from_deb(deb_path, uboot_path)
+        image_url = ('https://cdn.netbsd.org/pub/NetBSD/NetBSD-9.0_RC1/'
+                     'evbarm-earmv7hf/binary/gzimg/armv7.img.gz')
+        image_hash = '7f58d5c36600430a8bcebe7e999a8945a2be4d1f'
+        image_path_gz = self.fetch_asset(image_url, asset_hash=image_hash)
+        image_path = os.path.join(self.workdir, 'armv7.img')
+        image_drive_args = 'if=sd,format=raw,snapshot=on,file=' + image_path
+        archive.gzip_uncompress(image_path_gz, image_path)
+
+        # dd if=u-boot-sunxi-with-spl.bin of=armv7.img bs=1K seek=8 conv=notrunc
+        with open(uboot_path, 'rb') as f_in:
+            with open(image_path, 'r+b') as f_out:
+                f_out.seek(8 * 1024)
+                shutil.copyfileobj(f_in, f_out)
+
+        self.vm.set_console()
+        self.vm.add_args('-nic', 'user',
+                         '-drive', image_drive_args,
+                         '-no-reboot')
+        self.vm.launch()
+        wait_for_console_pattern(self, 'U-Boot 2020.01+dfsg-1')
+        interrupt_interactive_console_until_pattern(self,
+                                       'Hit any key to stop autoboot:',
+                                       'switch to partitions #0, OK')
+
+        exec_command_and_wait_for_pattern(self, '', '=>')
+        cmd = 'setenv bootargs root=ld0a'
+        exec_command_and_wait_for_pattern(self, cmd, '=>')
+        cmd = 'setenv kernel netbsd-GENERIC.ub'
+        exec_command_and_wait_for_pattern(self, cmd, '=>')
+        cmd = 'setenv fdtfile dtb/sun8i-h3-orangepi-pc.dtb'
+        exec_command_and_wait_for_pattern(self, cmd, '=>')
+        cmd = ("setenv bootcmd 'fatload mmc 0:1 ${kernel_addr_r} ${kernel}; "
+               "fatload mmc 0:1 ${fdt_addr_r} ${fdtfile}; "
+               "fdt addr ${fdt_addr_r}; "
+               "bootm ${kernel_addr_r} - ${fdt_addr_r}'")
+        exec_command_and_wait_for_pattern(self, cmd, '=>')
+
+        exec_command_and_wait_for_pattern(self, 'boot',
+                                          'Booting kernel from Legacy Image')
+        wait_for_console_pattern(self, 'Starting kernel ...')
+        wait_for_console_pattern(self, 'NetBSD 9.0_RC1 (GENERIC)')
+        # Wait for user-space
+        wait_for_console_pattern(self, 'Starting root file system check')
+
     def test_s390x_s390_ccw_virtio(self):
         """
         :avocado: tags=arch:s390x
-- 
2.21.1



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

* [PATCH 4/4] .travis.yml: Allow untrusted code and large files
  2020-01-18 19:16 [PATCH 0/4] tests/boot_linux_console: Test booting NetBSD via U-Boot on OrangePi PC Philippe Mathieu-Daudé
                   ` (2 preceding siblings ...)
  2020-01-18 19:16 ` [PATCH 3/4] tests/boot_linux_console: Test booting NetBSD via U-Boot on OrangePi PC Philippe Mathieu-Daudé
@ 2020-01-18 19:16 ` Philippe Mathieu-Daudé
  2020-01-19  0:28   ` Niek Linnenbank
  2020-01-19  8:52 ` [PATCH 0/4] tests/boot_linux_console: Test booting NetBSD via U-Boot on OrangePi PC Kamil Rytarowski
  4 siblings, 1 reply; 11+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-01-18 19:16 UTC (permalink / raw)
  To: qemu-devel, Cleber Rosa, Niek Linnenbank
  Cc: Fam Zheng, Eduardo Habkost, Alex Bennée,
	Philippe Mathieu-Daudé,
	Kamil Rytarowski, qemu-arm, Philippe Mathieu-Daudé

As Travis CI runs our tests in a disposable environment, we don't
care much if the binaries are trusted. The more we test the better.

Also, as of this commmit, the smallest available announced [1] is
"approx 18GB", plenty of space to run our acceptance tests.

Enable the proper environment variables to allow Avocado download
from untrusted sources, and to download large files.

Note: As of this commit, all our tests "Ran for 17 min 7 sec"
before succeeding, see [2].

[1] https://docs.travis-ci.com/user/reference/overview/#virtualisation-environment-vs-operating-system
[2] https://travis-ci.org/philmd/qemu/jobs/638823612#L3817

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 .travis.yml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/.travis.yml b/.travis.yml
index 638fba4799..b8b9df65a6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -260,6 +260,8 @@ matrix:
 
     # Acceptance (Functional) tests
     - env:
+        - AVOCADO_ALLOW_LARGE_STORAGE="yes"
+        - AVOCADO_ALLOW_UNTRUSTED_CODE="sure"
         - CONFIG="--python=/usr/bin/python3 --target-list=x86_64-softmmu,mips-softmmu,mips64el-softmmu,aarch64-softmmu,arm-softmmu,s390x-softmmu,alpha-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,sparc-softmmu"
         - TEST_CMD="make check-acceptance"
       after_failure:
-- 
2.21.1



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

* Re: [PATCH 3/4] tests/boot_linux_console: Test booting NetBSD via U-Boot on OrangePi PC
  2020-01-18 19:16 ` [PATCH 3/4] tests/boot_linux_console: Test booting NetBSD via U-Boot on OrangePi PC Philippe Mathieu-Daudé
@ 2020-01-19  0:25   ` Niek Linnenbank
  0 siblings, 0 replies; 11+ messages in thread
From: Niek Linnenbank @ 2020-01-19  0:25 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé
  Cc: Fam Zheng, Eduardo Habkost, Philippe Mathieu-Daudé,
	QEMU Developers, Kamil Rytarowski, qemu-arm, Cleber Rosa,
	Alex Bennée

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

Hi Philippe,

On Sat, Jan 18, 2020 at 8:16 PM Philippe Mathieu-Daudé <f4bug@amsat.org>
wrote:

> This test boots U-Boot then NetBSD (stored on a SD card) on
> a OrangePi PC board.
>
> As it requires ~1.3GB of storage, it is disabled by default.
>
> U-Boot is built by the Debian project [1], and the SD card image
> is provided by the NetBSD organization [2].
>

Thanks a lot for sending this patch, it very nicely complements the linux
tests to
prove that the ARM/Allwinner-H3 emulation is working properly!

I also see that you have used a pre-compiled binary from Debian to automate
it.
That works very well indeed.


> Once the compressed SD card image is downloaded (304MB) and
> extracted, this test is fast:
>
>   $ AVOCADO_ALLOW_LARGE_STORAGE=yes \
>     avocado --show=app,console run -t machine:orangepi-pc \
>       tests/acceptance/boot_linux_console.py
>   console: U-Boot SPL 2020.01+dfsg-1 (Jan 08 2020 - 08:19:44 +0000)
>   console: DRAM: 1024 MiB
>   console: U-Boot 2020.01+dfsg-1 (Jan 08 2020 - 08:19:44 +0000) Allwinner
> Technology
>   console: CPU:   Allwinner H3 (SUN8I 0000)
>   console: scanning bus usb@1c1b000 for devices... 1 USB Device(s) found
>   console: scanning bus usb@1c1d000 for devices... 1 USB Device(s) found
>   console: scanning usb for storage devices... 0 Storage Device(s) found
>   console: Hit any key to stop autoboot:  0
>   console: => setenv bootargs root=ld0a
>   console: => setenv kernel netbsd-GENERIC.ub
>   console: => setenv fdtfile dtb/sun8i-h3-orangepi-pc.dtb
>   console: => boot
>   console: ## Booting kernel from Legacy Image at 42000000 ...
>   console: Image Name:   NetBSD/earmv7hf 9.0_RC1
>   console: Image Type:   ARM Linux Kernel Image (no loading done)
> (uncompressed)
>   console: XIP Kernel Image (no loading done)
>   console: Loading Device Tree to 49ff6000, end 49fffe01 ... OK
>   console: Starting kernel ...
>   console: [   1.0000000] NetBSD/evbarm (fdt) booting ...
>   console: [   1.0000000] NetBSD 9.0_RC1 (GENERIC) #0: Wed Nov 27 16:14:52
> UTC 2019
>   console: [   1.0000000] simplebus0 at armfdt0: Xunlong Orange Pi PC
>   console: [   1.0000000] cpu0 at cpus0: Cortex-A7 r0p5 (Cortex V7A core)
>   console: [   1.0000000] cpu0: DC enabled IC enabled WB enabled LABT
> branch prediction enabled
>   console: [   1.0000000] cpu0: 32KB/64B 2-way L1 VIPT Instruction cache
>   console: [   1.0000000] cpu0: 32KB/64B 2-way write-back-locking-C L1
> PIPT Data cache
>   console: [   1.0000000] cpu0: 2304KB/64B 16-way write-through L2 PIPT
> Unified cache
>   console: [   1.0000000] vfp0 at cpu0: NEON MPE (VFP 3.0+), rounding, NaN
> propagation, denormals
>   ...
>   console: [   2.8171937] sdmmc0: SD card status: 4-bit, C0
>   console: [   2.8234040] ld0 at sdmmc0:
> <0xaa:0x5859:QEMU!:0x01:0xdeadbeef:0x062>
>   console: [   2.8743967] ld0: 1290 MB, 655 cyl, 64 head, 63 sec, 512
> bytes/sect x 2642944 sectors
>   console: [   3.1588850] ld0: 4-bit width, High-Speed/SDR25, 50.000 MHz
>   console: [   4.9942260] WARNING: 4 errors while detecting hardware;
> check system log.
>   console: [   5.0142912] boot device: ld0
>   console: [   5.0551260] root on ld0a dumps on ld0b
>   console: [   5.2175484] root file system type: ffs
>   console: [   5.2858559] kern.module.path=/stand/evbarm/9.0/modules
>   console: Tue Jan 18 18:15:15 UTC 2050
>   console: Starting root file system check:
>   PASS (35.96 s)
>   RESULTS    : PASS 1 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 |
> CANCEL 0
>   JOB TIME   : 36.09 s
>
> Note, this test only took ~65 seconds to run on Travis-CI, see: [3].
>

It is very fast, on my laptop it only took 23 seconds!


>
> This test is based on a description from Niek Linnenbank from [4].
>
> [1]
> https://wiki.debian.org/InstallingDebianOn/Allwinner#Creating_a_bootable_SD_Card_with_u-boot
> [2] https://wiki.netbsd.org/ports/evbarm/allwinner/
> [3] https://travis-ci.org/philmd/qemu/jobs/638823612#L3778
> [4] https://www.mail-archive.com/qemu-devel@nongnu.org/msg669347.html
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>
Tested-by: Niek Linnenbank <nieklinnenbank@gmail.com>

Regards,
Niek


> ---
>  tests/acceptance/boot_linux_console.py | 63 ++++++++++++++++++++++++++
>  1 file changed, 63 insertions(+)
>
> diff --git a/tests/acceptance/boot_linux_console.py
> b/tests/acceptance/boot_linux_console.py
> index 55d0b8b036..56d3d6e9eb 100644
> --- a/tests/acceptance/boot_linux_console.py
> +++ b/tests/acceptance/boot_linux_console.py
> @@ -16,6 +16,7 @@ import shutil
>  from avocado import skipUnless
>  from avocado_qemu import Test
>  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 avocado.utils import process
>  from avocado.utils import archive
> @@ -551,6 +552,68 @@ class BootLinuxConsole(Test):
>                                        'to <orangepipc>')
>          self.wait_for_console_pattern('Starting Load Kernel Modules...')
>
> +    @skipUnless(os.getenv('AVOCADO_ALLOW_LARGE_STORAGE'), 'storage
> limited')
> +    def test_arm_orangepi_uboot_netbsd9(self):
> +        """
> +        :avocado: tags=arch:arm
> +        :avocado: tags=machine:orangepi-pc
> +        """
> +        # This test download a 304MB compressed image and expand it to
> 1.3GB...
> +        deb_url = ('http://snapshot.debian.org/archive/debian/'
> +                   '20200108T145233Z/pool/main/u/u-boot/'
> +                   'u-boot-sunxi_2020.01%2Bdfsg-1_armhf.deb')
> +        deb_hash = 'f67f404a80753ca3d1258f13e38f2b060e13db99'
> +        deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash)
> +        # We use the common OrangePi PC 'plus' build of U-Boot for our
> secondary
> +        # program loader (SPL). We will then set the path to the more
> specific
> +        # OrangePi "PC" device tree blob with 'setenv fdtfile' in U-Boot
> prompt,
> +        # before to boot NetBSD.
> +        uboot_path =
> '/usr/lib/u-boot/orangepi_plus/u-boot-sunxi-with-spl.bin'
> +        uboot_path = self.extract_from_deb(deb_path, uboot_path)
> +        image_url = ('https://cdn.netbsd.org/pub/NetBSD/NetBSD-9.0_RC1/'
> +                     'evbarm-earmv7hf/binary/gzimg/armv7.img.gz')
> +        image_hash = '7f58d5c36600430a8bcebe7e999a8945a2be4d1f'
> +        image_path_gz = self.fetch_asset(image_url, asset_hash=image_hash)
> +        image_path = os.path.join(self.workdir, 'armv7.img')
> +        image_drive_args = 'if=sd,format=raw,snapshot=on,file=' +
> image_path
> +        archive.gzip_uncompress(image_path_gz, image_path)
> +
> +        # dd if=u-boot-sunxi-with-spl.bin of=armv7.img bs=1K seek=8
> conv=notrunc
> +        with open(uboot_path, 'rb') as f_in:
> +            with open(image_path, 'r+b') as f_out:
> +                f_out.seek(8 * 1024)
> +                shutil.copyfileobj(f_in, f_out)
> +
> +        self.vm.set_console()
> +        self.vm.add_args('-nic', 'user',
> +                         '-drive', image_drive_args,
> +                         '-no-reboot')
> +        self.vm.launch()
> +        wait_for_console_pattern(self, 'U-Boot 2020.01+dfsg-1')
> +        interrupt_interactive_console_until_pattern(self,
> +                                       'Hit any key to stop autoboot:',
> +                                       'switch to partitions #0, OK')
> +
> +        exec_command_and_wait_for_pattern(self, '', '=>')
> +        cmd = 'setenv bootargs root=ld0a'
> +        exec_command_and_wait_for_pattern(self, cmd, '=>')
> +        cmd = 'setenv kernel netbsd-GENERIC.ub'
> +        exec_command_and_wait_for_pattern(self, cmd, '=>')
> +        cmd = 'setenv fdtfile dtb/sun8i-h3-orangepi-pc.dtb'
> +        exec_command_and_wait_for_pattern(self, cmd, '=>')
> +        cmd = ("setenv bootcmd 'fatload mmc 0:1 ${kernel_addr_r}
> ${kernel}; "
> +               "fatload mmc 0:1 ${fdt_addr_r} ${fdtfile}; "
> +               "fdt addr ${fdt_addr_r}; "
> +               "bootm ${kernel_addr_r} - ${fdt_addr_r}'")
> +        exec_command_and_wait_for_pattern(self, cmd, '=>')
> +
> +        exec_command_and_wait_for_pattern(self, 'boot',
> +                                          'Booting kernel from Legacy
> Image')
> +        wait_for_console_pattern(self, 'Starting kernel ...')
> +        wait_for_console_pattern(self, 'NetBSD 9.0_RC1 (GENERIC)')
> +        # Wait for user-space
> +        wait_for_console_pattern(self, 'Starting root file system check')
> +
>      def test_s390x_s390_ccw_virtio(self):
>          """
>          :avocado: tags=arch:s390x
> --
> 2.21.1
>
>

-- 
Niek Linnenbank

[-- Attachment #2: Type: text/html, Size: 11740 bytes --]

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

* Re: [PATCH 1/4] Acceptance tests: Extract _console_interaction()
  2020-01-18 19:16 ` [PATCH 1/4] Acceptance tests: Extract _console_interaction() Philippe Mathieu-Daudé
@ 2020-01-19  0:26   ` Niek Linnenbank
  0 siblings, 0 replies; 11+ messages in thread
From: Niek Linnenbank @ 2020-01-19  0:26 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé
  Cc: Fam Zheng, Eduardo Habkost, Philippe Mathieu-Daudé,
	QEMU Developers, Kamil Rytarowski, qemu-arm, Cleber Rosa,
	Alex Bennée

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

On Sat, Jan 18, 2020 at 8:16 PM Philippe Mathieu-Daudé <f4bug@amsat.org>
wrote:

> Since we are going to re-use the code shared between
> wait_for_console_pattern() and exec_command_and_wait_for_pattern(),
> extract the common part into a local function.
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>
Tested-by: Niek Linnenbank <nieklinnenbank@gmail.com>

> ---
>  tests/acceptance/avocado_qemu/__init__.py | 31 +++++++++++++----------
>  1 file changed, 17 insertions(+), 14 deletions(-)
>
> diff --git a/tests/acceptance/avocado_qemu/__init__.py
> b/tests/acceptance/avocado_qemu/__init__.py
> index 6618ea67c1..0a50fcf2be 100644
> --- a/tests/acceptance/avocado_qemu/__init__.py
> +++ b/tests/acceptance/avocado_qemu/__init__.py
> @@ -55,19 +55,14 @@ def pick_default_qemu_bin(arch=None):
>          return qemu_bin_from_src_dir_path
>
>
> -def wait_for_console_pattern(test, success_message, failure_message=None):
> -    """
> -    Waits for messages to appear on the console, while logging the content
> -
> -    :param test: an Avocado test containing a VM that will have its
> console
> -                 read and probed for a success or failure message
> -    :type test: :class:`avocado_qemu.Test`
> -    :param success_message: if this message appears, test succeeds
> -    :param failure_message: if this message appears, test fails
> -    """
> +def _console_interaction(test, success_message, failure_message,
> +                         send_string):
>      console = test.vm.console_socket.makefile()
>      console_logger = logging.getLogger('console')
>      while True:
> +        if send_string:
> +            test.vm.console_socket.sendall(send_string.encode())
> +            send_string = None # send only once
>          msg = console.readline().strip()
>          if not msg:
>              continue
> @@ -79,6 +74,17 @@ def wait_for_console_pattern(test, success_message,
> failure_message=None):
>              fail = 'Failure message found in console: %s' %
> failure_message
>              test.fail(fail)
>
> +def wait_for_console_pattern(test, success_message, failure_message=None):
> +    """
> +    Waits for messages to appear on the console, while logging the content
> +
> +    :param test: an Avocado test containing a VM that will have its
> console
> +                 read and probed for a success or failure message
> +    :type test: :class:`avocado_qemu.Test`
> +    :param success_message: if this message appears, test succeeds
> +    :param failure_message: if this message appears, test fails
> +    """
> +    _console_interaction(test, success_message, failure_message, None)
>
>  def exec_command_and_wait_for_pattern(test, command,
>                                        success_message,
> failure_message=None):
> @@ -94,10 +100,7 @@ def exec_command_and_wait_for_pattern(test, command,
>      :param success_message: if this message appears, test succeeds
>      :param failure_message: if this message appears, test fails
>      """
> -    command += '\r'
> -    test.vm.console_socket.sendall(command.encode())
> -    wait_for_console_pattern(test, success_message, failure_message)
> -
> +    _console_interaction(test, success_message, failure_message, command
> + '\r')
>
>  class Test(avocado.Test):
>      def _get_unique_tag_val(self, tag_name):
> --
> 2.21.1
>
>

-- 
Niek Linnenbank

[-- Attachment #2: Type: text/html, Size: 4512 bytes --]

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

* Re: [PATCH 2/4] Acceptance tests: Add interrupt_interactive_console_until_pattern()
  2020-01-18 19:16 ` [PATCH 2/4] Acceptance tests: Add interrupt_interactive_console_until_pattern() Philippe Mathieu-Daudé
@ 2020-01-19  0:26   ` Niek Linnenbank
  0 siblings, 0 replies; 11+ messages in thread
From: Niek Linnenbank @ 2020-01-19  0:26 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé
  Cc: Fam Zheng, Eduardo Habkost, Philippe Mathieu-Daudé,
	QEMU Developers, Kamil Rytarowski, qemu-arm, Cleber Rosa,
	Alex Bennée

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

On Sat, Jan 18, 2020 at 8:16 PM Philippe Mathieu-Daudé <f4bug@amsat.org>
wrote:

> We need a function to interrupt interactive consoles.
>
> Example: Interrupt U-Boot to set different environment values.
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>
Tested-by: Niek Linnenbank <nieklinnenbank@gmail.com>

> ---
>  tests/acceptance/avocado_qemu/__init__.py | 32 +++++++++++++++++++++--
>  1 file changed, 30 insertions(+), 2 deletions(-)
>
> diff --git a/tests/acceptance/avocado_qemu/__init__.py
> b/tests/acceptance/avocado_qemu/__init__.py
> index 0a50fcf2be..d4358eb431 100644
> --- a/tests/acceptance/avocado_qemu/__init__.py
> +++ b/tests/acceptance/avocado_qemu/__init__.py
> @@ -56,13 +56,15 @@ def pick_default_qemu_bin(arch=None):
>
>
>  def _console_interaction(test, success_message, failure_message,
> -                         send_string):
> +                         send_string, keep_sending=False):
> +    assert not keep_sending or send_string
>      console = test.vm.console_socket.makefile()
>      console_logger = logging.getLogger('console')
>      while True:
>          if send_string:
>              test.vm.console_socket.sendall(send_string.encode())
> -            send_string = None # send only once
> +            if not keep_sending:
> +                send_string = None # send only once
>          msg = console.readline().strip()
>          if not msg:
>              continue
> @@ -74,6 +76,32 @@ def _console_interaction(test, success_message,
> failure_message,
>              fail = 'Failure message found in console: %s' %
> failure_message
>              test.fail(fail)
>
> +def interrupt_interactive_console_until_pattern(test, success_message,
> +                                                failure_message=None,
> +                                                interrupt_string='\r'):
> +    """
> +    Keep sending a string to interrupt a console prompt, while logging the
> +    console output. Typical use case is to break a boot loader prompt,
> such:
> +
> +        Press a key within 5 seconds to interrupt boot process.
> +        5
> +        4
> +        3
> +        2
> +        1
> +        Booting default image...
> +
> +    :param test: an Avocado test containing a VM that will have its
> console
> +                 read and probed for a success or failure message
> +    :type test: :class:`avocado_qemu.Test`
> +    :param success_message: if this message appears, test succeeds
> +    :param failure_message: if this message appears, test fails
> +    :param interrupt_string: a string to send to the console before trying
> +                             to read a new line
> +    """
> +    _console_interaction(test, success_message, failure_message,
> +                         interrupt_string, True)
> +
>  def wait_for_console_pattern(test, success_message, failure_message=None):
>      """
>      Waits for messages to appear on the console, while logging the content
> --
> 2.21.1
>
>

-- 
Niek Linnenbank

[-- Attachment #2: Type: text/html, Size: 4179 bytes --]

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

* Re: [PATCH 4/4] .travis.yml: Allow untrusted code and large files
  2020-01-18 19:16 ` [PATCH 4/4] .travis.yml: Allow untrusted code and large files Philippe Mathieu-Daudé
@ 2020-01-19  0:28   ` Niek Linnenbank
  2020-01-19 11:20     ` Philippe Mathieu-Daudé
  0 siblings, 1 reply; 11+ messages in thread
From: Niek Linnenbank @ 2020-01-19  0:28 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé
  Cc: Fam Zheng, Eduardo Habkost, Philippe Mathieu-Daudé,
	QEMU Developers, Kamil Rytarowski, qemu-arm, Cleber Rosa,
	Alex Bennée

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

Hi Philippe,

For some reason, I can't apply this patch with git am:

Applying: .travis.yml: Allow untrusted code and large files
error: patch failed: .travis.yml:260
error: .travis.yml: patch does not apply
Patch failed at 0001 .travis.yml: Allow untrusted code and large files
Use 'git am --show-current-patch' to see the failed patch

I didn't change the .travis.yml file. I'm using latest master from commit
7fb38daf256bd1bcbcb5ea556422283d0d55a1b1

Regards,
Niek

On Sat, Jan 18, 2020 at 8:16 PM Philippe Mathieu-Daudé <f4bug@amsat.org>
wrote:

> As Travis CI runs our tests in a disposable environment, we don't
> care much if the binaries are trusted. The more we test the better.
>
> Also, as of this commmit, the smallest available announced [1] is
> "approx 18GB", plenty of space to run our acceptance tests.
>
> Enable the proper environment variables to allow Avocado download
> from untrusted sources, and to download large files.
>
> Note: As of this commit, all our tests "Ran for 17 min 7 sec"
> before succeeding, see [2].
>
> [1]
> https://docs.travis-ci.com/user/reference/overview/#virtualisation-environment-vs-operating-system
> [2] https://travis-ci.org/philmd/qemu/jobs/638823612#L3817
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>  .travis.yml | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/.travis.yml b/.travis.yml
> index 638fba4799..b8b9df65a6 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -260,6 +260,8 @@ matrix:
>
>      # Acceptance (Functional) tests
>      - env:
> +        - AVOCADO_ALLOW_LARGE_STORAGE="yes"
> +        - AVOCADO_ALLOW_UNTRUSTED_CODE="sure"
>          - CONFIG="--python=/usr/bin/python3
> --target-list=x86_64-softmmu,mips-softmmu,mips64el-softmmu,aarch64-softmmu,arm-softmmu,s390x-softmmu,alpha-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,sparc-softmmu"
>          - TEST_CMD="make check-acceptance"
>        after_failure:
> --
> 2.21.1
>
>

-- 
Niek Linnenbank

[-- Attachment #2: Type: text/html, Size: 3026 bytes --]

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

* Re: [PATCH 0/4] tests/boot_linux_console: Test booting NetBSD via U-Boot on OrangePi PC
  2020-01-18 19:16 [PATCH 0/4] tests/boot_linux_console: Test booting NetBSD via U-Boot on OrangePi PC Philippe Mathieu-Daudé
                   ` (3 preceding siblings ...)
  2020-01-18 19:16 ` [PATCH 4/4] .travis.yml: Allow untrusted code and large files Philippe Mathieu-Daudé
@ 2020-01-19  8:52 ` Kamil Rytarowski
  4 siblings, 0 replies; 11+ messages in thread
From: Kamil Rytarowski @ 2020-01-19  8:52 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel, Cleber Rosa, Niek Linnenbank
  Cc: Fam Zheng, Eduardo Habkost, Alex Bennée, Kamil Rytarowski,
	qemu-arm, Philippe Mathieu-Daudé


[-- Attachment #1.1: Type: text/plain, Size: 16407 bytes --]

Thank you for improving testing of the NetBSD target.

On 18.01.2020 20:16, Philippe Mathieu-Daudé wrote:
> This series add a test on the OrangePi PC for:
> - SD Card booting
> - U-boot & UART
> - NetBSD 9
> 
> I simply followed Niek description in docs/orangepi.rst:
> https://www.mail-archive.com/qemu-devel@nongnu.org/msg669347.html
> 
> The sdcard image is big, but the test runs very quick (1min),
> even on Travis CI: https://travis-ci.org/philmd/qemu/jobs/638823612#L3778
> 
> (11/48) tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_arm_orangepi_uboot_netbsd9:  PASS (65.17 s)
> 
>   $ TMPDIR=/tmp AVOCADO_ALLOW_LARGE_STORAGE=yes avocado --show=app,console run -t machine:orangepi-pc tests/acceptance/boot_linux_console.py
>   JOB ID     : 4e11f0d22d121fd766ab5f0956ec464cf9fce64b
>   JOB LOG    : /home/phil/avocado/job-results/job-2020-01-18T19.14-4e11f0d/job.log
>    (1/1) tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_arm_orangepi_uboot_netbsd9:
>   console: U-Boot SPL 2020.01+dfsg-1 (Jan 08 2020 - 08:19:44 +0000)
>   console: DRAM: 1024 MiB
>   console: Failed to set core voltage! Can't set CPU frequency
>   console: Trying to boot from MMC1
>   console: U-Boot 2020.01+dfsg-1 (Jan 08 2020 - 08:19:44 +0000) Allwinner Technology
>   console: CPU:   Allwinner H3 (SUN8I 0000)
>   console: Model: Xunlong Orange Pi Plus / Plus 2
>   console: DRAM:  1 GiB
>   console: MMC:   Device 'mmc@1c11000': seq 1 is in use by 'mmc@1c10000'
>   console: mmc@1c0f000: 0, mmc@1c10000: 2, mmc@1c11000: 1
>   console: Loading Environment from FAT... Warning: HDMI PHY init timeout!
>   console: Warning: HDMI PHY init timeout!
>   console: In:    serial
>   console: Out:   serial
>   console: Err:   serial
>   console: Net:   phy interface7
>   console: Could not get PHY for ethernet@1c30000: addr 0
>   console: No ethernet found.
>   console: starting USB...
>   console: Bus usb@1c1b000: USB EHCI 1.00
>   console: Bus usb@1c1d000: USB EHCI 1.00
>   console: scanning bus usb@1c1b000 for devices... 1 USB Device(s) found
>   console: scanning bus usb@1c1d000 for devices... 1 USB Device(s) found
>   console: scanning usb for storage devices... 0 Storage Device(s) found
>   console: Hit any key to stop autoboot:  0
>   console: =>
>   console: =>
>   console: =>
>   console: =>
>   console: =>
>   console: =>
>   console: =>
>   console: =>
>   console: =>
>   console: =>
>   console: =>
>   console: =>
>   console: =>
>   console: =>
>   console: =>
>   console: =>
>   console: =>
>   console: =>
>   console: =>
>   console: => setenv bootargs root=ld0a
>   console: => setenv kernel netbsd-GENERIC.ub
>   console: => setenv fdtfile dtb/sun8i-h3-orangepi-pc.dtb
>   console: => setenv bootcmd 'fatload mmc 0:1 ${kernel_addr_r} ${kernel}; fatload mmc 0:1 ${fdt_addr_r} ${fdtfile}; fdt addr ${fdt_addr_r}; bootm ${kernel_addr_r} - ${fdt_addr_r}'
>   console: => boot
>   console: 8850008 bytes read in 2583 ms (3.3 MiB/s)
>   console: 28162 bytes read in 34 ms (808.6 KiB/s)
>   console: ## Booting kernel from Legacy Image at 42000000 ...
>   console: Image Name:   NetBSD/earmv7hf 9.0_RC1
>   console: Image Type:   ARM Linux Kernel Image (no loading done) (uncompressed)
>   console: Data Size:    8849944 Bytes = 8.4 MiB
>   console: Load Address: 00000000
>   console: Entry Point:  00000000
>   console: Verifying Checksum ... OK
>   console: ## Flattened Device Tree blob at 43000000
>   console: Booting using the fdt blob at 0x43000000
>   console: XIP Kernel Image (no loading done)
>   console: Loading Device Tree to 49ff6000, end 49fffe01 ... OK
>   console: Starting kernel ...
>   console: [   1.0000000] NetBSD/evbarm (fdt) booting ...
>   console: [   1.0000000] [ Kernel symbol table missing! ]
>   console: [   1.0000000] Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
>   console: [   1.0000000]     2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
>   console: [   1.0000000]     2018, 2019 The NetBSD Foundation, Inc.  All rights reserved.
>   console: [   1.0000000] Copyright (c) 1982, 1986, 1989, 1991, 1993
>   console: [   1.0000000]     The Regents of the University of California.  All rights reserved.
>   console: [   1.0000000] NetBSD 9.0_RC1 (GENERIC) #0: Wed Nov 27 16:14:52 UTC 2019
>   console: [   1.0000000]         mkrepro@mkrepro.NetBSD.org:/usr/src/sys/arch/evbarm/compile/GENERIC
>   console: [   1.0000000] total memory = 1024 MB
>   console: [   1.0000000] avail memory = 1003 MB
>   console: [   1.0000000] armfdt0 (root)
>   console: [   1.0000000] simplebus0 at armfdt0: Xunlong Orange Pi PC
>   console: [   1.0000000] simplebus1 at simplebus0
>   console: [   1.0000000] simplebus2 at simplebus0
>   console: [   1.0000000] cpus0 at simplebus0
>   console: [   1.0000000] simplebus3 at simplebus0
>   console: [   1.0000000] cpu0 at cpus0: Cortex-A7 r0p5 (Cortex V7A core)
>   console: [   1.0000000] cpu0: DC enabled IC enabled WB enabled LABT branch prediction enabled
>   console: [   1.0000000] cpu0: 32KB/64B 2-way L1 VIPT Instruction cache
>   console: [   1.0000000] cpu0: 32KB/64B 2-way write-back-locking-C L1 PIPT Data cache
>   console: [   1.0000000] cpu0: 2304KB/64B 16-way write-through L2 PIPT Unified cache
>   console: [   1.0000000] vfp0 at cpu0: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
>   console: [   1.0000000] cpufreqdt0 at cpu0
>   console: [   1.0000000] cpu1 at cpus0
>   console: [   1.0000000] cpufreqdt1 at cpu1
>   console: [   1.0000000] cpu2 at cpus0
>   console: [   1.0000000] cpufreqdt2 at cpu2
>   console: [   1.0000000] cpu3 at cpus0
>   console: [   1.0000000] cpufreqdt3 at cpu3
>   console: [   1.0000000] gic0 at simplebus1: GIC
>   console: [   1.0000000] armgic0 at gic0: Generic Interrupt Controller, 160 sources (160 valid)
>   console: [   1.0000000] armgic0: 256 Priorities, 128 SPIs, 16 PPIs, 16 SGIs
>   console: [   1.0000000] fclock0 at simplebus2: 24000000 Hz fixed clock (osc24M)
>   console: [   1.0000000] fclock1 at simplebus2: 32768 Hz fixed clock (ext_osc32k)
>   console: [   1.0000000] gtmr0 at simplebus0: Generic Timer
>   console: [   1.0000000] gtmr0: interrupting on GIC irq 27
>   console: [   1.0000000] armgtmr0 at gtmr0: Generic Timer (24000 kHz, virtual)
>   console: [   1.0000060] sun8ih3ccu0 at simplebus1: H3 CCU
>   console: [   1.0000060] sun8ih3rccu0 at simplebus1: H3 PRCM CCU
>   console: [   1.0000060] sunxigpio0 at simplebus1: PIO
>   console: [   1.0000060] gpio0 at sunxigpio0: 94 pins
>   console: [   1.0000060] sunxigpio0: interrupting on GIC irq 43
>   console: [   1.0000060] sunxigpio1 at simplebus1: PIO
>   console: [   1.0000060] gpio1 at sunxigpio1: 12 pins
>   console: [   1.0000060] sunxigpio1: interrupting on GIC irq 77
>   console: [   1.0000060] sunxisramc0 at simplebus1: SRAM Controller
>   console: [   1.0000060] sun6idma0 at simplebus1: DMA controller (12 channels)
>   console: [   1.0000060] sun6idma0: interrupting on GIC irq 82
>   console: [   1.0000060] connector0 at simplebus0: HDMI connector
>   console: [   1.0000060] com0 at simplebus1: ns16550a, working fifo
>   console: [   1.0000060] com0: console
>   console: [   1.0000060] com0: interrupting on GIC irq 32
>   console: [   1.0000060] fregulator0 at simplebus0: vcc3v3
>   console: [   1.0000060] fregulator1 at simplebus0: usb0-vbus
>   console: [   1.0000060] fregulator2 at simplebus0: vcc3v0
>   console: [   1.0000060] fregulator3 at simplebus0: vcc5v0
>   console: [   1.0000060] sunxiusbphy0 at simplebus1: USB PHY
>   console: [   1.0000060] /soc/clock@1000000 at simplebus1 not configured
>   console: [   1.0000060] /soc/mixer@1100000 at simplebus1 not configured
>   console: [   1.0000060] /soc/lcd-controller@1c0c000 at simplebus1 not configured
>   console: [   1.0000060] /soc/hdmi@1ee0000 at simplebus1 not configured
>   console: [   1.0000060] sunxirtc0 at simplebus1: RTC
>   console: [   1.0000060] emac0 at simplebus1: EMAC
>   console: [   1.0000060] emac0: Ethernet address 52:54:00:12:34:56
>   console: [   1.0000060] emac0: interrupting on GIC irq 114
>   console: [   1.0000060] ukphy0 at emac0 phy 1: OUI 0x0088a0, model 0x0000, rev. 0
>   console: [   1.0000060] ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 100baseT4, auto
>   console: [   1.0000060] h3codec0 at simplebus1: H3 Audio Codec (analog part)
>   console: [   1.0000060] /soc/hdmi-phy@1ef0000 at simplebus1 not configured
>   console: [   1.0000060] /opp_table0 at simplebus0 not configured
>   console: [   1.0000060] sunxitwi0 at simplebus1: Marvell TWSI controller
>   console: [   1.0000060] sunxitwi0: interrupting on GIC irq 76
>   console: [   1.0000060] iic0 at sunxitwi0: I2C bus
>   console: [   1.0000060] sy8106a0 at iic0 addr 0x65: Silergy SY8106A regulator
>   console: [   1.0000060] /display-engine at simplebus0 not configured
>   console: [   1.0000060] sunximmc0 at simplebus1: SD/MMC controller
>   console: [   1.0000060] sunximmc0: interrupting on GIC irq 92
>   console: [   1.0000060] motg0 at simplebus1: 'otg' mode not supported
>   console: [   1.0000060] ehci0 at simplebus1: EHCI
>   console: [   1.0000060] ehci0: interrupting on GIC irq 104
>   console: ehci0: ohci or uhci probably not configured
>   console: [   1.0000060] usb0 at ehci0: USB revision 2.0
>   console: [   1.0000060] ohci0 at simplebus1: OHCI
>   console: [   1.0000060] ohci0: interrupting on GIC irq 105
>   console: [   1.0000060] ohci0: OHCI version 1.0
>   console: [   1.0000060] usb1 at ohci0: USB revision 1.0
>   console: [   1.0000060] ehci1 at simplebus1: EHCI
>   console: [   1.0000060] ehci1: interrupting on GIC irq 106
>   console: ehci1: ohci or uhci probably not configured
>   console: [   1.0000060] usb2 at ehci1: USB revision 2.0
>   console: [   1.0000060] ohci1 at simplebus1: OHCI
>   console: [   1.0000060] ohci1: interrupting on GIC irq 107
>   console: [   1.0000060] ohci1: OHCI version 1.0
>   -console: [   1.0000060] usb3 at ohci1: USB revision 1.0
>   console: [   1.0000060] ehci2 at simplebus1: EHCI
>   console: [   1.0000060] ehci2: interrupting on GIC irq 108
>   console: ehci2: ohci or uhci probably not configured
>   console: [   1.0000060] usb4 at ehci2: USB revision 2.0
>   console: [   1.0000060] ohci2 at simplebus1: OHCI
>   console: [   1.0000060] ohci2: interrupting on GIC irq 109
>   console: [   1.0000060] ohci2: OHCI version 1.0
>   console: [   1.0000060] usb5 at ohci2: USB revision 1.0
>   console: [   1.0000060] ehci3 at simplebus1: EHCI
>   console: [   1.0000060] ehci3: interrupting on GIC irq 110
>   console: ehci3: ohci or uhci probably not configured
>   console: [   1.0000060] usb6 at ehci3: USB revision 2.0
>   console: [   1.0000060] ohci3 at simplebus1: OHCI
>   console: [   1.0000060] ohci3: interrupting on GIC irq 111
>   console: [   1.0000060] ohci3: OHCI version 1.0
>   console: [   1.0000060] usb7 at ohci3: USB revision 1.0
>   console: [   1.0000060] sunxiwdt0 at simplebus1: Watchdog
>   console: [   1.0000060] sunxiwdt0: default watchdog period is 16 seconds
>   console: [   1.0000060] sunxicodec0 at simplebus1: H3 Audio Codec
>   console: [   1.0000060] audio0 at sunxicodec0: playback, capture, full duplex, independent
>   console: [   1.0000060] audio0: slinear_le:16 2ch 48000Hz, blk 40ms for playback
>   console: [   1.0000060] audio0: slinear_le:16 2ch 48000Hz, blk 40ms for recording
>   console: [   1.0000060] spkr0 at audio0: PC Speaker (synthesized)
>   console: [   1.0000060] wsbell at spkr0 not configured
>   console: [   1.0000060] /soc/ir@1f02000 at simplebus1 not configured
>   console: [   1.0000060] /soc/gpu@1c40000 at simplebus1 not configured
>   console: [   1.0000060] psci0 at simplebus0: PSCI 0.1
>   console: [   1.0000060] gpioleds0 at simplebus0: orangepi:green:pwr orangepi:red:status
>   console: [   1.0000060] gpiokeys0 at simplebus0: sw4
>   console: [   1.0000060] sunxitimer0 at simplebus1: Timer
>   console: [   1.0000060] /soc/video-codec@1c0e000 at simplebus1 not configured
>   console: [   1.0000060] cpu3: Cortex-A7 r0p5 (Cortex V7A core)
>   console: [   1.0000060] cpu3: DC enabled IC enabled WB enabled LABT branch prediction enabled
>   console: [   1.0000060] cpu3: 32KB/64B 2-way L1 VIPT Instruction cache
>   console: [   1.0000060] cpu3: 32KB/64B 2-way write-back-locking-C L1 PIPT Data cache
>   console: [   1.0160154] cpu3: 2304KB/64B 16-way write-through L2 PIPT Unified cache
>   console: [   1.0234452] vfp3 at cpu3: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
>   console: [   1.0291986] cpu1: Cortex-A7 r0p5 (Cortex V7A core)
>   console: [   1.0291986] cpu1: DC enabled IC enabled WB enabled LABT branch prediction enabled
>   console: [   1.0291986] cpu1: 32KB/64B 2-way L1 VIPT Instruction cache
>   console: [   1.0394135] cpu1: 32KB/64B 2-way write-back-locking-C L1 PIPT Data cache
>   console: [   1.0394135] cpu1: 2304KB/64B 16-way write-through L2 PIPT Unified cache
>   console: [   1.0394135] vfp1 at cpu1: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
>   console: [   1.0493315] cpu2: Cortex-A7 r0p5 (Cortex V7A core)
>   console: [   1.0634020] cpu2: DC enabled IC enabled WB enabled LABT branch prediction enabled
>   console: [   1.0694913] cpu2: 32KB/64B 2-way L1 VIPT Instruction cache
>   console: [   1.0694913] cpu2: 32KB/64B 2-way write-back-locking-C L1 PIPT Data cache
>   console: [   1.0806243] cpu2: 2304KB/64B 16-way write-through L2 PIPT Unified cache
>   console: [   1.0896281] vfp2 at cpu2: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
>   console: [   1.6053940] sdmmc0 at sunximmc0
>   console: [   1.9566931] uhub0 at usb0: NetBSD (0000) EHCI root hub (0000), class 9/0, rev 2.00/1.00, addr 1
>   console: [   2.0663940] uhub1 at usb2: NetBSD (0000) EHCI root hub (0000), class 9/0, rev 2.00/1.00, addr 1
>   console: [   2.1170633] uhub2 at usb1: NetBSD (0000) OHCI root hub (0000), class 9/0, rev 1.00/1.00, addr 1
>   console: [   2.2277627] uhub3 at usb4: NetBSD (0000) EHCI root hub (0000), class 9/0, rev 2.00/1.00, addr 1
>   console: [   2.2800297] uhub4 at usb3: NetBSD (0000) OHCI root hub (0000), class 9/0, rev 1.00/1.00, addr 1
>   console: [   2.3289886] uhub5 at usb6: NetBSD (0000) EHCI root hub (0000), class 9/0, rev 2.00/1.00, addr 1
>   console: [   2.4083724] uhub6 at usb7: NetBSD (0000) OHCI root hub (0000), class 9/0, rev 1.00/1.00, addr 1
>   console: [   2.4895047] uhub7 at usb5: NetBSD (0000) OHCI root hub (0000), class 9/0, rev 1.00/1.00, addr 1
>   console: [   2.8171937] sdmmc0: SD card status: 4-bit, C0
>   console: [   2.8234040] ld0 at sdmmc0: <0xaa:0x5859:QEMU!:0x01:0xdeadbeef:0x062>
>   console: [   2.8743967] ld0: 1290 MB, 655 cyl, 64 head, 63 sec, 512 bytes/sect x 2642944 sectors
>   console: [   3.1588850] ld0: 4-bit width, High-Speed/SDR25, 50.000 MHz
>   console: [   4.9942260] WARNING: 4 errors while detecting hardware; check system log.
>   console: [   5.0142912] boot device: ld0
>   console: [   5.0551260] root on ld0a dumps on ld0b
>   console: [   5.2175484] root file system type: ffs
>   console: [   5.2858559] kern.module.path=/stand/evbarm/9.0/modules
>   console: Tue Jan 18 18:15:15 UTC 2050
>   console: Starting root file system check:
>   PASS (35.96 s)
>   RESULTS    : PASS 1 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0
>   JOB TIME   : 36.09 s
> 
> Based-on: <20200108200020.4745-1-nieklinnenbank@gmail.com>
> "Add Allwinner H3 SoC and Orange Pi PC Machine" v3
> https://www.mail-archive.com/qemu-devel@nongnu.org/msg669328.html
> 
> Philippe Mathieu-Daudé (4):
>   Acceptance tests: Extract _console_interaction()
>   Acceptance tests: Add interrupt_interactive_console_until_pattern()
>   tests/boot_linux_console: Test booting NetBSD via U-Boot on OrangePi
>     PC
>   .travis.yml: Allow untrusted code and large files
> 
>  .travis.yml                               |  2 +
>  tests/acceptance/avocado_qemu/__init__.py | 59 ++++++++++++++++-----
>  tests/acceptance/boot_linux_console.py    | 63 +++++++++++++++++++++++
>  3 files changed, 110 insertions(+), 14 deletions(-)
> 



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* Re: [PATCH 4/4] .travis.yml: Allow untrusted code and large files
  2020-01-19  0:28   ` Niek Linnenbank
@ 2020-01-19 11:20     ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 11+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-01-19 11:20 UTC (permalink / raw)
  To: Niek Linnenbank
  Cc: Fam Zheng, Eduardo Habkost, Philippe Mathieu-Daudé,
	QEMU Developers, Kamil Rytarowski, qemu-arm, Cleber Rosa,
	Alex Bennée

On 1/19/20 1:28 AM, Niek Linnenbank wrote:
> Hi Philippe,
> 
> For some reason, I can't apply this patch with git am:
> 
> Applying: .travis.yml: Allow untrusted code and large files
> error: patch failed: .travis.yml:260
> error: .travis.yml: patch does not apply
> Patch failed at 0001 .travis.yml: Allow untrusted code and large files
> Use 'git am --show-current-patch' to see the failed patch
> 
> I didn't change the .travis.yml file. I'm using latest master from
> commit 7fb38daf256bd1bcbcb5ea556422283d0d55a1b1

I described on the series cover but forgot to remember it here too,
this is because this series is based on your v3:

 Based-on: <20200108200020.4745-1-nieklinnenbank@gmail.com>
 "Add Allwinner H3 SoC and Orange Pi PC Machine" v3
 https://www.mail-archive.com/qemu-devel@nongnu.org/msg669328.html

I'll respin a v2 of this single patch, don't worry.

Regards,

Phil.

> Regards,
> Niek
> 
> On Sat, Jan 18, 2020 at 8:16 PM Philippe Mathieu-Daudé <f4bug@amsat.org
> <mailto:f4bug@amsat.org>> wrote:
> 
>     As Travis CI runs our tests in a disposable environment, we don't
>     care much if the binaries are trusted. The more we test the better.
> 
>     Also, as of this commmit, the smallest available announced [1] is
>     "approx 18GB", plenty of space to run our acceptance tests.
> 
>     Enable the proper environment variables to allow Avocado download
>     from untrusted sources, and to download large files.
> 
>     Note: As of this commit, all our tests "Ran for 17 min 7 sec"
>     before succeeding, see [2].
> 
>     [1]
>     https://docs.travis-ci.com/user/reference/overview/#virtualisation-environment-vs-operating-system
>     [2] https://travis-ci.org/philmd/qemu/jobs/638823612#L3817
> 
>     Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org
>     <mailto:f4bug@amsat.org>>
>     ---
>      .travis.yml | 2 ++
>      1 file changed, 2 insertions(+)
> 
>     diff --git a/.travis.yml b/.travis.yml
>     index 638fba4799..b8b9df65a6 100644
>     --- a/.travis.yml
>     +++ b/.travis.yml
>     @@ -260,6 +260,8 @@ matrix:
> 
>          # Acceptance (Functional) tests
>          - env:
>     +        - AVOCADO_ALLOW_LARGE_STORAGE="yes"
>     +        - AVOCADO_ALLOW_UNTRUSTED_CODE="sure"
>              - CONFIG="--python=/usr/bin/python3
>     --target-list=x86_64-softmmu,mips-softmmu,mips64el-softmmu,aarch64-softmmu,arm-softmmu,s390x-softmmu,alpha-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,sparc-softmmu"
>              - TEST_CMD="make check-acceptance"
>            after_failure:
>     -- 
>     2.21.1
> 
> 
> 
> -- 
> Niek Linnenbank
> 


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

end of thread, other threads:[~2020-01-19 11:21 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-18 19:16 [PATCH 0/4] tests/boot_linux_console: Test booting NetBSD via U-Boot on OrangePi PC Philippe Mathieu-Daudé
2020-01-18 19:16 ` [PATCH 1/4] Acceptance tests: Extract _console_interaction() Philippe Mathieu-Daudé
2020-01-19  0:26   ` Niek Linnenbank
2020-01-18 19:16 ` [PATCH 2/4] Acceptance tests: Add interrupt_interactive_console_until_pattern() Philippe Mathieu-Daudé
2020-01-19  0:26   ` Niek Linnenbank
2020-01-18 19:16 ` [PATCH 3/4] tests/boot_linux_console: Test booting NetBSD via U-Boot on OrangePi PC Philippe Mathieu-Daudé
2020-01-19  0:25   ` Niek Linnenbank
2020-01-18 19:16 ` [PATCH 4/4] .travis.yml: Allow untrusted code and large files Philippe Mathieu-Daudé
2020-01-19  0:28   ` Niek Linnenbank
2020-01-19 11:20     ` Philippe Mathieu-Daudé
2020-01-19  8:52 ` [PATCH 0/4] tests/boot_linux_console: Test booting NetBSD via U-Boot on OrangePi PC Kamil Rytarowski

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.