From: Justin Pryzby Date: Sat, 19 Feb 2022 13:41:36 -0600 Subject: [PATCH 10/21] vcregress: run alltaptests in parallel ci-os-only: windows The test changes are needed to avoid these failures: https://github.com/justinpryzby/postgres/runs/5174636590 [15:59:59.408] Bailout called. Further testing stopped: could not create test directory "c:/cirrus/tmp_check/t_C:\cirrus\src\bin\pgbench\t\002_pgbench_no_server_stuff": Invalid argument [15:59:59.408] FAILED--Further testing stopped: could not create test directory "c:/cirrus/tmp_check/t_C:\cirrus\src\bin\pgbench\t\002_pgbench_no_server_stuff": Invalid argument https://github.com/justinpryzby/postgres/runs/5174788205 [16:37:09.891] # Failed test 'reading traces/disallowed_in_pipeline.trace: could not open "traces/disallowed_in_pipeline.trace": The system cannot find the path specified at C:\cirrus\src\test\modules\libpq_pipeline\t\001_libpq_pipeline.pl line 70. https://github.com/justinpryzby/postgres/runs/5174877506 pg_regress: could not open file "../regress/parallel_schedule" for reading: No such file or directory XXX: avoid breaking src/bin/psql/t/010_tab_completion.pl: See also: f4ce6c4d3a30ec3a12c7f64b90a6fc82887ddd7b 795862c280c5949bafcd8c44543d887fd32b590a db973ffb3ca43e65a0bf15175a35184a53bf977d --- src/bin/pg_upgrade/t/002_pg_upgrade.pl | 2 +- src/bin/pgbench/t/002_pgbench_no_server.pl | 4 ++-- .../modules/libpq_pipeline/t/001_libpq_pipeline.pl | 3 ++- src/test/modules/test_misc/t/003_check_guc.pl | 2 +- src/test/recovery/t/027_stream_regress.pl | 5 +++-- src/tools/msvc/vcregress.pl | 14 ++++---------- 6 files changed, 13 insertions(+), 17 deletions(-) diff --git a/src/bin/pg_upgrade/t/002_pg_upgrade.pl b/src/bin/pg_upgrade/t/002_pg_upgrade.pl index 3f11540e189..90bfcfed026 100644 --- a/src/bin/pg_upgrade/t/002_pg_upgrade.pl +++ b/src/bin/pg_upgrade/t/002_pg_upgrade.pl @@ -64,7 +64,7 @@ $oldnode->init(extra => [ '--wal-segsize', '1', '--allow-group-access' ]); $oldnode->start; # The default location of the source code is the root of this directory. -my $srcdir = abs_path("../../.."); +my $srcdir = abs_path("$ENV{TESTDIR}/../../.."); # Set up the data of the old instance with a dump or pg_regress. if (defined($ENV{olddump})) diff --git a/src/bin/pgbench/t/002_pgbench_no_server.pl b/src/bin/pgbench/t/002_pgbench_no_server.pl index 50bde7dd0fc..bbbb49bb23d 100644 --- a/src/bin/pgbench/t/002_pgbench_no_server.pl +++ b/src/bin/pgbench/t/002_pgbench_no_server.pl @@ -8,12 +8,12 @@ use strict; use warnings; +use File::Basename; use PostgreSQL::Test::Utils; use Test::More; # create a directory for scripts -my $testname = $0; -$testname =~ s,.*/,,; +my $testname = basename($0); $testname =~ s/\.pl$//; my $testdir = "$PostgreSQL::Test::Utils::tmp_check/t_${testname}_stuff"; diff --git a/src/test/modules/libpq_pipeline/t/001_libpq_pipeline.pl b/src/test/modules/libpq_pipeline/t/001_libpq_pipeline.pl index 4cb1170438a..e5c1c0bfa89 100644 --- a/src/test/modules/libpq_pipeline/t/001_libpq_pipeline.pl +++ b/src/test/modules/libpq_pipeline/t/001_libpq_pipeline.pl @@ -49,7 +49,8 @@ for my $testname (@tests) my $expected; my $result; - $expected = slurp_file_eval("traces/$testname.trace"); + my $inputdir = "$ENV{'TESTDIR'}"; + $expected = slurp_file_eval("$inputdir/traces/$testname.trace"); next unless $expected ne ""; $result = slurp_file_eval($traceout); next unless $result ne ""; diff --git a/src/test/modules/test_misc/t/003_check_guc.pl b/src/test/modules/test_misc/t/003_check_guc.pl index 60459ef759e..167b6ea44b7 100644 --- a/src/test/modules/test_misc/t/003_check_guc.pl +++ b/src/test/modules/test_misc/t/003_check_guc.pl @@ -35,7 +35,7 @@ my @not_in_sample_array = split("\n", lc($not_in_sample)); # TAP tests are executed in the directory of the test, in the source tree, # even for VPATH builds, so rely on that to find postgresql.conf.sample. -my $rootdir = "../../../.."; +my $rootdir = "$ENV{TESTDIR}/../../../.."; my $sample_file = "$rootdir/src/backend/utils/misc/postgresql.conf.sample"; # List of all the GUCs found in the sample file. diff --git a/src/test/recovery/t/027_stream_regress.pl b/src/test/recovery/t/027_stream_regress.pl index fdb4ea0bf50..c1ec234d607 100644 --- a/src/test/recovery/t/027_stream_regress.pl +++ b/src/test/recovery/t/027_stream_regress.pl @@ -70,10 +70,11 @@ my $rc = . $node_primary->host . " " . "--port=" . $node_primary->port . " " - . "--schedule=../regress/parallel_schedule " + . "--schedule=\"$dlpath/parallel_schedule\" " . "--max-concurrent-tests=20 " - . "--inputdir=../regress " + . "--inputdir=\"$dlpath\" " . "--outputdir=\"$outputdir\""); + if ($rc != 0) { # Dump out the regression diffs file, if there is one diff --git a/src/tools/msvc/vcregress.pl b/src/tools/msvc/vcregress.pl index 5dcc3419ad7..49168e298ac 100644 --- a/src/tools/msvc/vcregress.pl +++ b/src/tools/msvc/vcregress.pl @@ -328,8 +328,6 @@ sub alltaptests { InstallTemp(); - my $mstat = 0; - # Find out all the existing TAP tests by looking for t/ directories # in the tree. my @tap_dirs = (); @@ -343,14 +341,10 @@ sub alltaptests }, @top_dir); - # Process each test - foreach my $test_path (@tap_dirs) - { - my $dir = dirname($test_path); - my $status = tap_check($dir); - $mstat ||= $status; - } - exit $mstat if $mstat; + # Run all the tap tests in a single prove instance for better performance + $ENV{PROVE_TESTS} = "@tap_dirs"; + my $status = tap_check('PROVE_FLAGS=--ext=.pl', "$topdir"); + exit $status if $status; return; } -- 2.17.1 --STPqjqpCrtky8aYs Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0011-cirrus-make-DebugInformationFormat-OldStyle-for-CI-b.patch"