From nobody Thu Apr 3 09:59:31 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1740654059; cv=none; d=zohomail.com; s=zohoarc; b=BJSxKpjeVNBZs80EeVQRi4eP2HJw9GIWYFUC1l41/g4xHZTY8kvqrpOBJEpFcU9EOr28tfocJBLg1vcopZHlL9CsQ1jNq+9vyXvX2PLnq97LgH0wjU3RrRUX980Th2GxUQWbva1pGWbj8Esa7U0hcPQLWuzMJEr0UePbf6Ac8mQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1740654059; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Zo6DyPSAv2JcYtJVHblpCSdKkVIsSIgM7UWICPOOvKE=; b=OSp2n3f/A3kxUbHsrIki51PR265NkVBFYEmrlqrDhfgXNbWD1OheirMmoMbREdcuhDX1cX+PTFvkVOVBfMruN5ZYJ28Pa/NxUUAVh/ydEi3Zl9ts+rSMiSHRID2TO8zuHVG9Y24T6+kR+7vvR38VwQf3bmcYF55i5voiFfMVeqI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1740654059777541.0995113071955; Thu, 27 Feb 2025 03:00:59 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tnbd6-0002o3-V5; Thu, 27 Feb 2025 06:00:36 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tnbd2-0002hH-9K for qemu-devel@nongnu.org; Thu, 27 Feb 2025 06:00:32 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tnbcx-0006zq-MB for qemu-devel@nongnu.org; Thu, 27 Feb 2025 06:00:32 -0500 Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-551-ymxAumHfOz2YYn3F-VsPQQ-1; Thu, 27 Feb 2025 06:00:22 -0500 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 6BD7B180099F; Thu, 27 Feb 2025 11:00:21 +0000 (UTC) Received: from thuth-p1g4.redhat.com (unknown [10.44.33.184]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id E9DEA1800371; Thu, 27 Feb 2025 11:00:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1740654024; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=Zo6DyPSAv2JcYtJVHblpCSdKkVIsSIgM7UWICPOOvKE=; b=PdXNNg8uDRrHlZl4fwdThleniXxCUg5AFd6enYpemq9c9hTC3hjm2HHdDZzIo/Thsm0sTc y1mje/DcoE+fVncUtR0bsKggSkNzBFeHhGHJ/zCeDu0wC6MP3h/+thX65D5DcH0cmxp2Em g9ec3mN7kcZFq0Dt/gyU/D09EzF+N6s= X-MC-Unique: ymxAumHfOz2YYn3F-VsPQQ-1 X-Mimecast-MFC-AGG-ID: ymxAumHfOz2YYn3F-VsPQQ_1740654021 From: Thomas Huth To: qemu-devel@nongnu.org, =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH] tests/avocado: Remove the boot_linux.py and replay_linux.py tests Date: Thu, 27 Feb 2025 12:00:14 +0100 Message-ID: <20250227110014.21048-1-thuth@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=thuth@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.44, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1740654060890019000 Content-Type: text/plain; charset="utf-8" These tests are based on the cloudinit functions from Avocado. The cloudinit is very, very slow compared to our other tests, so most of these Avocado tests have either been disabled by default with a decorator, or have been marked to only run with KVM. We won't include this sluggish cloudinit stuff in the functional framework, and we've already got plenty of other tests there that check pretty much the same things, so let's simply get rid of these old tests now. Signed-off-by: Thomas Huth --- tests/avocado/boot_linux.py | 132 ---------------------- tests/avocado/replay_linux.py | 206 ---------------------------------- 2 files changed, 338 deletions(-) delete mode 100644 tests/avocado/boot_linux.py delete mode 100644 tests/avocado/replay_linux.py diff --git a/tests/avocado/boot_linux.py b/tests/avocado/boot_linux.py deleted file mode 100644 index a029ef4ad1e..00000000000 --- a/tests/avocado/boot_linux.py +++ /dev/null @@ -1,132 +0,0 @@ -# Functional test that boots a complete Linux system via a cloud image -# -# Copyright (c) 2018-2020 Red Hat, Inc. -# -# Author: -# Cleber Rosa -# -# 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 avocado_qemu.linuxtest import LinuxTest -from avocado_qemu import BUILD_DIR - -from avocado import skipUnless - - -class BootLinuxX8664(LinuxTest): - """ - :avocado: tags=3Darch:x86_64 - """ - timeout =3D 480 - - def test_pc_i440fx_tcg(self): - """ - :avocado: tags=3Dmachine:pc - :avocado: tags=3Daccel:tcg - """ - self.require_accelerator("tcg") - self.vm.add_args("-accel", "tcg") - self.launch_and_wait(set_up_ssh_connection=3DFalse) - - def test_pc_i440fx_kvm(self): - """ - :avocado: tags=3Dmachine:pc - :avocado: tags=3Daccel:kvm - """ - self.require_accelerator("kvm") - self.vm.add_args("-accel", "kvm") - self.launch_and_wait(set_up_ssh_connection=3DFalse) - - def test_pc_q35_tcg(self): - """ - :avocado: tags=3Dmachine:q35 - :avocado: tags=3Daccel:tcg - """ - self.require_accelerator("tcg") - self.vm.add_args("-accel", "tcg") - self.launch_and_wait(set_up_ssh_connection=3DFalse) - - def test_pc_q35_kvm(self): - """ - :avocado: tags=3Dmachine:q35 - :avocado: tags=3Daccel:kvm - """ - self.require_accelerator("kvm") - self.vm.add_args("-accel", "kvm") - self.launch_and_wait(set_up_ssh_connection=3DFalse) - - -# For Aarch64 we only boot KVM tests in CI as booting the current -# Fedora OS in TCG tests is very heavyweight. There are lighter weight -# distros which we use in the machine_aarch64_virt.py tests. -class BootLinuxAarch64(LinuxTest): - """ - :avocado: tags=3Darch:aarch64 - :avocado: tags=3Dmachine:virt - """ - timeout =3D 720 - - def test_virt_kvm(self): - """ - :avocado: tags=3Daccel:kvm - :avocado: tags=3Dcpu:host - """ - self.require_accelerator("kvm") - self.vm.add_args("-accel", "kvm") - self.vm.add_args("-machine", "virt,gic-version=3Dhost") - self.vm.add_args('-bios', - os.path.join(BUILD_DIR, 'pc-bios', - 'edk2-aarch64-code.fd')) - self.vm.add_args('-device', 'virtio-rng-pci,rng=3Drng0') - self.vm.add_args('-object', 'rng-random,id=3Drng0,filename=3D/dev/= urandom') - self.launch_and_wait(set_up_ssh_connection=3DFalse) - - -# See the tux_baseline.py tests for almost the same coverage in a lot -# less time. -class BootLinuxPPC64(LinuxTest): - """ - :avocado: tags=3Darch:ppc64 - """ - - timeout =3D 360 - - @skipUnless(os.getenv('SPEED') =3D=3D 'slow', 'runtime limited') - def test_pseries_tcg(self): - """ - :avocado: tags=3Dmachine:pseries - :avocado: tags=3Daccel:tcg - """ - self.require_accelerator("tcg") - self.vm.add_args("-accel", "tcg") - self.launch_and_wait(set_up_ssh_connection=3DFalse) - - def test_pseries_kvm(self): - """ - :avocado: tags=3Dmachine:pseries - :avocado: tags=3Daccel:kvm - """ - self.require_accelerator("kvm") - self.vm.add_args("-accel", "kvm") - self.vm.add_args("-machine", "cap-ccf-assist=3Doff") - self.launch_and_wait(set_up_ssh_connection=3DFalse) - -class BootLinuxS390X(LinuxTest): - """ - :avocado: tags=3Darch:s390x - """ - - timeout =3D 240 - - @skipUnless(os.getenv('SPEED') =3D=3D 'slow', 'runtime limited') - def test_s390_ccw_virtio_tcg(self): - """ - :avocado: tags=3Dmachine:s390-ccw-virtio - :avocado: tags=3Daccel:tcg - """ - self.require_accelerator("tcg") - self.vm.add_args("-accel", "tcg") - self.launch_and_wait(set_up_ssh_connection=3DFalse) diff --git a/tests/avocado/replay_linux.py b/tests/avocado/replay_linux.py deleted file mode 100644 index 59169224353..00000000000 --- a/tests/avocado/replay_linux.py +++ /dev/null @@ -1,206 +0,0 @@ -# Record/replay test that boots a complete Linux system via a cloud image -# -# Copyright (c) 2020 ISP RAS -# -# Author: -# Pavel Dovgalyuk -# -# 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 -import logging -import time - -from avocado import skipUnless -from avocado_qemu import BUILD_DIR -from avocado.utils import cloudinit -from avocado.utils import network -from avocado.utils import vmimage -from avocado.utils import datadrainer -from avocado.utils.path import find_command -from avocado_qemu.linuxtest import LinuxTest - -class ReplayLinux(LinuxTest): - """ - Boots a Linux system, checking for a successful initialization - """ - - timeout =3D 1800 - chksum =3D None - hdd =3D 'ide-hd' - cd =3D 'ide-cd' - bus =3D 'ide' - - def setUp(self): - # LinuxTest does many replay-incompatible things, but includes - # useful methods. Do not setup LinuxTest here and just - # call some functions. - super(LinuxTest, self).setUp() - self._set_distro() - self.boot_path =3D self.download_boot() - self.phone_server =3D cloudinit.PhoneHomeServer(('0.0.0.0', 0), - self.name) - ssh_pubkey, self.ssh_key =3D self.set_up_existing_ssh_keys() - self.cloudinit_path =3D self.prepare_cloudinit(ssh_pubkey) - - def vm_add_disk(self, vm, path, id, device): - bus_string =3D '' - if self.bus: - bus_string =3D ',bus=3D%s.%d' % (self.bus, id,) - vm.add_args('-drive', 'file=3D%s,snapshot=3Don,id=3Ddisk%s,if=3Dno= ne' % (path, id)) - vm.add_args('-drive', - 'driver=3Dblkreplay,id=3Ddisk%s-rr,if=3Dnone,image=3Ddisk%s' %= (id, id)) - vm.add_args('-device', - '%s,drive=3Ddisk%s-rr%s' % (device, id, bus_string)) - - def vm_add_cdrom(self, vm, path, id, device): - vm.add_args('-drive', 'file=3D%s,id=3Ddisk%s,if=3Dnone,media=3Dcdr= om' % (path, id)) - - def launch_and_wait(self, record, args, shift): - self.require_netdev('user') - vm =3D self.get_vm() - vm.add_args('-smp', '1') - vm.add_args('-m', '1024') - vm.add_args('-netdev', 'user,id=3Dvnet,hostfwd=3D:127.0.0.1:0-:22', - '-device', 'virtio-net,netdev=3Dvnet') - vm.add_args('-object', 'filter-replay,id=3Dreplay,netdev=3Dvnet') - if args: - vm.add_args(*args) - self.vm_add_disk(vm, self.boot_path, 0, self.hdd) - self.vm_add_cdrom(vm, self.cloudinit_path, 1, self.cd) - logger =3D logging.getLogger('replay') - if record: - logger.info('recording the execution...') - mode =3D 'record' - else: - logger.info('replaying the execution...') - mode =3D 'replay' - replay_path =3D os.path.join(self.workdir, 'replay.bin') - vm.add_args('-icount', 'shift=3D%s,rr=3D%s,rrfile=3D%s' % - (shift, mode, replay_path)) - - start_time =3D time.time() - - vm.set_console() - vm.launch() - console_drainer =3D datadrainer.LineLogger(vm.console_socket.filen= o(), - logger=3Dself.log.getChild('console'), - stop_check=3D(lambda : not vm.is_runni= ng())) - console_drainer.start() - if record: - while not self.phone_server.instance_phoned_back: - self.phone_server.handle_request() - vm.shutdown() - logger.info('finished the recording with log size %s bytes' - % os.path.getsize(replay_path)) - self.run_replay_dump(replay_path) - logger.info('successfully tested replay-dump.py') - else: - vm.event_wait('SHUTDOWN', self.timeout) - vm.wait() - logger.info('successfully finished the replay') - elapsed =3D time.time() - start_time - logger.info('elapsed time %.2f sec' % elapsed) - return elapsed - - def run_rr(self, args=3DNone, shift=3D7): - t1 =3D self.launch_and_wait(True, args, shift) - t2 =3D self.launch_and_wait(False, args, shift) - logger =3D logging.getLogger('replay') - logger.info('replay overhead {:.2%}'.format(t2 / t1 - 1)) - - def run_replay_dump(self, replay_path): - try: - subprocess.check_call(["./scripts/replay-dump.py", - "-f", replay_path], - stdout=3Dsubprocess.DEVNULL) - except subprocess.CalledProcessError: - self.fail('replay-dump.py failed') - -@skipUnless(os.getenv('AVOCADO_TIMEOUT_EXPECTED'), 'Test might timeout') -class ReplayLinuxX8664(ReplayLinux): - """ - :avocado: tags=3Darch:x86_64 - :avocado: tags=3Daccel:tcg - """ - - chksum =3D 'e3c1b309d9203604922d6e255c2c5d098a309c2d46215d8fc026954f3c= 5c27a0' - - def test_pc_i440fx(self): - """ - :avocado: tags=3Dmachine:pc - """ - self.run_rr(shift=3D1) - - def test_pc_q35(self): - """ - :avocado: tags=3Dmachine:q35 - """ - self.run_rr(shift=3D3) - -@skipUnless(os.getenv('AVOCADO_TIMEOUT_EXPECTED'), 'Test might timeout') -class ReplayLinuxX8664Virtio(ReplayLinux): - """ - :avocado: tags=3Darch:x86_64 - :avocado: tags=3Dvirtio - :avocado: tags=3Daccel:tcg - """ - - hdd =3D 'virtio-blk-pci' - cd =3D 'virtio-blk-pci' - bus =3D None - - chksum =3D 'e3c1b309d9203604922d6e255c2c5d098a309c2d46215d8fc026954f3c= 5c27a0' - - def test_pc_i440fx(self): - """ - :avocado: tags=3Dmachine:pc - """ - self.run_rr(shift=3D1) - - def test_pc_q35(self): - """ - :avocado: tags=3Dmachine:q35 - """ - self.run_rr(shift=3D3) - -@skipUnless(os.getenv('AVOCADO_TIMEOUT_EXPECTED'), 'Test might timeout') -class ReplayLinuxAarch64(ReplayLinux): - """ - :avocado: tags=3Daccel:tcg - :avocado: tags=3Darch:aarch64 - :avocado: tags=3Dmachine:virt - :avocado: tags=3Dcpu:max - """ - - chksum =3D '1e18d9c0cf734940c4b5d5ec592facaed2af0ad0329383d5639c997fdf= 16fe49' - - hdd =3D 'virtio-blk-device' - cd =3D 'virtio-blk-device' - bus =3D None - - def get_common_args(self): - return ('-bios', - os.path.join(BUILD_DIR, 'pc-bios', 'edk2-aarch64-code.fd'), - "-cpu", "max,lpa2=3Doff", - '-device', 'virtio-rng-pci,rng=3Drng0', - '-object', 'rng-builtin,id=3Drng0') - - def test_virt_gicv2(self): - """ - :avocado: tags=3Dmachine:gic-version=3D2 - """ - - self.run_rr(shift=3D3, - args=3D(*self.get_common_args(), - "-machine", "virt,gic-version=3D2")) - - def test_virt_gicv3(self): - """ - :avocado: tags=3Dmachine:gic-version=3D3 - """ - - self.run_rr(shift=3D3, - args=3D(*self.get_common_args(), - "-machine", "virt,gic-version=3D3")) --=20 2.48.1