qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v4 16/20] tests/boot_linux_console: Add a SLOW test booting U


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH v4 16/20] tests/boot_linux_console: Add a SLOW test booting Ubuntu on OrangePi PC
Date: Sun, 19 Jan 2020 23:30:00 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.2

On 1/19/20 1:50 AM, Niek Linnenbank wrote:
> From: Philippe Mathieu-Daudé <address@hidden>
> 
> This test boots Ubuntu Bionic on a OrangePi PC board.
> 
> As it requires 1GB of storage, and is slow, this test is disabled
> on automatic CI testing.
> 
> It is useful for workstation testing. Currently Avocado timeouts too
> quickly, so we can't run userland commands.
> 
> The kernel image and DeviceTree blob are built by the Armbian
> project (based on Debian):
> https://www.armbian.com/orange-pi-pc/
> 
> The Ubuntu image is downloaded from:
> https://dl.armbian.com/orangepipc/Bionic_current

I forgot the image is compressed is compressed with 7z, which is not
provided by avocado.utils.archive. This patch requires more checks, see
inlined...

> 
> This test can be run using:
> 
>   $ AVOCADO_ALLOW_LARGE_STORAGE=yes \
>     avocado --show=app,console run -t machine:orangepi-pc \
>       tests/acceptance/boot_linux_console.py
>   console: U-Boot SPL 2019.04-armbian (Nov 18 2019 - 23:08:35 +0100)
>   console: DRAM: 1024 MiB
>   console: Failed to set core voltage! Can't set CPU frequency
>   console: Trying to boot from MMC1
>   console: U-Boot 2019.04-armbian (Nov 18 2019 - 23:08:35 +0100) Allwinner 
> Technology
>   console: CPU:   Allwinner H3 (SUN8I 0000)
>   console: Model: Xunlong Orange Pi PC
>   console: DRAM:  1 GiB
>   console: MMC:   mmc@1c0f000: 0
>   [...]
>   console: Uncompressing Linux... done, booting the kernel.
>   console: Booting Linux on physical CPU 0x0
>   console: Linux version 5.3.9-sunxi (root@builder) (gcc version 8.3.0 (GNU 
> Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36))) 
> #19.11.3 SMP Mon Nov 18 18:49:43 CET 2019
>   console: CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=50c5387d
>   console: CPU: div instructions available: patching division code
>   console: CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction 
> cache
>   console: OF: fdt: Machine model: Xunlong Orange Pi PC
>   [...]
>   console: EXT4-fs (mmcblk0p1): mounted filesystem with writeback data mode. 
> Opts: (null)
>   console: done.
>   console: Begin: Running /scripts/local-bottom ... done.
>   console: Begin: Running /scripts/init-bottom ... done.
>   console: systemd[1]: systemd 237 running in system mode. (...)
>   console: systemd[1]: Detected architecture arm.
>   console: Welcome to Ubuntu 18.04.3 LTS!
>   console: systemd[1]: Set hostname to <orangepipc>.
> 
> Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
> [NL: rename in commit message Raspbian to Armbian, remove vm.set_machine()]
> [NL: changed test to boot from SD card via BootROM]
> Signed-off-by: Niek Linnenbank <address@hidden>
> ---
>  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 50294e1675..399d5062db 100644
> --- a/tests/acceptance/boot_linux_console.py
> +++ b/tests/acceptance/boot_linux_console.py

This patch needs:

  from avocado.utils.path import find_command

  P7ZIP_AVAILABLE = True
  try:
      find_command('7z')
  except CmdNotFoundError:
      P7ZIP_AVAILABLE = False

> @@ -591,6 +591,47 @@ class BootLinuxConsole(Test):
>          exec_command_and_wait_for_pattern(self, 'reboot',
>                                                  'reboot: Restarting system')
>  
> +    @skipUnless(os.getenv('AVOCADO_ALLOW_LARGE_STORAGE'), 'storage limited')

       @skipUnless(P7ZIP_AVAILABLE, '7z not installed')

> +    def test_arm_orangepi_bionic(self):
> +        """
> +        :avocado: tags=arch:arm
> +        :avocado: tags=machine:orangepi-pc
> +        """
> +
> +        # This test download a 196MB compressed image and expand it to 
> 932MB...
> +        image_url = ('https://dl.armbian.com/orangepipc/archive/'
> +                     'Armbian_19.11.3_Orangepipc_bionic_current_5.3.9.7z')
> +        image_hash = '196a8ffb72b0123d92cea4a070894813d305c71e'
> +        image_path_7z = self.fetch_asset(image_url, asset_hash=image_hash)
> +        image_name = 'Armbian_19.11.3_Orangepipc_bionic_current_5.3.9.img'
> +        image_path = os.path.join(self.workdir, image_name)
> +        process.run("7z e -o%s %s" % (self.workdir, image_path_7z))

Because here 7z is called ^

> +
> +        self.vm.set_console()
> +        self.vm.add_args('-drive', 'file=' + image_path + 
> ',if=sd,format=raw',
> +                         '-nic', 'user',
> +                         '-no-reboot')
> +        self.vm.launch()
> +
> +        kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
> +                               'console=ttyS0,115200 '
> +                               'loglevel=7 '
> +                               'nosmp '
> +                               'systemd.default_timeout_start_sec=9000 '
> +                               'systemd.mask=armbian-zram-config.service '
> +                               'systemd.mask=armbian-ramlog.service')
> +
> +        self.wait_for_console_pattern('U-Boot SPL')
> +        self.wait_for_console_pattern('Autoboot in ')
> +        exec_command_and_wait_for_pattern(self, ' ', '=>')
> +        exec_command_and_wait_for_pattern(self, "setenv extraargs '" +
> +                                                kernel_command_line + "'", 
> '=>')
> +        exec_command_and_wait_for_pattern(self, 'boot', 'Starting kernel 
> ...');
> +
> +        self.wait_for_console_pattern('systemd[1]: Set hostname ' +
> +                                      'to <orangepipc>')
> +        self.wait_for_console_pattern('Starting Load Kernel Modules...')
> +
>      def test_s390x_s390_ccw_virtio(self):
>          """
>          :avocado: tags=arch:s390x
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]