On 1/31/19 5:26 AM, Philippe Mathieu-Daudé wrote:
> 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é <f4...@amsat.org>
>>>> Signed-off-by: Cleber Rosa <cr...@redhat.com>
>>>> ---
>>>>  .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.
> 

OK, I'll include that in v2.

Thanks!
- Cleber.

>>>> +        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)
>>>>
>>

Reply via email to