On Thu, Sep 26, 2019 at 07:34:27PM +0200, Philippe Mathieu-Daudé wrote:
> Add a test which loads the root filesystem on a SD card.
> Use a kernel recent enough to also test the thermal sensor.
>
> The kernel image comes from:
> https://github.com/sakaki-/bcmrpi3-kernel#description
>
> The cpio image used comes from the linux-build-test project:
> https://github.com/groeck/linux-build-test
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> tests/acceptance/boot_linux_console.py | 45 ++++++++++++++++++++++++++
> 1 file changed, 45 insertions(+)
>
> diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py
> index 2a1a23763e..5c48cacba8 100644
> --- a/tests/acceptance/boot_linux_console.py
> +++ b/tests/acceptance/boot_linux_console.py
> @@ -410,6 +410,51 @@ class BootLinuxConsole(Test):
> self.exec_command_and_wait_for_pattern('reboot',
> 'reboot: Restarting system')
>
> + def test_arm_raspi3_initrd_sd_temp(self):
> + """
> + :avocado: tags=arch:aarch64
> + :avocado: tags=machine:raspi3
> + """
> + tarball_url = ('https://github.com/sakaki-/bcmrpi3-kernel/releases/'
> + 'download/4.19.71.20190910/'
> + 'bcmrpi3-kernel-4.19.71.20190910.tar.xz')
> + tarball_hash = '844f117a1a6de0532ba92d2a7bceb5b2acfbb298'
> + tarball_path = self.fetch_asset(tarball_url, asset_hash=tarball_hash)
> + archive.extract(tarball_path, self.workdir)
> + dtb_path = self.workdir + "/boot/bcm2837-rpi-3-b.dtb"
> + kernel_path = self.workdir + "/boot/kernel8.img"
> +
> + rootfs_url = ('https://github.com/groeck/linux-build-test/raw/'
> + '9b6b392ea7bc15f0d6632328d429d31c9c6273da/rootfs/'
> + 'arm64/rootfs.ext2.gz')
> + rootfs_hash = 'dbe4136f0b4a0d2180b93fd2a3b9a784f9951d10'
> + rootfs_path_gz = self.fetch_asset(rootfs_url, asset_hash=rootfs_hash)
> + rootfs_path = self.workdir + "rootfs.ext2"
> + gunzip(rootfs_path_gz, rootfs_path)
If you drop the local gunzip method utility, you'll have to touch this.
> +
> + self.vm.set_machine('raspi3')
> + self.vm.set_console()
> + kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
> + 'earlycon=pl011,0x3f201000 console=ttyAMA0 ' +
> + 'root=/dev/mmcblk0 rootwait rw ' +
> + 'panic=-1 noreboot')
> + self.vm.add_args('-kernel', kernel_path,
> + '-dtb', dtb_path,
> + '-append', kernel_command_line,
> + '-drive', 'file=' + rootfs_path + ',if=sd,format=raw',
> + '-no-reboot')
> + self.vm.launch()
> +
> + self.wait_for_console_pattern('Boot successful.')
> +
> + self.exec_command_and_wait_for_pattern('cat /proc/cpuinfo',
> + 'Raspberry Pi 3 Model B')
> + self.exec_command_and_wait_for_pattern('cat /sys/devices/virtual/' +
> + 'thermal/thermal_zone0/temp',
> + '25178')
Nitpick: you could avoid the strings concatenation operation with:
self.exec_command_and_wait_for_pattern(('cat /sys/devices/virtual/'
'thermal/thermal_zone0/temp'),
'25178')
> + self.exec_command_and_wait_for_pattern('reboot',
> + 'reboot: Restarting system')
> +
> def test_s390x_s390_ccw_virtio(self):
> """
> :avocado: tags=arch:s390x
> --
> 2.20.1
>
Either way,
Reviewed-by: Cleber Rosa <crosa@redhat.com>
Tested-by: Cleber Rosa <crosa@redhat.com>