diff mbox series

[18/18] Boot Linux Console Test: add a test for alpha + clipper

Message ID 20190117185628.21862-19-crosa@redhat.com
State New
Headers show
Series Acceptance Tests: target architecture support | expand

Commit Message

Cleber Rosa Jan. 17, 2019, 6:56 p.m. UTC
Similar to the x86_64 + pc test, it boots a Linux kernel on a Malta
board and verify the serial is working.  One extra command added to
the QEMU command line is '-vga std', because the kernel used is
known to crash without it.

If alpha is a target being built, "make check-acceptance" will
automatically include this test by the use of the "arch:alpha" tags.

Alternatively, this test can be run using:

    $ avocado run -t arch:alpha tests/acceptance
    $ avocado run -t machine:clipper tests/acceptance

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Cleber Rosa <crosa@redhat.com>
---
 .travis.yml                            |  2 +-
 scripts/qemu.py                        |  1 -
 tests/acceptance/boot_linux_console.py | 22 ++++++++++++++++++++++
 3 files changed, 23 insertions(+), 2 deletions(-)

Comments

Caio Carrara Jan. 21, 2019, 8:34 p.m. UTC | #1
On Thu, Jan 17, 2019 at 01:56:28PM -0500, 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.  One extra command added to
> the QEMU command line is '-vga std', because the kernel used is
> known to crash without it.
> 
> If alpha is a target being built, "make check-acceptance" will
> automatically include this test by the use of the "arch:alpha" tags.
> 
> Alternatively, this test can be run using:
> 
>     $ avocado run -t arch:alpha tests/acceptance
>     $ avocado run -t machine:clipper tests/acceptance
> 
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> Signed-off-by: Cleber Rosa <crosa@redhat.com>

Reviewed-by: Caio Carrara <ccarrara@redhat.com>

> ---
>  .travis.yml                            |  2 +-
>  scripts/qemu.py                        |  1 -
>  tests/acceptance/boot_linux_console.py | 22 ++++++++++++++++++++++
>  3 files changed, 23 insertions(+), 2 deletions(-)
> 
> diff --git a/.travis.yml b/.travis.yml
> index 0d5a4b104b..73a113af87 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,mips64el-softmmu,ppc64-softmmu,aarch64-softmmu,arm-softmmu,s390x-softmmu"
> +        - CONFIG="--python=/usr/bin/python3 --target-list=x86_64-softmmu,mips-softmmu,mips64el-softmmu,ppc64-softmmu,aarch64-softmmu,arm-softmmu,s390x-softmmu,alpha-softmmu"
>          - TEST_CMD="make check-acceptance"
>        addons:
>          apt:
> diff --git a/scripts/qemu.py b/scripts/qemu.py
> index 1531e28fc1..a704da418a 100644
> --- a/scripts/qemu.py
> +++ b/scripts/qemu.py
> @@ -34,7 +34,6 @@ def kvm_available(target_arch=None):
>  
>  #: Maps machine types to the preferred console device types
>  CONSOLE_DEV_TYPES = {
> -    r'^clipper$': 'isa-serial',
>      r'^(pc.*|q35.*|isapc)$': 'isa-serial',
>      r'^(40p|powernv|prep)$': 'isa-serial',
>      r'^s390-ccw-virtio.*': 'sclpconsole',
> diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py
> index c4d5477d45..a8028a39d4 100644
> --- a/tests/acceptance/boot_linux_console.py
> +++ b/tests/acceptance/boot_linux_console.py
> @@ -197,3 +197,25 @@ class BootLinuxConsole(Test):
>          self.vm.launch()
>          console_pattern = 'Kernel command line: %s' % kernel_command_line
>          self.wait_for_console_pattern(console_pattern)
> +
> +    def test_alpha_clipper(self):
> +        """
> +        :avocado: tags=arch:alpha
> +        :avocado: tags=machine:clipper
> +        """
> +        kernel_url = ('http://archive.debian.org/debian/dists/lenny/main/'
> +                      'installer-alpha/current/images/cdrom/vmlinuz')
> +        kernel_hash = '3a943149335529e2ed3e74d0d787b85fb5671ba3'
> +        kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
> +
> +        uncompressed_kernel = archive.uncompress(kernel_path, self.workdir)
> +
> +        self.vm.set_machine('clipper')
> +        self.vm.set_console()
> +        kernel_command_line = 'console=ttyS0 printk.time=0'
> +        self.vm.add_args('-vga', 'std',
> +                         '-kernel', uncompressed_kernel,
> +                         '-append', kernel_command_line)
> +        self.vm.launch()
> +        console_pattern = 'Kernel command line: %s' % kernel_command_line
> +        self.wait_for_console_pattern(console_pattern)
> -- 
> 2.20.1
>
Philippe Mathieu-Daudé Jan. 22, 2019, 10:52 a.m. UTC | #2
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.  One extra command added to
> the QEMU command line is '-vga std', because the kernel used is
> known to crash without it.
> 
> If alpha is a target being built, "make check-acceptance" will
> automatically include this test by the use of the "arch:alpha" tags.
> 
> Alternatively, this test can be run using:
> 
>     $ avocado run -t arch:alpha tests/acceptance
>     $ avocado run -t machine:clipper tests/acceptance
> 
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> Signed-off-by: Cleber Rosa <crosa@redhat.com>
> ---
>  .travis.yml                            |  2 +-
>  scripts/qemu.py                        |  1 -
>  tests/acceptance/boot_linux_console.py | 22 ++++++++++++++++++++++
>  3 files changed, 23 insertions(+), 2 deletions(-)
> 
> diff --git a/.travis.yml b/.travis.yml
> index 0d5a4b104b..73a113af87 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,mips64el-softmmu,ppc64-softmmu,aarch64-softmmu,arm-softmmu,s390x-softmmu"
> +        - CONFIG="--python=/usr/bin/python3 --target-list=x86_64-softmmu,mips-softmmu,mips64el-softmmu,ppc64-softmmu,aarch64-softmmu,arm-softmmu,s390x-softmmu,alpha-softmmu"
>          - TEST_CMD="make check-acceptance"
>        addons:
>          apt:
> diff --git a/scripts/qemu.py b/scripts/qemu.py
> index 1531e28fc1..a704da418a 100644
> --- a/scripts/qemu.py
> +++ b/scripts/qemu.py
> @@ -34,7 +34,6 @@ def kvm_available(target_arch=None):
>  
>  #: Maps machine types to the preferred console device types
>  CONSOLE_DEV_TYPES = {
> -    r'^clipper$': 'isa-serial',

Why this change?

>      r'^(pc.*|q35.*|isapc)$': 'isa-serial',
>      r'^(40p|powernv|prep)$': 'isa-serial',
>      r'^s390-ccw-virtio.*': 'sclpconsole',
> diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py
> index c4d5477d45..a8028a39d4 100644
> --- a/tests/acceptance/boot_linux_console.py
> +++ b/tests/acceptance/boot_linux_console.py
> @@ -197,3 +197,25 @@ class BootLinuxConsole(Test):
>          self.vm.launch()
>          console_pattern = 'Kernel command line: %s' % kernel_command_line
>          self.wait_for_console_pattern(console_pattern)
> +
> +    def test_alpha_clipper(self):
> +        """
> +        :avocado: tags=arch:alpha
> +        :avocado: tags=machine:clipper
> +        """
> +        kernel_url = ('http://archive.debian.org/debian/dists/lenny/main/'
> +                      'installer-alpha/current/images/cdrom/vmlinuz')
> +        kernel_hash = '3a943149335529e2ed3e74d0d787b85fb5671ba3'
> +        kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
> +
> +        uncompressed_kernel = archive.uncompress(kernel_path, self.workdir)
> +
> +        self.vm.set_machine('clipper')
> +        self.vm.set_console()
> +        kernel_command_line = 'console=ttyS0 printk.time=0'
> +        self.vm.add_args('-vga', 'std',
> +                         '-kernel', uncompressed_kernel,
> +                         '-append', kernel_command_line)
> +        self.vm.launch()
> +        console_pattern = 'Kernel command line: %s' % kernel_command_line
> +        self.wait_for_console_pattern(console_pattern)
>
Cleber Rosa Jan. 31, 2019, 2:53 a.m. UTC | #3
On 1/22/19 5:52 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.  One extra command added to
>> the QEMU command line is '-vga std', because the kernel used is
>> known to crash without it.
>>
>> If alpha is a target being built, "make check-acceptance" will
>> automatically include this test by the use of the "arch:alpha" tags.
>>
>> Alternatively, this test can be run using:
>>
>>     $ avocado run -t arch:alpha tests/acceptance
>>     $ avocado run -t machine:clipper tests/acceptance
>>
>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>> Signed-off-by: Cleber Rosa <crosa@redhat.com>
>> ---
>>  .travis.yml                            |  2 +-
>>  scripts/qemu.py                        |  1 -
>>  tests/acceptance/boot_linux_console.py | 22 ++++++++++++++++++++++
>>  3 files changed, 23 insertions(+), 2 deletions(-)
>>
>> diff --git a/.travis.yml b/.travis.yml
>> index 0d5a4b104b..73a113af87 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,mips64el-softmmu,ppc64-softmmu,aarch64-softmmu,arm-softmmu,s390x-softmmu"
>> +        - CONFIG="--python=/usr/bin/python3 --target-list=x86_64-softmmu,mips-softmmu,mips64el-softmmu,ppc64-softmmu,aarch64-softmmu,arm-softmmu,s390x-softmmu,alpha-softmmu"
>>          - TEST_CMD="make check-acceptance"
>>        addons:
>>          apt:
>> diff --git a/scripts/qemu.py b/scripts/qemu.py
>> index 1531e28fc1..a704da418a 100644
>> --- a/scripts/qemu.py
>> +++ b/scripts/qemu.py
>> @@ -34,7 +34,6 @@ def kvm_available(target_arch=None):
>>  
>>  #: Maps machine types to the preferred console device types
>>  CONSOLE_DEV_TYPES = {
>> -    r'^clipper$': 'isa-serial',
> 
> Why this change?
> 

Because we've come to conclusion (I believe :) that's better, whenever
possible, to let QEMU pick the default device type by machine.  The
discussion happened here:

https://lists.gnu.org/archive/html/qemu-devel/2018-10/msg04582.html

- Cleber.
Philippe Mathieu-Daudé Jan. 31, 2019, 10:30 a.m. UTC | #4
On 1/31/19 3:53 AM, Cleber Rosa wrote:
> On 1/22/19 5:52 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.  One extra command added to
>>> the QEMU command line is '-vga std', because the kernel used is
>>> known to crash without it.
>>>
>>> If alpha is a target being built, "make check-acceptance" will
>>> automatically include this test by the use of the "arch:alpha" tags.
>>>
>>> Alternatively, this test can be run using:
>>>
>>>     $ avocado run -t arch:alpha tests/acceptance
>>>     $ avocado run -t machine:clipper tests/acceptance
>>>
>>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>>> Signed-off-by: Cleber Rosa <crosa@redhat.com>
>>> ---
>>>  .travis.yml                            |  2 +-
>>>  scripts/qemu.py                        |  1 -
>>>  tests/acceptance/boot_linux_console.py | 22 ++++++++++++++++++++++
>>>  3 files changed, 23 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/.travis.yml b/.travis.yml
>>> index 0d5a4b104b..73a113af87 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,mips64el-softmmu,ppc64-softmmu,aarch64-softmmu,arm-softmmu,s390x-softmmu"
>>> +        - CONFIG="--python=/usr/bin/python3 --target-list=x86_64-softmmu,mips-softmmu,mips64el-softmmu,ppc64-softmmu,aarch64-softmmu,arm-softmmu,s390x-softmmu,alpha-softmmu"
>>>          - TEST_CMD="make check-acceptance"
>>>        addons:
>>>          apt:
>>> diff --git a/scripts/qemu.py b/scripts/qemu.py
>>> index 1531e28fc1..a704da418a 100644
>>> --- a/scripts/qemu.py
>>> +++ b/scripts/qemu.py
>>> @@ -34,7 +34,6 @@ def kvm_available(target_arch=None):
>>>  
>>>  #: Maps machine types to the preferred console device types
>>>  CONSOLE_DEV_TYPES = {
>>> -    r'^clipper$': 'isa-serial',
>>
>> Why this change?
>>
> 
> Because we've come to conclusion (I believe :) that's better, whenever
> possible, to let QEMU pick the default device type by machine.  The
> discussion happened here:
> 
> https://lists.gnu.org/archive/html/qemu-devel/2018-10/msg04582.html

I was expecting this change to be global (in a single patch previous to
the target-specific patches). If you prefer to do it a target at a time
I'm OK with it but you should add a comment about it in the commit IMHO.

Regards,

Phil.
Cleber Rosa Jan. 31, 2019, 8:23 p.m. UTC | #5
On 1/31/19 5:30 AM, Philippe Mathieu-Daudé wrote:
> On 1/31/19 3:53 AM, Cleber Rosa wrote:
>> On 1/22/19 5:52 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.  One extra command added to
>>>> the QEMU command line is '-vga std', because the kernel used is
>>>> known to crash without it.
>>>>
>>>> If alpha is a target being built, "make check-acceptance" will
>>>> automatically include this test by the use of the "arch:alpha" tags.
>>>>
>>>> Alternatively, this test can be run using:
>>>>
>>>>     $ avocado run -t arch:alpha tests/acceptance
>>>>     $ avocado run -t machine:clipper tests/acceptance
>>>>
>>>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>>>> Signed-off-by: Cleber Rosa <crosa@redhat.com>
>>>> ---
>>>>  .travis.yml                            |  2 +-
>>>>  scripts/qemu.py                        |  1 -
>>>>  tests/acceptance/boot_linux_console.py | 22 ++++++++++++++++++++++
>>>>  3 files changed, 23 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/.travis.yml b/.travis.yml
>>>> index 0d5a4b104b..73a113af87 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,mips64el-softmmu,ppc64-softmmu,aarch64-softmmu,arm-softmmu,s390x-softmmu"
>>>> +        - CONFIG="--python=/usr/bin/python3 --target-list=x86_64-softmmu,mips-softmmu,mips64el-softmmu,ppc64-softmmu,aarch64-softmmu,arm-softmmu,s390x-softmmu,alpha-softmmu"
>>>>          - TEST_CMD="make check-acceptance"
>>>>        addons:
>>>>          apt:
>>>> diff --git a/scripts/qemu.py b/scripts/qemu.py
>>>> index 1531e28fc1..a704da418a 100644
>>>> --- a/scripts/qemu.py
>>>> +++ b/scripts/qemu.py
>>>> @@ -34,7 +34,6 @@ def kvm_available(target_arch=None):
>>>>  
>>>>  #: Maps machine types to the preferred console device types
>>>>  CONSOLE_DEV_TYPES = {
>>>> -    r'^clipper$': 'isa-serial',
>>>
>>> Why this change?
>>>
>>
>> Because we've come to conclusion (I believe :) that's better, whenever
>> possible, to let QEMU pick the default device type by machine.  The
>> discussion happened here:
>>
>> https://lists.gnu.org/archive/html/qemu-devel/2018-10/msg04582.html
> 
> I was expecting this change to be global (in a single patch previous to
> the target-specific patches). If you prefer to do it a target at a time
> I'm OK with it but you should add a comment about it in the commit IMHO.
> 
> Regards,
> 
> Phil.
> 

You're right, that's a better approach.  I've made this change part of
the set_console() changes.

Thanks!
- Cleber.
diff mbox series

Patch

diff --git a/.travis.yml b/.travis.yml
index 0d5a4b104b..73a113af87 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,mips64el-softmmu,ppc64-softmmu,aarch64-softmmu,arm-softmmu,s390x-softmmu"
+        - CONFIG="--python=/usr/bin/python3 --target-list=x86_64-softmmu,mips-softmmu,mips64el-softmmu,ppc64-softmmu,aarch64-softmmu,arm-softmmu,s390x-softmmu,alpha-softmmu"
         - TEST_CMD="make check-acceptance"
       addons:
         apt:
diff --git a/scripts/qemu.py b/scripts/qemu.py
index 1531e28fc1..a704da418a 100644
--- a/scripts/qemu.py
+++ b/scripts/qemu.py
@@ -34,7 +34,6 @@  def kvm_available(target_arch=None):
 
 #: Maps machine types to the preferred console device types
 CONSOLE_DEV_TYPES = {
-    r'^clipper$': 'isa-serial',
     r'^(pc.*|q35.*|isapc)$': 'isa-serial',
     r'^(40p|powernv|prep)$': 'isa-serial',
     r'^s390-ccw-virtio.*': 'sclpconsole',
diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py
index c4d5477d45..a8028a39d4 100644
--- a/tests/acceptance/boot_linux_console.py
+++ b/tests/acceptance/boot_linux_console.py
@@ -197,3 +197,25 @@  class BootLinuxConsole(Test):
         self.vm.launch()
         console_pattern = 'Kernel command line: %s' % kernel_command_line
         self.wait_for_console_pattern(console_pattern)
+
+    def test_alpha_clipper(self):
+        """
+        :avocado: tags=arch:alpha
+        :avocado: tags=machine:clipper
+        """
+        kernel_url = ('http://archive.debian.org/debian/dists/lenny/main/'
+                      'installer-alpha/current/images/cdrom/vmlinuz')
+        kernel_hash = '3a943149335529e2ed3e74d0d787b85fb5671ba3'
+        kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
+
+        uncompressed_kernel = archive.uncompress(kernel_path, self.workdir)
+
+        self.vm.set_machine('clipper')
+        self.vm.set_console()
+        kernel_command_line = 'console=ttyS0 printk.time=0'
+        self.vm.add_args('-vga', 'std',
+                         '-kernel', uncompressed_kernel,
+                         '-append', kernel_command_line)
+        self.vm.launch()
+        console_pattern = 'Kernel command line: %s' % kernel_command_line
+        self.wait_for_console_pattern(console_pattern)