Message ID | 20191230110953.25496-2-f4bug@amsat.org |
---|---|
State | New |
Headers | show |
Series | hw/arm/cubieboard: Few cleanups, add acceptance tests | expand |
On 12/30/19 9:09 AM, Philippe Mathieu-Daudé wrote: > This test boots a Linux kernel on a CubieBoard and verify > the serial output is working. > > The kernel image and DeviceTree blob are built by the Armbian > project (based on Debian): > https://docs.armbian.com/Developer-Guide_Build-Preparation/ > > The cpio image used comes from the linux-build-test project: > https://github.com/groeck/linux-build-test > > If ARM is a target being built, "make check-acceptance" will > automatically include this test by the use of the "arch:arm" tags. > > Alternatively, this test can be run using: > > $ avocado --show=console run -t machine:cubieboard tests/acceptance/boot_linux_console.py > console: Uncompressing Linux... done, booting the kernel. > console: Booting Linux on physical CPU 0x0 > console: Linux version 4.20.7-sunxi (root@armbian.com) (gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11)) #5.75 SMP Fri Feb 8 09:02:10 CET 2019 > console: CPU: ARMv7 Processor [410fc080] revision 0 (ARMv7), cr=50c5387d > console: CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache > console: OF: fdt: Machine model: Cubietech Cubieboard > [...] > console: Boot successful. > console: cat /proc/cpuinfo > console: / # cat /proc/cpuinfo > console: processor : 0 > console: model name : ARMv7 Processor rev 0 (v7l) > console: BogoMIPS : 832.51 > [...] > console: Hardware : Allwinner sun4i/sun5i Families > console: Revision : 0000 > console: Serial : 0000000000000000 > console: cat /proc/iomem > console: / # cat /proc/iomem > console: 01c00000-01c0002f : system-control@1c00000 > console: 01c02000-01c02fff : dma-controller@1c02000 > console: 01c05000-01c05fff : spi@1c05000 > console: 01c0b080-01c0b093 : mdio@1c0b080 > console: 01c0c000-01c0cfff : lcd-controller@1c0c000 > console: 01c0d000-01c0dfff : lcd-controller@1c0d000 > console: 01c0f000-01c0ffff : mmc@1c0f000 > [...] > PASS (54.35 s) > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > tests/acceptance/boot_linux_console.py | 41 ++++++++++++++++++++++++++ > 1 file changed, 41 insertions(+) > > diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py > index 9c6aa2040a..4643f60e37 100644 > --- a/tests/acceptance/boot_linux_console.py > +++ b/tests/acceptance/boot_linux_console.py > @@ -400,6 +400,47 @@ class BootLinuxConsole(Test): > self.wait_for_console_pattern('Boot successful.') > # TODO user command, for now the uart is stuck > > + def test_arm_cubieboard_initrd(self): Unless you have two tests, one with and without initrd (not the case though) the suffix '_initrd' is useless. So I suggest to remove it. > + """ > + :avocado: tags=arch:arm > + :avocado: tags=machine:cubieboard > + """ > + deb_url = ('https://apt.armbian.com/pool/main/l/' > + 'linux-4.20.7-sunxi/linux-image-dev-sunxi_5.75_armhf.deb') > + deb_hash = '1334c29c44d984ffa05ed10de8c3361f33d78315' > + deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash) > + kernel_path = self.extract_from_deb(deb_path, > + '/boot/vmlinuz-4.20.7-sunxi') > + dtb_path = '/usr/lib/linux-image-dev-sunxi/sun4i-a10-cubieboard.dtb' > + dtb_path = self.extract_from_deb(deb_path, dtb_path) > + initrd_url = ('https://github.com/groeck/linux-build-test/raw/' > + '2eb0a73b5d5a28df3170c546ddaaa9757e1e0848/rootfs/' > + 'arm/rootfs-armv5.cpio.gz') > + initrd_hash = '2b50f1873e113523967806f4da2afe385462ff9b' > + initrd_path_gz = self.fetch_asset(initrd_url, asset_hash=initrd_hash) > + initrd_path = os.path.join(self.workdir, 'rootfs.cpio') > + archive.gzip_uncompress(initrd_path_gz, initrd_path) > + > + self.vm.set_console() > + kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE + > + 'console=ttyS0,115200 ' > + 'usbcore.nousb ' > + '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.') > + > + exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo', > + 'Allwinner sun4i/sun5i') > + exec_command_and_wait_for_pattern(self, 'cat /proc/iomem', > + 'system-control@1c00000') > + exec_command_and_wait_for_pattern(self, 'reboot', > + 'reboot: Restarting system') I ran this test case with success, so: Tested-by: Wainer dos Santos Moschetta <wainersm@redhat.com> With the comment regarding the _initrd suffix: Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com> > + > def test_s390x_s390_ccw_virtio(self): > """ > :avocado: tags=arch:s390x
On 12/30/19 9:52 PM, Wainer dos Santos Moschetta wrote: > On 12/30/19 9:09 AM, Philippe Mathieu-Daudé wrote: >> This test boots a Linux kernel on a CubieBoard and verify >> the serial output is working. >> >> The kernel image and DeviceTree blob are built by the Armbian >> project (based on Debian): >> https://docs.armbian.com/Developer-Guide_Build-Preparation/ >> >> The cpio image used comes from the linux-build-test project: >> https://github.com/groeck/linux-build-test >> >> If ARM is a target being built, "make check-acceptance" will >> automatically include this test by the use of the "arch:arm" tags. >> >> Alternatively, this test can be run using: >> >> $ avocado --show=console run -t machine:cubieboard >> tests/acceptance/boot_linux_console.py >> console: Uncompressing Linux... done, booting the kernel. >> console: Booting Linux on physical CPU 0x0 >> console: Linux version 4.20.7-sunxi (root@armbian.com) (gcc version >> 7.2.1 20171011 (Linaro GCC 7.2-2017.11)) #5.75 SMP Fri Feb 8 09:02:10 >> CET 2019 >> console: CPU: ARMv7 Processor [410fc080] revision 0 (ARMv7), >> cr=50c5387d >> console: CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing >> instruction cache >> console: OF: fdt: Machine model: Cubietech Cubieboard >> [...] >> console: Boot successful. >> console: cat /proc/cpuinfo >> console: / # cat /proc/cpuinfo >> console: processor : 0 >> console: model name : ARMv7 Processor rev 0 (v7l) >> console: BogoMIPS : 832.51 >> [...] >> console: Hardware : Allwinner sun4i/sun5i Families >> console: Revision : 0000 >> console: Serial : 0000000000000000 >> console: cat /proc/iomem >> console: / # cat /proc/iomem >> console: 01c00000-01c0002f : system-control@1c00000 >> console: 01c02000-01c02fff : dma-controller@1c02000 >> console: 01c05000-01c05fff : spi@1c05000 >> console: 01c0b080-01c0b093 : mdio@1c0b080 >> console: 01c0c000-01c0cfff : lcd-controller@1c0c000 >> console: 01c0d000-01c0dfff : lcd-controller@1c0d000 >> console: 01c0f000-01c0ffff : mmc@1c0f000 >> [...] >> PASS (54.35 s) >> >> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> >> --- >> tests/acceptance/boot_linux_console.py | 41 ++++++++++++++++++++++++++ >> 1 file changed, 41 insertions(+) >> >> diff --git a/tests/acceptance/boot_linux_console.py >> b/tests/acceptance/boot_linux_console.py >> index 9c6aa2040a..4643f60e37 100644 >> --- a/tests/acceptance/boot_linux_console.py >> +++ b/tests/acceptance/boot_linux_console.py >> @@ -400,6 +400,47 @@ class BootLinuxConsole(Test): >> self.wait_for_console_pattern('Boot successful.') >> # TODO user command, for now the uart is stuck >> + def test_arm_cubieboard_initrd(self): > > Unless you have two tests, one with and without initrd (not the case > though) the suffix '_initrd' is useless. So I suggest to remove it. The next patch adds a SD card test: https://www.mail-archive.com/qemu-devel@nongnu.org/msg667628.html If one developer has other tests in progress, but one done, I think it might sense to add the full test name when the first patch is merged, so next tests don't have to modify the first test name. >> + """ >> + :avocado: tags=arch:arm >> + :avocado: tags=machine:cubieboard >> + """ >> + deb_url = ('https://apt.armbian.com/pool/main/l/' >> + >> 'linux-4.20.7-sunxi/linux-image-dev-sunxi_5.75_armhf.deb') >> + deb_hash = '1334c29c44d984ffa05ed10de8c3361f33d78315' >> + deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash) >> + kernel_path = self.extract_from_deb(deb_path, >> + >> '/boot/vmlinuz-4.20.7-sunxi') >> + dtb_path = >> '/usr/lib/linux-image-dev-sunxi/sun4i-a10-cubieboard.dtb' >> + dtb_path = self.extract_from_deb(deb_path, dtb_path) >> + initrd_url = ('https://github.com/groeck/linux-build-test/raw/' >> + '2eb0a73b5d5a28df3170c546ddaaa9757e1e0848/rootfs/' >> + 'arm/rootfs-armv5.cpio.gz') >> + initrd_hash = '2b50f1873e113523967806f4da2afe385462ff9b' >> + initrd_path_gz = self.fetch_asset(initrd_url, >> asset_hash=initrd_hash) >> + initrd_path = os.path.join(self.workdir, 'rootfs.cpio') >> + archive.gzip_uncompress(initrd_path_gz, initrd_path) >> + >> + self.vm.set_console() >> + kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE + >> + 'console=ttyS0,115200 ' >> + 'usbcore.nousb ' >> + '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.') >> + >> + exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo', >> + 'Allwinner sun4i/sun5i') >> + exec_command_and_wait_for_pattern(self, 'cat /proc/iomem', >> + >> 'system-control@1c00000') >> + exec_command_and_wait_for_pattern(self, 'reboot', >> + 'reboot: Restarting >> system') > > > I ran this test case with success, so: > > Tested-by: Wainer dos Santos Moschetta <wainersm@redhat.com> Thanks Wainer! > > With the comment regarding the _initrd suffix: > > Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com> > > >> + >> def test_s390x_s390_ccw_virtio(self): >> """ >> :avocado: tags=arch:s390x > >
On 12/31/19 9:41 AM, Philippe Mathieu-Daudé wrote: > On 12/30/19 9:52 PM, Wainer dos Santos Moschetta wrote: >> On 12/30/19 9:09 AM, Philippe Mathieu-Daudé wrote: >>> This test boots a Linux kernel on a CubieBoard and verify >>> the serial output is working. >>> >>> The kernel image and DeviceTree blob are built by the Armbian >>> project (based on Debian): >>> https://docs.armbian.com/Developer-Guide_Build-Preparation/ >>> >>> The cpio image used comes from the linux-build-test project: >>> https://github.com/groeck/linux-build-test >>> >>> If ARM is a target being built, "make check-acceptance" will >>> automatically include this test by the use of the "arch:arm" tags. >>> >>> Alternatively, this test can be run using: >>> >>> $ avocado --show=console run -t machine:cubieboard >>> tests/acceptance/boot_linux_console.py >>> console: Uncompressing Linux... done, booting the kernel. >>> console: Booting Linux on physical CPU 0x0 >>> console: Linux version 4.20.7-sunxi (root@armbian.com) (gcc >>> version 7.2.1 20171011 (Linaro GCC 7.2-2017.11)) #5.75 SMP Fri Feb 8 >>> 09:02:10 CET 2019 >>> console: CPU: ARMv7 Processor [410fc080] revision 0 (ARMv7), >>> cr=50c5387d >>> console: CPU: PIPT / VIPT nonaliasing data cache, VIPT >>> nonaliasing instruction cache >>> console: OF: fdt: Machine model: Cubietech Cubieboard >>> [...] >>> console: Boot successful. >>> console: cat /proc/cpuinfo >>> console: / # cat /proc/cpuinfo >>> console: processor : 0 >>> console: model name : ARMv7 Processor rev 0 (v7l) >>> console: BogoMIPS : 832.51 >>> [...] >>> console: Hardware : Allwinner sun4i/sun5i Families >>> console: Revision : 0000 >>> console: Serial : 0000000000000000 >>> console: cat /proc/iomem >>> console: / # cat /proc/iomem >>> console: 01c00000-01c0002f : system-control@1c00000 >>> console: 01c02000-01c02fff : dma-controller@1c02000 >>> console: 01c05000-01c05fff : spi@1c05000 >>> console: 01c0b080-01c0b093 : mdio@1c0b080 >>> console: 01c0c000-01c0cfff : lcd-controller@1c0c000 >>> console: 01c0d000-01c0dfff : lcd-controller@1c0d000 >>> console: 01c0f000-01c0ffff : mmc@1c0f000 >>> [...] >>> PASS (54.35 s) >>> >>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> >>> --- >>> tests/acceptance/boot_linux_console.py | 41 >>> ++++++++++++++++++++++++++ >>> 1 file changed, 41 insertions(+) >>> >>> diff --git a/tests/acceptance/boot_linux_console.py >>> b/tests/acceptance/boot_linux_console.py >>> index 9c6aa2040a..4643f60e37 100644 >>> --- a/tests/acceptance/boot_linux_console.py >>> +++ b/tests/acceptance/boot_linux_console.py >>> @@ -400,6 +400,47 @@ class BootLinuxConsole(Test): >>> self.wait_for_console_pattern('Boot successful.') >>> # TODO user command, for now the uart is stuck >>> + def test_arm_cubieboard_initrd(self): >> >> Unless you have two tests, one with and without initrd (not the case >> though) the suffix '_initrd' is useless. So I suggest to remove it. > > The next patch adds a SD card test: > https://www.mail-archive.com/qemu-devel@nongnu.org/msg667628.html > > If one developer has other tests in progress, but one done, I think it > might sense to add the full test name when the first patch is merged, > so next tests don't have to modify the first test name. That's right. Disregard my comment. - Wainer > >>> + """ >>> + :avocado: tags=arch:arm >>> + :avocado: tags=machine:cubieboard >>> + """ >>> + deb_url = ('https://apt.armbian.com/pool/main/l/' >>> + 'linux-4.20.7-sunxi/linux-image-dev-sunxi_5.75_armhf.deb') >>> + deb_hash = '1334c29c44d984ffa05ed10de8c3361f33d78315' >>> + deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash) >>> + kernel_path = self.extract_from_deb(deb_path, >>> + '/boot/vmlinuz-4.20.7-sunxi') >>> + dtb_path = >>> '/usr/lib/linux-image-dev-sunxi/sun4i-a10-cubieboard.dtb' >>> + dtb_path = self.extract_from_deb(deb_path, dtb_path) >>> + initrd_url = >>> ('https://github.com/groeck/linux-build-test/raw/' >>> + '2eb0a73b5d5a28df3170c546ddaaa9757e1e0848/rootfs/' >>> + 'arm/rootfs-armv5.cpio.gz') >>> + initrd_hash = '2b50f1873e113523967806f4da2afe385462ff9b' >>> + initrd_path_gz = self.fetch_asset(initrd_url, >>> asset_hash=initrd_hash) >>> + initrd_path = os.path.join(self.workdir, 'rootfs.cpio') >>> + archive.gzip_uncompress(initrd_path_gz, initrd_path) >>> + >>> + self.vm.set_console() >>> + kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE + >>> + 'console=ttyS0,115200 ' >>> + 'usbcore.nousb ' >>> + '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.') >>> + >>> + exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo', >>> + 'Allwinner >>> sun4i/sun5i') >>> + exec_command_and_wait_for_pattern(self, 'cat /proc/iomem', >>> + 'system-control@1c00000') >>> + exec_command_and_wait_for_pattern(self, 'reboot', >>> + 'reboot: Restarting >>> system') >> >> >> I ran this test case with success, so: >> >> Tested-by: Wainer dos Santos Moschetta <wainersm@redhat.com> > > Thanks Wainer! > >> >> With the comment regarding the _initrd suffix: >> >> Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com> >> >> >>> + >>> def test_s390x_s390_ccw_virtio(self): >>> """ >>> :avocado: tags=arch:s390x >> >> >
diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py index 9c6aa2040a..4643f60e37 100644 --- a/tests/acceptance/boot_linux_console.py +++ b/tests/acceptance/boot_linux_console.py @@ -400,6 +400,47 @@ class BootLinuxConsole(Test): self.wait_for_console_pattern('Boot successful.') # TODO user command, for now the uart is stuck + def test_arm_cubieboard_initrd(self): + """ + :avocado: tags=arch:arm + :avocado: tags=machine:cubieboard + """ + deb_url = ('https://apt.armbian.com/pool/main/l/' + 'linux-4.20.7-sunxi/linux-image-dev-sunxi_5.75_armhf.deb') + deb_hash = '1334c29c44d984ffa05ed10de8c3361f33d78315' + deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash) + kernel_path = self.extract_from_deb(deb_path, + '/boot/vmlinuz-4.20.7-sunxi') + dtb_path = '/usr/lib/linux-image-dev-sunxi/sun4i-a10-cubieboard.dtb' + dtb_path = self.extract_from_deb(deb_path, dtb_path) + initrd_url = ('https://github.com/groeck/linux-build-test/raw/' + '2eb0a73b5d5a28df3170c546ddaaa9757e1e0848/rootfs/' + 'arm/rootfs-armv5.cpio.gz') + initrd_hash = '2b50f1873e113523967806f4da2afe385462ff9b' + initrd_path_gz = self.fetch_asset(initrd_url, asset_hash=initrd_hash) + initrd_path = os.path.join(self.workdir, 'rootfs.cpio') + archive.gzip_uncompress(initrd_path_gz, initrd_path) + + self.vm.set_console() + kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE + + 'console=ttyS0,115200 ' + 'usbcore.nousb ' + '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.') + + exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo', + 'Allwinner sun4i/sun5i') + exec_command_and_wait_for_pattern(self, 'cat /proc/iomem', + 'system-control@1c00000') + exec_command_and_wait_for_pattern(self, 'reboot', + 'reboot: Restarting system') + def test_s390x_s390_ccw_virtio(self): """ :avocado: tags=arch:s390x
This test boots a Linux kernel on a CubieBoard and verify the serial output is working. The kernel image and DeviceTree blob are built by the Armbian project (based on Debian): https://docs.armbian.com/Developer-Guide_Build-Preparation/ The cpio image used comes from the linux-build-test project: https://github.com/groeck/linux-build-test If ARM is a target being built, "make check-acceptance" will automatically include this test by the use of the "arch:arm" tags. Alternatively, this test can be run using: $ avocado --show=console run -t machine:cubieboard tests/acceptance/boot_linux_console.py console: Uncompressing Linux... done, booting the kernel. console: Booting Linux on physical CPU 0x0 console: Linux version 4.20.7-sunxi (root@armbian.com) (gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11)) #5.75 SMP Fri Feb 8 09:02:10 CET 2019 console: CPU: ARMv7 Processor [410fc080] revision 0 (ARMv7), cr=50c5387d console: CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache console: OF: fdt: Machine model: Cubietech Cubieboard [...] console: Boot successful. console: cat /proc/cpuinfo console: / # cat /proc/cpuinfo console: processor : 0 console: model name : ARMv7 Processor rev 0 (v7l) console: BogoMIPS : 832.51 [...] console: Hardware : Allwinner sun4i/sun5i Families console: Revision : 0000 console: Serial : 0000000000000000 console: cat /proc/iomem console: / # cat /proc/iomem console: 01c00000-01c0002f : system-control@1c00000 console: 01c02000-01c02fff : dma-controller@1c02000 console: 01c05000-01c05fff : spi@1c05000 console: 01c0b080-01c0b093 : mdio@1c0b080 console: 01c0c000-01c0cfff : lcd-controller@1c0c000 console: 01c0d000-01c0dfff : lcd-controller@1c0d000 console: 01c0f000-01c0ffff : mmc@1c0f000 [...] PASS (54.35 s) Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> --- tests/acceptance/boot_linux_console.py | 41 ++++++++++++++++++++++++++ 1 file changed, 41 insertions(+)