From nobody Mon Feb 2 07:30:42 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=1769611746; cv=none; d=zohomail.com; s=zohoarc; b=nCXqC4IcIEXDxIyuv6OaK4Gyr6N1oGT6Y7U0AFGqqZQbhUpUu3r7GDZGTE+X6yO/wdenN0APk2n2rIENccdcs/U1ls8tayujezWA+eaiaO+M0G8YXlAO4nC6dhvXx6DmOr//MkNXB9gRuNlw8BPhg4F0X74mUNi9a+M62pa7eEw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1769611746; 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=f8DAVJ6ZR+/eTT31cgOO7CN8BvHHQAdaE5pniYzzlhs=; b=GepXamVd42adys2FMjI5LJohFZ19VgJFgfKT7p3OAdQvDkvzWXLtVSJllmMGQvYhXiBmbcEEWAAjwO7UFUugYifFTGEldP7O40ebbwkCwURJL9rKeU/yfqYe5uQaUoW8PqXXZ+0SxrqH2n7HH6LcxSkK9lDaXGGlng1FWzZvtSY= 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 1769611746136975.8241672158895; Wed, 28 Jan 2026 06:49:06 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 4513641891; Wed, 28 Jan 2026 09:49:05 -0500 (EST) Received: from [172.19.199.3] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id D8BAE43E4C; Wed, 28 Jan 2026 09:34:53 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 6C17C41919; Wed, 28 Jan 2026 09:34:49 -0500 (EST) 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 C579043E58 for ; Wed, 28 Jan 2026 09:31:04 -0500 (EST) 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-414-RzOJtXa5MFCp1EgSU6HOyQ-1; Wed, 28 Jan 2026 09:31:02 -0500 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (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 DF47A18005BC for ; Wed, 28 Jan 2026 14:31:01 +0000 (UTC) Received: from moe (unknown [10.43.3.236]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 4862C1956095 for ; Wed, 28 Jan 2026 14:31:01 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,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=1769610664; 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=f8DAVJ6ZR+/eTT31cgOO7CN8BvHHQAdaE5pniYzzlhs=; b=HNcDY0Y+YjM2FwWv/boXLjtuW7DcQEnna+GEf9jaX+yI6W92GPYgEkOYgF4gp80bZlHegl 3zHWlDu1i45vuvF4hWUhtSmXFFV8ZK/9nkOuOy/6HfE27W+fKwxpLXFo+KqoY43dncnEBI 6Bnkp+yqNVDhyyhX2A1MCCBeJjSy42A= X-MC-Unique: RzOJtXa5MFCp1EgSU6HOyQ-1 X-Mimecast-MFC-AGG-ID: RzOJtXa5MFCp1EgSU6HOyQ_1769610662 To: devel@lists.libvirt.org Subject: [PATCH 15/20] networkxml2xmltest: Dynamically allocate testInfo struct Date: Wed, 28 Jan 2026 15:30:36 +0100 Message-ID: <4903529385a51470cadebcf08df467db06ab6c2f.1769610369.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: tdhCPRuhpCuX6TaGKMiT8lofNfV1YW37AWZBWlFflw4_1769610662 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: FNH2VPZIDPZU6GWTC7NJCIVIYUTRABYJ X-Message-ID-Hash: FNH2VPZIDPZU6GWTC7NJCIVIYUTRABYJ X-MailFrom: mprivozn@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: Michal Privoznik via Devel Reply-To: Michal Privoznik X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1769611746409158500 Content-Type: text/plain; charset="utf-8"; x-default="true" From: Michal Privoznik So far, the testInfo struct contained immutable data (from its lifetime point of view). But that is about to change. For instance, it will hold parsed network definition (virNetworkDef) and in order to avoid leaking dynamically allocated data corresponding free function must be introduced (or clear function, doesn't really matter). At this point, the structure might as well be dynamically allocated entirely. Signed-off-by: Michal Privoznik --- tests/networkxml2xmltest.c | 41 +++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/tests/networkxml2xmltest.c b/tests/networkxml2xmltest.c index 2a537d77c0..e90b38088a 100644 --- a/tests/networkxml2xmltest.c +++ b/tests/networkxml2xmltest.c @@ -22,19 +22,33 @@ typedef enum { TEST_COMPARE_NET_XML2XML_RESULT_FAIL_COMPARE, } testCompareNetXML2XMLResult; =20 -struct testInfo { +struct _testInfo { const char *name; unsigned int flags; testCompareNetXML2XMLResult expectResult; - virNetworkXMLOption *xmlopt; - const char *inxml; - const char *outxml; + virNetworkXMLOption *xmlopt; /* borrowed, immutable */ + char *inxml; + char *outxml; }; =20 +typedef struct _testInfo testInfo; +void testInfoFree(testInfo *info); +G_DEFINE_AUTOPTR_CLEANUP_FUNC(testInfo, testInfoFree); + +void testInfoFree(testInfo *info) +{ + if (!info) + return; + + VIR_FREE(info->inxml); + VIR_FREE(info->outxml); + VIR_FREE(info); +} + static int testCompareXMLToXMLFiles(const void *data) { - struct testInfo *info =3D (void *) data; + testInfo *info =3D (void *) data; g_autofree char *actual =3D NULL; int ret; testCompareNetXML2XMLResult result =3D TEST_COMPARE_NET_XML2XML_RESULT= _SUCCESS; @@ -94,17 +108,16 @@ testRun(const char *name, unsigned int flags) { g_autofree char *name_xml2xml =3D g_strdup_printf("Network XML-2-XML %= s", name); - struct testInfo info =3D { .name =3D name, .flags =3D flags, .expectRe= sult =3D expectResult, .xmlopt =3D xmlopt }; - g_autofree char *inxml =3D NULL; - g_autofree char *outxml =3D NULL; + g_autoptr(testInfo) info =3D g_new0(testInfo, 1); =20 - inxml =3D g_strdup_printf("%s/networkxml2xmlin/%s.xml", abs_srcdir, na= me); - outxml =3D g_strdup_printf("%s/networkxml2xmlout/%s.xml", abs_srcdir, = name); + info->name =3D name; + info->flags =3D flags; + info->expectResult =3D expectResult; + info->xmlopt =3D xmlopt; + info->inxml =3D g_strdup_printf("%s/networkxml2xmlin/%s.xml", abs_srcd= ir, name); + info->outxml =3D g_strdup_printf("%s/networkxml2xmlout/%s.xml", abs_sr= cdir, name); =20 - info.inxml =3D inxml; - info.outxml =3D outxml; - - virTestRunLog(ret, name_xml2xml, testCompareXMLToXMLFiles, &info); + virTestRunLog(ret, name_xml2xml, testCompareXMLToXMLFiles, info); } =20 static int --=20 2.52.0