* [PATCH v3 1/7] tests/functional: Convert mips64el Fuloong2e avocado test (1/2)
2024-08-24 16:08 [PATCH v3 0/7] tests/functional: Convert few MIPS avocado tests Philippe Mathieu-Daudé
@ 2024-08-24 16:08 ` Philippe Mathieu-Daudé
2024-08-26 9:03 ` Thomas Huth
2024-08-24 16:08 ` [PATCH v3 2/7] tests/functional: Convert mips64el Fuloong2e avocado test (2/2) Philippe Mathieu-Daudé
` (5 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-08-24 16:08 UTC (permalink / raw)
To: qemu-devel
Cc: Jiaxun Yang, Cleber Rosa, Thomas Huth, Aurelien Jarno,
Huacai Chen, Beraldo Leal, Wainer dos Santos Moschetta,
Philippe Mathieu-Daudé
Straight forward conversion. Update the SHA1 hashes to
SHA256 hashes since SHA1 should not be used anymore nowadays.
Since the asset is expected locally and the test is guarded
with QEMU_TEST_ALLOW_UNTRUSTED_CODE, keep it under the 'quick'
category.
$ RESCUE_YL_PATH=/path/to/rescue-yl QEMU_TEST_ALLOW_UNTRUSTED_CODE=1 \
make check-functional-mips64el
1/4 qemu:func-quick+func-mips64el / func-mips64el-empty_cpu_model OK 0.12s 1 subtests passed
2/4 qemu:func-quick+func-mips64el / func-mips64el-version OK 0.13s 1 subtests passed
3/4 qemu:func-quick+func-mips64el / func-mips64el-info_usernet OK 0.15s 1 subtests passed
4/4 qemu:func-quick+func-mips64el / func-mips64el-mips64el_fuloong2e OK 0.19s 1 subtests passed
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
MAINTAINERS | 2 +-
tests/functional/meson.build | 4 +++
.../test_mips64el_fuloong2e.py} | 33 ++++++++++---------
3 files changed, 23 insertions(+), 16 deletions(-)
rename tests/{avocado/machine_mips_fuloong2e.py => functional/test_mips64el_fuloong2e.py} (58%)
mode change 100644 => 100755
diff --git a/MAINTAINERS b/MAINTAINERS
index 25e71ac14c..77fbb5d42e 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1384,7 +1384,7 @@ S: Odd Fixes
F: hw/mips/fuloong2e.c
F: hw/pci-host/bonito.c
F: include/hw/pci-host/bonito.h
-F: tests/avocado/machine_mips_fuloong2e.py
+F: tests/functional/test_mips64el_fuloong2e.py
Loongson-3 virtual platforms
M: Huacai Chen <chenhuacai@kernel.org>
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index 12e08e365b..8d28313a65 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -51,6 +51,10 @@ tests_microblazeel_thorough = [
'microblazeel_s3adsp1800'
]
+tests_mips64el_quick = [
+ 'mips64el_fuloong2e',
+]
+
tests_mips64el_thorough = [
'mips64el_loongson3v',
]
diff --git a/tests/avocado/machine_mips_fuloong2e.py b/tests/functional/test_mips64el_fuloong2e.py
old mode 100644
new mode 100755
similarity index 58%
rename from tests/avocado/machine_mips_fuloong2e.py
rename to tests/functional/test_mips64el_fuloong2e.py
index 89291f47b2..7688a32713
--- a/tests/avocado/machine_mips_fuloong2e.py
+++ b/tests/functional/test_mips64el_fuloong2e.py
@@ -1,3 +1,5 @@
+#!/usr/bin/env python3
+#
# Functional tests for the Lemote Fuloong-2E machine.
#
# Copyright (c) 2019 Philippe Mathieu-Daudé <f4bug@amsat.org>
@@ -8,35 +10,36 @@
# SPDX-License-Identifier: GPL-2.0-or-later
import os
+import subprocess
-from avocado import skipUnless
-from avocado_qemu import QemuSystemTest
-from avocado_qemu import wait_for_console_pattern
+from qemu_test import QemuSystemTest
+from qemu_test import wait_for_console_pattern
+from unittest import skipUnless
class MipsFuloong2e(QemuSystemTest):
timeout = 60
- @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code')
+ @skipUnless(os.getenv('QEMU_TEST_ALLOW_UNTRUSTED_CODE'), 'untrusted code')
@skipUnless(os.getenv('RESCUE_YL_PATH'), 'RESCUE_YL_PATH not available')
- def test_linux_kernel_isa_serial(self):
- """
- :avocado: tags=arch:mips64el
- :avocado: tags=machine:fuloong2e
- :avocado: tags=endian:little
- :avocado: tags=device:bonito64
- :avocado: tags=device:via686b
- """
+ def test_linux_kernel_2_6_27_isa_serial(self):
# Recovery system for the Yeeloong laptop
# (enough to test the fuloong2e southbridge, accessing its ISA bus)
# http://dev.lemote.com/files/resource/download/rescue/rescue-yl
- kernel_hash = 'ec4d1bd89a8439c41033ca63db60160cc6d6f09a'
- kernel_path = self.fetch_asset('file://' + os.getenv('RESCUE_YL_PATH'),
- asset_hash=kernel_hash)
+ sha = 'ab588d3316777c62cc81baa20ac92e98b01955c244dff3794b711bc34e26e51d'
+ kernel_path = os.getenv('RESCUE_YL_PATH')
+ output = subprocess.check_output(['sha256sum', kernel_path])
+ checksum = output.split()[0]
+ assert checksum.decode("utf-8") == sha
+ self.set_machine('fuloong2e')
self.vm.set_console()
self.vm.add_args('-kernel', kernel_path)
self.vm.launch()
wait_for_console_pattern(self, 'Linux version 2.6.27.7lemote')
cpu_revision = 'CPU revision is: 00006302 (ICT Loongson-2)'
wait_for_console_pattern(self, cpu_revision)
+
+
+if __name__ == '__main__':
+ QemuSystemTest.main()
--
2.45.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v3 1/7] tests/functional: Convert mips64el Fuloong2e avocado test (1/2)
2024-08-24 16:08 ` [PATCH v3 1/7] tests/functional: Convert mips64el Fuloong2e avocado test (1/2) Philippe Mathieu-Daudé
@ 2024-08-26 9:03 ` Thomas Huth
0 siblings, 0 replies; 14+ messages in thread
From: Thomas Huth @ 2024-08-26 9:03 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel
Cc: Jiaxun Yang, Cleber Rosa, Aurelien Jarno, Huacai Chen,
Beraldo Leal, Wainer dos Santos Moschetta
On 24/08/2024 18.08, Philippe Mathieu-Daudé wrote:
> Straight forward conversion. Update the SHA1 hashes to
> SHA256 hashes since SHA1 should not be used anymore nowadays.
>
> Since the asset is expected locally and the test is guarded
> with QEMU_TEST_ALLOW_UNTRUSTED_CODE, keep it under the 'quick'
s/QEMU_TEST_ALLOW_UNTRUSTED_CODE/RESCUE_YL_PATH/ ?
> category.
>
> $ RESCUE_YL_PATH=/path/to/rescue-yl QEMU_TEST_ALLOW_UNTRUSTED_CODE=1 \
> make check-functional-mips64el
> 1/4 qemu:func-quick+func-mips64el / func-mips64el-empty_cpu_model OK 0.12s 1 subtests passed
> 2/4 qemu:func-quick+func-mips64el / func-mips64el-version OK 0.13s 1 subtests passed
> 3/4 qemu:func-quick+func-mips64el / func-mips64el-info_usernet OK 0.15s 1 subtests passed
> 4/4 qemu:func-quick+func-mips64el / func-mips64el-mips64el_fuloong2e OK 0.19s 1 subtests passed
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
Reviewed-by: Thomas Huth <thuth@redhat.com>
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v3 2/7] tests/functional: Convert mips64el Fuloong2e avocado test (2/2)
2024-08-24 16:08 [PATCH v3 0/7] tests/functional: Convert few MIPS avocado tests Philippe Mathieu-Daudé
2024-08-24 16:08 ` [PATCH v3 1/7] tests/functional: Convert mips64el Fuloong2e avocado test (1/2) Philippe Mathieu-Daudé
@ 2024-08-24 16:08 ` Philippe Mathieu-Daudé
2024-08-26 9:10 ` Thomas Huth
2024-08-24 16:08 ` [PATCH v3 3/7] tests/functional: Convert mips64el I6400 Malta avocado tests Philippe Mathieu-Daudé
` (4 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-08-24 16:08 UTC (permalink / raw)
To: qemu-devel
Cc: Jiaxun Yang, Cleber Rosa, Thomas Huth, Aurelien Jarno,
Huacai Chen, Beraldo Leal, Wainer dos Santos Moschetta,
Philippe Mathieu-Daudé
Straight forward conversion. Update the SHA1 hashes to
SHA256 hashes since SHA1 should not be used anymore nowadays.
Add extract_from_deb() method in qemu_test.utils package.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
tests/avocado/boot_linux_console.py | 21 ------------------
tests/functional/qemu_test/utils.py | 20 +++++++++++++++++
tests/functional/test_mips64el_fuloong2e.py | 24 ++++++++++++++++++++-
3 files changed, 43 insertions(+), 22 deletions(-)
diff --git a/tests/avocado/boot_linux_console.py b/tests/avocado/boot_linux_console.py
index 18c69d6acc..01fd126c53 100644
--- a/tests/avocado/boot_linux_console.py
+++ b/tests/avocado/boot_linux_console.py
@@ -170,27 +170,6 @@ def test_mips64el_malta(self):
console_pattern = 'Kernel command line: %s' % kernel_command_line
self.wait_for_console_pattern(console_pattern)
- def test_mips64el_fuloong2e(self):
- """
- :avocado: tags=arch:mips64el
- :avocado: tags=machine:fuloong2e
- :avocado: tags=endian:little
- """
- deb_url = ('http://archive.debian.org/debian/pool/main/l/linux/'
- 'linux-image-3.16.0-6-loongson-2e_3.16.56-1+deb8u1_mipsel.deb')
- deb_hash = 'd04d446045deecf7b755ef576551de0c4184dd44'
- deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash)
- kernel_path = self.extract_from_deb(deb_path,
- '/boot/vmlinux-3.16.0-6-loongson-2e')
-
- self.vm.set_console()
- kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0'
- 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)
-
def test_mips_malta_cpio(self):
"""
:avocado: tags=arch:mips
diff --git a/tests/functional/qemu_test/utils.py b/tests/functional/qemu_test/utils.py
index 99eae5fc45..481a6b8e7c 100644
--- a/tests/functional/qemu_test/utils.py
+++ b/tests/functional/qemu_test/utils.py
@@ -14,6 +14,8 @@
import shutil
import tarfile
+from . import run_cmd
+
def archive_extract(archive, dest_dir, member=None):
with tarfile.open(archive) as tf:
if hasattr(tarfile, 'data_filter'):
@@ -24,6 +26,24 @@ def archive_extract(archive, dest_dir, member=None):
else:
tf.extractall(path=dest_dir)
+def extract_from_deb(deb_path, output_path, file_path):
+ """
+ Extracts a file from a deb package into the test workdir
+
+ :param deb_path: path to the deb archive
+ :param file_path: path within the deb archive of the file to be extracted
+ :returns: full path of the extracted file
+ """
+ cwd = os.getcwd()
+ os.chdir(output_path)
+ (stdout, stderr, ret) = run_cmd(['ar', 't', deb_path])
+ tarball_name = stdout.split()[2]
+ run_cmd(['ar', 'x', deb_path, tarball_name])
+ file_path = file_path if file_path.startswith('.') else '.' + file_path
+ archive_extract(tarball_name, output_path, file_path)
+ os.chdir(cwd)
+ return os.path.join(output_path, file_path)
+
def gzip_uncompress(gz_path, output_path):
if os.path.exists(output_path):
return
diff --git a/tests/functional/test_mips64el_fuloong2e.py b/tests/functional/test_mips64el_fuloong2e.py
index 7688a32713..674bf63a05 100755
--- a/tests/functional/test_mips64el_fuloong2e.py
+++ b/tests/functional/test_mips64el_fuloong2e.py
@@ -12,14 +12,36 @@
import os
import subprocess
-from qemu_test import QemuSystemTest
+from qemu_test import QemuSystemTest, Asset
from qemu_test import wait_for_console_pattern
+from qemu_test.utils import extract_from_deb
from unittest import skipUnless
class MipsFuloong2e(QemuSystemTest):
timeout = 60
+ KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 '
+
+ ASSET_KERNEL = Asset(
+ ('http://archive.debian.org/debian/pool/main/l/linux/'
+ 'linux-image-3.16.0-6-loongson-2e_3.16.56-1+deb8u1_mipsel.deb'),
+ '2a70f15b397f4ced632b0c15cb22660394190644146d804d60a4796eefbe1f50')
+
+ def test_linux_kernel_3_16(self):
+ deb_path = self.ASSET_KERNEL.fetch()
+ kernel_path = extract_from_deb(deb_path, self.workdir,
+ '/boot/vmlinux-3.16.0-6-loongson-2e')
+
+ self.set_machine('fuloong2e')
+ self.vm.set_console()
+ kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0'
+ self.vm.add_args('-kernel', kernel_path,
+ '-append', kernel_command_line)
+ self.vm.launch()
+ console_pattern = 'Kernel command line: %s' % kernel_command_line
+ wait_for_console_pattern(self, console_pattern)
+
@skipUnless(os.getenv('QEMU_TEST_ALLOW_UNTRUSTED_CODE'), 'untrusted code')
@skipUnless(os.getenv('RESCUE_YL_PATH'), 'RESCUE_YL_PATH not available')
def test_linux_kernel_2_6_27_isa_serial(self):
--
2.45.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v3 2/7] tests/functional: Convert mips64el Fuloong2e avocado test (2/2)
2024-08-24 16:08 ` [PATCH v3 2/7] tests/functional: Convert mips64el Fuloong2e avocado test (2/2) Philippe Mathieu-Daudé
@ 2024-08-26 9:10 ` Thomas Huth
2024-08-26 20:59 ` Philippe Mathieu-Daudé
0 siblings, 1 reply; 14+ messages in thread
From: Thomas Huth @ 2024-08-26 9:10 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel
Cc: Jiaxun Yang, Cleber Rosa, Aurelien Jarno, Huacai Chen,
Beraldo Leal, Wainer dos Santos Moschetta
On 24/08/2024 18.08, Philippe Mathieu-Daudé wrote:
> Straight forward conversion. Update the SHA1 hashes to
> SHA256 hashes since SHA1 should not be used anymore nowadays.
>
> Add extract_from_deb() method in qemu_test.utils package.
Should we maybe rather copy the whole LinuxKernelTest class into a new file
in the qemu_tests folder, so that all the related tests can simply inherit
from that class? That way we would also get the KERNEL_COMMON_COMMAND_LINE
handling for free in all the tests that we convert. What do you think?
Thomas
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v3 2/7] tests/functional: Convert mips64el Fuloong2e avocado test (2/2)
2024-08-26 9:10 ` Thomas Huth
@ 2024-08-26 20:59 ` Philippe Mathieu-Daudé
2024-08-27 5:27 ` Thomas Huth
0 siblings, 1 reply; 14+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-08-26 20:59 UTC (permalink / raw)
To: Thomas Huth, qemu-devel
Cc: Jiaxun Yang, Cleber Rosa, Aurelien Jarno, Huacai Chen,
Beraldo Leal, Wainer dos Santos Moschetta
On 26/8/24 11:10, Thomas Huth wrote:
> On 24/08/2024 18.08, Philippe Mathieu-Daudé wrote:
>> Straight forward conversion. Update the SHA1 hashes to
>> SHA256 hashes since SHA1 should not be used anymore nowadays.
>>
>> Add extract_from_deb() method in qemu_test.utils package.
>
> Should we maybe rather copy the whole LinuxKernelTest class into a new
> file in the qemu_tests folder, so that all the related tests can simply
> inherit from that class? That way we would also get the
> KERNEL_COMMON_COMMAND_LINE handling for free in all the tests that we
> convert. What do you think?
Except that variable, I'm not sure what can be reused. Most tests
are trivial. Maybe I'll realize after converting a few more :)
We could however have a LinuxKernelConstants class with
KERNEL_COMMON_COMMAND_LINE if you rather.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v3 2/7] tests/functional: Convert mips64el Fuloong2e avocado test (2/2)
2024-08-26 20:59 ` Philippe Mathieu-Daudé
@ 2024-08-27 5:27 ` Thomas Huth
2024-08-27 9:16 ` Philippe Mathieu-Daudé
0 siblings, 1 reply; 14+ messages in thread
From: Thomas Huth @ 2024-08-27 5:27 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel
Cc: Jiaxun Yang, Cleber Rosa, Aurelien Jarno, Huacai Chen,
Beraldo Leal, Wainer dos Santos Moschetta
On 26/08/2024 22.59, Philippe Mathieu-Daudé wrote:
> On 26/8/24 11:10, Thomas Huth wrote:
>> On 24/08/2024 18.08, Philippe Mathieu-Daudé wrote:
>>> Straight forward conversion. Update the SHA1 hashes to
>>> SHA256 hashes since SHA1 should not be used anymore nowadays.
>>>
>>> Add extract_from_deb() method in qemu_test.utils package.
>>
>> Should we maybe rather copy the whole LinuxKernelTest class into a new
>> file in the qemu_tests folder, so that all the related tests can simply
>> inherit from that class? That way we would also get the
>> KERNEL_COMMON_COMMAND_LINE handling for free in all the tests that we
>> convert. What do you think?
>
> Except that variable, I'm not sure what can be reused. Most tests
> are trivial. Maybe I'll realize after converting a few more :)
Apart from that variable and the extract_from_* functions, that class is
also redefining wait_for_console_pattern():
def wait_for_console_pattern(self, success_message, vm=None):
wait_for_console_pattern(self, success_message,
failure_message='Kernel panic - not syncing',
vm=vm)
So that failure_message handling is now missing in your converted test. I
think I'd feel better if we keep that, or do you think it is ok to drop it?
Thomas
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v3 2/7] tests/functional: Convert mips64el Fuloong2e avocado test (2/2)
2024-08-27 5:27 ` Thomas Huth
@ 2024-08-27 9:16 ` Philippe Mathieu-Daudé
2024-08-27 12:28 ` Thomas Huth
0 siblings, 1 reply; 14+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-08-27 9:16 UTC (permalink / raw)
To: Thomas Huth, qemu-devel
Cc: Jiaxun Yang, Cleber Rosa, Aurelien Jarno, Huacai Chen,
Beraldo Leal, Wainer dos Santos Moschetta
On 27/8/24 07:27, Thomas Huth wrote:
> On 26/08/2024 22.59, Philippe Mathieu-Daudé wrote:
>> On 26/8/24 11:10, Thomas Huth wrote:
>>> On 24/08/2024 18.08, Philippe Mathieu-Daudé wrote:
>>>> Straight forward conversion. Update the SHA1 hashes to
>>>> SHA256 hashes since SHA1 should not be used anymore nowadays.
>>>>
>>>> Add extract_from_deb() method in qemu_test.utils package.
>>>
>>> Should we maybe rather copy the whole LinuxKernelTest class into a
>>> new file in the qemu_tests folder, so that all the related tests can
>>> simply inherit from that class? That way we would also get the
>>> KERNEL_COMMON_COMMAND_LINE handling for free in all the tests that we
>>> convert. What do you think?
>>
>> Except that variable, I'm not sure what can be reused. Most tests
>> are trivial. Maybe I'll realize after converting a few more :)
>
> Apart from that variable and the extract_from_* functions, that class is
I don't see extract_from_deb() and extract_from_rpm() being specific
to a LinuxKernelTest class, IMO they belong to .utils with other
helpers such archive_extract().
I haven't added extract_from_rpm() there since I'd need to convert
a test using it to be able to test it, but it is planned.
Similarly image_pow2ceil_expand(), pow2ceil() and file_truncate()
are generic, not restricted to Linux console tests.
> also redefining wait_for_console_pattern():
>
> def wait_for_console_pattern(self, success_message, vm=None):
> wait_for_console_pattern(self, success_message,
> failure_message='Kernel panic - not syncing',
> vm=vm)
>
> So that failure_message handling is now missing in your converted test.
> I think I'd feel better if we keep that, or do you think it is ok to
> drop it?
Doh, I missed that.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v3 2/7] tests/functional: Convert mips64el Fuloong2e avocado test (2/2)
2024-08-27 9:16 ` Philippe Mathieu-Daudé
@ 2024-08-27 12:28 ` Thomas Huth
0 siblings, 0 replies; 14+ messages in thread
From: Thomas Huth @ 2024-08-27 12:28 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel
Cc: Jiaxun Yang, Cleber Rosa, Aurelien Jarno, Huacai Chen,
Beraldo Leal, Wainer dos Santos Moschetta
On 27/08/2024 11.16, Philippe Mathieu-Daudé wrote:
> On 27/8/24 07:27, Thomas Huth wrote:
>> On 26/08/2024 22.59, Philippe Mathieu-Daudé wrote:
>>> On 26/8/24 11:10, Thomas Huth wrote:
>>>> On 24/08/2024 18.08, Philippe Mathieu-Daudé wrote:
>>>>> Straight forward conversion. Update the SHA1 hashes to
>>>>> SHA256 hashes since SHA1 should not be used anymore nowadays.
>>>>>
>>>>> Add extract_from_deb() method in qemu_test.utils package.
>>>>
>>>> Should we maybe rather copy the whole LinuxKernelTest class into a new
>>>> file in the qemu_tests folder, so that all the related tests can simply
>>>> inherit from that class? That way we would also get the
>>>> KERNEL_COMMON_COMMAND_LINE handling for free in all the tests that we
>>>> convert. What do you think?
>>>
>>> Except that variable, I'm not sure what can be reused. Most tests
>>> are trivial. Maybe I'll realize after converting a few more :)
>>
>> Apart from that variable and the extract_from_* functions, that class is
>
> I don't see extract_from_deb() and extract_from_rpm() being specific
> to a LinuxKernelTest class, IMO they belong to .utils with other
> helpers such archive_extract().
.deb and .rpm are quite specific to Linux distros, so IMHO it's fine to keep
them in the LinuxKernelTest class.
> I haven't added extract_from_rpm() there since I'd need to convert
> a test using it to be able to test it, but it is planned.
>
> Similarly image_pow2ceil_expand(), pow2ceil() and file_truncate()
> are generic, not restricted to Linux console tests.
Agreed, these seem to be very generic functions that should reside in utils
instead.
Thomas
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v3 3/7] tests/functional: Convert mips64el I6400 Malta avocado tests
2024-08-24 16:08 [PATCH v3 0/7] tests/functional: Convert few MIPS avocado tests Philippe Mathieu-Daudé
2024-08-24 16:08 ` [PATCH v3 1/7] tests/functional: Convert mips64el Fuloong2e avocado test (1/2) Philippe Mathieu-Daudé
2024-08-24 16:08 ` [PATCH v3 2/7] tests/functional: Convert mips64el Fuloong2e avocado test (2/2) Philippe Mathieu-Daudé
@ 2024-08-24 16:08 ` Philippe Mathieu-Daudé
2024-08-24 16:08 ` [PATCH v3 4/7] tests/functional: Convert mips64el 5KEc " Philippe Mathieu-Daudé
` (3 subsequent siblings)
6 siblings, 0 replies; 14+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-08-24 16:08 UTC (permalink / raw)
To: qemu-devel
Cc: Jiaxun Yang, Cleber Rosa, Thomas Huth, Aurelien Jarno,
Huacai Chen, Beraldo Leal, Wainer dos Santos Moschetta,
Philippe Mathieu-Daudé
Straight forward conversion. Update the SHA1 hashes to SHA256
hashes since SHA1 should not be used anymore nowadays.
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
MAINTAINERS | 1 +
tests/avocado/machine_mips_malta.py | 108 -----------------------
tests/functional/meson.build | 1 +
tests/functional/test_mips64el_malta.py | 111 ++++++++++++++++++++++++
4 files changed, 113 insertions(+), 108 deletions(-)
create mode 100755 tests/functional/test_mips64el_malta.py
diff --git a/MAINTAINERS b/MAINTAINERS
index 77fbb5d42e..3a91017979 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1369,6 +1369,7 @@ F: hw/pci-host/gt64120.c
F: include/hw/southbridge/piix.h
F: tests/avocado/linux_ssh_mips_malta.py
F: tests/avocado/machine_mips_malta.py
+F: tests/functional/test_mips64el_malta.py
Mipssim
R: Aleksandar Rikalo <arikalo@gmail.com>
diff --git a/tests/avocado/machine_mips_malta.py b/tests/avocado/machine_mips_malta.py
index 07a80633b5..05c64e18c4 100644
--- a/tests/avocado/machine_mips_malta.py
+++ b/tests/avocado/machine_mips_malta.py
@@ -8,121 +8,13 @@
# SPDX-License-Identifier: GPL-2.0-or-later
import os
-import gzip
-import logging
-from avocado import skipUnless
-from avocado import skipUnless
from avocado.utils import archive
from avocado_qemu import QemuSystemTest
-from avocado_qemu import exec_command_and_wait_for_pattern
from avocado_qemu import interrupt_interactive_console_until_pattern
from avocado_qemu import wait_for_console_pattern
-NUMPY_AVAILABLE = True
-try:
- import numpy as np
-except ImportError:
- NUMPY_AVAILABLE = False
-
-CV2_AVAILABLE = True
-try:
- import cv2
-except ImportError:
- CV2_AVAILABLE = False
-
-
-@skipUnless(NUMPY_AVAILABLE, 'Python NumPy not installed')
-@skipUnless(CV2_AVAILABLE, 'Python OpenCV not installed')
-class MaltaMachineFramebuffer(QemuSystemTest):
-
- timeout = 30
-
- KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 '
-
- def do_test_i6400_framebuffer_logo(self, cpu_cores_count):
- """
- Boot Linux kernel and check Tux logo is displayed on the framebuffer.
- """
- screendump_path = os.path.join(self.workdir, 'screendump.pbm')
-
- kernel_url = ('https://github.com/philmd/qemu-testing-blob/raw/'
- 'a5966ca4b5/mips/malta/mips64el/'
- 'vmlinux-4.7.0-rc1.I6400.gz')
- kernel_hash = '096f50c377ec5072e6a366943324622c312045f6'
- kernel_path_gz = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
- kernel_path = self.workdir + "vmlinux"
- archive.gzip_uncompress(kernel_path_gz, kernel_path)
-
- tuxlogo_url = ('https://github.com/torvalds/linux/raw/v2.6.12/'
- 'drivers/video/logo/logo_linux_vga16.ppm')
- tuxlogo_hash = '3991c2ddbd1ddaecda7601f8aafbcf5b02dc86af'
- tuxlogo_path = self.fetch_asset(tuxlogo_url, asset_hash=tuxlogo_hash)
-
- self.vm.set_console()
- kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
- 'clocksource=GIC console=tty0 console=ttyS0')
- self.vm.add_args('-kernel', kernel_path,
- '-smp', '%u' % cpu_cores_count,
- '-vga', 'std',
- '-append', kernel_command_line)
- self.vm.launch()
- framebuffer_ready = 'Console: switching to colour frame buffer device'
- wait_for_console_pattern(self, framebuffer_ready,
- failure_message='Kernel panic - not syncing')
- self.vm.cmd('human-monitor-command', command_line='stop')
- self.vm.cmd('human-monitor-command',
- command_line='screendump %s' % screendump_path)
- logger = logging.getLogger('framebuffer')
-
- match_threshold = 0.95
- screendump_bgr = cv2.imread(screendump_path, cv2.IMREAD_COLOR)
- tuxlogo_bgr = cv2.imread(tuxlogo_path, cv2.IMREAD_COLOR)
- result = cv2.matchTemplate(screendump_bgr, tuxlogo_bgr,
- cv2.TM_CCOEFF_NORMED)
- loc = np.where(result >= match_threshold)
- tuxlogo_count = 0
- h, w = tuxlogo_bgr.shape[:2]
- debug_png = os.getenv('AVOCADO_CV2_SCREENDUMP_PNG_PATH')
- for tuxlogo_count, pt in enumerate(zip(*loc[::-1]), start=1):
- logger.debug('found Tux at position (x, y) = %s', pt)
- cv2.rectangle(screendump_bgr, pt,
- (pt[0] + w, pt[1] + h), (0, 0, 255), 2)
- if debug_png:
- cv2.imwrite(debug_png, screendump_bgr)
- self.assertGreaterEqual(tuxlogo_count, cpu_cores_count)
-
- def test_mips_malta_i6400_framebuffer_logo_1core(self):
- """
- :avocado: tags=arch:mips64el
- :avocado: tags=machine:malta
- :avocado: tags=cpu:I6400
- """
- self.do_test_i6400_framebuffer_logo(1)
-
- @skipUnless(os.getenv('QEMU_TEST_FLAKY_TESTS'), 'Test is unstable on GitLab')
- def test_mips_malta_i6400_framebuffer_logo_7cores(self):
- """
- :avocado: tags=arch:mips64el
- :avocado: tags=machine:malta
- :avocado: tags=cpu:I6400
- :avocado: tags=mips:smp
- :avocado: tags=flaky
- """
- self.do_test_i6400_framebuffer_logo(7)
-
- @skipUnless(os.getenv('QEMU_TEST_FLAKY_TESTS'), 'Test is unstable on GitLab')
- def test_mips_malta_i6400_framebuffer_logo_8cores(self):
- """
- :avocado: tags=arch:mips64el
- :avocado: tags=machine:malta
- :avocado: tags=cpu:I6400
- :avocado: tags=mips:smp
- :avocado: tags=flaky
- """
- self.do_test_i6400_framebuffer_logo(8)
-
class MaltaMachine(QemuSystemTest):
def do_test_yamon(self):
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index 8d28313a65..a82dbd43bb 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -57,6 +57,7 @@ tests_mips64el_quick = [
tests_mips64el_thorough = [
'mips64el_loongson3v',
+ 'mips64el_malta',
]
tests_ppc_quick = [
diff --git a/tests/functional/test_mips64el_malta.py b/tests/functional/test_mips64el_malta.py
new file mode 100755
index 0000000000..0c05ebcb2f
--- /dev/null
+++ b/tests/functional/test_mips64el_malta.py
@@ -0,0 +1,111 @@
+#!/usr/bin/env python3
+#
+# Functional tests for the little-endian 64-bit MIPS Malta board
+#
+# Copyright (c) Philippe Mathieu-Daudé <f4bug@amsat.org>
+#
+# This work is licensed under the terms of the GNU GPL, version 2 or later.
+# See the COPYING file in the top-level directory.
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+import os
+import logging
+
+from qemu_test import QemuSystemTest, Asset
+from qemu_test import wait_for_console_pattern
+from qemu_test.utils import gzip_uncompress
+from unittest import skipUnless
+
+NUMPY_AVAILABLE = True
+try:
+ import numpy as np
+except ImportError:
+ NUMPY_AVAILABLE = False
+
+CV2_AVAILABLE = True
+try:
+ import cv2
+except ImportError:
+ CV2_AVAILABLE = False
+
+
+@skipUnless(NUMPY_AVAILABLE, 'Python NumPy not installed')
+@skipUnless(CV2_AVAILABLE, 'Python OpenCV not installed')
+class MaltaMachineFramebuffer(QemuSystemTest):
+
+ timeout = 30
+
+ ASSET_KERNEL_4_7_0 = Asset(
+ ('https://github.com/philmd/qemu-testing-blob/raw/a5966ca4b5/'
+ 'mips/malta/mips64el/vmlinux-4.7.0-rc1.I6400.gz'),
+ '1f64efc59968a3c328672e6b10213fe574bb2308d9d2ed44e75e40be59e9fbc2')
+
+ ASSET_TUXLOGO = Asset(
+ ('https://github.com/torvalds/linux/raw/v2.6.12/'
+ 'drivers/video/logo/logo_linux_vga16.ppm'),
+ 'b762f0d91ec018887ad1b334543c2fdf9be9fdfc87672b409211efaa3ea0ef79')
+
+ KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 '
+
+ def do_test_i6400_framebuffer_logo(self, cpu_cores_count):
+ """
+ Boot Linux kernel and check Tux logo is displayed on the framebuffer.
+ """
+ screendump_path = os.path.join(self.workdir, 'screendump.pbm')
+
+ kernel_path_gz = self.ASSET_KERNEL_4_7_0.fetch()
+ kernel_path = self.workdir + "vmlinux"
+ gzip_uncompress(kernel_path_gz, kernel_path)
+
+ tuxlogo_path = self.ASSET_TUXLOGO.fetch()
+
+ self.set_machine('malta')
+ self.vm.set_console()
+ kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
+ 'clocksource=GIC console=tty0 console=ttyS0')
+ self.vm.add_args('-kernel', kernel_path,
+ '-cpu', 'I6400',
+ '-smp', '%u' % cpu_cores_count,
+ '-vga', 'std',
+ '-append', kernel_command_line)
+ self.vm.launch()
+ framebuffer_ready = 'Console: switching to colour frame buffer device'
+ wait_for_console_pattern(self, framebuffer_ready,
+ failure_message='Kernel panic - not syncing')
+ self.vm.cmd('human-monitor-command', command_line='stop')
+ self.vm.cmd('human-monitor-command',
+ command_line='screendump %s' % screendump_path)
+ logger = logging.getLogger('framebuffer')
+
+ match_threshold = 0.95
+ screendump_bgr = cv2.imread(screendump_path, cv2.IMREAD_COLOR)
+ tuxlogo_bgr = cv2.imread(tuxlogo_path, cv2.IMREAD_COLOR)
+ result = cv2.matchTemplate(screendump_bgr, tuxlogo_bgr,
+ cv2.TM_CCOEFF_NORMED)
+ loc = np.where(result >= match_threshold)
+ tuxlogo_count = 0
+ h, w = tuxlogo_bgr.shape[:2]
+ debug_png = os.getenv('AVOCADO_CV2_SCREENDUMP_PNG_PATH')
+ for tuxlogo_count, pt in enumerate(zip(*loc[::-1]), start=1):
+ logger.debug('found Tux at position (x, y) = %s', pt)
+ cv2.rectangle(screendump_bgr, pt,
+ (pt[0] + w, pt[1] + h), (0, 0, 255), 2)
+ if debug_png:
+ cv2.imwrite(debug_png, screendump_bgr)
+ self.assertGreaterEqual(tuxlogo_count, cpu_cores_count)
+
+ def test_mips_malta_i6400_framebuffer_logo_1core(self):
+ self.do_test_i6400_framebuffer_logo(1)
+
+ @skipUnless(os.getenv('QEMU_TEST_FLAKY_TESTS'), 'Test is unstable on GitLab')
+ def test_mips_malta_i6400_framebuffer_logo_7cores(self):
+ self.do_test_i6400_framebuffer_logo(7)
+
+ @skipUnless(os.getenv('QEMU_TEST_FLAKY_TESTS'), 'Test is unstable on GitLab')
+ def test_mips_malta_i6400_framebuffer_logo_8cores(self):
+ self.do_test_i6400_framebuffer_logo(8)
+
+
+if __name__ == '__main__':
+ QemuSystemTest.main()
--
2.45.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v3 4/7] tests/functional: Convert mips64el 5KEc Malta avocado tests
2024-08-24 16:08 [PATCH v3 0/7] tests/functional: Convert few MIPS avocado tests Philippe Mathieu-Daudé
` (2 preceding siblings ...)
2024-08-24 16:08 ` [PATCH v3 3/7] tests/functional: Convert mips64el I6400 Malta avocado tests Philippe Mathieu-Daudé
@ 2024-08-24 16:08 ` Philippe Mathieu-Daudé
2024-08-24 16:08 ` [PATCH v3 5/7] tests/functional: Convert mips32el Malta YAMON avocado test Philippe Mathieu-Daudé
` (2 subsequent siblings)
6 siblings, 0 replies; 14+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-08-24 16:08 UTC (permalink / raw)
To: qemu-devel
Cc: Jiaxun Yang, Cleber Rosa, Thomas Huth, Aurelien Jarno,
Huacai Chen, Beraldo Leal, Wainer dos Santos Moschetta,
Philippe Mathieu-Daudé
Straight forward conversion. Update the SHA1 hashes to
SHA256 hashes since SHA1 should not be used anymore nowadays.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
tests/avocado/boot_linux_console.py | 74 -----------------------
tests/functional/test_mips64el_malta.py | 79 +++++++++++++++++++++++++
2 files changed, 79 insertions(+), 74 deletions(-)
diff --git a/tests/avocado/boot_linux_console.py b/tests/avocado/boot_linux_console.py
index 01fd126c53..10457743d1 100644
--- a/tests/avocado/boot_linux_console.py
+++ b/tests/avocado/boot_linux_console.py
@@ -138,38 +138,6 @@ def test_mips_malta(self):
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] http://snapshot.debian.org/package/linux-2.6/2.6.32-48/
- #linux-source-2.6.32_2.6.32-48
- [2] https://kernel-team.pages.debian.net/kernel-handbook/
- ch-common-tasks.html#s-common-official
-
- :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)
- kernel_path = self.extract_from_deb(deb_path,
- '/boot/vmlinux-2.6.32-5-5kc-malta')
-
- self.vm.set_console()
- kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0'
- 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)
-
def test_mips_malta_cpio(self):
"""
:avocado: tags=arch:mips
@@ -211,48 +179,6 @@ def test_mips_malta_cpio(self):
# Wait for VM to shut down gracefully
self.vm.wait()
- @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code')
- def test_mips64el_malta_5KEc_cpio(self):
- """
- :avocado: tags=arch:mips64el
- :avocado: tags=machine:malta
- :avocado: tags=endian:little
- :avocado: tags=cpu:5KEc
- """
- kernel_url = ('https://github.com/philmd/qemu-testing-blob/'
- 'raw/9ad2df38/mips/malta/mips64el/'
- 'vmlinux-3.19.3.mtoman.20150408')
- kernel_hash = '00d1d268fb9f7d8beda1de6bebcc46e884d71754'
- kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
- initrd_url = ('https://github.com/groeck/linux-build-test/'
- 'raw/8584a59e/rootfs/'
- 'mipsel64/rootfs.mipsel64r1.cpio.gz')
- initrd_hash = '1dbb8a396e916847325284dbe2151167'
- initrd_path_gz = self.fetch_asset(initrd_url, algorithm='md5',
- asset_hash=initrd_hash)
- initrd_path = self.workdir + "rootfs.cpio"
- archive.gzip_uncompress(initrd_path_gz, initrd_path)
-
- self.vm.set_console()
- kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE
- + 'console=ttyS0 console=tty '
- + 'rdinit=/sbin/init noreboot')
- self.vm.add_args('-kernel', kernel_path,
- '-initrd', initrd_path,
- '-append', kernel_command_line,
- '-no-reboot')
- self.vm.launch()
- wait_for_console_pattern(self, 'Boot successful.')
-
- exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo',
- 'MIPS 5KE')
- exec_command_and_wait_for_pattern(self, 'uname -a',
- '3.19.3.mtoman.20150408')
- exec_command_and_wait_for_pattern(self, 'reboot',
- 'reboot: Restarting system')
- # Wait for VM to shut down gracefully
- self.vm.wait()
-
def do_test_mips_malta32el_nanomips(self, kernel_path_xz):
kernel_path = self.workdir + "kernel"
with lzma.open(kernel_path_xz, 'rb') as f_in:
diff --git a/tests/functional/test_mips64el_malta.py b/tests/functional/test_mips64el_malta.py
index 0c05ebcb2f..1829bed69a 100755
--- a/tests/functional/test_mips64el_malta.py
+++ b/tests/functional/test_mips64el_malta.py
@@ -13,7 +13,9 @@
import logging
from qemu_test import QemuSystemTest, Asset
+from qemu_test import exec_command_and_wait_for_pattern
from qemu_test import wait_for_console_pattern
+from qemu_test.utils import extract_from_deb
from qemu_test.utils import gzip_uncompress
from unittest import skipUnless
@@ -30,6 +32,83 @@
CV2_AVAILABLE = False
+class MaltaMachineConsole(QemuSystemTest):
+ KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 '
+
+ ASSET_KERNEL_2_63_2 = Asset(
+ ('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'),
+ '35eb476f03be589824b0310358f1c447d85e645b88cbcd2ac02b97ef560f9f8d')
+
+ 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] http://snapshot.debian.org/package/linux-2.6/2.6.32-48/
+ #linux-source-2.6.32_2.6.32-48
+ [2] https://kernel-team.pages.debian.net/kernel-handbook/
+ ch-common-tasks.html#s-common-official
+ """
+ deb_path = self.ASSET_KERNEL_2_63_2.fetch()
+ kernel_path = extract_from_deb(deb_path, self.workdir,
+ '/boot/vmlinux-2.6.32-5-5kc-malta')
+
+ self.set_machine('malta')
+ self.vm.set_console()
+ kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0'
+ self.vm.add_args('-kernel', kernel_path,
+ '-append', kernel_command_line)
+ self.vm.launch()
+ console_pattern = 'Kernel command line: %s' % kernel_command_line
+ wait_for_console_pattern(self, console_pattern)
+
+ ASSET_KERNEL_3_19_3 = Asset(
+ ('https://github.com/philmd/qemu-testing-blob/'
+ 'raw/9ad2df38/mips/malta/mips64el/'
+ 'vmlinux-3.19.3.mtoman.20150408'),
+ '8d3beb003bc66051ead98e7172139017fcf9ce2172576541c57e86418dfa5ab8')
+
+ ASSET_CPIO_R1 = Asset(
+ ('https://github.com/groeck/linux-build-test/'
+ 'raw/8584a59e/rootfs/mipsel64/'
+ 'rootfs.mipsel64r1.cpio.gz'),
+ '75ba10cd35fb44e32948eeb26974f061b703c81c4ba2fab1ebcacf1d1bec3b61')
+
+ @skipUnless(os.getenv('QEMU_TEST_ALLOW_UNTRUSTED_CODE'), 'untrusted code')
+ def test_mips64el_malta_5KEc_cpio(self):
+ kernel_path = self.ASSET_KERNEL_3_19_3.fetch()
+ initrd_path_gz = self.ASSET_CPIO_R1.fetch()
+ initrd_path = os.path.join(self.workdir, 'rootfs.cpio')
+ gzip_uncompress(initrd_path_gz, initrd_path)
+
+ self.set_machine('malta')
+ self.vm.set_console()
+ kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE
+ + 'console=ttyS0 console=tty '
+ + 'rdinit=/sbin/init noreboot')
+ self.vm.add_args('-cpu', '5KEc',
+ '-kernel', kernel_path,
+ '-initrd', initrd_path,
+ '-append', kernel_command_line,
+ '-no-reboot')
+ self.vm.launch()
+ wait_for_console_pattern(self, 'Boot successful.')
+
+ exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo',
+ 'MIPS 5KE')
+ exec_command_and_wait_for_pattern(self, 'uname -a',
+ '3.19.3.mtoman.20150408')
+ exec_command_and_wait_for_pattern(self, 'reboot',
+ 'reboot: Restarting system')
+ # Wait for VM to shut down gracefully
+ self.vm.wait()
+
+
@skipUnless(NUMPY_AVAILABLE, 'Python NumPy not installed')
@skipUnless(CV2_AVAILABLE, 'Python OpenCV not installed')
class MaltaMachineFramebuffer(QemuSystemTest):
--
2.45.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v3 5/7] tests/functional: Convert mips32el Malta YAMON avocado test
2024-08-24 16:08 [PATCH v3 0/7] tests/functional: Convert few MIPS avocado tests Philippe Mathieu-Daudé
` (3 preceding siblings ...)
2024-08-24 16:08 ` [PATCH v3 4/7] tests/functional: Convert mips64el 5KEc " Philippe Mathieu-Daudé
@ 2024-08-24 16:08 ` Philippe Mathieu-Daudé
2024-08-24 16:08 ` [PATCH v3 6/7] tests/functional: Convert nanomips Malta avocado tests Philippe Mathieu-Daudé
2024-08-24 16:08 ` [PATCH v3 7/7] tests/functional: Convert mips32eb 4Kc " Philippe Mathieu-Daudé
6 siblings, 0 replies; 14+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-08-24 16:08 UTC (permalink / raw)
To: qemu-devel
Cc: Jiaxun Yang, Cleber Rosa, Thomas Huth, Aurelien Jarno,
Huacai Chen, Beraldo Leal, Wainer dos Santos Moschetta,
Philippe Mathieu-Daudé
Straight forward conversion using the Python standard zipfile
module instead of avocado.utils package. Update the SHA1 hashes
to SHA256 hashes since SHA1 should not be used anymore nowadays.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
---
MAINTAINERS | 2 +-
tests/avocado/machine_mips_malta.py | 54 -------------------------
tests/functional/meson.build | 4 ++
tests/functional/test_mips64el_malta.py | 3 ++
tests/functional/test_mipsel_malta.py | 47 +++++++++++++++++++++
5 files changed, 55 insertions(+), 55 deletions(-)
delete mode 100644 tests/avocado/machine_mips_malta.py
create mode 100755 tests/functional/test_mipsel_malta.py
diff --git a/MAINTAINERS b/MAINTAINERS
index 3a91017979..4b480135f6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1368,7 +1368,7 @@ F: hw/mips/malta.c
F: hw/pci-host/gt64120.c
F: include/hw/southbridge/piix.h
F: tests/avocado/linux_ssh_mips_malta.py
-F: tests/avocado/machine_mips_malta.py
+F: tests/functional/test_mipsel_malta.py
F: tests/functional/test_mips64el_malta.py
Mipssim
diff --git a/tests/avocado/machine_mips_malta.py b/tests/avocado/machine_mips_malta.py
deleted file mode 100644
index 05c64e18c4..0000000000
--- a/tests/avocado/machine_mips_malta.py
+++ /dev/null
@@ -1,54 +0,0 @@
-# Functional tests for the MIPS Malta board
-#
-# Copyright (c) Philippe Mathieu-Daudé <f4bug@amsat.org>
-#
-# This work is licensed under the terms of the GNU GPL, version 2 or later.
-# See the COPYING file in the top-level directory.
-#
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-import os
-
-from avocado.utils import archive
-from avocado_qemu import QemuSystemTest
-from avocado_qemu import interrupt_interactive_console_until_pattern
-from avocado_qemu import wait_for_console_pattern
-
-
-class MaltaMachine(QemuSystemTest):
-
- def do_test_yamon(self):
- rom_url = ('https://s3-eu-west-1.amazonaws.com/'
- 'downloads-mips/mips-downloads/'
- 'YAMON/yamon-bin-02.22.zip')
- rom_hash = '8da7ecddbc5312704b8b324341ee238189bde480'
- zip_path = self.fetch_asset(rom_url, asset_hash=rom_hash)
-
- archive.extract(zip_path, self.workdir)
- yamon_path = os.path.join(self.workdir, 'yamon-02.22.bin')
-
- self.vm.set_console()
- self.vm.add_args('-bios', yamon_path)
- self.vm.launch()
-
- prompt = 'YAMON>'
- pattern = 'YAMON ROM Monitor'
- interrupt_interactive_console_until_pattern(self, pattern, prompt)
- wait_for_console_pattern(self, prompt)
- self.vm.shutdown()
-
- def test_mipsel_malta_yamon(self):
- """
- :avocado: tags=arch:mipsel
- :avocado: tags=machine:malta
- :avocado: tags=endian:little
- """
- self.do_test_yamon()
-
- def test_mips64el_malta_yamon(self):
- """
- :avocado: tags=arch:mips64el
- :avocado: tags=machine:malta
- :avocado: tags=endian:little
- """
- self.do_test_yamon()
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index a82dbd43bb..f8e482a87c 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -51,6 +51,10 @@ tests_microblazeel_thorough = [
'microblazeel_s3adsp1800'
]
+tests_mipsel_thorough = [
+ 'mipsel_malta',
+]
+
tests_mips64el_quick = [
'mips64el_fuloong2e',
]
diff --git a/tests/functional/test_mips64el_malta.py b/tests/functional/test_mips64el_malta.py
index 1829bed69a..3962cb43f2 100755
--- a/tests/functional/test_mips64el_malta.py
+++ b/tests/functional/test_mips64el_malta.py
@@ -186,5 +186,8 @@ def test_mips_malta_i6400_framebuffer_logo_8cores(self):
self.do_test_i6400_framebuffer_logo(8)
+from test_mipsel_malta import MaltaMachineYAMON
+
+
if __name__ == '__main__':
QemuSystemTest.main()
diff --git a/tests/functional/test_mipsel_malta.py b/tests/functional/test_mipsel_malta.py
new file mode 100755
index 0000000000..f31f96b012
--- /dev/null
+++ b/tests/functional/test_mipsel_malta.py
@@ -0,0 +1,47 @@
+#!/usr/bin/env python3
+#
+# Functional tests for the little-endian 32-bit MIPS Malta board
+#
+# Copyright (c) Philippe Mathieu-Daudé <f4bug@amsat.org>
+#
+# This work is licensed under the terms of the GNU GPL, version 2 or later.
+# See the COPYING file in the top-level directory.
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+import os
+
+from qemu_test import QemuSystemTest, Asset
+from qemu_test import interrupt_interactive_console_until_pattern
+from qemu_test import wait_for_console_pattern
+from zipfile import ZipFile
+
+
+class MaltaMachineYAMON(QemuSystemTest):
+
+ ASSET_YAMON_ROM = Asset(
+ ('https://s3-eu-west-1.amazonaws.com/downloads-mips/mips-downloads/'
+ 'YAMON/yamon-bin-02.22.zip'),
+ 'eef86f0eed0ef554f041dcd47b87eebea0e6f9f1184ed31f7e9e8b4a803860ab')
+
+ def test_mipsel_malta_yamon(self):
+ yamon_bin = 'yamon-02.22.bin'
+ zip_path = self.ASSET_YAMON_ROM.fetch()
+ with ZipFile(zip_path, 'r') as zf:
+ zf.extract(yamon_bin, path=self.workdir)
+ yamon_path = os.path.join(self.workdir, yamon_bin)
+
+ self.set_machine('malta')
+ self.vm.set_console()
+ self.vm.add_args('-bios', yamon_path)
+ self.vm.launch()
+
+ prompt = 'YAMON>'
+ pattern = 'YAMON ROM Monitor'
+ interrupt_interactive_console_until_pattern(self, pattern, prompt)
+ wait_for_console_pattern(self, prompt)
+ self.vm.shutdown()
+
+
+if __name__ == '__main__':
+ QemuSystemTest.main()
--
2.45.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v3 6/7] tests/functional: Convert nanomips Malta avocado tests
2024-08-24 16:08 [PATCH v3 0/7] tests/functional: Convert few MIPS avocado tests Philippe Mathieu-Daudé
` (4 preceding siblings ...)
2024-08-24 16:08 ` [PATCH v3 5/7] tests/functional: Convert mips32el Malta YAMON avocado test Philippe Mathieu-Daudé
@ 2024-08-24 16:08 ` Philippe Mathieu-Daudé
2024-08-24 16:08 ` [PATCH v3 7/7] tests/functional: Convert mips32eb 4Kc " Philippe Mathieu-Daudé
6 siblings, 0 replies; 14+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-08-24 16:08 UTC (permalink / raw)
To: qemu-devel
Cc: Jiaxun Yang, Cleber Rosa, Thomas Huth, Aurelien Jarno,
Huacai Chen, Beraldo Leal, Wainer dos Santos Moschetta,
Philippe Mathieu-Daudé
Straight forward conversion. Update the SHA1 hashes to
SHA256 hashes since SHA1 should not be used anymore nowadays.
$ QEMU_TEST_ALLOW_UNTRUSTED_CODE=1 \
make check-functional-mipsel
...
▶ 4/4 test_mipsel_malta.MaltaMachineConsole.test_mips_malta32el_nanomips_16k_up OK
▶ 4/4 test_mipsel_malta.MaltaMachineConsole.test_mips_malta32el_nanomips_4k OK
▶ 4/4 test_mipsel_malta.MaltaMachineConsole.test_mips_malta32el_nanomips_64k_dbg OK
▶ 4/4 test_mipsel_malta.MaltaMachineYAMON.test_mipsel_malta_yamon OK
4/4 qemu:func-thorough+func-mipsel-thorough+thorough / func-mipsel-mipsel_malta OK 9.95s 4 subtests passed
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
tests/avocado/boot_linux_console.py | 59 ---------------------------
tests/functional/test_mipsel_malta.py | 51 +++++++++++++++++++++++
2 files changed, 51 insertions(+), 59 deletions(-)
diff --git a/tests/avocado/boot_linux_console.py b/tests/avocado/boot_linux_console.py
index 10457743d1..0756e49ded 100644
--- a/tests/avocado/boot_linux_console.py
+++ b/tests/avocado/boot_linux_console.py
@@ -179,65 +179,6 @@ def test_mips_malta_cpio(self):
# Wait for VM to shut down gracefully
self.vm.wait()
- def do_test_mips_malta32el_nanomips(self, kernel_path_xz):
- kernel_path = self.workdir + "kernel"
- with lzma.open(kernel_path_xz, 'rb') as f_in:
- with open(kernel_path, 'wb') as f_out:
- shutil.copyfileobj(f_in, f_out)
-
- self.vm.set_console()
- kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE
- + 'mem=256m@@0x0 '
- + 'console=ttyS0')
- self.vm.add_args('-no-reboot',
- '-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)
-
- def test_mips_malta32el_nanomips_4k(self):
- """
- :avocado: tags=arch:mipsel
- :avocado: tags=machine:malta
- :avocado: tags=endian:little
- :avocado: tags=cpu:I7200
- """
- kernel_url = ('http://mipsdistros.mips.com/LinuxDistro/nanomips/'
- 'kernels/v4.15.18-432-gb2eb9a8b07a1-20180627102142/'
- 'generic_nano32r6el_page4k.xz')
- kernel_hash = '477456aafd2a0f1ddc9482727f20fe9575565dd6'
- kernel_path_xz = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
- self.do_test_mips_malta32el_nanomips(kernel_path_xz)
-
- def test_mips_malta32el_nanomips_16k_up(self):
- """
- :avocado: tags=arch:mipsel
- :avocado: tags=machine:malta
- :avocado: tags=endian:little
- :avocado: tags=cpu:I7200
- """
- kernel_url = ('http://mipsdistros.mips.com/LinuxDistro/nanomips/'
- 'kernels/v4.15.18-432-gb2eb9a8b07a1-20180627102142/'
- 'generic_nano32r6el_page16k_up.xz')
- kernel_hash = 'e882868f944c71c816e832e2303b7874d044a7bc'
- kernel_path_xz = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
- self.do_test_mips_malta32el_nanomips(kernel_path_xz)
-
- def test_mips_malta32el_nanomips_64k_dbg(self):
- """
- :avocado: tags=arch:mipsel
- :avocado: tags=machine:malta
- :avocado: tags=endian:little
- :avocado: tags=cpu:I7200
- """
- kernel_url = ('http://mipsdistros.mips.com/LinuxDistro/nanomips/'
- 'kernels/v4.15.18-432-gb2eb9a8b07a1-20180627102142/'
- 'generic_nano32r6el_page64k_dbg.xz')
- kernel_hash = '18d1c68f2e23429e266ca39ba5349ccd0aeb7180'
- kernel_path_xz = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
- self.do_test_mips_malta32el_nanomips(kernel_path_xz)
-
def test_aarch64_xlnx_versal_virt(self):
"""
:avocado: tags=arch:aarch64
diff --git a/tests/functional/test_mipsel_malta.py b/tests/functional/test_mipsel_malta.py
index f31f96b012..c283653eae 100755
--- a/tests/functional/test_mipsel_malta.py
+++ b/tests/functional/test_mipsel_malta.py
@@ -14,9 +14,60 @@
from qemu_test import QemuSystemTest, Asset
from qemu_test import interrupt_interactive_console_until_pattern
from qemu_test import wait_for_console_pattern
+from qemu_test.utils import lzma_uncompress
from zipfile import ZipFile
+class MaltaMachineConsole(QemuSystemTest):
+
+ KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 '
+
+ ASSET_KERNEL_4K = Asset(
+ ('http://mipsdistros.mips.com/LinuxDistro/nanomips/'
+ 'kernels/v4.15.18-432-gb2eb9a8b07a1-20180627102142/'
+ 'generic_nano32r6el_page4k.xz'),
+ '019e034094ac6cf3aa77df5e130fb023ce4dbc804b04bfcc560c6403e1ae6bdb')
+ ASSET_KERNEL_16K = Asset(
+ ('http://mipsdistros.mips.com/LinuxDistro/nanomips/'
+ 'kernels/v4.15.18-432-gb2eb9a8b07a1-20180627102142/'
+ 'generic_nano32r6el_page16k_up.xz'),
+ '3a54a10b3108c16a448dca9ea3db378733a27423befc2a45a5bdf990bd85e12c')
+ ASSET_KERNEL_64K = Asset(
+ ('http://mipsdistros.mips.com/LinuxDistro/nanomips/'
+ 'kernels/v4.15.18-432-gb2eb9a8b07a1-20180627102142/'
+ 'generic_nano32r6el_page64k_dbg.xz'),
+ 'ce21ff4b07a981ecb8a39db2876616f5a2473eb2ab459c6f67465b9914b0c6b6')
+
+ def do_test_mips_malta32el_nanomips(self, kernel_path_xz):
+ kernel_path = os.path.join(self.workdir, 'kernel')
+ lzma_uncompress(kernel_path_xz, kernel_path)
+
+ self.set_machine('malta')
+ self.vm.set_console()
+ kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE
+ + 'mem=256m@@0x0 '
+ + 'console=ttyS0')
+ self.vm.add_args('-cpu', 'I7200',
+ '-no-reboot',
+ '-kernel', kernel_path,
+ '-append', kernel_command_line)
+ self.vm.launch()
+ console_pattern = 'Kernel command line: %s' % kernel_command_line
+ wait_for_console_pattern(self, console_pattern)
+
+ def test_mips_malta32el_nanomips_4k(self):
+ kernel_path_xz = self.ASSET_KERNEL_4K.fetch()
+ self.do_test_mips_malta32el_nanomips(kernel_path_xz)
+
+ def test_mips_malta32el_nanomips_16k_up(self):
+ kernel_path_xz = self.ASSET_KERNEL_16K.fetch()
+ self.do_test_mips_malta32el_nanomips(kernel_path_xz)
+
+ def test_mips_malta32el_nanomips_64k_dbg(self):
+ kernel_path_xz = self.ASSET_KERNEL_16K.fetch()
+ self.do_test_mips_malta32el_nanomips(kernel_path_xz)
+
+
class MaltaMachineYAMON(QemuSystemTest):
ASSET_YAMON_ROM = Asset(
--
2.45.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v3 7/7] tests/functional: Convert mips32eb 4Kc Malta avocado tests
2024-08-24 16:08 [PATCH v3 0/7] tests/functional: Convert few MIPS avocado tests Philippe Mathieu-Daudé
` (5 preceding siblings ...)
2024-08-24 16:08 ` [PATCH v3 6/7] tests/functional: Convert nanomips Malta avocado tests Philippe Mathieu-Daudé
@ 2024-08-24 16:08 ` Philippe Mathieu-Daudé
6 siblings, 0 replies; 14+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-08-24 16:08 UTC (permalink / raw)
To: qemu-devel
Cc: Jiaxun Yang, Cleber Rosa, Thomas Huth, Aurelien Jarno,
Huacai Chen, Beraldo Leal, Wainer dos Santos Moschetta,
Philippe Mathieu-Daudé
Straight forward conversion. Update the SHA1 hashes to
SHA256 hashes since SHA1 should not be used anymore nowadays.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
MAINTAINERS | 1 +
tests/avocado/boot_linux_console.py | 63 ----------------------
tests/functional/meson.build | 4 ++
tests/functional/test_mips_malta.py | 84 +++++++++++++++++++++++++++++
4 files changed, 89 insertions(+), 63 deletions(-)
create mode 100755 tests/functional/test_mips_malta.py
diff --git a/MAINTAINERS b/MAINTAINERS
index 4b480135f6..e2e62afcdc 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1368,6 +1368,7 @@ F: hw/mips/malta.c
F: hw/pci-host/gt64120.c
F: include/hw/southbridge/piix.h
F: tests/avocado/linux_ssh_mips_malta.py
+F: tests/functional/test_mips_malta.py
F: tests/functional/test_mipsel_malta.py
F: tests/functional/test_mips64el_malta.py
diff --git a/tests/avocado/boot_linux_console.py b/tests/avocado/boot_linux_console.py
index 0756e49ded..370beb795a 100644
--- a/tests/avocado/boot_linux_console.py
+++ b/tests/avocado/boot_linux_console.py
@@ -116,69 +116,6 @@ def test_x86_64_pc(self):
console_pattern = 'Kernel command line: %s' % kernel_command_line
self.wait_for_console_pattern(console_pattern)
- def test_mips_malta(self):
- """
- :avocado: tags=arch:mips
- :avocado: tags=machine:malta
- :avocado: tags=endian:big
- """
- deb_url = ('http://snapshot.debian.org/archive/debian/'
- '20130217T032700Z/pool/main/l/linux-2.6/'
- 'linux-image-2.6.32-5-4kc-malta_2.6.32-48_mips.deb')
- deb_hash = 'a8cfc28ad8f45f54811fc6cf74fc43ffcfe0ba04'
- deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash)
- kernel_path = self.extract_from_deb(deb_path,
- '/boot/vmlinux-2.6.32-5-4kc-malta')
-
- self.vm.set_console()
- kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0'
- 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)
-
- def test_mips_malta_cpio(self):
- """
- :avocado: tags=arch:mips
- :avocado: tags=machine:malta
- :avocado: tags=endian:big
- """
- deb_url = ('http://snapshot.debian.org/archive/debian/'
- '20160601T041800Z/pool/main/l/linux/'
- 'linux-image-4.5.0-2-4kc-malta_4.5.5-1_mips.deb')
- deb_hash = 'a3c84f3e88b54e06107d65a410d1d1e8e0f340f8'
- deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash)
- kernel_path = self.extract_from_deb(deb_path,
- '/boot/vmlinux-4.5.0-2-4kc-malta')
- initrd_url = ('https://github.com/groeck/linux-build-test/raw/'
- '8584a59ed9e5eb5ee7ca91f6d74bbb06619205b8/rootfs/'
- 'mips/rootfs.cpio.gz')
- initrd_hash = 'bf806e17009360a866bf537f6de66590de349a99'
- initrd_path_gz = self.fetch_asset(initrd_url, asset_hash=initrd_hash)
- initrd_path = self.workdir + "rootfs.cpio"
- archive.gzip_uncompress(initrd_path_gz, initrd_path)
-
- self.vm.set_console()
- kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE
- + 'console=ttyS0 console=tty '
- + 'rdinit=/sbin/init noreboot')
- self.vm.add_args('-kernel', kernel_path,
- '-initrd', initrd_path,
- '-append', kernel_command_line,
- '-no-reboot')
- self.vm.launch()
- self.wait_for_console_pattern('Boot successful.')
-
- exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo',
- 'BogoMIPS')
- exec_command_and_wait_for_pattern(self, 'uname -a',
- 'Debian')
- exec_command_and_wait_for_pattern(self, 'reboot',
- 'reboot: Restarting system')
- # Wait for VM to shut down gracefully
- self.vm.wait()
-
def test_aarch64_xlnx_versal_virt(self):
"""
:avocado: tags=arch:aarch64
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index f8e482a87c..175e88bb87 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -51,6 +51,10 @@ tests_microblazeel_thorough = [
'microblazeel_s3adsp1800'
]
+tests_mips_thorough = [
+ 'mips_malta',
+]
+
tests_mipsel_thorough = [
'mipsel_malta',
]
diff --git a/tests/functional/test_mips_malta.py b/tests/functional/test_mips_malta.py
new file mode 100755
index 0000000000..6dd99f572c
--- /dev/null
+++ b/tests/functional/test_mips_malta.py
@@ -0,0 +1,84 @@
+#!/usr/bin/env python3
+#
+# Functional tests for the little-endian 32-bit MIPS Malta board
+#
+# Copyright (c) Philippe Mathieu-Daudé <f4bug@amsat.org>
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+import os
+
+from qemu_test import QemuSystemTest, Asset
+from qemu_test import exec_command_and_wait_for_pattern
+from qemu_test import wait_for_console_pattern
+from qemu_test.utils import extract_from_deb
+from qemu_test.utils import gzip_uncompress
+
+
+class MaltaMachineConsole(QemuSystemTest):
+ KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 '
+
+ ASSET_KERNEL_2_63_2 = Asset(
+ ('http://snapshot.debian.org/archive/debian/'
+ '20130217T032700Z/pool/main/l/linux-2.6/'
+ 'linux-image-2.6.32-5-4kc-malta_2.6.32-48_mips.deb'),
+ '16ca524148afb0626f483163e5edf352bc1ab0e4fc7b9f9d473252762f2c7a43')
+
+ def test_mips_malta(self):
+ deb_path = self.ASSET_KERNEL_2_63_2.fetch()
+ kernel_path = extract_from_deb(deb_path, self.workdir,
+ '/boot/vmlinux-2.6.32-5-4kc-malta')
+
+ self.set_machine('malta')
+ self.vm.set_console()
+ kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0'
+ self.vm.add_args('-kernel', kernel_path,
+ '-append', kernel_command_line)
+ self.vm.launch()
+ console_pattern = 'Kernel command line: %s' % kernel_command_line
+ wait_for_console_pattern(self, console_pattern)
+
+ ASSET_KERNEL_4_5_0 = Asset(
+ ('http://snapshot.debian.org/archive/debian/'
+ '20160601T041800Z/pool/main/l/linux/'
+ 'linux-image-4.5.0-2-4kc-malta_4.5.5-1_mips.deb'),
+ '526b17d5889840888b76fc2c36a0ebde182c9b1410a3a1e68203c3b160eb2027')
+
+ ASSET_INITRD = Asset(
+ ('https://github.com/groeck/linux-build-test/raw/'
+ '8584a59ed9e5eb5ee7ca91f6d74bbb06619205b8/rootfs/'
+ 'mips/rootfs.cpio.gz'),
+ 'dcfe3a7fe3200da3a00d176b95caaa086495eb158f2bff64afc67d7e1eb2cddc')
+
+ def test_mips_malta_cpio(self):
+ deb_path = self.ASSET_KERNEL_4_5_0.fetch()
+ kernel_path = extract_from_deb(deb_path, self.workdir,
+ '/boot/vmlinux-4.5.0-2-4kc-malta')
+ initrd_path_gz = self.ASSET_INITRD.fetch()
+ initrd_path = os.path.join(self.workdir, 'rootfs.cpio')
+ gzip_uncompress(initrd_path_gz, initrd_path)
+
+ self.set_machine('malta')
+ self.vm.set_console()
+ kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE
+ + 'console=ttyS0 console=tty '
+ + 'rdinit=/sbin/init noreboot')
+ self.vm.add_args('-kernel', kernel_path,
+ '-initrd', initrd_path,
+ '-append', kernel_command_line,
+ '-no-reboot')
+ self.vm.launch()
+ wait_for_console_pattern(self, 'Boot successful.')
+
+ exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo',
+ 'BogoMIPS')
+ exec_command_and_wait_for_pattern(self, 'uname -a',
+ 'Debian')
+ exec_command_and_wait_for_pattern(self, 'reboot',
+ 'reboot: Restarting system')
+ # Wait for VM to shut down gracefully
+ self.vm.wait()
+
+
+if __name__ == '__main__':
+ QemuSystemTest.main()
--
2.45.2
^ permalink raw reply related [flat|nested] 14+ messages in thread