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é <f4bug@amsat.org>
Signed-off-by: Cleber Rosa <crosa@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'
+ 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)
--
2.20.1
On Thu, Jan 17, 2019 at 01:56:23PM -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.
>
> 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é <f4bug@amsat.org>
> Signed-off-by: Cleber Rosa <crosa@redhat.com>
Reviewed-by: Caio Carrara <ccarrara@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'
> + 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)
> --
> 2.20.1
>
--
Caio Carrara
Software Engineer, Virt Team - Red Hat
ccarrara@redhat.com
Hi Cleber,
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é <f4bug@amsat.org>
> Signed-off-by: Cleber Rosa <crosa@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)
> +
Can you refactor this code ...
> + 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'
... as an helper function?
Can be follow-up patch, so:
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> +
> + self.vm.set_machine('malta')
> + self.vm.set_console()
> + kernel_command_line = 'console=ttyS0 printk.time=0'
> + 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)
>
On 1/22/19 5:19 AM, Philippe Mathieu-Daudé wrote:
> Hi Cleber,
>
> 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é <f4bug@amsat.org>
>> Signed-off-by: Cleber Rosa <crosa@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)
>> +
>
> Can you refactor this code ...
>
>> + 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'
>
> ... as an helper function?
>
Yes. In fact, because of the kernel change in the previous patch, I've
added it there.
> Can be follow-up patch, so:
> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>
In the longer term, I expect to add deb (and RPM, etc) support to the
avocado.utils.archive module:
https://trello.com/c/bQBnvkjv/1437-avocadoutilsarchive-support-rpm-deb-etc
Thanks!
- Cleber.
On 1/31/19 2:26 AM, Cleber Rosa wrote:
> On 1/22/19 5:19 AM, Philippe Mathieu-Daudé wrote:
>> Hi Cleber,
>>
>> 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é <f4bug@amsat.org>
>>> Signed-off-by: Cleber Rosa <crosa@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)
>>> +
>>
>> Can you refactor this code ...
>>
>>> + 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'
>>
>> ... as an helper function?
>>
>
> Yes. In fact, because of the kernel change in the previous patch, I've
> added it there.
>
>> Can be follow-up patch, so:
>> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>>
>
> In the longer term, I expect to add deb (and RPM, etc) support to the
> avocado.utils.archive module:
>
> https://trello.com/c/bQBnvkjv/1437-avocadoutilsarchive-support-rpm-deb-etc
Awesome, thanks!
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é <f4bug@amsat.org>
> Signed-off-by: Cleber Rosa <crosa@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?
> + 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)
>
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é <f4bug@amsat.org>
>> Signed-off-by: Cleber Rosa <crosa@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.
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)
>>
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é <f4bug@amsat.org>
>>> Signed-off-by: Cleber Rosa <crosa@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.
>>> + 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)
>>>
>
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é <f4bug@amsat.org>
>>>> Signed-off-by: Cleber Rosa <crosa@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)
>>>>
>>
On 01/17/2019 04: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.
s/arch:mips/arch:mips64el
>
> 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é <f4bug@amsat.org>
> Signed-off-by: Cleber Rosa <crosa@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
There references 1 and 2 are inverted.
- Wainer
> +
> + :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'
> + 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)
On 1/31/19 1:14 PM, Wainer dos Santos Moschetta wrote:
>
> On 01/17/2019 04: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.
>
> s/arch:mips/arch:mips64el
>
Good catch!
>>
>> 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é <f4bug@amsat.org>
>> Signed-off-by: Cleber Rosa <crosa@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
>>
>
> There references 1 and 2 are inverted.
>
And yet another one good catch! Your proofreading is awesome!
- Cleber.
> - Wainer
>
>> +
>> + :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'
>> + 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)
>
--
Cleber Rosa
[ Sr Software Engineer - Virtualization Team - Red Hat ]
[ Avocado Test Framework - avocado-framework.github.io ]
[ 7ABB 96EB 8B46 B94D 5E0F E9BB 657E 8D33 A5F2 09F3 ]
© 2016 - 2026 Red Hat, Inc.