From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <dev-bounces@dpdk.org> Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7694246A43; Tue, 24 Jun 2025 16:16:47 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3862A40DCE; Tue, 24 Jun 2025 16:16:47 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.13]) by mails.dpdk.org (Postfix) with ESMTP id 2DCEE4026B for <dev@dpdk.org>; Tue, 24 Jun 2025 16:16:45 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1750774605; x=1782310605; h=date:from:to:subject:message-id:references:in-reply-to: mime-version; bh=EZk2sgFvYn8LKsxorgtQ0EfjU11BI1w/BWLX7Mv7vF4=; b=YluTaNzzU8K/LQrw/zs7RYDDQ2LE/vPuLvxqYsE0QcH1qaSji75DK/jA SN8lzLksxNbZBUDl4gY/G03q+mQ8froCEFdTjJkbDOozs+VijxASlnyFY Z4oZ4pwNJEQceeob/DrWWzhb0Suk3IMNlZm/MFDCJTHO4U+EHWj31YJZw lzUvCmd1zlkzVkOhqD/MXh+F0hav2DvzrrNFWwSG8ZAhG7TZTIEIEmr25 creF4fHu2l4QTYsBagvtci/ON9p3aNgHSr6iUEYVUM7oAr9291ZOhm5O7 YDkF9VwmEcObVY+DZCXsCZ7iKcj+6xwX0IjS3EIXRxKqNTCi+CmlmUIbI A==; X-CSE-ConnectionGUID: YAt1yMWyTsmfY/eH8sBfIw== X-CSE-MsgGUID: bt80kTaWSdyxqoQ2xiwPyg== X-IronPort-AV: E=McAfee;i="6800,10657,11474"; a="55644880" X-IronPort-AV: E=Sophos;i="6.16,261,1744095600"; d="scan'208";a="55644880" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by fmvoesa107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2025 07:16:44 -0700 X-CSE-ConnectionGUID: 1InViXM4S9eWATv9phN1/Q== X-CSE-MsgGUID: Kc04aJSyS8SJaa/pEKWspQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,261,1744095600"; d="scan'208";a="182965580" Received: from orsmsx902.amr.corp.intel.com ([10.22.229.24]) by orviesa002.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2025 07:16:44 -0700 Received: from ORSMSX903.amr.corp.intel.com (10.22.229.25) by ORSMSX902.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.25; Tue, 24 Jun 2025 07:16:43 -0700 Received: from ORSEDG901.ED.cps.intel.com (10.7.248.11) by ORSMSX903.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.25 via Frontend Transport; Tue, 24 Jun 2025 07:16:43 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (40.107.220.41) by edgegateway.intel.com (134.134.137.111) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.25; Tue, 24 Jun 2025 07:16:42 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=t9sMr5HisKLFK9tlefVivpq0A4RAmlWdbISHCI/e1g2r54ZbG72MTxFZXHCxKjTENVMETZm9laZY/cOZZuybtHCKbYblSXmN66IqOW0+Jy0BFUIvXa/RIOXgaU5XphijTzrJtHPegcVcBNfZJeOi7nFePo9YVJ9qWvbfUcoV4LdZCqeRQXI2zmb3xd5HVAAVuHI7F8H6iJCBvgr/otjKKqKSOMUOalgyrv8uDspThgnHaYznXoZH4suWuZesh2HMWmhA06BEwY4NBzPqdRnhUecuApMwFLL/+IZEv3D3aW3hsJfwZ4I5CXXr4eiGWJfBu+o/DGBPoZLlJtFcIIF2Fg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=UmK7jeDp094odEQhjtXP72Sx4J0rrJzu3BFd9XGlSNc=; b=APW0zCnjzJRJ6VAmqsyIeRySmYKmpDksKZIiUae9jOfaji/LDQy+3xk0POqChRvG4c4KtUgwaW0M74pLJ+nWxF1AnsZnDibM/oiWzHjplDySfc+qXZTdDEjbYcAeZzaoODm4uSIJKJcT8fZIuWWyxjxF7+Ky0Ht0xi67735a3m9iX4eQxTbmqzjXMyds2JYojmHVRuO11Q82wuPbagvYneQA9n57qGGiKbpJYfkplrJqxT2GHzVqKFsdREtTWuBt98Bk0CX+cYhZt2GT9mnSet7RZpvaRRGFNtzzSd5MW0Hyt+pq1g4Th4lee9s9XrsF1MOlrRdKfVoEJlScXY8jlA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from DS0PR11MB7309.namprd11.prod.outlook.com (2603:10b6:8:13e::17) by CH0PR11MB8086.namprd11.prod.outlook.com (2603:10b6:610:190::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8857.29; Tue, 24 Jun 2025 14:16:13 +0000 Received: from DS0PR11MB7309.namprd11.prod.outlook.com ([fe80::f120:cc1f:d78d:ae9b]) by DS0PR11MB7309.namprd11.prod.outlook.com ([fe80::f120:cc1f:d78d:ae9b%4]) with mapi id 15.20.8857.026; Tue, 24 Jun 2025 14:16:13 +0000 Date: Tue, 24 Jun 2025 15:16:08 +0100 From: Bruce Richardson <bruce.richardson@intel.com> To: <dev@dpdk.org> Subject: Re: [PATCH 0/3] argparse: improve handling of multi-instance args Message-ID: <aFqzKPh9xpuPYB3_@bricha3-mobl1.ger.corp.intel.com> References: <20250616104944.3425929-1-bruce.richardson@intel.com> Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20250616104944.3425929-1-bruce.richardson@intel.com> X-ClientProxiedBy: DBBPR09CA0048.eurprd09.prod.outlook.com (2603:10a6:10:d4::36) To DS0PR11MB7309.namprd11.prod.outlook.com (2603:10b6:8:13e::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR11MB7309:EE_|CH0PR11MB8086:EE_ X-MS-Office365-Filtering-Correlation-Id: 02d6ef86-472f-4bf7-287d-08ddb329acc4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?nfRiz5B6mhV8e9qjsqENPhiNDWYfYJLLwv9VGdStgK27HJbr9FiLu5AY0R2b?= =?us-ascii?Q?cfmxwnfdmiFjTg4CZU/duZug18PJ/s6CYn5scpseZeeBwj4/gUKBEwYUcqhL?= =?us-ascii?Q?Kx1Sh7XV/eO0xLNEyRwKBVLsNrhOLbLVTUE2bfSO6JA85yeSyN0+iJXqcUrR?= =?us-ascii?Q?0YEm2ljVLT22YV1WzlVqjz9zoa60qB9UJK5S7k2uw6m71JeZPo0gbwShk6wI?= =?us-ascii?Q?tiygDFRaCRvj3Xtw+WHu958Uwzk0YJtCQ/k8E69D9jCGqTw50uZXDePoxFDd?= =?us-ascii?Q?i2Z5natIudHMoEy4nmJescq9xdiAva6fXSUXT7mlFkPRdu+xTNMuSb+8/Yrs?= =?us-ascii?Q?wdZJ0FrVTPE3a42ykc7iUSIO3uqlY/LXuJ5gWM/0EFOeE34Y297G0MkhcScq?= =?us-ascii?Q?tfUb1gVNly6AoRrZ5LGWn4eax91emNznOd3nDgSZLm1YwCaXFYZf+TsUi3rT?= =?us-ascii?Q?34fRPGNrkq6YnYnwqTvAPSjTnQ89KmaCRA25zkef9ngl5YnV20Div237/4t1?= =?us-ascii?Q?OoFlJ+8mbxWVZ9cimO9lRuadUKR38yLPqORQj8GHMP7JSZd2NJEUKDot1OMp?= =?us-ascii?Q?t3+nG0hs8/tAObaJpUaBDXxgzYd2yUvMWnAcToJ3fTu1CfvSu+6XY9pVH71B?= =?us-ascii?Q?O8/EGP6kYYlYtLIvtVK2AZR1yzteD19WVtkWh47QIvMPlJjk1by2uSHx5F7P?= =?us-ascii?Q?2gsbKgcLSNKPoshQj/FDLgfszVZJ7ks/zIpIWph1jE3sgo302Z1Jkvv9+cO0?= =?us-ascii?Q?OwlXcLJyh1adLSU5BZgSu9Pm+K+j6rhDulG10m+YjTknsLJDbrmx7mwwhIep?= =?us-ascii?Q?/ucevl1Uq0q+SY6fv01UdlkhAQOitDdKkgmYyTruZ5CasRIt+YhKxqsrZMMt?= =?us-ascii?Q?inXjIUGRccEboD9e9qm2WaKidykyTvJjORgWSOhbuZRseg/HLeJgUyhQgx8e?= =?us-ascii?Q?uz4TIncwrb15JO+CsLoqsESVzBvp8AMVapPUjQhOvAU0Jt3WenM1jVgOZ9mE?= =?us-ascii?Q?vxSHIp2hIKYC0IzHBuG7EHWybQdyK+oZRf7Aeoy+Ys7k7kHIOw5nqrCviE21?= =?us-ascii?Q?CqssLiDoVXMKrpADU5jhFzBmKFU8aDMEn14DMlI7oJM6gwm0lxegwmAJfCyI?= =?us-ascii?Q?hvLBLkKksFUDLS7RKLeOn5RPy/u99VljO6LBx/UY1xTcuP3CIHdHRihXh9TB?= =?us-ascii?Q?eE/hksK/INvDvHzwhVcTMKZ247w87/sd4mmvJmYmyAhxVyy2xuP9df4+UOsq?= =?us-ascii?Q?BEDsqqeKexzc9uJoGE7zaaHwkuUEl9Y/UymuiSxkXGOP4D7IUbIHZ5d8DMc3?= =?us-ascii?Q?7BkqfgvEpwJhjben6dxgXCYgASFf0sIgTJEKSQA5shH59O3V3bVEuBKQMCel?= =?us-ascii?Q?57VCCazg9atQsbVfFYi7rlqngeCPmYkwPLSuWkZ4ZCX01becIVALHiKHAh+Z?= =?us-ascii?Q?NSFf3KZUi5A=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DS0PR11MB7309.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(366016)(1800799024); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?zl0arozfxilNoIyqw4bMuw77DdktmxfyEO1srgQ0aYAzXgEl9EE3f1rMhI1l?= =?us-ascii?Q?xMlSGqgu6347F50x8XcrlsUSfQXxhTfI73YayP8CNJ3huDNTsSzctaSxjKB5?= =?us-ascii?Q?cTKURmr+UrSNKkPrZsBA9Iw/uvO2tWC+h7J+v0UC4N9gF3D8wFhAhqG1brXh?= =?us-ascii?Q?FMdlxqCKak3EflCTwToofqznzZvGClTOxpzjd2dwaj+++u3lS9U+TbBV2itO?= =?us-ascii?Q?cHGgJYYwAuuQjLLTtPH+7A14GxHxLZS1yvMROaYFhr2eWItY+Ebs+rvzqv/N?= =?us-ascii?Q?38zbMAji3W3UtIM24F7fNxdvb3hj8eFkgP6fsi81w6WGG4K7PEk71v2M2JW8?= =?us-ascii?Q?Mh21zFIZK0/fhwGckYkqVNm8SdSRi4VmfgsLDwhklEG/kUZMunIHMcWNZ0VI?= =?us-ascii?Q?0gffSG89RjKmdTX2uC+PkFdv6XUT22R5rMYsLme2aqXkKPlsQ6D8cXkDQv5k?= =?us-ascii?Q?nFiFyoSEPeSiCPgVSfKk8JLKbn56qYFBDE55sBmo9C3ADop8u/E1kNvAKMlZ?= =?us-ascii?Q?rEzlLxnzXULHdtnIeo7dPaGeewpVxqMUkKDAIDaTJuSBKx2fUzLzARgYDoRv?= =?us-ascii?Q?XJo3TMVnPMmqZz0N6elbSSwPfRfW8TusnLxgShnB/qUYf04Gl59VzTnLpMCo?= =?us-ascii?Q?+WqR1N3QuN1JTuqzOsx9MOxmljyPllCRywoQD1ITFIFXiBkfllZrnLY32CGg?= =?us-ascii?Q?z7R5ETTvJ8uA1R6ifojX4szfjdq61WxV2XUWartjAc9GeRDmHSSID6ImH2qh?= =?us-ascii?Q?jkNY4q8+G5n4G7tghwxwoc4Iq3BKQFkMfBENxrvJazxOPkrnieuQzs9+m7d7?= =?us-ascii?Q?H6x2MQz6RWsUC5FBg2hnrZN/gOEjrEW5rieK3Gb3gT51+xgAmGbRyRLKl0Fc?= =?us-ascii?Q?fqyIOkCn59K18cH/MsCsbLMmQjMg6EKqC+kwr0jFrzqkRXWMgMyBKNcCx/i+?= =?us-ascii?Q?NNrtUhEip1LwDZ+2X8f3Fd0LOZzNX9Z0Px1vyvwDzZU0dMXNCz7T0ytvynza?= =?us-ascii?Q?OoYnTOW+Piz+RkMLDNK8IJhXE32gs6YEB3Uzv4f5CgzetVNK2K505OMM5UGB?= =?us-ascii?Q?TFOvOkVFCUiEHsR/CHsD9cbXmZhgP+P9ybv34UPkBI+xVUpmVx0mO5CbfTEf?= =?us-ascii?Q?zQsa58dzylzrcynsWpbbuveBgKr05HJ/po0eUisCZsJJ2Irls4NvZTQahVqG?= =?us-ascii?Q?KvsRsyQr5/7Z/fpYyLoLShe3l2MzYtV+Nf2lt+GK6c6JPtHKUYCpxcZ1jtjx?= =?us-ascii?Q?gkCkXNO4/bPxpepASOBHsSyM6wG26OhjjfsBohOZMedD1h5dqrDTuQfyWHk8?= =?us-ascii?Q?o/groEnLhVte2+4nxS0xcMXEHpG344wA4HYmLG8guMSNV8EYHL2MbTZyWYOI?= =?us-ascii?Q?a7eAWStJ50BT8J7UYOs9Nk1vvsE+sEf3tXSkw+y3QuT9aBZt7I4CjUfCu4MY?= =?us-ascii?Q?dJ6z9G8hA18YvM7v8uPh5agYbn47Vqo6uzC1JzjK3LopzI+LsyiXV1MM7h6C?= =?us-ascii?Q?lFOQuTOQifvR+LpyamyisPSYl6ammCaje6RcmlSUO+45iVl2syErd+L2/Ls1?= =?us-ascii?Q?aQdgWE5DNzpTzUEodthRE6eaSBw+D27zz/uV0sDlaQ4+G+K7699d6gTuFnVH?= =?us-ascii?Q?Sw=3D=3D?= X-MS-Exchange-CrossTenant-Network-Message-Id: 02d6ef86-472f-4bf7-287d-08ddb329acc4 X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB7309.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jun 2025 14:16:13.2437 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 4/DY7xFdLLfgdlTBfJ6eJ6la3qpzVXo1IxFGVunD1r/SHJBoTrA5Jyq+ekJ+MIFMM9f028f8DcFCyFlDA8RYQWEgKDtW1uQ/oxj8FK9PeOk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR11MB8086 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org On Mon, Jun 16, 2025 at 11:49:40AM +0100, Bruce Richardson wrote: > Coverity (correctly) identified an issue[1] where, after the recent > rework[2], the internal flag, used by argparse to track what arguments > were previously encountered or not, was out of range for the type and no > longer having any effect. Fixing this flag to be back into range then, > somewhat surprisingly, caused a number of unit test failures to occur. > > The reason for these failures is that the tracking of args encountered > is done via setting an internal flag on the user-passed arguments > object. In the unit tests, this caused issues where the flags field was > not getting properly reset between calls to the parse operation. [This > is only an issue after the rework, because previously information like > param type and optionality was encoded in the flags, so they were more > often reset during testing]. > > Rather than fixing the tests directly to always reset the flags, which > is simply working around the issue IMHO, this patchset instead fixes the > issue in a more user-friendly way by changing the library to never > modify the user-passed structure - making it completely safe to reuse > across multiple calls. This is done in the first two patches. > > The final, third patch, adds an additional unit test to check that the > tracking of flags being seen or not, and the handling of the > "RTE_ARGPARSE_FLAG_SUPPORT_MULTI" flag is correct. This closes a gap in > testing, since the original issue of the flag being out-of-range should > have been caught in testing, rather than having to rely on coverity. > > [1] Coverity Issue: 470190 > [2] https://github.com/DPDK/dpdk/commit/04acc21beeeb78477b15a3f497d3628fd70a6a9f > > Bruce Richardson (3): > argparse: track parsed arguments internally > argparse: mark parameter struct as const > test/argparse: add test for repeated arguments > > app/test/test_argparse.c | 33 +++++++++++++++++ > lib/argparse/rte_argparse.c | 73 ++++++++++++++++++++++--------------- > lib/argparse/rte_argparse.h | 2 +- > 3 files changed, 77 insertions(+), 31 deletions(-) > Recheck-request: rebase=main, iol-unit-amd64-testing