[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 5/5] tests/boot_linux_console: Add sdcard test for the Exynos
From: |
Cleber Rosa |
Subject: |
Re: [PATCH 5/5] tests/boot_linux_console: Add sdcard test for the Exynos4210 |
Date: |
Tue, 8 Oct 2019 19:12:26 -0400 |
User-agent: |
Mutt/1.12.1 (2019-06-15) |
On Sat, Oct 05, 2019 at 05:47:48PM +0200, Philippe Mathieu-Daudé wrote:
> This test boots a Linux kernel on a smdkc210 board and verify
> the serial output is working.
>
> The cpio image used comes from the linux-build-test project:
> https://github.com/groeck/linux-build-test
>
> Since this test is not reliable due to clock timing issues,
> it is disabled with the 'skip' property.
>
> Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
> ---
> tests/acceptance/boot_linux_console.py | 47 ++++++++++++++++++++++++++
> 1 file changed, 47 insertions(+)
>
> diff --git a/tests/acceptance/boot_linux_console.py
> b/tests/acceptance/boot_linux_console.py
> index 197358a69c..2d0d82b013 100644
> --- a/tests/acceptance/boot_linux_console.py
> +++ b/tests/acceptance/boot_linux_console.py
> @@ -14,6 +14,7 @@ import lzma
> import gzip
> import shutil
>
> +from avocado import skip
> from avocado_qemu import Test
> from avocado.utils import process
> from avocado.utils import archive
> @@ -359,6 +360,52 @@ class BootLinuxConsole(Test):
> self.wait_for_console_pattern('Boot successful.')
> # TODO user command, for now the uart is stuck
>
> + @skip("unstable clock timings")
On the topic of skipping unstable tests, don't you think this is
something that should check for some type of flag?
Just for the sake of brainstorming, other possiblity is to build on
Avocado's "WARN" test status, and instead of failing a test (and
affecting the overall job execution), simply warn the user. A
decorator such as "@warn_on" could be implemented similar to the
existing "@fail_on" and "@cancel_on".
> + def test_arm_exynos4210_sdcard(self):
> + """
> + :avocado: tags=arch:arm
> + :avocado: tags=machine:smdkc210
> + """
> + deb_url = ('https://snapshot.debian.org/archive/debian/'
> + '20190928T224601Z/pool/main/l/linux/'
> + 'linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb')
> + deb_hash = 'fa9df4a0d38936cb50084838f2cb933f570d7d82'
> + deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash)
> + kernel_path = self.extract_from_deb(deb_path,
> + '/boot/vmlinuz-4.19.0-6-armmp')
> + dtb_path =
> '/usr/lib/linux-image-4.19.0-6-armmp/exynos4210-smdkv310.dtb'
> + dtb_path = self.extract_from_deb(deb_path, dtb_path)
> +
> + rootfs_url = ('https://github.com/groeck/linux-build-test/raw/'
> + '2eb0a73b5d5a28df3170c546ddaaa9757e1e0848/rootfs/'
> + 'arm/rootfs-armv5.ext2.gz')
> + rootfs_hash = '093e89d2b4d982234bf528bc9fb2f2f17a9d1f93'
> + rootfs_path_gz = self.fetch_asset(rootfs_url, asset_hash=rootfs_hash)
> + rootfs_path = os.path.join(self.workdir, 'rootfs.ext2')
> + gunzip(rootfs_path_gz, rootfs_path)
I was going to suggest the same thing as the previous patch, but this
turned out to be quite interesting. Basically, both compressed and
uncompressed verions of this file seems to disguise themselves pretty
well as a tar file:
$ tar vtf rootfs-armv5.ext2.gz
$ gzip -dc rootfs-armv5.ext2.gz | tar vtf -
$ python3 -m tarfile -l rootfs-armv5.ext2.gz
$ python3 -m tarfile -l rootfs-armv5.ext2
Even though it is not. This affects how "avocado.utils.uncompress"
detects the file, and consequently how it tries to uncompress it.
So, here, you could instead use:
archive.gzip_uncompress(rootfs_path_gz, rootfs_path)
To avoid relying on the broken tar file detection.
- Cleber.
> +
> + self.vm.set_machine('smdkc210')
> + self.vm.set_console(console_id=1)
> + kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
> + 'earlycon=exynos4210,0x13810000 earlyprintk '
> +
> + 'console=ttySAC1,115200n8 ' +
> + 'random.trust_cpu=off cryptomgr.notests ' +
> + 'root=/dev/mmcblk0 rootwait rw ' +
> + 'cpuidle.off=1 panic=-1 noreboot')
> +
> + self.vm.add_args('-kernel', kernel_path,
> + '-dtb', dtb_path,
> + '-append', kernel_command_line,
> + # The external MMC is on the 3rd slot
> + '-drive', 'if=sd,driver=null-co',
> + '-drive', 'if=sd,driver=null-co',
> + '-drive', 'if=sd,file=' + rootfs_path +
> ',format=raw',
> + '-no-reboot')
> + self.vm.launch()
> +
> + self.wait_for_console_pattern('Boot successful.')
> + # TODO user command, for now the uart is stuck
> +
> def test_s390x_s390_ccw_virtio(self):
> """
> :avocado: tags=arch:s390x
> --
> 2.20.1
>
>
- Re: [PATCH 1/5] tests/boot_linux_console: Add initrd test for the Exynos4210, (continued)
Re: [PATCH 1/5] tests/boot_linux_console: Add initrd test for the Exynos4210, Cleber Rosa, 2019/10/08
[PATCH 3/5] hw/sd/sdhci: Add dummy Samsung SDHCI controller, Philippe Mathieu-Daudé, 2019/10/05
[PATCH 4/5] hw/arm/exynos4210: Use the Samsung s3c SDHCI controller, Philippe Mathieu-Daudé, 2019/10/05
[PATCH 5/5] tests/boot_linux_console: Add sdcard test for the Exynos4210, Philippe Mathieu-Daudé, 2019/10/05
- Re: [PATCH 5/5] tests/boot_linux_console: Add sdcard test for the Exynos4210,
Cleber Rosa <=
Re: [PATCH 0/5] hw/arm/exynos4210: Add acceptance tests to the SMDKC210 board, Krzysztof Kozlowski, 2019/10/07
Re: [PATCH 0/5] hw/arm/exynos4210: Add acceptance tests to the SMDKC210 board, Philippe Mathieu-Daudé, 2019/10/18