Message ID | 20191028073441.6448-23-philmd@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | tests/acceptance: Queue for 4.2 | expand |
On Mon, Oct 28, 2019 at 08:34:37AM +0100, Philippe Mathieu-Daudé wrote: > 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. > --- Now, I'm not getting good vibes from this test. It spawns QEMU and then gets stuck on every single execution. VM launch command: 'aarch64-softmmu/qemu-system-aarch64 -chardev socket,id=mon,path=/var/tmp/tmpgpee0g1h/qemu-23397-monitor.sock -mon chardev=mon,mode=control -display none -vga none -machine raspi3 -chardev socket,id=console,path=/var/tmp/tmpgpee0g1h/qemu-23397-console.sock,server,nowait -serial chardev:console -kernel /var/tmp/avocado_7ks9sppd/avocado_job_wsp2727i/1-tests_acceptance_boot_linux_console.py_BootLinuxConsole.test_arm_raspi3_initrd_uart0/boot/vmlinuz-4.14.0-3-arm64 -dtb /home/cleber/avocado/data/cache/by_location/cd5c65e442f2375a87c174b91963be739bcdae77/bcm2710-rpi-3-b.dtb -initrd /var/tmp/avocado_7ks9sppd/avocado_job_wsp2727i/1-tests_acceptance_boot_linux_console.py_BootLinuxConsole.test_arm_raspi3_initrd_uart0rootfs.cpio -append printk.time=0 earlycon=pl011,0x3f201000 console=ttyAMA0 panic=-1 noreboot -no-reboot' >>> {'execute': 'qmp_capabilities'} <<< {'return': {}} Given that I've tested this before, and I see some changes to raspi3 since then, I'll try to bisect the possible culprit. If you have any clues, they would be much appreciated. - Cleber.
On Mon, Oct 28, 2019 at 08:34:37AM +0100, Philippe Mathieu-Daudé wrote: > 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 ]-----') > + With the previous refactors to wait_for_console_pattern(), this should become: wait_for_console_pattern(self, 'Boot successful.', failure_message='-----[ cut here ]-----') - Cleber.
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