From nobody Tue Apr 7 12:56:59 2026 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=quarantine dis=none) header.from=mihalicyn.com ARC-Seal: i=1; a=rsa-sha256; t=1773411231; cv=none; d=zohomail.com; s=zohoarc; b=jLKTm+6CksBpw4RJF57Vh332o7z5pPqjeEaDLTZybGpfopCRGwqP95PH23KTCqwVLhhHlzmnA/XTK+00FBixXot4H8pyo3/oQ0jEdWpkh+LtjtCQNJ8+RLIHIwNzeRR/l85786deG9AoozxGRZn1Jb9gVKbchO6UQHOpv6zJcQU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773411231; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=2mdV95Xn1uRZNv+wMaqt5uMFd58yUD2RuxYvZm/pTuU=; b=ZW9BuTnXtoSSIaNQYKANflSQk1B1QbljPEB191UDDCNo6rEulL9PRlIbfa2rkyZ4tiXchwrubg+1mHYKyWPfDYkdcuXjgWLCLEl+cYB2WCIXyY7YwxJW7Y7jv0VcXfPmoAppX1n6JnTh0Roo0e/NOtN2xNtWbZ2D1AdeQDva8ak= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773411231765438.2792505705221; Fri, 13 Mar 2026 07:13:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w13GG-0005Ur-UV; Fri, 13 Mar 2026 10:13:08 -0400 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 1w13Fq-0005Q7-Og for qemu-devel@nongnu.org; Fri, 13 Mar 2026 10:12:44 -0400 Received: from mail-wr1-x432.google.com ([2a00:1450:4864:20::432]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w13Fl-0006Mo-SL for qemu-devel@nongnu.org; Fri, 13 Mar 2026 10:12:42 -0400 Received: by mail-wr1-x432.google.com with SMTP id ffacd0b85a97d-439b611274bso1475065f8f.3 for ; Fri, 13 Mar 2026 07:12:29 -0700 (PDT) Received: from alex-laptop.lan (p200300cf57228c00321ddb23f48fbb73.dip0.t-ipconnect.de. [2003:cf:5722:8c00:321d:db23:f48f:bb73]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-439fe19ad9asm18580939f8f.7.2026.03.13.07.12.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Mar 2026 07:12:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mihalicyn.com; s=mihalicyn; t=1773411149; x=1774015949; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=2mdV95Xn1uRZNv+wMaqt5uMFd58yUD2RuxYvZm/pTuU=; b=XA0zGeV14fJoCUtM8l3sHhHL6+utlwRzE8JOuNzusGg8nbf7JyQBlmYEYU0t8KuqMk Xq42mcNdfnKo07jWlh+xvYvQtpUUPxFrZ/9HCt0IuJD9/66l+4O2/PqkPZgkRLtTC8pJ KquUxy7+mA306eAP6L/+DwAFw+/aYz27gy3gA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773411149; x=1774015949; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=2mdV95Xn1uRZNv+wMaqt5uMFd58yUD2RuxYvZm/pTuU=; b=faZ81nlvLJR0rnSqr7HZ8XeVuDKcjDwmHtJ0C9aRk3m0ykhp6k5mHO0wErdpKbggzD lsPhxgx6529Hi/1AcxWsCceE/nmFMGgwFQ+eyy31VzjrlYS2/ED53twBrtEWJ5285D09 XCt1jZTGVM8RKDhJkelPEKSEvDYgarvZGDgfauuknvK8FZOx16AckdtAF26EUsq4WkUc OH7wp85+/8+eEB5DVIeS4pG9Nrco/l/HCzoNCh4lEQCftt6bDNakYBzJVnvjnDmDDZfj zjq1Rep+vFW2I9y2lu0DZtoxuSlNo+N3LqW97vEmpA+U51pwnvNembdEEefnk7mSK09x gc8Q== X-Gm-Message-State: AOJu0YwY6Fb4IYgrblgO5oqcDHM/k86TE3lQMPuq5Wujd84wJl5HXzJI VPb4ELPckTMts4UUwAdBoSgZ4GEhumuHlq6wrrkG1NG/ARvJ6ZsSG6rIM/wbRIT2y7H63e3aYXe 9KmAxRBk= X-Gm-Gg: ATEYQzyIZKZ5U2BTL72WA15L4vKdeM1Zua6taxqoO6ZB58ymytuIhDtBlEvz5oyob1T xhYN8e/y7X0eyCmVYmvEz1aCq7PIPgiiMjb9egeo1Wl29NZB/yLHSxDAgElIHIJgaKXPyYQvGAA 6PTaX3wwfmGwkF8AXAcPjDO/aBPfDo3bM1rR67UHmsHIFX+G2veqrbFYem2rVKFD46OvQMzaZrH nylJq78pV8h8iI7xItiHyY/P2+imFA24st5zKDgRYBt5Mp26RIP+6lwWiH0DcVaxdQhN24vDtOu CtBIcvyIA5PNv4ZZUDsULwgvS2MwWiI2UIL8bpJ7BIJ6GpPz8Dhx3wMpYhcmk4oIJLsvgHyf5W2 zQ9XIKiFNzuRxraDy0iYb7kGnnx2aCPPu5aQTjAo7AHwAtlOcDF9xRtiBeR9m4G9PVm6qfTAUQI ZXUrtbBh2voWZgnKxXYprflpmQr0o9JiZsD21bMqTb7JZW+KpFGOw0POLg9aDSVF90j9DDLwo1a GFFculP7WNJBaXU/c8pUIQ= X-Received: by 2002:a5d:5f46:0:b0:439:ac98:7520 with SMTP id ffacd0b85a97d-43a04dbed03mr6986089f8f.37.1773411148739; Fri, 13 Mar 2026 07:12:28 -0700 (PDT) From: Alexander Mikhalitsyn To: qemu-devel@nongnu.org Cc: Peter Xu , Jesper Devantier , Kevin Wolf , Fabiano Rosas , Paolo Bonzini , Hanna Reitz , qemu-block@nongnu.org, =?UTF-8?q?St=C3=A9phane=20Graber?= , Keith Busch , Stefan Hajnoczi , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alexander Mikhalitsyn , Fam Zheng , Klaus Jensen , Zhao Liu , Alexander Mikhalitsyn Subject: [PATCH v4 4/8] tests/functional/migration: add VM launch/configure hooks Date: Fri, 13 Mar 2026 15:12:17 +0100 Message-ID: <20260313141221.359503-5-alexander@mihalicyn.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260313141221.359503-1-alexander@mihalicyn.com> References: <20260313141221.359503-1-alexander@mihalicyn.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2a00:1450:4864:20::432; envelope-from=alexander@mihalicyn.com; helo=mail-wr1-x432.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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: qemu development 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 @mihalicyn.com) X-ZM-MESSAGEID: 1773411233901158500 Content-Type: text/plain; charset="utf-8" From: Alexander Mikhalitsyn Introduce configure_machine, launch_source_vm and assert_dest_vm methods to allow child classes to override some pieces of source/dest VMs creation, start and check logic. Signed-off-by: Alexander Mikhalitsyn --- tests/functional/migration.py | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/tests/functional/migration.py b/tests/functional/migration.py index e995328e833..40e9c094c46 100644 --- a/tests/functional/migration.py +++ b/tests/functional/migration.py @@ -40,19 +40,35 @@ def assert_migration(self, src_vm, dst_vm): self.assertEqual(dst_vm.cmd('query-status')['status'], 'running') self.assertEqual(src_vm.cmd('query-status')['status'],'postmigrate= ') =20 + # Can be overridden by subclasses to configure both source/dest VMs. + def configure_machine(self, vm): + vm.add_args('-nodefaults') + + # Can be overridden by subclasses to prepare the source VM before migr= ation, + # e.g. by running some workload inside the source VM to see if it cont= inues + # to run properly after migration. + def launch_source_vm(self, vm): + vm.launch() + + # Can be overridden by subclasses to check the destination VM after mi= gration, + # e.g. by checking if the workload is still running after migration. + def assert_dest_vm(self, vm): + pass + def migrate_vms(self, dst_uri, src_uri, dst_vm, src_vm): dst_vm.qmp('migrate-incoming', uri=3Ddst_uri) src_vm.qmp('migrate', uri=3Dsrc_uri) self.assert_migration(src_vm, dst_vm) + self.assert_dest_vm(dst_vm) =20 def migrate(self, dst_uri, src_uri=3DNone): dst_vm =3D self.get_vm('-incoming', 'defer', name=3D"dst-qemu") - dst_vm.add_args('-nodefaults') + self.configure_machine(dst_vm) dst_vm.launch() =20 src_vm =3D self.get_vm(name=3D"src-qemu") - src_vm.add_args('-nodefaults') - src_vm.launch() + self.configure_machine(src_vm) + self.launch_source_vm(src_vm) =20 if src_uri is None: src_uri =3D dst_uri --=20 2.47.3