diff options
author | Andres Freund <andres@anarazel.de> | 2025-02-04 17:45:57 -0500 |
---|---|---|
committer | Andres Freund <andres@anarazel.de> | 2025-02-04 17:56:20 -0500 |
commit | ad80e5823a50c81502782ffd7d5a794005461f22 (patch) | |
tree | 10e6520db14333fc4ae9b799f676a17085119f17 /src | |
parent | 5acf0636f87410fef77d38a23738023267ab6dd3 (diff) | |
download | postgresql-ad80e5823a50c81502782ffd7d5a794005461f22.tar.gz postgresql-ad80e5823a50c81502782ffd7d5a794005461f22.zip |
meson: Add missing dependencies for libpq tests
The missing dependency was, e.g., visible when doing
ninja clean && ninja meson-test-prereq && meson test --no-rebuild --suite setup --suite libpq
This is a bit more complicated than other related fixes, because until now
libpq's tests depended on 'frontend_code', which includes a dependency on
fe_utils, which in turns on libpq. That in turn required
src/interfaces/libpq/test to be entered from the top-level, not from
libpq/meson.build. Because of that the test definitions in libpq/meson.build
could not declare a dependency on the binaries defined in
libpq/test/meson.build.
To fix this, this commit creates frontend_no_fe_utils_code, which allows us to
recurse into libpq/test from withing libpq/meson.build.
Apply this to all branches with meson support, as part of an effort to fix
incorrect test dependencies that can lead to test failures.
Discussion: https://postgr.es/m/CAGECzQSvM3iSDmjF+=Kof5an6jN8UbkP_4cKKT9w6GZavmb5yQ@mail.gmail.com
Discussion: https://postgr.es/m/bdba588f-69a9-4f3e-9b95-62d07210a32e@eisentraut.org
Backpatch: 16-, where meson support was added
Diffstat (limited to 'src')
-rw-r--r-- | src/interfaces/libpq/meson.build | 5 | ||||
-rw-r--r-- | src/interfaces/libpq/test/meson.build | 12 |
2 files changed, 10 insertions, 7 deletions
diff --git a/src/interfaces/libpq/meson.build b/src/interfaces/libpq/meson.build index 80e6a15adf8..8a2872c0eea 100644 --- a/src/interfaces/libpq/meson.build +++ b/src/interfaces/libpq/meson.build @@ -1,8 +1,5 @@ # Copyright (c) 2022-2023, PostgreSQL Global Development Group -# test/ is entered via top-level meson.build, that way it can use the default -# args for executables (which depend on libpq). - libpq_sources = files( 'fe-auth-scram.c', 'fe-auth.c', @@ -107,6 +104,7 @@ install_data('pg_service.conf.sample', install_dir: dir_data, ) +subdir('test') tests += { 'name': 'libpq', @@ -120,6 +118,7 @@ tests += { 't/004_load_balance_dns.pl', ], 'env': {'with_ssl': ssl_library}, + 'deps': libpq_test_deps, }, } diff --git a/src/interfaces/libpq/test/meson.build b/src/interfaces/libpq/test/meson.build index d56b63e1186..3c9eb09d313 100644 --- a/src/interfaces/libpq/test/meson.build +++ b/src/interfaces/libpq/test/meson.build @@ -1,5 +1,7 @@ # Copyright (c) 2022-2023, PostgreSQL Global Development Group +libpq_test_deps = [] + libpq_uri_regress_sources = files( 'libpq_uri_regress.c', ) @@ -10,9 +12,9 @@ if host_system == 'windows' '--FILEDESC', 'libpq test program',]) endif -testprep_targets += executable('libpq_uri_regress', +libpq_test_deps += executable('libpq_uri_regress', libpq_uri_regress_sources, - dependencies: [frontend_code, libpq], + dependencies: [frontend_no_fe_utils_code, libpq], kwargs: default_bin_args + { 'install': false, } @@ -29,10 +31,12 @@ if host_system == 'windows' '--FILEDESC', 'libpq test program',]) endif -testprep_targets += executable('libpq_testclient', +libpq_test_deps += executable('libpq_testclient', libpq_testclient_sources, - dependencies: [frontend_code, libpq], + dependencies: [frontend_no_fe_utils_code, libpq], kwargs: default_bin_args + { 'install': false, } ) + +testprep_targets += libpq_test_deps |