From: Japin Li Date: Fri, 9 Jan 2026 10:21:19 +0800 Subject: [PATCH v8 2/2] Add TAP test for password_expire_warning --- .../authentication/t/008_password_expire.pl | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/test/authentication/t/008_password_expire.pl diff --git a/src/test/authentication/t/008_password_expire.pl b/src/test/authentication/t/008_password_expire.pl new file mode 100644 index 00000000000..83c69a35d61 --- /dev/null +++ b/src/test/authentication/t/008_password_expire.pl @@ -0,0 +1,36 @@ +# Copyright (c) 2026, PostgreSQL Global Development Group + +# Test for authentication password expiration warning message. + +use strict; +use warnings FATAL => 'all'; +use Time::Piece; +use Time::Seconds; +use PostgreSQL::Test::Cluster; +use PostgreSQL::Test::Utils; +use Test::More; + +my $dt = localtime; # Current datetime +$dt += ONE_DAY; # Add 1 day + +my $valid_until = $dt->strftime("%Y-%m-%d %H:%M:%S"); + +my $node = PostgreSQL::Test::Cluster->new('main'); +$node->init; +$node->append_conf('postgresql.conf', "password_expire_warning = '1d'"); +$node->start; + +$node->safe_psql('postgres', + "CREATE USER test_user WITH VALID UNTIL '$valid_until' PASSWORD '12345678'"); + +unlink($node->data_dir . '/pg_hba.conf'); +$node->append_conf('pg_hba.conf', "local all all scram-sha-256"); +$node->reload; + +$ENV{"PGPASSWORD"} = '12345678'; +$node->connect_ok('user=test_user dbname=postgres', + qq(test password_expire_warning), + expected_stderr => + qr/your password will expire in/); + +done_testing(); -- 2.43.0 --=-=-=--