diff --git a/src/bin/pg_basebackup/t/010_pg_basebackup.pl b/src/bin/pg_basebackup/t/010_pg_basebackup.pl index 91eb84e238..7811093100 100644 --- a/src/bin/pg_basebackup/t/010_pg_basebackup.pl +++ b/src/bin/pg_basebackup/t/010_pg_basebackup.pl @@ -215,16 +215,14 @@ $node->command_ok([ 'pg_basebackup', '-D', "$tempdir/backupR", '-R' ], ok(-f "$tempdir/backupR/recovery.conf", 'recovery.conf was created'); my $recovery_conf = slurp_file "$tempdir/backupR/recovery.conf"; -# using a character class for the final "'" here works around an apparent -# bug in several version of the Msys DTK perl my $port = $node->port; like( $recovery_conf, - qr/^standby_mode = 'on[']$/m, + qr/^standby_mode = 'on'\n/m, 'recovery.conf sets standby_mode'); like( $recovery_conf, - qr/^primary_conninfo = '.*port=$port.*'$/m, + qr/^primary_conninfo = '.*port=$port.*'\n/m, 'recovery.conf sets primary_conninfo'); $node->command_ok( @@ -273,5 +271,5 @@ $node->command_ok( 'pg_basebackup with replication slot and -R runs'); like( slurp_file("$tempdir/backupxs_sl_R/recovery.conf"), - qr/^primary_slot_name = 'slot1'$/m, + qr/^primary_slot_name = 'slot1'\n/m, 'recovery.conf sets primary_slot_name'); diff --git a/src/test/modules/test_pg_dump/t/001_base.pl b/src/test/modules/test_pg_dump/t/001_base.pl index 55f0eb4547..dc90a4aa12 100644 --- a/src/test/modules/test_pg_dump/t/001_base.pl +++ b/src/test/modules/test_pg_dump/t/001_base.pl @@ -193,7 +193,7 @@ my %tests = ( create_sql => 'CREATE EXTENSION test_pg_dump;', regexp => qr/^ \QCREATE EXTENSION IF NOT EXISTS test_pg_dump WITH SCHEMA public;\E - $/xm, + \n/xm, like => { clean => 1, clean_if_exists => 1, @@ -210,7 +210,7 @@ my %tests = ( 'CREATE ROLE regress_dump_test_role' => { create_order => 1, create_sql => 'CREATE ROLE regress_dump_test_role;', - regexp => qr/^CREATE ROLE regress_dump_test_role;$/m, + regexp => qr/^CREATE ROLE regress_dump_test_role;\n/m, like => { pg_dumpall_globals => 1, }, unlike => { binary_upgrade => 1, @@ -231,7 +231,7 @@ my %tests = ( \n\s+\QNO MINVALUE\E \n\s+\QNO MAXVALUE\E \n\s+\QCACHE 1;\E - $/xm, + \n/xm, like => { binary_upgrade => 1, }, unlike => { clean => 1, @@ -252,7 +252,7 @@ my %tests = ( \n\s+\QNO MINVALUE\E \n\s+\QNO MAXVALUE\E \n\s+\QCACHE 1;\E - $/xm, + \n/xm, like => { binary_upgrade => 1, }, unlike => { clean => 1, @@ -270,7 +270,7 @@ my %tests = ( \QCREATE TABLE regress_pg_dump_table (\E \n\s+\Qcol1 integer NOT NULL,\E \n\s+\Qcol2 integer\E - \n\);$/xm, + \n\);\n/xm, like => { binary_upgrade => 1, }, unlike => { clean => 1, @@ -286,7 +286,7 @@ my %tests = ( 'CREATE ACCESS METHOD regress_test_am' => { regexp => qr/^ \QCREATE ACCESS METHOD regress_test_am TYPE INDEX HANDLER bthandler;\E - $/xm, + \n/xm, like => { binary_upgrade => 1, }, unlike => { clean => 1, @@ -303,7 +303,7 @@ my %tests = ( regexp => qr/^ \QCOMMENT ON EXTENSION test_pg_dump \E \QIS 'Test pg_dump with an extension';\E - $/xm, + \n/xm, like => { binary_upgrade => 1, clean => 1, @@ -322,7 +322,7 @@ my %tests = ( \QSELECT pg_catalog.binary_upgrade_set_record_init_privs(true);\E\n \QGRANT SELECT ON TABLE regress_pg_dump_table TO regress_dump_test_role;\E\n \QSELECT pg_catalog.binary_upgrade_set_record_init_privs(false);\E - $/xms, + \n/xms, like => { binary_upgrade => 1, }, unlike => { clean => 1, @@ -340,7 +340,7 @@ my %tests = ( \QSELECT pg_catalog.binary_upgrade_set_record_init_privs(true);\E\n \QGRANT SELECT(col1) ON TABLE regress_pg_dump_table TO PUBLIC;\E\n \QSELECT pg_catalog.binary_upgrade_set_record_init_privs(false);\E - $/xms, + \n/xms, like => { binary_upgrade => 1, }, unlike => { clean => 1, @@ -359,7 +359,7 @@ my %tests = ( TO regress_dump_test_role;', regexp => qr/^ \QGRANT SELECT(col2) ON TABLE regress_pg_dump_table TO regress_dump_test_role;\E - $/xm, + \n/xm, like => { binary_upgrade => 1, clean => 1, @@ -380,7 +380,7 @@ my %tests = ( TO regress_dump_test_role;', regexp => qr/^ \QGRANT USAGE ON SEQUENCE regress_pg_dump_table_col1_seq TO regress_dump_test_role;\E - $/xm, + \n/xm, like => { binary_upgrade => 1, clean => 1, @@ -397,7 +397,7 @@ my %tests = ( 'GRANT USAGE ON regress_pg_dump_seq TO regress_dump_test_role' => { regexp => qr/^ \QGRANT USAGE ON SEQUENCE regress_pg_dump_seq TO regress_dump_test_role;\E - $/xm, + \n/xm, like => { binary_upgrade => 1, }, unlike => { clean => 1, @@ -416,7 +416,7 @@ my %tests = ( FROM PUBLIC;', regexp => qr/^ \QREVOKE SELECT(col1) ON TABLE regress_pg_dump_table FROM PUBLIC;\E - $/xm, + \n/xm, like => { binary_upgrade => 1, clean => 1, @@ -436,7 +436,7 @@ my %tests = ( \QCREATE TABLE test_table (\E \n\s+\Qcol1 integer,\E \n\s+\Qcol2 integer\E - \n\);$/xm, + \n\);\n/xm, like => { binary_upgrade => 1, }, unlike => { clean => 1, @@ -454,7 +454,7 @@ my %tests = ( \QSELECT pg_catalog.binary_upgrade_set_record_init_privs(true);\E\n \QGRANT SELECT ON TABLE test_table TO regress_dump_test_role;\E\n \QSELECT pg_catalog.binary_upgrade_set_record_init_privs(false);\E - $/xms, + \n/xms, like => { binary_upgrade => 1, }, unlike => { clean => 1, @@ -475,7 +475,7 @@ my %tests = ( \n\s+\QNO MINVALUE\E \n\s+\QNO MAXVALUE\E \n\s+\QCACHE 1;\E - $/xm, + \n/xm, like => { binary_upgrade => 1, }, unlike => { clean => 1, @@ -493,7 +493,7 @@ my %tests = ( \QSELECT pg_catalog.binary_upgrade_set_record_init_privs(true);\E\n \QGRANT USAGE ON SEQUENCE test_seq TO regress_dump_test_role;\E\n \QSELECT pg_catalog.binary_upgrade_set_record_init_privs(false);\E - $/xms, + \n/xms, like => { binary_upgrade => 1, }, unlike => { clean => 1, @@ -510,7 +510,7 @@ my %tests = ( regexp => qr/^ \QCREATE TYPE test_type AS (\E \n\s+\Qcol1 integer\E - \n\);$/xm, + \n\);\n/xm, like => { binary_upgrade => 1, }, unlike => { clean => 1, @@ -528,7 +528,7 @@ my %tests = ( \QSELECT pg_catalog.binary_upgrade_set_record_init_privs(true);\E\n \QGRANT ALL ON TYPE test_type TO regress_dump_test_role;\E\n \QSELECT pg_catalog.binary_upgrade_set_record_init_privs(false);\E - $/xms, + \n/xms, like => { binary_upgrade => 1, }, unlike => { clean => 1, @@ -545,7 +545,7 @@ my %tests = ( regexp => qr/^ \QCREATE FUNCTION test_func() RETURNS integer\E \n\s+\QLANGUAGE sql\E - $/xm, + \n/xm, like => { binary_upgrade => 1, }, unlike => { clean => 1, @@ -563,7 +563,7 @@ my %tests = ( \QSELECT pg_catalog.binary_upgrade_set_record_init_privs(true);\E\n \QGRANT ALL ON FUNCTION test_func() TO regress_dump_test_role;\E\n \QSELECT pg_catalog.binary_upgrade_set_record_init_privs(false);\E - $/xms, + \n/xms, like => { binary_upgrade => 1, }, unlike => { clean => 1, @@ -581,7 +581,7 @@ my %tests = ( \QCREATE AGGREGATE test_agg(smallint) (\E \n\s+\QSFUNC = int2_sum,\E \n\s+\QSTYPE = bigint\E - \n\);$/xm, + \n\);\n/xm, like => { binary_upgrade => 1, }, unlike => { clean => 1, @@ -599,7 +599,7 @@ my %tests = ( \QSELECT pg_catalog.binary_upgrade_set_record_init_privs(true);\E\n \QGRANT ALL ON FUNCTION test_agg(smallint) TO regress_dump_test_role;\E\n \QSELECT pg_catalog.binary_upgrade_set_record_init_privs(false);\E - $/xms, + \n/xms, like => { binary_upgrade => 1, }, unlike => { clean => 1, @@ -620,7 +620,7 @@ my %tests = ( regexp => qr/^ \QCREATE TABLE external_tab (\E \n\s+\Qcol1 integer\E - \n\);$/xm, + \n\);\n/xm, like => { binary_upgrade => 1, clean => 1, diff --git a/src/test/perl/README b/src/test/perl/README index 36d41203ce..710a0d8bc3 100644 --- a/src/test/perl/README +++ b/src/test/perl/README @@ -46,6 +46,10 @@ against them and evaluate the results. For example: $node->stop('fast'); +Test::More::like entails use of the qr// operator. Avoid Perl 5.8.8 bug +#39185 by not using the "$" regular expression metacharacter in qr// when also +using the "/m" modifier. Instead of "$", use "\n" or "(?=\n|\z)". + Read the Test::More documentation for more on how to write tests: perldoc Test::More diff --git a/src/tools/msvc/Project.pm b/src/tools/msvc/Project.pm index a4eb653c26..faf1a683f6 100644 --- a/src/tools/msvc/Project.pm +++ b/src/tools/msvc/Project.pm @@ -256,7 +256,7 @@ sub AddDir # Match rules that pull in source files from different directories, eg # pgstrcasecmp.c rint.c snprintf.c: % : $(top_srcdir)/src/port/% my $replace_re = - qr{^([^:\n\$]+\.c)\s*:\s*(?:%\s*: )?\$(\([^\)]+\))\/(.*)\/[^\/]+$}m; + qr{^([^:\n\$]+\.c)\s*:\s*(?:%\s*: )?\$(\([^\)]+\))\/(.*)\/[^\/]+\n}m; while ($mf =~ m{$replace_re}m) { my $match = $1;