Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Fix 002_pg_upgrade.pl.
authorJeff Davis <jdavis@postgresql.org>
Mon, 11 Mar 2024 20:57:37 +0000 (13:57 -0700)
committerJeff Davis <jdavis@postgresql.org>
Mon, 11 Mar 2024 21:09:07 +0000 (14:09 -0700)
Commit f696c0cd5f caused a test failure in 002_pg_upgrade.pl, because
an earlier s/// operator caused qr// to no longer match the empty
string. Use qr/^$/ instead, which is a better test anyway, because we
expect the stderr to be empty.

Initially this appeared to be a perl bug, but per discussion, it seems
that it was a misunderstanding of how perl works: an empty pattern
uses the last successful pattern. Given how surprising that behavior
is to perl non-experts, we will need to look for similar problems
elsewhere and eliminate the use of empty patterns throughout the
code. For now, address this one instance to fix the buildfarm.

Discussion: https://postgr.es/m/0ef325fa06e7a1605c4e119c4ecb637c67e5fb4e.camel@j-davis.com
Reviewed-by: Tom Lane
src/bin/pg_upgrade/t/002_pg_upgrade.pl

index 78fa319fa71563145f670b339edf5e76b14d7c44..5ef78691cb392111736a0ebef3b743af0068e1d7 100644 (file)
@@ -377,7 +377,7 @@ command_checks_all(
    ],
    1,
    [qr/invalid/],    # pg_upgrade prints errors on stdout :(
-   [qr//],
+   [qr/^$/],
    'invalid database causes failure');
 rmtree($newnode->data_dir . "/pg_upgrade_output.d");