Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vakaQ-00D3dJ-38 for pgsql-hackers@arkaria.postgresql.org; Wed, 31 Dec 2025 01:01:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vakaO-004qP9-1J for pgsql-hackers@arkaria.postgresql.org; Wed, 31 Dec 2025 01:01:13 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vakaN-004qP1-3A for pgsql-hackers@lists.postgresql.org; Wed, 31 Dec 2025 01:01:12 +0000 Received: from smtp.outgoing.loopia.se ([93.188.3.37]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vakaL-003Pvz-2f for pgsql-hackers@lists.postgresql.org; Wed, 31 Dec 2025 01:01:11 +0000 Received: from s807.loopia.se (localhost [127.0.0.1]) by s807.loopia.se (Postfix) with ESMTP id D963F50C823 for ; Wed, 31 Dec 2025 02:01:06 +0100 (CET) Received: from s934.loopia.se (unknown [172.22.191.5]) by s807.loopia.se (Postfix) with ESMTP id C5DDC50C33F; Wed, 31 Dec 2025 02:01:06 +0100 (CET) Received: from s474.loopia.se (unknown [172.22.191.5]) by s934.loopia.se (Postfix) with ESMTP id C34E87CEA7D; Wed, 31 Dec 2025 02:01:06 +0100 (CET) X-Virus-Scanned: amavisd-new at amavis.loopia.se X-Spam-Flag: NO X-Spam-Score: -1.2 X-Spam-Level: X-Spam-Status: No, score=-1.2 tagged_above=-999 required=6.2 tests=[ALL_TRUSTED=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1] autolearn=disabled Authentication-Results: s474.loopia.se (amavisd-new); dkim=pass (2048-bit key) header.d=proxel.se Received: from s934.loopia.se ([172.22.191.6]) by s474.loopia.se (s474.loopia.se [172.22.190.14]) (amavisd-new, port 10024) with LMTP id pHmukrkcpqXl; Wed, 31 Dec 2025 02:01:06 +0100 (CET) X-Loopia-Auth: user X-Loopia-User: andreas@proxel.se X-Loopia-Originating-IP: 147.28.75.140 Received: from [192.168.0.121] (customer-147-28-75-140.stosn.net [147.28.75.140]) (Authenticated sender: andreas@proxel.se) by s934.loopia.se (Postfix) with ESMTPSA id 2D21A7CEA5C; Wed, 31 Dec 2025 02:01:06 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proxel.se; s=loopiadkim1707418970; t=1767142866; bh=YUkBdr8+wxBRCCqfyrupgyE+nWBME2MpLAyplzlUeIg=; h=Date:Subject:To:References:From:In-Reply-To; b=NbluknTgDPho7VQlAg5jUbzx5ODyYKJc1hpDfFqq3rE3gwYkh8V15GsVt4oBfCd08 Z2b1KxMKJxgfaz1DXpP7sjzIaI7SJbpDUh9RhOZ5i8upQXEYTKGLQjtEB9DvcJAcal k1ByiNgrreXm6Y5X1RCQJc8WFBuk5ygo31TMtLhWyR028AYaXgrx3yzynvxXqZV0d/ gLz7U/EWo9KNBnrAFu6cSa2P6X6zsKbY08I+051IPqU6hrdvhB67gow/kpw5SPlH7c E98RTr9LZ7RQPSkeYFp8LECTWvjLnrUbdGYcx9+Z0TzadRMC/zlNuBvkOra9LqfNC1 fUsOfZD3KnrsQ== Content-Type: multipart/mixed; boundary="------------ZBKuT4gM8S92OEYypzmgLIf7" Message-ID: <1d39c711-98cb-460f-ac44-1ab0007daeb2@proxel.se> Date: Wed, 31 Dec 2025 02:01:05 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Add support for EXTRA_REGRESS_OPTS for meson To: Rustam ALLAKOV , pgsql-hackers@lists.postgresql.org, Andres Freund References: <174242314653.510.8908680181703298899.pgcf@coridan.postgresql.org> From: Andreas Karlsson Content-Language: en-US In-Reply-To: <174242314653.510.8908680181703298899.pgcf@coridan.postgresql.org> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------ZBKuT4gM8S92OEYypzmgLIf7 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 3/19/25 11:25 PM, Rustam ALLAKOV wrote: > The following review has been posted through the commitfest application: > make installcheck-world: not tested > Implements feature: tested, failed > Spec compliant: tested, failed > Documentation: tested, failed > > Hello everyone, > for v2 patch I suggest to refactor from > >> -sp = subprocess.Popen(args.test_command, env=env_dict, stdout=subprocess.PIPE) >> +if args.testname in ['regress', 'isolation', 'ecpg'] and 'EXTRA_REGRESS_OPTS' in env_dict: >> + test_command = args.test_command + shlex.split(env_dict['EXTRA_REGRESS_OPTS']) >> +else: >> + test_command = args.test_command >> + >> +sp = subprocess.Popen(test_command, env=env_dict, stdout=subprocess.PIPE) > > to > > -sp = subprocess.Popen(args.test_command, env=env_dict, stdout=subprocess.PIPE) > +if args.testname in ['regress', 'isolation', 'ecpg']: > + test_command = args.test_command[:] > + if 'TEMP_CONFIG' in env_dict: > + test_command.insert(1, '--temp-config=' + env_dict['TEMP_CONFIG']) > + if 'EXTRA_REGRESS_OPTS' in env_dict: > + test_command += shlex.split(env_dict['EXTRA_REGRESS_OPTS']) > +else: > + test_command = args.test_command > + > +sp = subprocess.Popen(test_command, env=env_dict, stdout=subprocess.PIPE) Since commit 51da766494dcc84b6f8d793ecaa064363a9243c2 it is possible that we no longer need to use .insert() to make sure the code works on Windows but I need to think a bit more on it. But added support for TEMP_CONFIG. > I double checked whether shlex module was built in Python, and yes it is, > so no need for additional requirement.txt input for pip to install. Thanks! > in addition to the above, might be worth to add some documentation like > > Environment Variables Supported: > EXTRA_REGRESS_OPTS: Additional options to pass to regression, isolation, or ecpg tests. > TEMP_CONFIG: Specify a temporary configuration file for testing purposes. > Example Usage: > # Use EXTRA_REGRESS_OPTS to load an extension > EXTRA_REGRESS_OPTS="--load-extension=pgcrypto" meson test > # Use TEMP_CONFIG to specify a temporary configuration file > TEMP_CONFIG="path/to/test.conf" meson test > # Use both EXTRA_REGRESS_OPTS and TEMP_CONFIG together > TEMP_CONFIG="path/to/test.conf" EXTRA_REGRESS_OPTS="--load-extension=pgcrypto" meson test Yeah, we probably should. But not sure where, maybe at https://www.postgresql.org/docs/current/install-meson.html or did you imagine somewhere else? > Should we cover these new lines with test? Asking, because I see EXTRA_REGRESS_OPTS > being tested for autotools in src/interfaces/ecpg/test/makefile As far as I can see they are not tested there, but maybe we should test them. Attached version 2 of the patch. Andreas --------------ZBKuT4gM8S92OEYypzmgLIf7 Content-Type: text/x-patch; charset=UTF-8; name="v2-0002-meson-Add-support-for-EXTRA_REGRESS_OPTS-and-TEMP.patch" Content-Disposition: attachment; filename*0="v2-0002-meson-Add-support-for-EXTRA_REGRESS_OPTS-and-TEMP.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAwZTczYWIyOWFmMWNjYWI5YzRkZDc0NTNmMDdiNDFhNDUyN2IwMzQwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIEthcmxzc29uIDxhbmRyZWFzQHByb3hl bC5zZT4KRGF0ZTogV2VkLCAzMSBEZWMgMjAyNSAwMTo0ODo1NiArMDEwMApTdWJqZWN0OiBb UEFUQ0ggdjIgMi8yXSBtZXNvbjogQWRkIHN1cHBvcnQgZm9yIEVYVFJBX1JFR1JFU1NfT1BU UyBhbmQKIFRFTVBfQ09ORklHCgpBZGQgc3VwcG9ydCBmb3IgdGhlIEVYVFJBX1JFR1JFU1Nf T1BUUyBhbmQgVEVNUF9DT05GSUcgZW52aXJvbm1lbnQKdmFyaWFibGVzIGluIG91ciBNZXNv biBidWlsZCB3aGljaCB3b3JrIGp1c3QgbGlrZSB3aXRoIG1ha2UgYW5kCmFwcGx5IHRvIGFs bCByZWdyZXNzLCBlY3BnIGFuZCBpc29sYXRpb24gdGVzdHMuCi0tLQogc3JjL3Rvb2xzL3Rl c3R3cmFwIHwgOSArKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvdGVzdHdyYXAgYi9zcmMvdG9vbHMvdGVzdHdyYXAK aW5kZXggZTkxMjk2ZWNkMTUuLjE2NWQzNWZiYTk4IDEwMDc1NQotLS0gYS9zcmMvdG9vbHMv dGVzdHdyYXAKKysrIGIvc3JjL3Rvb2xzL3Rlc3R3cmFwCkBAIC00LDYgKzQsNyBAQCBpbXBv cnQgYXJncGFyc2UKIGltcG9ydCBzaHV0aWwKIGltcG9ydCBzdWJwcm9jZXNzCiBpbXBvcnQg b3MKK2ltcG9ydCBzaGxleAogaW1wb3J0IHN5cwogCiBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1 bWVudFBhcnNlcigpCkBAIC01Myw2ICs1NCwxNCBAQCBlbnZfZGljdCA9IHsqKm9zLmVudmly b24sCiBpZiAiUEdfVEVTVF9FWFRSQSIgbm90IGluIGVudl9kaWN0IGFuZCBhcmdzLnBnX3Rl c3RfZXh0cmE6CiAgICAgZW52X2RpY3RbIlBHX1RFU1RfRVhUUkEiXSA9IGFyZ3MucGdfdGVz dF9leHRyYQogCisjIEFkZCBleHRyYSByZWdyZXNzIGFyZ3VtZW50cyBiZWZvcmUgd2UgYWRk IG5vbi1vcHRpb24gYXJndW1lbnRzCitpZiBhcmdzLnRlc3RuYW1lIGluIFsncmVncmVzcycs ICdpc29sYXRpb24nLCAnZWNwZyddOgorICAgIGlmICdURU1QX0NPTkZJRycgaW4gZW52X2Rp Y3Q6CisgICAgICAgIGFyZ3MudGVzdF9jb21tYW5kICs9IFsnLS10ZW1wLWNvbmZpZz0nICsg ZW52X2RpY3RbJ1RFTVBfQ09ORklHJ11dCisKKyAgICBpZiAnRVhUUkFfUkVHUkVTU19PUFRT JyBpbiBlbnZfZGljdDoKKyAgICAgICAgYXJncy50ZXN0X2NvbW1hbmQgKz0gc2hsZXguc3Bs aXQoZW52X2RpY3RbJ0VYVFJBX1JFR1JFU1NfT1BUUyddKQorCiBpZiAiVEVTVFMiIGluIGVu dl9kaWN0OgogICAgIGFyZ3MudGVzdF9jb21tYW5kICs9IGVudl9kaWN0WyJURVNUUyJdLnNw bGl0KCkKIGVsc2U6Ci0tIAoyLjQ3LjMKCg== --------------ZBKuT4gM8S92OEYypzmgLIf7--