On Tue, Sep 21, 2021 at 12:47:24PM +0900, Michael Paquier wrote:
> This would print the parameter, while getting to stderr mostly a
> "could not start server".  Would that work for you?

And..  Here is an actual patch.  The first test works here on Win32,
but I don't have a CI environment with an unprivileged account.  The
second is funky, as pg_ctl would return 0 causing a failure with
command_fails_like() because of the way start_postmaster() differs in
pg_ctl.

it may be possible to work around that by switching to
command_checks_all() but that would make the whole uglier with
different error handling, and I guess different reports generated, so
I would just remove it.  Could you check if the first case would work
in your environment?  If not, I would not mind just removing the test.
I have discovered a separate bug thanks to it, but that's not worth
breaking your case either.
--
Michael
diff --git a/src/bin/pg_checksums/t/002_actions.pl 
b/src/bin/pg_checksums/t/002_actions.pl
index 97492caab4..085c264a8e 100644
--- a/src/bin/pg_checksums/t/002_actions.pl
+++ b/src/bin/pg_checksums/t/002_actions.pl
@@ -11,7 +11,7 @@ use PostgresNode;
 use TestLib;
 
 use Fcntl qw(:seek);
-use Test::More tests => 69;
+use Test::More tests => 66;
 
 
 # Utility routine to create and check a table with corrupted checksums
@@ -181,17 +181,22 @@ command_fails(
 
 # Test postgres -C for an offline cluster.
 # Run-time GUCs are safe to query here.  Note that a lock file is created,
-# then unlinked, leading to an extra LOG entry showing in stderr.
+# then unlinked, leading to an extra LOG entry showing in stderr so use
+# log_min_messages=fatal to remove this noise.  This test uses a startup
+# wrapped with pg_ctl to allow the case of a CI running under an unprivileged
+# account on Windows.
 SKIP:
 {
        skip "unstable output generated with Msys", 3
          if ($Config{osname} eq 'msys');
        command_checks_all(
-               [ 'postgres', '-D', $pgdata, '-C', 'data_checksums' ],
-               0,
+               [
+                       'pg_ctl', 'start', '-D', $pgdata, '-s', '-o',
+                       '-C data_checksums -c log_min_messages=fatal'
+               ],
+               1,
                [qr/^on$/],
-               # LOG entry when unlinking lock file.
-               [qr/database system is shut down/],
+               [qr/could not start server/],
                'data_checksums=on is reported on an offline cluster');
 }
 
@@ -200,15 +205,6 @@ $node->start;
 command_fails([ 'pg_checksums', '--check', '-D', $pgdata ],
        "fails with online cluster");
 
-# Test postgres -C on an online cluster.
-command_fails_like(
-       [ 'postgres', '-D', $pgdata, '-C', 'data_checksums' ],
-       qr/lock file .* already exists/,
-       'data_checksums is not reported on an online cluster');
-command_ok(
-       [ 'postgres', '-D', $pgdata, '-C', 'work_mem' ],
-       'non-runtime parameter is reported on an online cluster');
-
 # Check corruption of table on default tablespace.
 check_relation_corruption($node, 'corrupt1', 'pg_default');
 

Attachment: signature.asc
Description: PGP signature

Reply via email to