From nobody Fri Apr 3 00:17:44 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1774525503; cv=none; d=zohomail.com; s=zohoarc; b=fhHTyBHq+gx5Oq/wXKNNp8+c5aaWOjJEY7x8Bvl8Ej9jbMlKP7G1Tqgm7MHPdy0ywn1qCM29GS0T4ab2AVM16x4qwbncPFv98+Z3T/gC+rmMxLWt8fYG7fqtEbW2g7oEz5XzwwYL3xAVnNFWJJ7UObWHcUMZiOu00vZasl+69J4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774525503; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=IdISdbVF6NhMKGbWE267mZeDWgrmLt+zFMGSAgKLeDY=; b=kYuX9h5dy4NooVeyzkkodX9gYkO81PPBOpiesr/HJaD4XGuNlM+814eIw5qnDgJCTuI2YyLUDRf9QCTfVQq+AI49Wu/5dxRLIZyPLb1cyYLlrQN+H5wszXZtNBmuGer6cJMFBxqq1QeZAqt64KlCbnxMeZT7SPVtijslwZsbDwM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 177452550358821.63014734872729; Thu, 26 Mar 2026 04:45:03 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 8F4C33F931; Thu, 26 Mar 2026 07:45:02 -0400 (EDT) Received: from [172.19.199.12] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 75F534181C; Thu, 26 Mar 2026 07:44:24 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 84B293F328; Thu, 26 Mar 2026 07:44:20 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 662E941812 for ; Thu, 26 Mar 2026 07:43:50 -0400 (EDT) Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-292-nSX-grXNM1OOMy4c16hAjQ-1; Thu, 26 Mar 2026 07:43:47 -0400 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-48534941525so14012455e9.2 for ; Thu, 26 Mar 2026 04:43:47 -0700 (PDT) Received: from wheatley.localdomain ([213.175.46.86]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-487208ca5b0sm46954505e9.2.2026.03.26.04.43.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Mar 2026 04:43:45 -0700 (PDT) Received: from wheatley.pinto-pinecone.ts.net (wheatley.k8r.cz [127.0.0.1]) by wheatley.localdomain (Postfix) with ESMTP id 1C51A19E19E04 for ; Thu, 26 Mar 2026 12:43:45 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HELO_MISC_IP,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1774525430; h=from:from: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; bh=IdISdbVF6NhMKGbWE267mZeDWgrmLt+zFMGSAgKLeDY=; b=PWzT2qZYBD3duKc1FIu3EscsA3XHNgmuP845+0U3LHEU/LNcFoFxOClQiu9Nc2MwGKdNxa ohIiTpGMB9c66f3tXmxXogLth2zk0VUAxb30vaquEhorgzQy2WTtDygr5w0Czkz3+j7NJy bkjI0ebvPnjngqB9n7XoXlUvDPWwWDc= X-MC-Unique: nSX-grXNM1OOMy4c16hAjQ-1 X-Mimecast-MFC-AGG-ID: nSX-grXNM1OOMy4c16hAjQ_1774525426 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774525426; x=1775130226; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=IdISdbVF6NhMKGbWE267mZeDWgrmLt+zFMGSAgKLeDY=; b=TQorf3SbFM6R41nieifA3SGjS2dDZ89XwzcICPEcsIGjsmifUSZtPg0UEJ/rqLewlp ixpDIn8n+s/WBzQrHn7rFZT0z0fFr0NV9RlDn9hwb9QYTY2CCIoCkrV9G6TkwBz7nr1C t6PokICP7XD1wSKCpxM5Hs8ijbFNq/tV6F7sjMtVlNMc8Dzz9Be/H4hMqKYjeCJwuVGU A4CfYPgyIyC+0CXIu6vZ8aj96XXvCSOBjw6d6a9RO2Cr8mvtlE+0jQAWHeLHkHrPAgTQ +4P4dSrOhuw7K3R6hHX30bZkkBPcR0yswiGFBe+r7iijxkQvEuKCov7ZJrkOfDN7l67p WefQ== X-Gm-Message-State: AOJu0Ywnfaevvp/gLW/aV2n9Xg3xBBiavF4eqfF7kZmqopm3mXgwe7bd wq5FiDmoX0/9ygyOfpvMa7D0noxmlxhNtre1nBUgfMm5Tvr1bEJzGcYi03d+hgdCK12bcA5DI1W 6B0PG1rWHmVyuolxGwBMgPjGd9snCuBlD0evQNJ9MJejxtq7bSpU+He4CnheEekMWcL+Hto9834 nNZiFKIcGH0DO+WoVhyD2zE5czQV2UIk3rob8hkxW582g= X-Gm-Gg: ATEYQzxWp0sg8COnW4c9N0P3kQQVYQhg6VTh0Wx5vUZv0HZf5yzq++6svzQJKNOnflC TCfAjRxW0/VYs4XC82JUeW25EaYv45iUpxjJBZjD9pqJ0iyF2+Xe4eBe1fFQzcnhCTuRJcb4bDg MVQN1zGLWrs6j0K+sAj4EPbnmdLSg7lKOAY+tFTP59z1n6QVsaNAN+j/G8/l2hM25OY4gbWBh5r gJzPcimiwu8Qitwp/G95jsmuwl2vqmNLbTEKM9Nq4T0zzBlgq6RrSzTM5OrWdn0vbAks4fGFBnr Sb/acgMLEGkLcUYH2pYHlmJNBYWj2+WZQC53xx18bAC9Xoatd89aKzNB2MKD27qRRt93KdaygH5 Na7hJSuvuHaLc1IdkpNFCaA== X-Received: by 2002:a05:600d:8449:b0:485:39d4:2dd9 with SMTP id 5b1f17b1804b1-487160afe8cmr81560235e9.33.1774525426269; Thu, 26 Mar 2026 04:43:46 -0700 (PDT) X-Received: by 2002:a05:600d:8449:b0:485:39d4:2dd9 with SMTP id 5b1f17b1804b1-487160afe8cmr81559805e9.33.1774525425734; Thu, 26 Mar 2026 04:43:45 -0700 (PDT) To: devel@lists.libvirt.org Subject: [PATCH 1/3] tests: Extend virhostcputest to check virHostCPUGetMap Date: Thu, 26 Mar 2026 12:43:34 +0100 Message-ID: X-Mailer: git-send-email 2.53.0 In-Reply-To: References: MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: uVg53a3-pRbV_LwSaAHl33x0eZMxuM8wnevHFK1rTXg_1774525426 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: Y47BY2HA2OH34FXMSVJ7D2542F2BOATT X-Message-ID-Hash: Y47BY2HA2OH34FXMSVJ7D2542F2BOATT X-MailFrom: mkletzan@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Martin Kletzander via Devel Reply-To: Martin Kletzander X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1774525507120154100 Content-Type: text/plain; charset="utf-8"; x-default="true" From: Martin Kletzander This commit goes through all virhostcpudata subdirectories and checks that `virHostCPUGetMap()` returns valid data for each one of them. Signed-off-by: Martin Kletzander --- tests/virhostcputest.c | 57 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/tests/virhostcputest.c b/tests/virhostcputest.c index 4e65e5febf93..4b31b7944484 100644 --- a/tests/virhostcputest.c +++ b/tests/virhostcputest.c @@ -244,11 +244,41 @@ linuxTestNodeCPUStats(const void *data) } =20 =20 +static int +linuxTestHostCPUGetMap(const void *data G_GNUC_UNUSED) +{ + g_autofree unsigned char *cpumap =3D NULL; + + int ncpus =3D virHostCPUGetMap(&cpumap, NULL, 0); + + g_autoptr(virBitmap) actual =3D virBitmapNewData(cpumap, VIR_DIV_UP(nc= pus, 8)); + g_autoptr(virBitmap) expected =3D NULL; + + if (virFileReadValueBitmap(&expected, "%s/cpu/online", SYSFS_SYSTEM_PA= TH) < 0) + return -1; + + if (!virBitmapEqual(actual, expected)) { + g_autofree char *expected_str =3D virBitmapFormat(expected); + g_autofree char *actual_str =3D virBitmapFormat(actual); + fprintf(stderr, + "Bitmaps are different\nexpected: %s\nactual: %s\n", + expected_str, actual_str); + return -1; + } + + return 0; +} + + static int mymain(void) { int ret =3D 0; size_t i; + int rc =3D 0; + struct dirent *ent =3D NULL; + g_autofree char *datadir =3D g_strdup_printf("%s/virhostcpudata", abs_= srcdir); + g_autoptr(DIR) dir =3D NULL; const struct linuxTestHostCPUData nodeData[] =3D { {"test1", VIR_ARCH_X86_64}, {"test1", VIR_ARCH_PPC}, @@ -300,6 +330,33 @@ mymain(void) DO_TEST_CPU_STATS("24cpu", 24, false); DO_TEST_CPU_STATS("24cpu", 25, true); =20 + /* Tests for virHostCPUGetMap() with each data subdirectory. */ + if (virDirOpen(&dir, datadir) < 0) + return -1; + + while ((rc =3D virDirRead(dir, &ent, datadir)) > 0) { + struct stat sb; + g_autofree char *path =3D g_strdup_printf("%s/%s", datadir, ent->d= _name); + + if (stat(path, &sb) < 0) { + fprintf(stderr, "Cannot stat %s\n", path); + return -1; + } + + if (!S_ISDIR(sb.st_mode)) + continue; + + virFileWrapperAddPrefix(SYSFS_SYSTEM_PATH, path); + if (virTestRun(ent->d_name, linuxTestHostCPUGetMap, NULL) < 0) + ret =3D -1; + virFileWrapperRemovePrefix(SYSFS_SYSTEM_PATH); + } + + if (rc < 0) { + fprintf(stderr, "Error reading %s\n", SYSFS_SYSTEM_PATH); + return -1; + } + return ret =3D=3D 0 ? EXIT_SUCCESS : EXIT_FAILURE; } =20 --=20 2.53.0