From nobody Sun Feb 8 18:32:52 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.74 as permitted sender) client-ip=170.10.133.74; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-74.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.74 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1651820410; cv=none; d=zohomail.com; s=zohoarc; b=cxAVCma379sAMtW+kwV4NeAx+anNGspKjvc2zYknB0LJMEqKLgbFniz4Gx/oIYXFuOIGqgFu7OklQpji4TNjOfW4jezQHFhBCZSHbugwjYE1HYs/rAK7wUBX1O8ENnSJ963wOBUsg3QHlY7O5FXqd8GfCEri59anlWYKfrW1ro8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1651820410; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=9tpk7z8OqlqCa9WGu6cHas3XhQP+d8ZlQOCKMWJMXXI=; b=FERVRPhlP10Z5zmd5IYxskr8rcAsejPtGKm35mVnhq+tSFF6sEAbpBnbX6w9ghD61qX9GeZEoag6v+teGtveaXik5iiWbJB6wCBQb/6tPd31TaEnCFmH+i3vfnET4IbZorc+UBvHSkqZMMpBvEWPdBubeN9jYmj9Qb2+T9uLm7w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.74 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-74.mimecast.com (us-smtp-delivery-74.mimecast.com [170.10.133.74]) by mx.zohomail.com with SMTPS id 1651820410218757.9557778359857; Fri, 6 May 2022 00:00:10 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-594--zio185BMdGSrpx-DifOMw-1; Fri, 06 May 2022 02:59:40 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 80D13811E7A; Fri, 6 May 2022 06:59:34 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6B80D40D2820; Fri, 6 May 2022 06:59:34 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 217F61947B9A; Fri, 6 May 2022 06:59:32 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 8659819451F1 for ; Fri, 6 May 2022 06:59:30 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 6FA6BC27DB8; Fri, 6 May 2022 06:59:30 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id B88A4C27E97 for ; Fri, 6 May 2022 06:59:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1651820408; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=9tpk7z8OqlqCa9WGu6cHas3XhQP+d8ZlQOCKMWJMXXI=; b=c99ZFpgJpMFJMLhhapXE/Vs+2jCLWZwgchEbK12VT7WcFpxBPOURQLzA7z9MB6bNNWn4TA 41ccHDGDAf50vmkJ59nQTKStxbMDQehVw1WI0J81KrrQUe4DNtEWj4Hd8mpDqAkVYXfnpC 4+tkDHn7wx8q2ECbz5AlfZmHJDjtGTg= X-MC-Unique: -zio185BMdGSrpx-DifOMw-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 2/2] testutilsqemu: Write getter/setter for CPU def global variables Date: Fri, 6 May 2022 08:59:27 +0200 Message-Id: <30bfa36fc752c5c5fe363bb86f3e8885125f4884.1651820156.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.8 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1651820410947100003 Content-Type: text/plain; charset="utf-8"; x-default="true" As of 47503cc859 we are statically linking libtest_utils_qemu.a into qemuhotplugmock.so (see the original commit for reasoning). However, this breaks ASAN on older clang because now qemuhotplugtest has two instances of virCPUDef global variables (cpuDefault, cpuHaswell, cpuPower8, cpuPower9). One that comes from the binary itself (which also links with libtest_utils_qemu.a) and the other from the mock. Resolve this by making the variables static and introducing getter and setter. Signed-off-by: Michal Privoznik --- tests/qemuxml2argvtest.c | 4 ++-- tests/testutilsqemu.c | 22 ++++++++++++++++++---- tests/testutilsqemu.h | 13 +++++++++---- 3 files changed, 29 insertions(+), 10 deletions(-) diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 1f080daba7..1a49d2cfb0 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -2068,7 +2068,7 @@ mymain(void) DO_TEST_FAILURE("cpu-s390-features", QEMU_CAPS_KVM); qemuTestSetHostArch(&driver, VIR_ARCH_NONE); =20 - qemuTestSetHostCPU(&driver, driver.hostarch, cpuHaswell); + qemuTestSetHostCPU(&driver, driver.hostarch, qemuTestGetCPUDef(QEMU_CP= U_DEF_HASWELL)); DO_TEST("cpu-Haswell", QEMU_CAPS_KVM); DO_TEST("cpu-Haswell2", QEMU_CAPS_KVM); DO_TEST("cpu-Haswell3", QEMU_CAPS_KVM); @@ -2202,7 +2202,7 @@ mymain(void) QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE, QEMU_CAPS_KVM); =20 - qemuTestSetHostCPU(&driver, driver.hostarch, cpuPower9); + qemuTestSetHostCPU(&driver, driver.hostarch, qemuTestGetCPUDef(QEMU_CP= U_DEF_POWER9)); DO_TEST("pseries-cpu-compat-power9", QEMU_CAPS_KVM, QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE, diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c index 53fb5f656d..d57f982c37 100644 --- a/tests/testutilsqemu.c +++ b/tests/testutilsqemu.c @@ -18,10 +18,10 @@ =20 # define VIR_FROM_THIS VIR_FROM_QEMU =20 -virCPUDef *cpuDefault; -virCPUDef *cpuHaswell; -virCPUDef *cpuPower8; -virCPUDef *cpuPower9; +static virCPUDef *cpuDefault; +static virCPUDef *cpuHaswell; +static virCPUDef *cpuPower8; +static virCPUDef *cpuPower9; =20 =20 static const char *qemu_emulators[VIR_ARCH_LAST] =3D { @@ -300,6 +300,20 @@ testQemuCapsInitMacOS(void) } =20 =20 +virCPUDef * +qemuTestGetCPUDef(qemuTestCPUDef d) +{ + switch (d) { + case QEMU_CPU_DEF_DEFAULT: return cpuDefault; + case QEMU_CPU_DEF_HASWELL: return cpuHaswell; + case QEMU_CPU_DEF_POWER8: return cpuPower8; + case QEMU_CPU_DEF_POWER9: return cpuPower9; + } + + return NULL; +} + + void qemuTestSetHostArch(virQEMUDriver *driver, virArch arch) diff --git a/tests/testutilsqemu.h b/tests/testutilsqemu.h index 187f9b7cd3..99897e6b79 100644 --- a/tests/testutilsqemu.h +++ b/tests/testutilsqemu.h @@ -102,10 +102,15 @@ virDomainXMLOption *testQemuXMLConfInit(void); virQEMUCaps *qemuTestParseCapabilitiesArch(virArch arch, const char *capsFile); =20 -extern virCPUDef *cpuDefault; -extern virCPUDef *cpuHaswell; -extern virCPUDef *cpuPower8; -extern virCPUDef *cpuPower9; + +typedef enum { + QEMU_CPU_DEF_DEFAULT, + QEMU_CPU_DEF_HASWELL, + QEMU_CPU_DEF_POWER8, + QEMU_CPU_DEF_POWER9, +} qemuTestCPUDef; + +virCPUDef *qemuTestGetCPUDef(qemuTestCPUDef d); =20 void qemuTestSetHostArch(virQEMUDriver *driver, virArch arch); --=20 2.35.1