From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D553543081; Wed, 16 Aug 2023 17:07:03 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C02E440693; Wed, 16 Aug 2023 17:07:03 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.100]) by mails.dpdk.org (Postfix) with ESMTP id DFB924003C; Wed, 16 Aug 2023 17:07:01 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1692198422; x=1723734422; h=date:from:to:cc:subject:message-id:references: content-transfer-encoding:in-reply-to:mime-version; bh=DlUZSO0SdR43U0NeSKMrMgZ1BWre+PE8I7po2yw0jyE=; b=be/1+HKeVlD9hgncYuoQWMgD8vhsRBrsbbYo1ksry+QJD12hG9FsdZLi +xTvo9IEQA0h7KyoMGL3n0eW2ZdjTdUPw1xmw8c+AtT6Oe/fMRGSqXDOa +EZaUZOL6MFQp12S7Szui+/2CU/VE8zzVDnXgK+bnDXqbht+PKH4OGcOd MA1tCAVZW+w5EstNuRrxTXR2V7MF/X6rhm+ywtoyPSHis6a2mCUUkQGxj MOk1ZZ/VIzfAEPA2CVUZDGExJOvI7XOHuBpK/tDuCfxDTCNa8GB6DOhH9 k3wMLI5O2FyQUce/WjOxdQm2hzzXGzB74IPCyXmF07SNv52+7dPsq8zqa Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10803"; a="438906802" X-IronPort-AV: E=Sophos;i="6.01,177,1684825200"; d="scan'208";a="438906802" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Aug 2023 08:07:00 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.01,202,1684825200"; d="scan'208";a="877837413" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by fmsmga001.fm.intel.com with ESMTP; 16 Aug 2023 08:07:04 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Wed, 16 Aug 2023 08:07:00 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Wed, 16 Aug 2023 08:07:00 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27 via Frontend Transport; Wed, 16 Aug 2023 08:07:00 -0700 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.57.42) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.27; Wed, 16 Aug 2023 08:06:59 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oC0YxGuuPSDVysRWs6VIa7XcRz0IXZRYryOjEE02kgQbtCQycfcjdO84wWU2yWMxKNk98saLx2MB9xCrBGlCPh+qf6Ng9EsnMv0ntmwIgTsinjxbzEC3YR02nucgOmWChvpzEBGpimBsnTn4WaMMXXyKOn/6mNcxim/4Y1WxncJuvuCsB7rdBBGQ9jfKH65CuS28R/o4o50kdAhqig9FHcGwueUuYQ/RRjkxZCjp9LVQ7xGYEfk05WGrN9Cjlyul9FSggJjo6GvHONaOd/HZn3HTkOfiprIBIkoTWaQNB6KXu/pjAAgt29nLj7an3Uz5jqybePZYHY/OH1kAh7FCBQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=rKxCWFRtIpt2kYOhSbHMVwz2k68IV4w7VAYaaJLFn8M=; b=WvXlPkaQ2yPXCakNq3T0vGXEF/GQUD0GJQ2UE22rrawn+xh4aOJ8VM3dRSwWv70Gt/WLMTYwxUlu9A8QcP3KeU7nNalVIMKoy1kLq01QCjdPAPExw6Y/ZmXgKJxt5TuQWG8S1okwGBIob4/Y7cVeZApAIHzK17zy9m29BuOoj5C35nk/o0zfGBuKCAOTbte21xOj61y1GFp0MLg4w9njc6+xFE3Cqgz0ZGasCyjtCyyhp9ySD5wkffPp8DwF0EnVSSbLTR2EtFUT8nkBsA8Kw+PkkKKfQThRBJxQnG+MSOqwBKp/QJnH/lirx3iczkznL/d1+uEVBV2joV+UCVVrJA== 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 BN9PR11MB5465.namprd11.prod.outlook.com (2603:10b6:408:11e::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6678.29; Wed, 16 Aug 2023 15:06:58 +0000 Received: from DS0PR11MB7309.namprd11.prod.outlook.com ([fe80::9802:65f0:c441:780f]) by DS0PR11MB7309.namprd11.prod.outlook.com ([fe80::9802:65f0:c441:780f%7]) with mapi id 15.20.6678.025; Wed, 16 Aug 2023 15:06:58 +0000 Date: Wed, 16 Aug 2023 16:06:51 +0100 From: Bruce Richardson To: David Marchand CC: , , Morten =?iso-8859-1?Q?Br=F8rup?= Subject: Re: [PATCH v5 05/10] app/test: define unit tests suites based on test macros Message-ID: References: <20230721115125.55137-1-bruce.richardson@intel.com> <20230815151053.996469-1-bruce.richardson@intel.com> <20230815151053.996469-6-bruce.richardson@intel.com> Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-ClientProxiedBy: DUZP191CA0009.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:4f9::17) To DS0PR11MB7309.namprd11.prod.outlook.com (2603:10b6:8:13e::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR11MB7309:EE_|BN9PR11MB5465:EE_ X-MS-Office365-Filtering-Correlation-Id: 265c4539-fa55-470f-0cdb-08db9e6a6f84 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: rDF7fs9UmzmDoOlQ9PuPotLuERdh4RrExNMBBC+utO2c27tbpNvLjAqsU5lXSJnfk+7yJH04RjINpF6hmp8BwvtyoQDBVUrUO4tJZlHtZNySj7/7CpED5uSLcqP1yONs40bbQopo3HvvycSNATPLdhLHkgUtgciXBOqukoMvjj0dL8amgFsD+fz8V6aldYY/4MaX4mRGTToE9whfOIr4Fz6ycB/yXXZWZzGG6LxQV62yvbe2apv1PLQ5cu7fNEKCcRA+EPIpCeWO0ZLzq/9B95S7glI/IqJ3qegL+ZUR3pz7Nk+2tYmhICAQoVPFVCCIgKjsNrTqRyntRVpPMC+yYxxtki9HqGSWpi6aEOCLuAj9iTwlJHjxz1DZMo/UiP2WapzOxWfQgAG7NPe1W4qUyHjKLbJP3832b1cJj1uFGx/7OSgTtzQQMXZNTe/FMuzzFeQd3pdWOw8+aogbos++CQg3EO+3GQlB8uqpDiYQB8noO7Dy4IQRUkvyROjhEU+KW7QK3iSITsZZO1XBxCtRj39FteJXOYiy+f5uiT/84rtnL378Clz9AKnIa7T9EKVVv3QJHJN+Krf7hBrdG8XOg2JtFONieo3bxRQl3m+qlvw= 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:(13230031)(396003)(39860400002)(346002)(366004)(376002)(136003)(1800799009)(451199024)(186009)(316002)(6916009)(66946007)(66476007)(66556008)(41300700001)(5660300002)(44832011)(66574015)(38100700002)(8676002)(4326008)(8936002)(82960400001)(2906002)(83380400001)(26005)(478600001)(86362001)(6512007)(53546011)(6506007)(6666004)(6486002)(67856001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QjdwcElTZmQrQi9uNHFxMm1aWERQcnJBZjBSaHl4a1FDRGM4dzR4SVpYdzZX?= =?utf-8?B?TjFxS1ZJUmpqbTZSMHNPNDVPbnBsZjhDMTA1VFBjQTI0UndtYUR5UkpEbnBu?= =?utf-8?B?RkVOYUIzZ1pYNWRmM1lBL2g3QmtXcG5JUE1zbFIyL2UrUE96aHpYTmIrV2ta?= =?utf-8?B?M1ptTXpFSnQ2VGx5b2hLZ2JTVllmaWxYdkJXZjJZVkNQaWhLQ2FCR0xhQ1FS?= =?utf-8?B?Z2dxUDl2L0phZTY3Wk91MlhzZDlIbTMzVE9UQ3VRYUhweWtxZWhsNnB4SUZJ?= =?utf-8?B?Vm8vaUFSeGt0N0FWUVpvRWc4OEtzUUZFT25DS3FGeE1adXZxQjZ6R1JNcHVp?= =?utf-8?B?aDNqRmpTOFFvMG5mMlhVbTY0VmJIZmxxVU9iaFNBOHZYKzNHaXpzSVd2R3ll?= =?utf-8?B?STA4Uzh0dlhoQ1NscHczbzI4NCt2R3pUbllNQkkrV1VyT2NKVFNUWmlIY1Fs?= =?utf-8?B?TlZua3p5Y3lYVUxRMStiZVQzNWNVcEdHclNneENnRVhqWEZrNHppWGtIdzNm?= =?utf-8?B?ZmwrN0JxZG1VWTk5ZStqcC93Tm9nNm1mWi9iSFZHWjRZZGJiNk1Rbm43dGxR?= =?utf-8?B?TVBzSjdSZTdsZzBsNzEvYnA4Y0dQelBlSE1WMnZiNFZoT1hOdXVHYlV3aCtz?= =?utf-8?B?ZTB2OEhlL2hPTEJxU1pDdXZjTUkrUHBpZHlrUW9wQ29CeTJvc0RZNDY5R24y?= =?utf-8?B?QnJMZFVpL0NZWDNYZlZUQjRWVUM0WEJtTlB5SkU2Vm5uMGtJdnFnWkg0OGpa?= =?utf-8?B?WEw4VHRBWGwyNkErVUQvaFQzZ2dDL09DcUwzM1lSclFkak5naXRhWmhKMVFt?= =?utf-8?B?aUlpeUd4d0xkM0RxSWMzc21ObTc5UGZQRDN4cUo1ZndCVjU0WlhXbzhTZXpF?= =?utf-8?B?cXA2STZqUGxrUHk3MUk2eU5iazNadmRHTXQ3R2RGdkwxSVBMdStjNEF6MWZK?= =?utf-8?B?L21Rc1orSXl3MDN2bFJJdEhBLzF2MlY4WjY4UGlYOXRKbkFqVmFDODBiVHJH?= =?utf-8?B?ZkJaSzFjNlRHWFk0dlYvTmgrNmE3K3ZZdkljTmlmVmIzMkRVZWhCZFJjZ2k1?= =?utf-8?B?d3pUWHpRSUxRa0VCZnQwVVlEZU1ZV3g0WXVZcHRHOU9zbnFnVndqU3Q0WTRU?= =?utf-8?B?NlM4WGV4V1daYlk1ZGhJMXVkQmRxTDBxbU1NbE9Da3ZjbGt5V3FpZS9NL01B?= =?utf-8?B?ZkgzNlZTVmZtOFdJWGhWZWE3S1pHalp2d0kwTTJ3R1RwL2Q0TG5BU294MXlZ?= =?utf-8?B?S0lIK0wzNzVDcXpuUzM5a2RBaFV3cUdDU2hvMnVDbVRMYVg0OWR5WGdCS2JH?= =?utf-8?B?c25uWFJCMWMza0dpSkUweTRSekttVG1aSlNpZTQrWmlMckhxN00vZEYydXdp?= =?utf-8?B?V1ZJZ1cvUUsyRGhYdG5QSVcrQjhhQWtSSXkwRlNRVkNSODRvaVoyckFJZHVl?= =?utf-8?B?VlNnSExIbTY2UmpWVHFUaWQyRkRlOUVhbVpLQm5pUTY3NGUyWENqdmhZSDZC?= =?utf-8?B?c09KdlRJTnpGVWptWUpsN2R6MFJUa1NJUVB4TmJ2YVpxNUZWZlduc2xXU01w?= =?utf-8?B?cTlsOG5OdDdKZTBZQmFpZzBJMXp1TUdrWFRSR0V6ZUQ2RDdNWnl5TUJDTWR1?= =?utf-8?B?SGpvdVg1cDA0Nmh5MXBnZHlXRVZSWjdtL3BDVDdibm1WV3poMzdZbkJRTEF5?= =?utf-8?B?S1NMdzc4ZHo5VkFYc09yeGFWaWIrMHBSeEJ1Rk9KMTZQRnVQV3JxNUVKUXFO?= =?utf-8?B?QlJCbEVOdElnazdXaEdoblpPOEtna1M2VkRRS21HcWtnTXJaUWJ0KzdjV0VT?= =?utf-8?B?dUpJZWkxMmVMRVJ1bm8venkyZUwvTmwwbHkrREhXZUF3OFNWSlR0eno1dGt1?= =?utf-8?B?VWYvSi9xYTFTQ1FiVXcyV0VaY1NMcjJmbzdnMXB4ZlQyNTB2UmdCeHpETVR2?= =?utf-8?B?M1FSM3hrejNTZXdxSlBOMFkxbTBMRlE5VVVhQjJQREtuY1p1WHhPQXZKczM1?= =?utf-8?B?MXlBRll0UDJXNGVvZjF4R21WS2NyQlRDWmp4NE5WZkI5VUtYTThSVTJSbXE0?= =?utf-8?B?VGRYUnpqUTJ5YTF0RlVScGxadUFWbGd3VnRjdFkwcWdETm9uTWNJSGZIVkdl?= =?utf-8?B?U2NiYm1Sc2lZdy9mNExIQ09jS2VRYk15UnAxSUlvM2tiUDJ2R0VvMjhVMUY3?= =?utf-8?B?UEE9PQ==?= X-MS-Exchange-CrossTenant-Network-Message-Id: 265c4539-fa55-470f-0cdb-08db9e6a6f84 X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB7309.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Aug 2023 15:06:57.9474 (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: BzILKL3LRmdJusGo5l7csMjmwWPN/wKuGmPPjziNA6V13PNbAuDyyleK0SKLUU/JkCuOVYwRLOt2sS5MVuCl3/dyMDbrwdfD/NQ5067UJqA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR11MB5465 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org On Wed, Aug 16, 2023 at 04:57:07PM +0200, David Marchand wrote: > On Tue, Aug 15, 2023 at 5:24 PM Bruce Richardson > wrote: > > > > Rather than having the test suites listed out in the meson.build files > > and having to have them enabled/disabled selectively based on what libs > > are being built, pull the tests to run from the source files which were > > added to the build. > > > > Most test suites require no additional info other than the list of test > > names in the suite. However the fast-test are special that they have > > additional parameters associated with them. This requires some > > additional work in the test extraction script and in the meson.build > > file for processing the output. > > > > Signed-off-by: Bruce Richardson > > Acked-by: Morten Brørup > > --- > > app/meson.build | 7 +- > > app/test/suites/meson.build | 74 +++++++++++++++++++ > > buildtools/get-test-suites.py | 33 +++++++++ > > .../has-hugepages.py | 0 > > buildtools/meson.build | 2 + > > 5 files changed, 115 insertions(+), 1 deletion(-) > > create mode 100644 app/test/suites/meson.build > > create mode 100644 buildtools/get-test-suites.py > > rename app/test/has_hugepage.py => buildtools/has-hugepages.py (100%) > > > > diff --git a/app/meson.build b/app/meson.build > > index 0d8b618e7f..c14dc80892 100644 > > --- a/app/meson.build > > +++ b/app/meson.build > > @@ -101,7 +101,7 @@ foreach app:apps > > link_libs = dpdk_static_libraries + dpdk_drivers > > endif > > > > - executable('dpdk-' + name, > > + exec = executable('dpdk-' + name, > > sources, > > c_args: cflags, > > link_args: ldflags, > > @@ -110,4 +110,9 @@ foreach app:apps > > include_directories: includes, > > install_rpath: join_paths(get_option('prefix'), driver_install_path), > > install: true) > > + if name == 'test' > > + dpdk_test = exec > > + autotest_sources = sources > > + subdir('test/suites') # define the pre-canned test suites > > + endif > > endforeach > > diff --git a/app/test/suites/meson.build b/app/test/suites/meson.build > > new file mode 100644 > > index 0000000000..ec74d8adf2 > > --- /dev/null > > +++ b/app/test/suites/meson.build > > @@ -0,0 +1,74 @@ > > +# SPDX-License-Identifier: BSD-3-Clause > > +# Copyright(c) 2023 Intel Corporation > > + > > +# some perf tests (eg: memcpy perf autotest)take very long > > s/)take/) take/ > Ack > > +# to complete, so timeout to 10 minutes > > +timeout_seconds = 600 > > +timeout_seconds_fast = 10 > > + > > +test_no_huge_args = ['--no-huge', '-m', '2048'] > > +has_hugepage = run_command(has_hugepages_cmd, check: true).stdout().strip() != '0' > > +message('hugepage availability: @0@'.format(has_hugepage)) > > + > > +# process source files to determine the different unit test suites > > +# - fast_tests > > +# - perf_tests > > +# - driver_tests > > +test_suites = run_command(get_test_suites_cmd, autotest_sources, > > + check: true).stdout().strip().split() > > +foreach suite:test_suites > > + # simple cases - tests without parameters or special handling > > + suite = suite.split('=') > > + suite_name = suite[0] > > + suite_tests = suite[1].split(',') > > + if suite_name != 'fast-tests' > > + # simple cases - tests without parameters or special handling > > + foreach t: suite_tests > > + test(t, dpdk_test, > > + env: ['DPDK_TEST=' + t], > > + timeout: timeout_seconds, > > + is_parallel: false, > > + suite: suite_name) > > + endforeach > > + else > > + # special fast-test handling here > > Indentation of this comment is off. > Ack > > + foreach t: suite_tests > > + params = t.split(':') > > + test_name = params[0] > > + nohuge = params[1] == 'true' > > + asan = params[2] == 'true' > > + > > + test_args = [] > > + if nohuge > > + test_args += test_no_huge_args > > + elif not has_hugepage > > + continue #skip this tests > > + endif > > + if not asan and (get_option('b_sanitize') == 'address' > > + or get_option('b_sanitize') == 'address,undefined') > > + continue # skip this test > > + endif > > + > > + if get_option('default_library') == 'shared' > > + test_args += ['-d', dpdk_drivers_build_dir] > > + endif > > + > > + test(test_name, dpdk_test, > > + args : test_args, > > + env: ['DPDK_TEST=' + test_name], > > + timeout : timeout_seconds_fast, > > + is_parallel : false, > > + suite : 'fast-tests') > > + if not is_windows and test_name == 'trace_autotest' > > + test_args += ['--trace=.*'] > > + test_args += ['--trace-dir=@0@'.format(meson.current_build_dir())] > > + test(test_name + '_with_traces', dpdk_test, > > + args : test_args, > > + env: ['DPDK_TEST=' + test_name], > > + timeout : timeout_seconds_fast, > > + is_parallel : false, > > + suite : 'fast-tests') > > + endif > > + endforeach > > + endif > > +endforeach > > diff --git a/buildtools/get-test-suites.py b/buildtools/get-test-suites.py > > new file mode 100644 > > index 0000000000..95a9cad4c8 > > --- /dev/null > > +++ b/buildtools/get-test-suites.py > > @@ -0,0 +1,33 @@ > > +#! /usr/bin/env python3 > > +# SPDX-License-Identifier: BSD-3-Clause > > +# Copyright(c) 2023 Intel Corporation > > + > > +import sys > > +import re > > + > > +input_list = sys.argv[1:] > > +test_def_regex = re.compile("REGISTER_([A-Z]+)_TEST\s*\(\s*([a-z0-9_]+)") > > +test_suites = {} > > + > > +def get_fast_test_params(test_name, ln): > > + "Extract the extra fast-test parameters from the line" > > + #print(f"ln: {ln.rstrip()}, test_name: {test_name}, split: {ln.split(test_name, 1)}") > > + (_, rest_of_line) = ln.split(test_name, 1) > > + (_, nohuge, asan, _func) = rest_of_line.split(',', 3) > > + return f":{nohuge.strip().lower()}:{asan.strip().lower()}" > > + > > +for fname in input_list: > > + with open(fname) as f: > > + contents = [ln for ln in f.readlines() if test_def_regex.match(ln.strip())] > > + for ln in contents: > > + (test_suite, test_name) = test_def_regex.match(ln).group(1, 2) > > + suite_name = f"{test_suite.lower()}-tests" > > + if suite_name in test_suites: > > + test_suites[suite_name].append(test_name) > > + else: > > + test_suites[suite_name] = [test_name] > > + if suite_name == "fast-tests": > > + test_suites["fast-tests"][-1] += get_fast_test_params(test_name, ln) > > + > > +for suite in test_suites.keys(): > > + print(f"{suite}={','.join(test_suites[suite])}") > > diff --git a/app/test/has_hugepage.py b/buildtools/has-hugepages.py > > similarity index 100% > > rename from app/test/has_hugepage.py > > rename to buildtools/has-hugepages.py > > app/test/has_hugepage.py is still referenced in MAINTAINERS. > And new files (in this patch, and later patches) are not affiliated to someone. > Will look to fix in V6.