Hi hackers, While looking at [1], I did use the pg_regress --use-existing flag that way:
TESTS="test_setup create_index memoize --use-existing" meson test -C meson_build --setup running --suite regress-running and that produced the desired outcome (i.e running those 3 tests from the regress suite on a running instance and existing regression database). That was kind of a trick and not surprisingly when I wanted to run the entire regress suite that way: TESTS="--use-existing" meson test -C meson_build --setup running --suite regress-running things did not work as expected and produced: 1/1 regress-running - postgresql:regress-running/regress SKIP 0.04s Ok: 0 Fail: 0 Skipped: 1 means it skipped the tests. OTOH, with autoconf, one could run: EXTRA_REGRESS_OPTS="--use-existing" make installcheck and that would work as expected (means running the entire regress suite on an existing regression database). So it looks like that currently (unless I missed it), with meson, it is not possible to run an entire test suite on a running instance and existing regression database. Indeed, setting the TESTS environment variable replaces the schedule and test list entirely. This means that passing only pg_regress flags (e.g., TESTS="--use-existing") results in no tests being run, since no schedule or test names are included. The attached patch adds support for EXTRA_REGRESS_OPTS in testwrap. When set, its contents are appended to the test command for regress, isolation, and ecpg test types, matching autoconf behavior. This enables running the full schedule with extra pg_regress options, like: EXTRA_REGRESS_OPTS="--use-existing" meson test --setup running --suite regress-running Once we agree on a fix and that fix is pushed, I think it would make sense to add an example in [2]. [1]: https://postgr.es/m/aekGK/SUIeW5n5fY%40bdtpg [2]: https://wiki.postgresql.org/wiki/Meson Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com
>From b79068ec0292dcc623431fa1a5c7cee8668b1170 Mon Sep 17 00:00:00 2001 From: Bertrand Drouvot <[email protected]> Date: Thu, 23 Apr 2026 05:01:13 +0000 Subject: [PATCH v1] testwrap: support EXTRA_REGRESS_OPTS environment variable With autoconf, EXTRA_REGRESS_OPTS can be used to pass additional flags to pg_regress, pg_isolation_regress, and pg_regress_ecpg. For example: EXTRA_REGRESS_OPTS="--use-existing" make installcheck There was no meson equivalent. The TESTS environment variable could not be used for this purpose because setting it replaces the schedule entirely, so passing only flags (e.g., TESTS="--use-existing") resulted in no tests being run. Add support for EXTRA_REGRESS_OPTS in testwrap. When set, its contents are appended to the test command for regress, isolation, and ecpg test types, matching autoconf behavior. This enables running the full schedule with extra pg_regress options, like: EXTRA_REGRESS_OPTS="--use-existing" meson test --setup running --suite regress-running Author: Bertrand Drouvot <[email protected]> --- src/tools/testwrap | 3 +++ 1 file changed, 3 insertions(+) 100.0% src/tools/ diff --git a/src/tools/testwrap b/src/tools/testwrap index e91296ecd15..8c44f9bc2d6 100755 --- a/src/tools/testwrap +++ b/src/tools/testwrap @@ -61,6 +61,9 @@ else: if args.tests: args.test_command.extend(args.tests) +if "EXTRA_REGRESS_OPTS" in env_dict and args.testname in ('regress', 'isolation', 'ecpg'): + args.test_command += env_dict["EXTRA_REGRESS_OPTS"].split() + sp = subprocess.Popen(args.test_command, env=env_dict, stdout=subprocess.PIPE) # Meson categorizes a passing TODO test point as bad # (https://github.com/mesonbuild/meson/issues/13183). Remove the TODO -- 2.34.1
