diff options
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/modules/oauth_validator/t/002_client.pl | 24 | ||||
| -rw-r--r-- | src/test/modules/test_custom_stats/test_custom_var_stats.c | 6 | ||||
| -rw-r--r-- | src/test/postmaster/t/002_connection_limits.pl | 5 | ||||
| -rw-r--r-- | src/test/postmaster/t/003_start_stop.pl | 7 | ||||
| -rw-r--r-- | src/test/regress/nls.mk | 2 | ||||
| -rw-r--r-- | src/test/regress/po/meson.build | 2 | ||||
| -rw-r--r-- | src/test/regress/regress.c | 2 |
7 files changed, 35 insertions, 13 deletions
diff --git a/src/test/modules/oauth_validator/t/002_client.pl b/src/test/modules/oauth_validator/t/002_client.pl index aac0220d215..e6c91fc911c 100644 --- a/src/test/modules/oauth_validator/t/002_client.pl +++ b/src/test/modules/oauth_validator/t/002_client.pl @@ -29,6 +29,8 @@ $node->init; $node->append_conf('postgresql.conf', "log_connections = all\n"); $node->append_conf('postgresql.conf', "oauth_validator_libraries = 'validator'\n"); +# Needed to inspect postmaster log after connection failure: +$node->append_conf('postgresql.conf', "log_min_messages = debug2"); $node->start; $node->safe_psql('postgres', 'CREATE USER test;'); @@ -47,7 +49,7 @@ local all test oauth issuer="$issuer" scope="$scope" }); $node->reload; -my $log_start = $node->wait_for_log(qr/reloading configuration files/); +$node->wait_for_log(qr/reloading configuration files/); $ENV{PGOAUTHDEBUG} = "UNSAFE"; @@ -73,6 +75,7 @@ sub test my @cmd = ("oauth_hook_client", @{$flags}, $common_connstr); note "running '" . join("' '", @cmd) . "'"; + my $log_start = -s $node->logfile; my ($stdout, $stderr) = run_command(\@cmd); if (defined($params{expected_stdout})) @@ -88,6 +91,18 @@ sub test { is($stderr, "", "$test_name: no stderr"); } + + if (defined($params{log_like})) + { + # See Cluster::connect_fails(). To avoid races, we have to wait for the + # postmaster to flush the log for the finished connection. + $node->wait_for_log( + qr/DEBUG: (?:00000: )?forked new client backend, pid=(\d+) socket.*DEBUG: (?:00000: )?client backend \(PID \1\) exited with exit code \d/s, + $log_start); + + $node->log_check("$test_name: log matches", + $log_start, log_like => $params{log_like}); + } } test( @@ -97,11 +112,8 @@ test( "--expected-uri", "$issuer/.well-known/openid-configuration", "--expected-scope", $scope, ], - expected_stdout => qr/connection succeeded/); - -$node->log_check("validator receives correct token", - $log_start, - log_like => [ qr/oauth_validator: token="my-token", role="$user"/, ]); + expected_stdout => qr/connection succeeded/, + log_like => [qr/oauth_validator: token="my-token", role="$user"/]); if ($ENV{with_libcurl} ne 'yes') { diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c index c71922dc4a8..294085d6866 100644 --- a/src/test/modules/test_custom_stats/test_custom_var_stats.c +++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c @@ -92,7 +92,7 @@ static void test_custom_stats_var_to_serialized_data(const PgStat_HashKey *key, /* Deserialization callback: read auxiliary entry data */ static bool test_custom_stats_var_from_serialized_data(const PgStat_HashKey *key, - const PgStatShared_Common *header, + PgStatShared_Common *header, FILE *statfile); /* Finish callback: end of statistics file operations */ @@ -196,7 +196,7 @@ test_custom_stats_var_to_serialized_data(const PgStat_HashKey *key, { char *description; size_t len; - PgStatShared_CustomVarEntry *entry = (PgStatShared_CustomVarEntry *) header; + const PgStatShared_CustomVarEntry *entry = (const PgStatShared_CustomVarEntry *) header; bool found; uint32 magic_number = TEST_CUSTOM_VAR_MAGIC_NUMBER; @@ -276,7 +276,7 @@ test_custom_stats_var_to_serialized_data(const PgStat_HashKey *key, */ static bool test_custom_stats_var_from_serialized_data(const PgStat_HashKey *key, - const PgStatShared_Common *header, + PgStatShared_Common *header, FILE *statfile) { PgStatShared_CustomVarEntry *entry; diff --git a/src/test/postmaster/t/002_connection_limits.pl b/src/test/postmaster/t/002_connection_limits.pl index 4a7fb16261f..2fc821ad0b4 100644 --- a/src/test/postmaster/t/002_connection_limits.pl +++ b/src/test/postmaster/t/002_connection_limits.pl @@ -74,6 +74,11 @@ sub connect_fails_wait ok(1, "$test_name: client backend process exited"); } +# Restart the server to ensure that any backends launched for the +# initialization steps are gone. Otherwise they could still be using +# up connection slots and mess with our expectations. +$node->restart; + my @sessions = (); my @raw_connections = (); diff --git a/src/test/postmaster/t/003_start_stop.pl b/src/test/postmaster/t/003_start_stop.pl index 58e7ba6cc42..25d6f667217 100644 --- a/src/test/postmaster/t/003_start_stop.pl +++ b/src/test/postmaster/t/003_start_stop.pl @@ -46,6 +46,11 @@ if (!$node->raw_connect_works()) plan skip_all => "this test requires working raw_connect()"; } +# Restart the server to ensure that the backend launched for +# raw_connect_works() is gone. Otherwise, it might free up the +# connection slot later, when we expect all the slots to be in use. +$node->restart; + my @raw_connections = (); # Open a lot of TCP (or Unix domain socket) connections to use up all @@ -81,7 +86,7 @@ for (my $i = 0; $i <= 20; $i++) # clients already" instead of "role does not exist" error. Test that # to ensure that we have used up all the slots. $node->connect_fails("dbname=postgres user=invalid_user", - "connect ", + "connection is rejected when all slots are in use", expected_stderr => qr/FATAL: sorry, too many clients already/); # Open one more connection, to really ensure that we have at least one diff --git a/src/test/regress/nls.mk b/src/test/regress/nls.mk index 43227c64f09..4051c965933 100644 --- a/src/test/regress/nls.mk +++ b/src/test/regress/nls.mk @@ -1,5 +1,5 @@ # src/test/regress/nls.mk -CATALOG_NAME = regress +CATALOG_NAME = postgresql-regress GETTEXT_FILES = regress.c GETTEXT_TRIGGERS = $(BACKEND_COMMON_GETTEXT_TRIGGERS) GETTEXT_FLAGS = $(BACKEND_COMMON_GETTEXT_FLAGS) diff --git a/src/test/regress/po/meson.build b/src/test/regress/po/meson.build index e9bd964aa7f..84b98a80df5 100644 --- a/src/test/regress/po/meson.build +++ b/src/test/regress/po/meson.build @@ -1,3 +1,3 @@ # Copyright (c) 2022-2025, PostgreSQL Global Development Group -nls_targets += [i18n.gettext('regress-' + pg_version_major.to_string())] +nls_targets += [i18n.gettext('postgresql-regress-' + pg_version_major.to_string())] diff --git a/src/test/regress/regress.c b/src/test/regress/regress.c index acac34d40b9..b7a926c6f01 100644 --- a/src/test/regress/regress.c +++ b/src/test/regress/regress.c @@ -50,7 +50,7 @@ /* define our text domain for translations */ #undef TEXTDOMAIN -#define TEXTDOMAIN PG_TEXTDOMAIN("regress") +#define TEXTDOMAIN PG_TEXTDOMAIN("postgresql-regress") #define EXPECT_TRUE(expr) \ do { \ |
