qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Fam Zheng" <fam@euphon.net>,
	"Eduardo Habkost" <ehabkost@redhat.com>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>,
	"KONRAD Frederic" <frederic.konrad@adacore.com>,
	"Fabien Chouteau" <chouteau@adacore.com>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
	"Kamil Rytarowski" <kamil@netbsd.org>,
	"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
	"Cleber Rosa" <crosa@redhat.com>,
	"Aleksandar Rikalo" <aleksandar.rikalo@rt-rk.com>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Aurelien Jarno" <aurelien@aurel32.net>
Subject: [PATCH 22/26] tests/boot_linux_console: Boot Linux and run few commands on raspi3
Date: Mon, 28 Oct 2019 08:34:37 +0100	[thread overview]
Message-ID: <20191028073441.6448-23-philmd@redhat.com> (raw)
In-Reply-To: <20191028073441.6448-1-philmd@redhat.com>

From: Philippe Mathieu-Daudé <f4bug@amsat.org>

Add a test which boots Linux and run basic commands using the serial
port console.

The kernel image is built by the Debian project:
https://wiki.debian.org/RaspberryPi

The DeviceTree blob comes from the official Raspberry Pi project:
https://www.raspberrypi.org/

The cpio image used comes from the linux-build-test project:
https://github.com/groeck/linux-build-test

This test can be run using:

  $ avocado run --show=console,app run -t machine:raspi3 tests/acceptance
  console: [    0.000000] Linux version 4.14.0-3-arm64 (debian-kernel@lists.debian.org) (gcc version 7.2.0 (Debian 7.2.0-18)) #1 SMP Debian 4.14.12-2 (2018-01-06)
  console: [    0.000000] Boot CPU: AArch64 Processor [410fd034]
  console: [    0.000000] Machine model: Raspberry Pi 3 Model B
  console: [    0.000000] earlycon: pl11 at MMIO 0x000000003f201000 (options '')
  console: [    0.000000] bootconsole [pl11] enabled
  [...]
  console: Starting network: OK
  console: Found console ttyAMA0
  console: Boot successful.
  console: / # cat /proc/cpuinfo
  console: processor      : 0
  console: BogoMIPS       : 125.00
  console: r      : 0x41
  console: CPU architecture: 8
  console: CPU variant
  console: : 0x0
  console: CPU part       : 0xd03
  console: CPU revision   : 4
  console: / # uname -a
  console: Linux buildroot 4.14.0-3-arm64 #1 SMP Debian 4.14.12-2 (2018-01-06) aarch64 GNU/Linux
  console: reboot
  console: / # reboot
  console: / # Found console ttyAMA0
  console: Stopping network: OK
  console: Saving random seed... done.
  console: Stopping logging: OK
  console: umount: devtmpfs busy - remounted read-only
  console: umount: can't unmount /: Invalid argument
  console: The system is going down NOW!
  console: Sent SIGTERM to all processes
  console: Sent SIGKILL to all processes
  console: Requesting system reboot
  console: kvm: exiting hardware virtualization
  console: reboot: Restarting system
  PASS (11.08 s)

Reviewed-by: Cleber Rosa <crosa@redhat.com>
Tested-by: Cleber Rosa <crosa@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
v2: Use archive.gzip_uncompress (Cleber)

some chars are scrambled on the console?
Cleber ran this 100 times and doesn't have issue.
---
 tests/acceptance/boot_linux_console.py | 48 ++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py
index 1c9ff2bda3..dc27d79199 100644
--- a/tests/acceptance/boot_linux_console.py
+++ b/tests/acceptance/boot_linux_console.py
@@ -338,6 +338,54 @@ class BootLinuxConsole(MachineTest):
         """
         self.do_test_arm_raspi2(1)
 
+    def test_arm_raspi3_initrd_uart0(self):
+        """
+        :avocado: tags=arch:aarch64
+        :avocado: tags=machine:raspi3
+        """
+        deb_url = ('https://snapshot.debian.org/archive/debian/'
+                   '20180106T174014Z/pool/main/l/linux/'
+                   'linux-image-4.14.0-3-arm64_4.14.12-2_arm64.deb')
+        deb_hash = 'e71c995de57921921895c1162baea5df527d1c6b'
+        deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash)
+        kernel_path = self.extract_from_deb(deb_path,
+                                            '/boot/vmlinuz-4.14.0-3-arm64')
+
+        dtb_url = ('https://github.com/raspberrypi/firmware/raw/'
+                   '1.20180313/boot/bcm2710-rpi-3-b.dtb')
+        dtb_hash = 'eb14d67133401ef2f93523be7341456d38bfc077'
+        dtb_path = self.fetch_asset(dtb_url, asset_hash=dtb_hash)
+
+        initrd_url = ('https://github.com/groeck/linux-build-test/raw/'
+                      '9b6b392ea7bc15f0d6632328d429d31c9c6273da/rootfs/'
+                      'arm64/rootfs.cpio.gz')
+        initrd_hash = '6fd05324f17bb950196b5ad9d3a0fa996339f4cd'
+        initrd_path_gz = self.fetch_asset(initrd_url, asset_hash=initrd_hash)
+        initrd_path = self.workdir + "rootfs.cpio"
+        archive.gzip_uncompress(initrd_path_gz, initrd_path)
+
+        self.vm.set_machine('raspi3')
+        self.vm.set_console()
+        kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
+                               'earlycon=pl011,0x3f201000 console=ttyAMA0 ' +
+                               'panic=-1 noreboot')
+        self.vm.add_args('-kernel', kernel_path,
+                         '-dtb', dtb_path,
+                         '-initrd', initrd_path,
+                         '-append', kernel_command_line,
+                         '-no-reboot')
+        self.vm.launch()
+
+        self.wait_for_console_pattern('Boot successful.',
+                                      failure_message='-----[ cut here ]-----')
+
+        exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo',
+                                                'BogoMIPS')
+        exec_command_and_wait_for_pattern(self, 'uname -a',
+                                                'Debian')
+        exec_command_and_wait_for_pattern(self, 'reboot',
+                                                'reboot: Restarting system')
+
     def test_s390x_s390_ccw_virtio(self):
         """
         :avocado: tags=arch:s390x
-- 
2.21.0



  parent reply	other threads:[~2019-10-28  7:46 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-28  7:34 [PATCH 00/26] tests/acceptance: Queue for 4.2 Philippe Mathieu-Daudé
2019-10-28  7:34 ` [PATCH 01/26] python/qemu/machine: Allow to use other serial consoles than default Philippe Mathieu-Daudé
2019-10-28 14:51   ` Cleber Rosa
2019-10-28  7:34 ` [PATCH 02/26] Acceptance tests: refactor wait_for_console_pattern Philippe Mathieu-Daudé
2019-10-28  7:58   ` Aleksandar Markovic
2019-10-28 15:09     ` Cleber Rosa
2019-10-28 15:18   ` Cleber Rosa
2019-10-28  7:34 ` [PATCH 03/26] tests/acceptance: Fixe wait_for_console_pattern() hangs Philippe Mathieu-Daudé
2019-10-28  8:01   ` Aleksandar Markovic
2019-10-28 15:28     ` Cleber Rosa
2019-10-28 15:24   ` Cleber Rosa
2019-10-28  7:34 ` [PATCH 04/26] tests/acceptance: Send <carriage return> on serial lines Philippe Mathieu-Daudé
2019-10-28 15:36   ` Cleber Rosa
2019-10-28  7:34 ` [PATCH 05/26] tests/acceptance: Refactor exec_command_and_wait_for_pattern() Philippe Mathieu-Daudé
2019-10-28 15:50   ` Cleber Rosa
2019-10-28  7:34 ` [PATCH 06/26] tests/acceptance: Rename avocado_qemu.Test as MachineTest Philippe Mathieu-Daudé
2019-11-19 13:52   ` Wainer dos Santos Moschetta
2019-10-28  7:34 ` [PATCH 07/26] tests/acceptance: Make pick_default_qemu_bin() more generic Philippe Mathieu-Daudé
2019-10-28  7:34 ` [PATCH 08/26] tests/acceptance: Introduce LinuxUserTest base class Philippe Mathieu-Daudé
2019-11-18 12:16   ` Philippe Mathieu-Daudé
2019-10-28  7:34 ` [PATCH 09/26] tests/acceptance: Add bFLT loader linux-user test Philippe Mathieu-Daudé
2019-10-28  7:34 ` [PATCH 10/26] tests/acceptance: Add test that boots the HelenOS microkernel on Leon3 Philippe Mathieu-Daudé
2019-10-28 16:38   ` Cleber Rosa
2019-10-28  7:34 ` [PATCH 11/26] tests/acceptance: Add test that boots Linux up to BusyBox " Philippe Mathieu-Daudé
2019-10-28 16:47   ` Cleber Rosa
2019-10-28  7:34 ` [PATCH 12/26] .travis.yml: Let the avocado job run the Leon3 test Philippe Mathieu-Daudé
2019-10-28 16:50   ` Cleber Rosa
2019-10-28  7:34 ` [PATCH 13/26] tests/acceptance: Add test that runs NetBSD 4.0 installer on PRep/40p Philippe Mathieu-Daudé
2019-10-28 16:56   ` Cleber Rosa
2019-10-28  7:34 ` [PATCH 14/26] tests/acceptance: Test Open Firmware on the PReP/40p Philippe Mathieu-Daudé
2019-10-28 17:47   ` Cleber Rosa
2019-10-28 18:45     ` Cleber Rosa
2019-10-28  7:34 ` [PATCH 15/26] tests/acceptance: Test OpenBIOS " Philippe Mathieu-Daudé
2019-10-28 18:41   ` Cleber Rosa
2019-10-28 22:00     ` Cleber Rosa
2019-10-28  7:34 ` [PATCH 16/26] tests/acceptance: Test Sandalfoot initrd " Philippe Mathieu-Daudé
2019-10-28 19:08   ` Cleber Rosa
2021-12-03 10:09     ` Cédric Le Goater
2019-10-28  7:34 ` [PATCH 17/26] .travis.yml: Let the avocado job run the 40p tests Philippe Mathieu-Daudé
2019-10-28 19:25   ` Cleber Rosa
2019-10-28  7:34 ` [PATCH 18/26] tests/boot_console: Test booting HP-UX firmware upgrade Philippe Mathieu-Daudé
2019-10-28 20:09   ` Cleber Rosa
2019-10-28  7:34 ` [PATCH 19/26] tests/boot_linux_console: Use Avocado archive::gzip_uncompress() Philippe Mathieu-Daudé
2019-10-28 20:13   ` Cleber Rosa
2019-10-28  7:34 ` [PATCH 20/26] tests/boot_linux_console: Add a test for the Raspberry Pi 2 Philippe Mathieu-Daudé
2019-10-28 20:24   ` Cleber Rosa
2019-10-28  7:34 ` [PATCH 21/26] tests/boot_linux_console: Test the raspi2 UART1 (16550 based) Philippe Mathieu-Daudé
2019-10-28 20:30   ` Cleber Rosa
2019-10-28  7:34 ` Philippe Mathieu-Daudé [this message]
2019-10-28 20:47   ` [PATCH 22/26] tests/boot_linux_console: Boot Linux and run few commands on raspi3 Cleber Rosa
2019-10-28 20:48   ` Cleber Rosa
2019-10-28  7:34 ` [PATCH 23/26] tests/boot_linux_console: Test SDHCI and termal sensor " Philippe Mathieu-Daudé
2019-10-28 20:54   ` Cleber Rosa
2019-10-28  7:34 ` [PATCH 24/26] tests/boot_linux_console: Add initrd test for the Exynos4210 Philippe Mathieu-Daudé
2019-10-28 21:40   ` Cleber Rosa
2019-10-28  7:34 ` [PATCH 25/26] tests/boot_linux_console: Add sdcard " Philippe Mathieu-Daudé
2019-10-28 21:48   ` Cleber Rosa
2019-10-28  7:34 ` [PATCH 26/26] tests/boot_linux_console: Run BusyBox on 5KEc 64-bit cpu Philippe Mathieu-Daudé
2019-10-28  8:17   ` Aleksandar Markovic
2019-10-28 22:05     ` Cleber Rosa
2019-10-28  8:18 ` [PATCH 00/26] tests/acceptance: Queue for 4.2 no-reply
2019-10-28  9:47 ` no-reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191028073441.6448-23-philmd@redhat.com \
    --to=philmd@redhat.com \
    --cc=aleksandar.rikalo@rt-rk.com \
    --cc=alex.bennee@linaro.org \
    --cc=aurelien@aurel32.net \
    --cc=chouteau@adacore.com \
    --cc=crosa@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=f4bug@amsat.org \
    --cc=fam@euphon.net \
    --cc=frederic.konrad@adacore.com \
    --cc=kamil@netbsd.org \
    --cc=qemu-devel@nongnu.org \
    --cc=wainersm@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).