[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 13/18] Boot Linux Console Test: add a test for m
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [Qemu-devel] [PATCH 13/18] Boot Linux Console Test: add a test for mips64el + malta |
Date: |
Thu, 31 Jan 2019 11:26:39 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 |
On 1/31/19 2:34 AM, Cleber Rosa wrote:
> On 1/22/19 5:57 AM, Philippe Mathieu-Daudé wrote:
>> On 1/17/19 7:56 PM, Cleber Rosa wrote:
>>> Similar to the x86_64 + pc test, it boots a Linux kernel on a Malta
>>> board and verify the serial is working.
>>>
>>> If mips64el is a target being built, "make check-acceptance" will
>>> automatically include this test by the use of the "arch:mips" tags.
>>>
>>> Alternatively, this test can be run using:
>>>
>>> $ avocado run -t arch:mips64el tests/acceptance
>>> $ avocado run -t machine:malta tests/acceptance
>>>
>>> Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
>>> Signed-off-by: Cleber Rosa <address@hidden>
>>> ---
>>> .travis.yml | 2 +-
>>> tests/acceptance/boot_linux_console.py | 39 ++++++++++++++++++++++++++
>>> 2 files changed, 40 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/.travis.yml b/.travis.yml
>>> index 49f9016e6a..28648f7a61 100644
>>> --- a/.travis.yml
>>> +++ b/.travis.yml
>>> @@ -187,7 +187,7 @@ matrix:
>>>
>>> # Acceptance (Functional) tests
>>> - env:
>>> - - CONFIG="--python=/usr/bin/python3
>>> --target-list=x86_64-softmmu,mips-softmmu"
>>> + - CONFIG="--python=/usr/bin/python3
>>> --target-list=x86_64-softmmu,mips-softmmu,mips64el-softmmu"
>>> - TEST_CMD="make check-acceptance"
>>> addons:
>>> apt:
>>> diff --git a/tests/acceptance/boot_linux_console.py
>>> b/tests/acceptance/boot_linux_console.py
>>> index 0678ec91d2..20b845fce1 100644
>>> --- a/tests/acceptance/boot_linux_console.py
>>> +++ b/tests/acceptance/boot_linux_console.py
>>> @@ -9,8 +9,11 @@
>>> # later. See the COPYING file in the top-level directory.
>>>
>>> import logging
>>> +import os
>>>
>>> from avocado_qemu import Test
>>> +from avocado.utils import process
>>> +from avocado.utils import archive
>>>
>>>
>>> class BootLinuxConsole(Test):
>>> @@ -80,3 +83,39 @@ class BootLinuxConsole(Test):
>>> self.vm.launch()
>>> console_pattern = 'Kernel command line: %s' % kernel_command_line
>>> self.wait_for_console_pattern(console_pattern)
>>> +
>>> + def test_mips64el_malta(self):
>>> + """
>>> + This test requires the ar tool to extract "data.tar.gz" from
>>> + the Debian package.
>>> +
>>> + The kernel can be rebuilt using this Debian kernel source [1] and
>>> + following the instructions on [2].
>>> +
>>> + [1]
>>> https://kernel-team.pages.debian.net/kernel-handbook/ch-common-tasks.html#s-common-official
>>> + [2]
>>> http://snapshot.debian.org/package/linux-2.6/2.6.32-48/#linux-source-2.6.32_2.6.32-48
>>> +
>>> + :avocado: tags=arch:mips64el
>>> + :avocado: tags=machine:malta
>>> + """
>>> + deb_url =
>>> ('http://snapshot.debian.org/archive/debian/20130217T032700Z/'
>>> + 'pool/main/l/linux-2.6/'
>>> + 'linux-image-2.6.32-5-5kc-malta_2.6.32-48_mipsel.deb')
>>> + deb_hash = '1aaec92083bf22fda31e0d27fa8d9a388e5fc3d5'
>>> + deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash)
>>> +
>>> + cwd = os.getcwd()
>>> + os.chdir(self.workdir)
>>> + process.run("ar x %s data.tar.gz" % deb_path)
>>> + archive.extract("data.tar.gz", self.workdir)
>>> + os.chdir(cwd)
>>> + kernel_path = self.workdir + '/boot/vmlinux-2.6.32-5-5kc-malta'
>>> +
>>> + self.vm.set_machine('malta')
>>> + self.vm.set_console()
>>> + kernel_command_line = 'console=ttyS0 printk.time=0'
>>
>> What about having a generic KERNEL_COMMON_COMMAND_LINE='printk.time=0 '
>> then using
>> kernel_command_line = KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0'
>> in each tests of this series?
>>
>
> Not sure... I do like the fact that it's more uniform, but I don't like
> the locality aspect. Having to refer back to something defined either
> in the module or class level for something so small is a big con, IMO.
>
> I'll keep it AS IS for now, and if more people feel like it's a good
> idea, or you feel stronger that it's a good idea, I can add it in the
> next version.
I'm fine with that, however I'd really like all the Linux tests to use
"printk.time=0" in their kernel cmdline, it really simplify
parsing/diffing the console output.
>>> + self.vm.add_args('-kernel', kernel_path,
>>> + '-append', kernel_command_line)
>>> + self.vm.launch()
>>> + console_pattern = 'Kernel command line: %s' % kernel_command_line
>>> + self.wait_for_console_pattern(console_pattern)
>>>
>
- Re: [Qemu-devel] [PATCH 06/18] Acceptance tests: use "arch:" tag to filter target specific tests, (continued)
Re: [Qemu-devel] [PATCH 13/18] Boot Linux Console Test: add a test for mips64el + malta, Wainer dos Santos Moschetta, 2019/01/31
[Qemu-devel] [PATCH 18/18] Boot Linux Console Test: add a test for alpha + clipper, Cleber Rosa, 2019/01/17
[Qemu-devel] [PATCH 01/18] scripts/qemu.py: log QEMU launch command line, Cleber Rosa, 2019/01/17