tests/functional: convert tests to new archive_extract helper

Replace use of utils.archive_extract and extract_from_deb with the
new archive_extract helper.

Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Message-ID: <20241217155953.3950506-24-berrange@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
Daniel P. Berrangé 2024-12-17 15:59:44 +00:00 committed by Thomas Huth
parent 239fd29d6f
commit 5831ed84e7
37 changed files with 134 additions and 205 deletions

View file

@ -3,11 +3,8 @@
# This work is licensed under the terms of the GNU GPL, version 2 or
# later. See the COPYING file in the top-level directory.
import os
from .testcase import QemuSystemTest
from .cmd import wait_for_console_pattern
from .archive import deb_extract
class LinuxKernelTest(QemuSystemTest):
@ -29,19 +26,3 @@ class LinuxKernelTest(QemuSystemTest):
self.vm.launch()
if wait_for:
self.wait_for_console_pattern(wait_for)
def extract_from_deb(self, deb_path, path):
"""
Extracts a file from a deb package into the test workdir
:param deb_path: path to the deb archive
:param path: path within the deb archive of the file to be extracted
:returns: path of the extracted file
"""
deb_extract(deb_path, self.workdir, member="." + path)
# Return complete path to extracted file. Because callers to
# extract_from_deb() specify 'path' with a leading slash, it is
# necessary to use os.path.relpath() as otherwise scratch_file()
# interprets it as an absolute path and drops the required prefix
return os.path.normpath(self.scratch_file(os.path.relpath(path, '/')))

View file

@ -11,7 +11,7 @@ import os
from qemu_test import QemuSystemTest, Asset
from qemu_test import wait_for_console_pattern
from qemu_test import exec_command_and_wait_for_pattern
from qemu_test.utils import archive_extract
class AST2x00MachineSDK(QemuSystemTest):
@ -34,8 +34,7 @@ class AST2x00MachineSDK(QemuSystemTest):
def test_aarch64_ast2700_evb_sdk_v09_02(self):
self.set_machine('ast2700-evb')
image_path = self.ASSET_SDK_V902_AST2700.fetch()
archive_extract(image_path, self.workdir)
self.archive_extract(self.ASSET_SDK_V902_AST2700)
num_cpu = 4
uboot_size = os.path.getsize(self.scratch_file('ast2700-default',

View file

@ -7,8 +7,6 @@
#
# SPDX-License-Identifier: GPL-2.0-or-later
from zipfile import ZipFile
from qemu_test import LinuxKernelTest, Asset
@ -21,11 +19,7 @@ class Aarch64Raspi3Machine(LinuxKernelTest):
def test_aarch64_raspi3_atf(self):
efi_name = 'RPI_EFI.fd'
zip_path = self.ASSET_RPI3_UEFI.fetch()
with ZipFile(zip_path, 'r') as zf:
zf.extract(efi_name, path=self.workdir)
efi_fd = self.scratch_file(efi_name)
efi_fd = self.archive_extract(self.ASSET_RPI3_UEFI, member=efi_name)
self.set_machine('raspi3b')
self.vm.set_console(console_index=1)

View file

@ -30,9 +30,10 @@ class Aarch64Raspi4Machine(LinuxKernelTest):
'7c0b16d1853772f6f4c3ca63e789b3b9ff4936efac9c8a01fb0c98c05c7a7648')
def test_arm_raspi4(self):
deb_path = self.ASSET_KERNEL_20190215.fetch()
kernel_path = self.extract_from_deb(deb_path, '/boot/kernel8.img')
dtb_path = self.extract_from_deb(deb_path, '/boot/bcm2711-rpi-4-b.dtb')
kernel_path = self.archive_extract(self.ASSET_KERNEL_20190215,
member='boot/kernel8.img')
dtb_path = self.archive_extract(self.ASSET_KERNEL_20190215,
member='boot/bcm2711-rpi-4-b.dtb')
self.set_machine('raspi4b')
self.vm.set_console()
@ -58,9 +59,10 @@ class Aarch64Raspi4Machine(LinuxKernelTest):
def test_arm_raspi4_initrd(self):
deb_path = self.ASSET_KERNEL_20190215.fetch()
kernel_path = self.extract_from_deb(deb_path, '/boot/kernel8.img')
dtb_path = self.extract_from_deb(deb_path, '/boot/bcm2711-rpi-4-b.dtb')
kernel_path = self.archive_extract(self.ASSET_KERNEL_20190215,
member='boot/kernel8.img')
dtb_path = self.archive_extract(self.ASSET_KERNEL_20190215,
member='boot/bcm2711-rpi-4-b.dtb')
initrd_path_gz = self.ASSET_INITRD.fetch()
initrd_path = self.scratch_file('rootfs.cpio')
gzip_uncompress(initrd_path_gz, initrd_path)

View file

@ -35,8 +35,6 @@ import os
import re
import shutil
import subprocess
import tarfile
import zipfile
from typing import (
List,
@ -260,19 +258,12 @@ class AcpiBitsTest(QemuSystemTest): #pylint: disable=too-many-instance-attribute
%(self.BITS_INTERNAL_VER,
self.BITS_COMMIT_HASH))
bitsLocalArtLoc = self.ASSET_BITS.fetch()
self.logger.info("downloaded bits artifacts to %s", bitsLocalArtLoc)
# extract the bits artifact in the temp working directory
with zipfile.ZipFile(bitsLocalArtLoc, 'r') as zref:
zref.extractall(prebuiltDir)
self.archive_extract(self.ASSET_BITS, sub_dir='prebuilt', format='zip')
# extract the bits software in the temp working directory
with zipfile.ZipFile(bits_zip_file, 'r') as zref:
zref.extractall(self.workdir)
with tarfile.open(grub_tar_file, 'r', encoding='utf-8') as tarball:
tarball.extractall(self.workdir)
self.archive_extract(bits_zip_file)
self.archive_extract(grub_tar_file)
self.copy_test_scripts()
self.copy_bits_config()

View file

@ -8,7 +8,7 @@
from qemu_test import LinuxKernelTest, Asset
from qemu_test import exec_command_and_wait_for_pattern
from zipfile import ZipFile
class AST1030Machine(LinuxKernelTest):
@ -20,12 +20,9 @@ class AST1030Machine(LinuxKernelTest):
def test_ast1030_zephyros_1_04(self):
self.set_machine('ast1030-evb')
zip_file = self.ASSET_ZEPHYR_1_04.fetch()
kernel_name = "ast1030-evb-demo/zephyr.elf"
with ZipFile(zip_file, 'r') as zf:
zf.extract(kernel_name, path=self.workdir)
kernel_file = self.scratch_file(kernel_name)
kernel_file = self.archive_extract(
self.ASSET_ZEPHYR_1_04, member=kernel_name)
self.vm.set_console()
self.vm.add_args('-kernel', kernel_file, '-nographic')
@ -42,12 +39,9 @@ class AST1030Machine(LinuxKernelTest):
def test_ast1030_zephyros_1_07(self):
self.set_machine('ast1030-evb')
zip_file = self.ASSET_ZEPHYR_1_07.fetch()
kernel_name = "ast1030-evb-demo/zephyr.bin"
with ZipFile(zip_file, 'r') as zf:
zf.extract(kernel_name, path=self.workdir)
kernel_file = self.scratch_file(kernel_name)
kernel_file = self.archive_extract(
self.ASSET_ZEPHYR_1_07, member=kernel_name)
self.vm.set_console()
self.vm.add_args('-kernel', kernel_file, '-nographic')

View file

@ -7,7 +7,7 @@
from qemu_test import Asset
from aspeed import AspeedTest
from qemu_test import exec_command_and_wait_for_pattern
from qemu_test.utils import archive_extract
class AST2500Machine(AspeedTest):
@ -45,9 +45,7 @@ class AST2500Machine(AspeedTest):
def test_arm_ast2500_evb_sdk(self):
self.set_machine('ast2500-evb')
image_path = self.ASSET_SDK_V806_AST2500.fetch()
archive_extract(image_path, self.workdir)
self.archive_extract(self.ASSET_SDK_V806_AST2500)
self.do_test_arm_aspeed_sdk_start(
self.scratch_file("ast2500-default", "image-bmc"))

View file

@ -12,7 +12,6 @@ import subprocess
from qemu_test import Asset
from aspeed import AspeedTest
from qemu_test import exec_command_and_wait_for_pattern, skipIfMissingCommands
from qemu_test.utils import archive_extract
class AST2600Machine(AspeedTest):
@ -105,9 +104,7 @@ class AST2600Machine(AspeedTest):
def test_arm_ast2600_evb_sdk(self):
self.set_machine('ast2600-evb')
image_path = self.ASSET_SDK_V806_AST2600_A2.fetch()
archive_extract(image_path, self.workdir)
self.archive_extract(self.ASSET_SDK_V806_AST2600_A2)
self.vm.add_args('-device',
'tmp105,bus=aspeed.i2c.bus.5,address=0x4d,id=tmp-test');

View file

@ -43,11 +43,12 @@ class RainierMachine(AspeedTest):
def test_arm_debian_kernel_boot(self):
self.set_machine('rainier-bmc')
deb_path = self.ASSET_DEBIAN_LINUX_ARMHF_DEB.fetch()
kernel_path = self.extract_from_deb(deb_path, '/boot/vmlinuz-5.17.0-2-armmp')
dtb_path = self.extract_from_deb(deb_path,
'/usr/lib/linux-image-5.17.0-2-armmp/aspeed-bmc-ibm-rainier.dtb')
kernel_path = self.archive_extract(
self.ASSET_DEBIAN_LINUX_ARMHF_DEB,
member='boot/vmlinuz-5.17.0-2-armmp')
dtb_path = self.archive_extract(
self.ASSET_DEBIAN_LINUX_ARMHF_DEB,
member='usr/lib/linux-image-5.17.0-2-armmp/aspeed-bmc-ibm-rainier.dtb')
self.vm.set_console()
self.vm.add_args('-kernel', kernel_path,

View file

@ -10,7 +10,6 @@ import bz2
from qemu_test import QemuUserTest, Asset
from qemu_test import skipIfMissingCommands, skipUntrustedTest
from qemu_test.utils import cpio_extract
class LoadBFLT(QemuUserTest):
@ -27,7 +26,7 @@ class LoadBFLT(QemuUserTest):
busybox_path = self.scratch_file("bin", "busybox")
with bz2.open(rootfs_path_bz2, 'rb') as cpio_handle:
cpio_extract(cpio_handle, self.workdir)
self.archive_extract(cpio_handle, format="cpio")
res = self.run_cmd(busybox_path)
ver = 'BusyBox v1.24.0.git (2015-02-03 22:17:13 CET) multi-call binary.'

View file

@ -39,12 +39,11 @@ class BananaPiMachine(LinuxKernelTest):
def test_arm_bpim2u(self):
self.set_machine('bpim2u')
deb_path = self.ASSET_DEB.fetch()
kernel_path = self.extract_from_deb(deb_path,
'/boot/vmlinuz-6.6.16-current-sunxi')
dtb_path = ('/usr/lib/linux-image-6.6.16-current-sunxi/'
kernel_path = self.archive_extract(
self.ASSET_DEB, member='boot/vmlinuz-6.6.16-current-sunxi')
dtb_path = ('usr/lib/linux-image-6.6.16-current-sunxi/'
'sun8i-r40-bananapi-m2-ultra.dtb')
dtb_path = self.extract_from_deb(deb_path, dtb_path)
dtb_path = self.archive_extract(self.ASSET_DEB, member=dtb_path)
self.vm.set_console()
kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
@ -61,12 +60,11 @@ class BananaPiMachine(LinuxKernelTest):
def test_arm_bpim2u_initrd(self):
self.set_machine('bpim2u')
deb_path = self.ASSET_DEB.fetch()
kernel_path = self.extract_from_deb(deb_path,
'/boot/vmlinuz-6.6.16-current-sunxi')
dtb_path = ('/usr/lib/linux-image-6.6.16-current-sunxi/'
kernel_path = self.archive_extract(
self.ASSET_DEB, member='boot/vmlinuz-6.6.16-current-sunxi')
dtb_path = ('usr/lib/linux-image-6.6.16-current-sunxi/'
'sun8i-r40-bananapi-m2-ultra.dtb')
dtb_path = self.extract_from_deb(deb_path, dtb_path)
dtb_path = self.archive_extract(self.ASSET_DEB, member=dtb_path)
initrd_path_gz = self.ASSET_INITRD.fetch()
initrd_path = self.scratch_file('rootfs.cpio')
gzip_uncompress(initrd_path_gz, initrd_path)
@ -100,11 +98,11 @@ class BananaPiMachine(LinuxKernelTest):
self.require_netdev('user')
deb_path = self.ASSET_DEB.fetch()
kernel_path = self.extract_from_deb(deb_path,
'/boot/vmlinuz-6.6.16-current-sunxi')
dtb_path = ('/usr/lib/linux-image-6.6.16-current-sunxi/'
kernel_path = self.archive_extract(
self.ASSET_DEB, member='boot/vmlinuz-6.6.16-current-sunxi')
dtb_path = ('usr/lib/linux-image-6.6.16-current-sunxi/'
'sun8i-r40-bananapi-m2-ultra.dtb')
dtb_path = self.extract_from_deb(deb_path, dtb_path)
dtb_path = self.archive_extract(self.ASSET_DEB, member=dtb_path)
rootfs_path_xz = self.ASSET_ROOTFS.fetch()
rootfs_path = self.scratch_file('rootfs.cpio')
lzma_uncompress(rootfs_path_xz, rootfs_path)

View file

@ -12,7 +12,7 @@
from qemu_test import QemuSystemTest, Asset
from qemu_test import wait_for_console_pattern
from qemu_test.utils import archive_extract
class CanonA1100Machine(QemuSystemTest):
"""Boots the barebox firmware and checks that the console is operational"""
@ -26,13 +26,10 @@ class CanonA1100Machine(QemuSystemTest):
def test_arm_canona1100(self):
self.set_machine('canon-a1100')
file_path = self.ASSET_BIOS.fetch()
archive_extract(file_path, dest_dir=self.workdir,
bios = self.archive_extract(self.ASSET_BIOS,
member="day18/barebox.canon-a1100.bin")
self.vm.set_console()
self.vm.add_args('-bios',
self.scratch_file('day18',
'barebox.canon-a1100.bin'))
self.vm.add_args('-bios', bios)
self.vm.launch()
wait_for_console_pattern(self, 'running /env/bin/init')

View file

@ -38,11 +38,11 @@ class CubieboardMachine(LinuxKernelTest):
def test_arm_cubieboard_initrd(self):
self.set_machine('cubieboard')
deb_path = self.ASSET_DEB.fetch()
kernel_path = self.extract_from_deb(deb_path,
'/boot/vmlinuz-6.6.16-current-sunxi')
dtb_path = '/usr/lib/linux-image-6.6.16-current-sunxi/sun4i-a10-cubieboard.dtb'
dtb_path = self.extract_from_deb(deb_path, dtb_path)
kernel_path = self.archive_extract(
self.ASSET_DEB, member='boot/vmlinuz-6.6.16-current-sunxi')
dtb_path = ('usr/lib/linux-image-6.6.16-current-sunxi/' +
'sun4i-a10-cubieboard.dtb')
dtb_path = self.archive_extract(self.ASSET_DEB, member=dtb_path)
initrd_path_gz = self.ASSET_INITRD.fetch()
initrd_path = self.scratch_file('rootfs.cpio')
gzip_uncompress(initrd_path_gz, initrd_path)
@ -71,11 +71,11 @@ class CubieboardMachine(LinuxKernelTest):
def test_arm_cubieboard_sata(self):
self.set_machine('cubieboard')
deb_path = self.ASSET_DEB.fetch()
kernel_path = self.extract_from_deb(deb_path,
'/boot/vmlinuz-6.6.16-current-sunxi')
dtb_path = '/usr/lib/linux-image-6.6.16-current-sunxi/sun4i-a10-cubieboard.dtb'
dtb_path = self.extract_from_deb(deb_path, dtb_path)
kernel_path = self.archive_extract(
self.ASSET_DEB, member='boot/vmlinuz-6.6.16-current-sunxi')
dtb_path = ('usr/lib/linux-image-6.6.16-current-sunxi/' +
'sun4i-a10-cubieboard.dtb')
dtb_path = self.archive_extract(self.ASSET_DEB, member=dtb_path)
rootfs_path_gz = self.ASSET_SATA_ROOTFS.fetch()
rootfs_path = self.scratch_file('rootfs.cpio')

View file

@ -50,11 +50,11 @@ class BananaPiMachine(LinuxKernelTest):
def test_arm_orangepi(self):
self.set_machine('orangepi-pc')
deb_path = self.ASSET_DEB.fetch()
kernel_path = self.extract_from_deb(deb_path,
'/boot/vmlinuz-6.6.16-current-sunxi')
dtb_path = '/usr/lib/linux-image-6.6.16-current-sunxi/sun8i-h3-orangepi-pc.dtb'
dtb_path = self.extract_from_deb(deb_path, dtb_path)
kernel_path = self.archive_extract(
self.ASSET_DEB, member='boot/vmlinuz-6.6.16-current-sunxi')
dtb_path = ('usr/lib/linux-image-6.6.16-current-sunxi/' +
'sun8i-h3-orangepi-pc.dtb')
dtb_path = self.archive_extract(self.ASSET_DEB, member=dtb_path)
self.vm.set_console()
kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
@ -71,11 +71,11 @@ class BananaPiMachine(LinuxKernelTest):
def test_arm_orangepi_initrd(self):
self.set_machine('orangepi-pc')
deb_path = self.ASSET_DEB.fetch()
kernel_path = self.extract_from_deb(deb_path,
'/boot/vmlinuz-6.6.16-current-sunxi')
dtb_path = '/usr/lib/linux-image-6.6.16-current-sunxi/sun8i-h3-orangepi-pc.dtb'
dtb_path = self.extract_from_deb(deb_path, dtb_path)
kernel_path = self.archive_extract(
self.ASSET_DEB, member='boot/vmlinuz-6.6.16-current-sunxi')
dtb_path = ('usr/lib/linux-image-6.6.16-current-sunxi/' +
'sun8i-h3-orangepi-pc.dtb')
dtb_path = self.archive_extract(self.ASSET_DEB, member=dtb_path)
initrd_path_gz = self.ASSET_INITRD.fetch()
initrd_path = self.scratch_file('rootfs.cpio')
gzip_uncompress(initrd_path_gz, initrd_path)
@ -107,11 +107,11 @@ class BananaPiMachine(LinuxKernelTest):
def test_arm_orangepi_sd(self):
self.set_machine('orangepi-pc')
self.require_netdev('user')
deb_path = self.ASSET_DEB.fetch()
kernel_path = self.extract_from_deb(deb_path,
'/boot/vmlinuz-6.6.16-current-sunxi')
dtb_path = '/usr/lib/linux-image-6.6.16-current-sunxi/sun8i-h3-orangepi-pc.dtb'
dtb_path = self.extract_from_deb(deb_path, dtb_path)
kernel_path = self.archive_extract(
self.ASSET_DEB, member='boot/vmlinuz-6.6.16-current-sunxi')
dtb_path = ('usr/lib/linux-image-6.6.16-current-sunxi/' +
'sun8i-h3-orangepi-pc.dtb')
dtb_path = self.archive_extract(self.ASSET_DEB, member=dtb_path)
rootfs_path_xz = self.ASSET_ROOTFS.fetch()
rootfs_path = self.scratch_file('rootfs.cpio')
lzma_uncompress(rootfs_path_xz, rootfs_path)
@ -189,13 +189,12 @@ class BananaPiMachine(LinuxKernelTest):
def test_arm_orangepi_uboot_netbsd9(self):
self.set_machine('orangepi-pc')
# This test download a 304MB compressed image and expand it to 2GB
deb_path = self.ASSET_UBOOT.fetch()
# We use the common OrangePi PC 'plus' build of U-Boot for our secondary
# program loader (SPL). We will then set the path to the more specific
# OrangePi "PC" device tree blob with 'setenv fdtfile' in U-Boot prompt,
# before to boot NetBSD.
uboot_path = '/usr/lib/u-boot/orangepi_plus/u-boot-sunxi-with-spl.bin'
uboot_path = self.extract_from_deb(deb_path, uboot_path)
uboot_path = 'usr/lib/u-boot/orangepi_plus/u-boot-sunxi-with-spl.bin'
uboot_path = self.archive_extract(self.ASSET_UBOOT, member=uboot_path)
image_path_gz = self.ASSET_NETBSD.fetch()
image_path = self.scratch_file('armv7.img')
gzip_uncompress(image_path_gz, image_path)

View file

@ -35,9 +35,10 @@ class ArmRaspi2Machine(LinuxKernelTest):
serial_kernel_cmdline = {
0: 'earlycon=pl011,0x3f201000 console=ttyAMA0',
}
deb_path = self.ASSET_KERNEL_20190215.fetch()
kernel_path = self.extract_from_deb(deb_path, '/boot/kernel7.img')
dtb_path = self.extract_from_deb(deb_path, '/boot/bcm2709-rpi-2-b.dtb')
kernel_path = self.archive_extract(self.ASSET_KERNEL_20190215,
member='boot/kernel7.img')
dtb_path = self.archive_extract(self.ASSET_KERNEL_20190215,
member='boot/bcm2709-rpi-2-b.dtb')
self.set_machine('raspi2b')
self.vm.set_console()
@ -59,9 +60,10 @@ class ArmRaspi2Machine(LinuxKernelTest):
self.do_test_arm_raspi2(0)
def test_arm_raspi2_initrd(self):
deb_path = self.ASSET_KERNEL_20190215.fetch()
kernel_path = self.extract_from_deb(deb_path, '/boot/kernel7.img')
dtb_path = self.extract_from_deb(deb_path, '/boot/bcm2709-rpi-2-b.dtb')
kernel_path = self.archive_extract(self.ASSET_KERNEL_20190215,
member='boot/kernel7.img')
dtb_path = self.archive_extract(self.ASSET_KERNEL_20190215,
member='boot/bcm2709-rpi-2-b.dtb')
initrd_path_gz = self.ASSET_INITRD.fetch()
initrd_path = self.scratch_file('rootfs.cpio')
gzip_uncompress(initrd_path_gz, initrd_path)

View file

@ -25,11 +25,10 @@ class Smdkc210Machine(LinuxKernelTest):
def test_arm_exynos4210_initrd(self):
self.set_machine('smdkc210')
deb_path = self.ASSET_DEB.fetch()
kernel_path = self.extract_from_deb(deb_path,
'/boot/vmlinuz-4.19.0-6-armmp')
dtb_path = '/usr/lib/linux-image-4.19.0-6-armmp/exynos4210-smdkv310.dtb'
dtb_path = self.extract_from_deb(deb_path, dtb_path)
kernel_path = self.archive_extract(self.ASSET_DEB,
member='boot/vmlinuz-4.19.0-6-armmp')
dtb_path = 'usr/lib/linux-image-4.19.0-6-armmp/exynos4210-smdkv310.dtb'
dtb_path = self.archive_extract(self.ASSET_DEB, member=dtb_path)
initrd_path_gz = self.ASSET_ROOTFS.fetch()
initrd_path = self.scratch_file('rootfs.cpio')

View file

@ -6,7 +6,7 @@
# SPDX-License-Identifier: GPL-2.0-or-later
from qemu_test import LinuxKernelTest, Asset
from qemu_test.utils import archive_extract
class VExpressTest(LinuxKernelTest):
@ -16,8 +16,7 @@ class VExpressTest(LinuxKernelTest):
def test_arm_vexpressa9(self):
self.set_machine('vexpress-a9')
file_path = self.ASSET_DAY16.fetch()
archive_extract(file_path, self.workdir)
self.archive_extract(self.ASSET_DAY16)
self.launch_kernel(self.scratch_file('day16', 'winter.zImage'),
dtb=self.scratch_file('day16',
'vexpress-v2p-ca9.dtb'),

View file

@ -6,7 +6,7 @@
# SPDX-License-Identifier: GPL-2.0-or-later
from qemu_test import LinuxKernelTest, Asset
from qemu_test.utils import archive_extract
class Mcf5208EvbTest(LinuxKernelTest):
@ -16,8 +16,7 @@ class Mcf5208EvbTest(LinuxKernelTest):
def test_m68k_mcf5208evb(self):
self.set_machine('mcf5208evb')
file_path = self.ASSET_DAY07.fetch()
archive_extract(file_path, self.workdir)
self.archive_extract(self.ASSET_DAY07)
self.vm.set_console()
self.vm.add_args('-kernel',
self.scratch_file('day07', 'sanity-clause.elf'))

View file

@ -18,9 +18,8 @@ class Q800MachineTest(LinuxKernelTest):
def test_m68k_q800(self):
self.set_machine('q800')
deb_path = self.ASSET_KERNEL.fetch()
kernel_path = self.extract_from_deb(deb_path,
'/boot/vmlinux-5.3.0-1-m68k')
kernel_path = self.archive_extract(self.ASSET_KERNEL,
member='boot/vmlinux-5.3.0-1-m68k')
self.vm.set_console()
kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +

View file

@ -9,7 +9,7 @@
from qemu_test import QemuSystemTest, Asset
from qemu_test import wait_for_console_pattern
from qemu_test.utils import archive_extract
class MicroblazeMachine(QemuSystemTest):
@ -22,8 +22,7 @@ class MicroblazeMachine(QemuSystemTest):
def test_microblaze_s3adsp1800(self):
self.set_machine('petalogix-s3adsp1800')
file_path = self.ASSET_IMAGE.fetch()
archive_extract(file_path, self.workdir)
self.archive_extract(self.ASSET_IMAGE)
self.vm.set_console()
self.vm.add_args('-kernel',
self.scratch_file('day17', 'ballerina.bin'))

View file

@ -11,7 +11,7 @@ import time
from qemu_test import exec_command, exec_command_and_wait_for_pattern
from qemu_test import QemuSystemTest, Asset
from qemu_test import wait_for_console_pattern
from qemu_test.utils import archive_extract
class MicroblazeelMachine(QemuSystemTest):
@ -24,8 +24,7 @@ class MicroblazeelMachine(QemuSystemTest):
def test_microblazeel_s3adsp1800(self):
self.require_netdev('user')
self.set_machine('petalogix-s3adsp1800')
file_path = self.ASSET_IMAGE.fetch()
archive_extract(file_path, self.workdir)
self.archive_extract(self.ASSET_IMAGE)
self.vm.set_console()
self.vm.add_args('-kernel', self.scratch_file('day13', 'xmaton.bin'))
tftproot = self.scratch_file('day13')

View file

@ -26,9 +26,9 @@ class MipsFuloong2e(LinuxKernelTest):
'2a70f15b397f4ced632b0c15cb22660394190644146d804d60a4796eefbe1f50')
def test_linux_kernel_3_16(self):
deb_path = self.ASSET_KERNEL.fetch()
kernel_path = self.extract_from_deb(deb_path,
'/boot/vmlinux-3.16.0-6-loongson-2e')
kernel_path = self.archive_extract(
self.ASSET_KERNEL,
member='boot/vmlinux-3.16.0-6-loongson-2e')
self.set_machine('fuloong2e')
self.vm.set_console()

View file

@ -39,9 +39,9 @@ class MaltaMachineConsole(LinuxKernelTest):
[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 = self.extract_from_deb(deb_path,
'/boot/vmlinux-2.6.32-5-5kc-malta')
kernel_path = self.archive_extract(
self.ASSET_KERNEL_2_63_2,
member='boot/vmlinux-2.6.32-5-5kc-malta')
self.set_machine('malta')
self.vm.set_console()

View file

@ -20,9 +20,9 @@ class MaltaMachineConsole(LinuxKernelTest):
'16ca524148afb0626f483163e5edf352bc1ab0e4fc7b9f9d473252762f2c7a43')
def test_mips_malta(self):
deb_path = self.ASSET_KERNEL_2_63_2.fetch()
kernel_path = self.extract_from_deb(deb_path,
'/boot/vmlinux-2.6.32-5-4kc-malta')
kernel_path = self.archive_extract(
self.ASSET_KERNEL_2_63_2,
member='boot/vmlinux-2.6.32-5-4kc-malta')
self.set_machine('malta')
self.vm.set_console()
@ -46,9 +46,9 @@ class MaltaMachineConsole(LinuxKernelTest):
'dcfe3a7fe3200da3a00d176b95caaa086495eb158f2bff64afc67d7e1eb2cddc')
def test_mips_malta_cpio(self):
deb_path = self.ASSET_KERNEL_4_5_0.fetch()
kernel_path = self.extract_from_deb(deb_path,
'/boot/vmlinux-4.5.0-2-4kc-malta')
kernel_path = self.archive_extract(
self.ASSET_KERNEL_4_5_0,
member='boot/vmlinux-4.5.0-2-4kc-malta')
initrd_path_gz = self.ASSET_INITRD.fetch()
initrd_path = self.scratch_file('rootfs.cpio')
gzip_uncompress(initrd_path_gz, initrd_path)

View file

@ -13,7 +13,6 @@ from qemu_test import QemuSystemTest, LinuxKernelTest, 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(LinuxKernelTest):
@ -73,9 +72,7 @@ class MaltaMachineYAMON(QemuSystemTest):
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)
self.archive_extract(self.ASSET_YAMON_ROM)
yamon_path = self.scratch_file(yamon_bin)
self.set_machine('malta')

View file

@ -6,7 +6,7 @@
# SPDX-License-Identifier: GPL-2.0-or-later
from qemu_test import LinuxKernelTest, Asset
from qemu_test.utils import archive_extract
class OpenRISC1kSimTest(LinuxKernelTest):
@ -16,8 +16,7 @@ class OpenRISC1kSimTest(LinuxKernelTest):
def test_or1k_sim(self):
self.set_machine('or1k-sim')
file_path = self.ASSET_DAY20.fetch()
archive_extract(file_path, self.workdir)
self.archive_extract(self.ASSET_DAY20)
self.vm.set_console()
self.vm.add_args('-kernel', self.scratch_file('day20', 'vmlinux'))
self.vm.launch()

View file

@ -5,7 +5,7 @@
# SPDX-License-Identifier: GPL-2.0-or-later
from qemu_test import LinuxKernelTest, Asset
from qemu_test.utils import archive_extract
class E500Test(LinuxKernelTest):
@ -16,8 +16,7 @@ class E500Test(LinuxKernelTest):
def test_ppc64_e500(self):
self.set_machine('ppce500')
self.cpu = 'e5500'
file_path = self.ASSET_DAY19.fetch()
archive_extract(file_path, self.workdir)
self.archive_extract(self.ASSET_DAY19)
self.launch_kernel(self.scratch_file('day19', 'uImage'),
wait_for='QEMU advent calendar')

View file

@ -11,7 +11,7 @@ import subprocess
from qemu_test import QemuSystemTest, Asset
from qemu_test import wait_for_console_pattern
from zipfile import ZipFile
class AmigaOneMachine(QemuSystemTest):
@ -26,9 +26,7 @@ class AmigaOneMachine(QemuSystemTest):
self.require_accelerator("tcg")
self.set_machine('amigaone')
tar_name = 'A1Firmware_Floppy_05-Mar-2005.zip'
zip_file = self.ASSET_IMAGE.fetch()
with ZipFile(zip_file, 'r') as zf:
zf.extractall(path=self.workdir)
self.archive_extract(self.ASSET_IMAGE, format="zip")
bios = self.scratch_file("u-boot-amigaone.bin")
with open(bios, "wb") as bios_fh:
subprocess.run(['tail', '-c', '524288',

View file

@ -7,11 +7,11 @@
# This work is licensed under the terms of the GNU GPL, version 2 or
# later. See the COPYING file in the top-level directory.
from qemu_test.utils import archive_extract
from qemu_test import QemuSystemTest, Asset
from qemu_test import wait_for_console_pattern
from qemu_test import exec_command_and_wait_for_pattern
class BambooMachine(QemuSystemTest):
timeout = 90
@ -25,8 +25,7 @@ class BambooMachine(QemuSystemTest):
self.set_machine('bamboo')
self.require_accelerator("tcg")
self.require_netdev('user')
file_path = self.ASSET_IMAGE.fetch()
archive_extract(file_path, self.workdir)
self.archive_extract(self.ASSET_IMAGE)
self.vm.set_console()
self.vm.add_args('-kernel',
self.scratch_file('system-image-powerpc-440fp',

View file

@ -5,7 +5,7 @@
# SPDX-License-Identifier: GPL-2.0-or-later
from qemu_test import LinuxKernelTest, Asset
from qemu_test.utils import archive_extract
class MacTest(LinuxKernelTest):
@ -19,9 +19,7 @@ class MacTest(LinuxKernelTest):
# we're running kvm_hv or kvm_pr. For now let's disable this test
# if we don't have TCG support.
self.require_accelerator("tcg")
file_path = self.ASSET_DAY15.fetch()
archive_extract(file_path, self.workdir)
self.archive_extract(self.ASSET_DAY15)
self.vm.add_args('-M', 'graphics=off')
self.launch_kernel(self.scratch_file('day15', 'invaders.elf'),
wait_for='QEMU advent calendar')

View file

@ -7,10 +7,10 @@
# This work is licensed under the terms of the GNU GPL, version 2 or
# later. See the COPYING file in the top-level directory.
from qemu_test.utils import archive_extract
from qemu_test import QemuSystemTest, Asset
from qemu_test import wait_for_console_pattern
class Mpc8544dsMachine(QemuSystemTest):
timeout = 90
@ -25,10 +25,10 @@ class Mpc8544dsMachine(QemuSystemTest):
def test_ppc_mpc8544ds(self):
self.require_accelerator("tcg")
self.set_machine('mpc8544ds')
file_path = self.ASSET_IMAGE.fetch()
archive_extract(file_path, self.workdir, member='creek/creek.bin')
kernel_file = self.archive_extract(self.ASSET_IMAGE,
member='creek/creek.bin')
self.vm.set_console()
self.vm.add_args('-kernel', self.scratch_file('creek', 'creek.bin'))
self.vm.add_args('-kernel', kernel_file)
self.vm.launch()
wait_for_console_pattern(self, 'QEMU advent calendar 2020',
self.panic_message)

View file

@ -7,10 +7,10 @@
# This work is licensed under the terms of the GNU GPL, version 2 or
# later. See the COPYING file in the top-level directory.
from qemu_test.utils import archive_extract
from qemu_test import QemuSystemTest, Asset
from qemu_test import wait_for_console_pattern
class VirtexMl507Machine(QemuSystemTest):
timeout = 90
@ -25,8 +25,7 @@ class VirtexMl507Machine(QemuSystemTest):
def test_ppc_virtex_ml507(self):
self.require_accelerator("tcg")
self.set_machine('virtex-ml507')
file_path = self.ASSET_IMAGE.fetch()
archive_extract(file_path, self.workdir)
self.archive_extract(self.ASSET_IMAGE)
self.vm.set_console()
self.vm.add_args('-kernel', self.scratch_file('hippo', 'hippo.linux'),
'-dtb', self.scratch_file('hippo',

View file

@ -5,7 +5,7 @@
# SPDX-License-Identifier: GPL-2.0-or-later
from qemu_test import LinuxKernelTest, Asset, skipFlakyTest
from qemu_test.utils import archive_extract
class R2dTest(LinuxKernelTest):
@ -19,8 +19,7 @@ class R2dTest(LinuxKernelTest):
@skipFlakyTest(bug_url=None)
def test_r2d(self):
self.set_machine('r2d')
file_path = self.ASSET_DAY09.fetch()
archive_extract(file_path, self.workdir)
self.archive_extract(self.ASSET_DAY09)
self.vm.add_args('-append', 'console=ttySC1')
self.launch_kernel(self.scratch_file('day09', 'zImage'),
console_index=1,

View file

@ -6,7 +6,7 @@
from qemu_test import LinuxKernelTest, Asset
from qemu_test import exec_command_and_wait_for_pattern
from qemu_test.utils import archive_extract
class R2dEBTest(LinuxKernelTest):
@ -16,8 +16,7 @@ class R2dEBTest(LinuxKernelTest):
def test_sh4eb_r2d(self):
self.set_machine('r2d')
file_path = self.ASSET_TGZ.fetch()
archive_extract(file_path, self.workdir)
self.archive_extract(self.ASSET_TGZ)
self.vm.add_args('-append', 'console=ttySC1 noiotrap')
self.launch_kernel(self.scratch_file('sh4eb', 'linux-kernel'),
initrd=self.scratch_file('sh4eb',

View file

@ -12,7 +12,6 @@
from qemu_test import QemuSystemTest, Asset
from qemu_test import wait_for_console_pattern
from qemu_test.utils import archive_extract
class Sun4uMachine(QemuSystemTest):
@ -27,11 +26,10 @@ class Sun4uMachine(QemuSystemTest):
def test_sparc64_sun4u(self):
self.set_machine('sun4u')
file_path = self.ASSET_IMAGE.fetch()
kernel_name = 'day23/vmlinux'
archive_extract(file_path, self.workdir, kernel_name)
kernel_file = self.archive_extract(self.ASSET_IMAGE,
member='day23/vmlinux')
self.vm.set_console()
self.vm.add_args('-kernel', self.scratch_file(kernel_name),
self.vm.add_args('-kernel', kernel_file,
'-append', 'printk.time=0')
self.vm.launch()
wait_for_console_pattern(self, 'Starting logging: OK')

View file

@ -6,7 +6,7 @@
# SPDX-License-Identifier: GPL-2.0-or-later
from qemu_test import LinuxKernelTest, Asset
from qemu_test.utils import archive_extract
class Sun4mTest(LinuxKernelTest):
@ -16,8 +16,7 @@ class Sun4mTest(LinuxKernelTest):
def test_sparc_ss20(self):
self.set_machine('SS-20')
file_path = self.ASSET_DAY11.fetch()
archive_extract(file_path, self.workdir)
self.archive_extract(self.ASSET_DAY11)
self.launch_kernel(self.scratch_file('day11', 'zImage.elf'),
wait_for='QEMU advent calendar')

View file

@ -6,7 +6,7 @@
# SPDX-License-Identifier: GPL-2.0-or-later
from qemu_test import LinuxKernelTest, Asset
from qemu_test.utils import archive_extract
class XTensaLX60Test(LinuxKernelTest):
@ -17,8 +17,7 @@ class XTensaLX60Test(LinuxKernelTest):
def test_xtensa_lx60(self):
self.set_machine('lx60')
self.cpu = 'dc233c'
file_path = self.ASSET_DAY02.fetch()
archive_extract(file_path, self.workdir)
self.archive_extract(self.ASSET_DAY02)
self.launch_kernel(self.scratch_file('day02',
'santas-sleigh-ride.elf'),
wait_for='QEMU advent calendar')