qemu/tests/acceptance
Philippe Mathieu-Daudé 921589fb72 tests/boot_linux_console: Test booting NetBSD via U-Boot on OrangePi PC
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 (GENERIC) #0: Fri Feb 14 00:06:28 UTC 2020
  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] 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.3812082] sdmmc0: SD card status: 4-bit, C0
  console: [   2.3812082] ld0 at sdmmc0: <0xaa:0x5859:QEMU!:0x01:0xdeadbeef:0x062>
  console: [   2.4012856] ld0: 1226 MB, 622 cyl, 64 head, 63 sec, 512 bytes/sect x 2511872 sectors
  console: [   2.5321222] ld0: 4-bit width, High-Speed/SDR25, 50.000 MHz
  console: [   3.1068718] WARNING: 4 errors while detecting hardware; check system log.
  console: [   3.1179868] boot device: ld0
  console: [   3.1470623] root on ld0a dumps on ld0b
  console: [   3.2464436] root file system type: ffs
  console: [   3.2897123] kern.module.path=/stand/evbarm/9.0/modules
  console: Mon Feb 17 20:33:35 UTC 2020
  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>
Signed-off-by: Niek Linnenbank <nieklinnenbank@gmail.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Alex Bennée <alex.bennee@linaro.org>
Message-id: 20200311221854.30370-18-nieklinnenbank@gmail.com
[NL: changed test to use NetBSD 9.0 final release and -global allwinner-rtc.base-year]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2020-03-12 16:27:33 +00:00
..
avocado_qemu Acceptance tests: Add interrupt_interactive_console_until_pattern() 2020-02-07 15:12:48 +01:00
boot_linux_console.py tests/boot_linux_console: Test booting NetBSD via U-Boot on OrangePi PC 2020-03-12 16:27:33 +00:00
cpu_queries.py Acceptance tests: use avocado tags for machine type 2019-12-16 11:23:19 -05:00
empty_cpu_model.py tests/acceptance: Makes linux_initrd and empty_cpu_model use QEMUMachine 2019-12-16 10:59:50 -05:00
linux_initrd.py Acceptance tests: use avocado tags for machine type 2019-12-16 11:23:19 -05:00
linux_ssh_mips_malta.py Python queue 2019-12-17 2019-12-17 14:34:31 +00:00
machine_arm_integratorcp.py tests/acceptance/integratorcp: Verify Tux is displayed on framebuffer 2020-02-28 16:14:57 +00:00
machine_arm_n8x0.py tests/acceptance: Add a test for the N800 and N810 arm machines 2020-02-28 16:14:57 +00:00
machine_m68k_nextcube.py Acceptance tests: use avocado tags for machine type 2019-12-16 11:23:19 -05:00
machine_mips_malta.py tests/acceptance: Count multiple Tux logos displayed on framebuffer 2020-02-27 14:19:07 +01:00
machine_sparc_leon3.py Acceptance tests: use avocado tags for machine type 2019-12-16 11:23:19 -05:00
migration.py tests/acceptance/migration: Default to -nodefaults 2020-02-07 15:12:48 +01:00
pc_cpu_hotplug_props.py pc: Don't make die-id mandatory unless necessary 2019-09-03 14:39:46 -03:00
ppc_prep_40p.py Acceptance tests: use avocado tags for machine type 2019-12-16 11:23:19 -05:00
README.rst Add functional/acceptance tests infrastructure 2018-06-15 16:10:11 -03:00
version.py tests/acceptance/version: Default to -nodefaults 2020-02-07 15:12:48 +01:00
virtio_check_params.py tests/acceptance: Remove shebang header 2020-02-07 15:12:48 +01:00
virtio_version.py python/qemu: split QEMUMachine out from underneath __init__.py 2019-07-01 19:02:10 -03:00
vnc.py VNC Acceptance test: simplify test names 2019-08-28 21:10:15 -04:00
x86_cpu_model_versions.py tests/acceptance: Remove shebang header 2020-02-07 15:12:48 +01:00

============================================
Acceptance tests using the Avocado Framework
============================================

This directory contains functional tests, also known as acceptance
level tests.  They're usually higher level, and may interact with
external resources and with various guest operating systems.

For more information, please refer to ``docs/devel/testing.rst``,
section "Acceptance tests using the Avocado Framework".