I noticed a patch failing in cfbot everywhere except windows: https://commitfest.postgresql.org/36/3476/ | Invalid relcache when ADD PRIMARY KEY USING INDEX
It's because vcregress skips tests which have NO_INSTALLCHECK=1. Is it desirable to enable more module/contrib tests for windows CI ? This does a few, but there's a few others which would require the server to be restarted to set shared_preload_libraries for each module. diff --git a/.cirrus.yml b/.cirrus.yml index 19b3737fa11..c427b468334 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -390,7 +390,7 @@ task: - perl src/tools/msvc/vcregress.pl check parallel startcreate_script: # paths to binaries need backslashes - - tmp_install\bin\pg_ctl.exe initdb -D tmp_check/db -l tmp_check/initdb.log + - tmp_install\bin\pg_ctl.exe initdb -D tmp_check/db -l tmp_check/initdb.log --options=--no-sync - echo include '%TEMP_CONFIG%' >> tmp_check/db/postgresql.conf - tmp_install\bin\pg_ctl.exe start -D tmp_check/db -l tmp_check/postmaster.log test_pl_script: diff --git a/contrib/test_decoding/Makefile b/contrib/test_decoding/Makefile index 9a31e0b8795..14fd847ba7f 100644 --- a/contrib/test_decoding/Makefile +++ b/contrib/test_decoding/Makefile @@ -10,7 +10,7 @@ ISOLATION = mxact delayed_startup ondisk_startup concurrent_ddl_dml \ oldest_xmin snapshot_transfer subxact_without_top concurrent_stream \ twophase_snapshot -REGRESS_OPTS = --temp-config $(top_srcdir)/contrib/test_decoding/logical.conf +REGRESS_OPTS = --temp-config=$(top_srcdir)/contrib/test_decoding/logical.conf ISOLATION_OPTS = --temp-config $(top_srcdir)/contrib/test_decoding/logical.conf # Disabled because these tests require "wal_level=logical", which diff --git a/src/tools/ci/pg_ci_base.conf b/src/tools/ci/pg_ci_base.conf index d8faa9c26c1..52cdb697a57 100644 --- a/src/tools/ci/pg_ci_base.conf +++ b/src/tools/ci/pg_ci_base.conf @@ -12,3 +12,24 @@ log_connections = true log_disconnections = true log_line_prefix = '%m [%p][%b] %q[%a][%v:%x] ' log_lock_waits = true + +# test_decoding +wal_level = logical +max_replication_slots = 4 +logical_decoding_work_mem = 64kB + +# commit_ts +track_commit_timestamp = on + +## worker_spi +#shared_preload_libraries = worker_spi +#worker_spi.database = contrib_regression + +## pg_stat_statements +##shared_preload_libraries=pg_stat_statements + +## test_rls_hooks +#shared_preload_libraries=test_rls_hooks + +## snapshot_too_old +#old_snapshot_threshold = 60min diff --git a/src/tools/msvc/vcregress.pl b/src/tools/msvc/vcregress.pl index 8f3e3fa937b..7e2cc971a42 100644 --- a/src/tools/msvc/vcregress.pl +++ b/src/tools/msvc/vcregress.pl @@ -443,6 +443,7 @@ sub plcheck sub subdircheck { my $module = shift; + my $obey_installcheck = shift || 1; if ( !-d "$module/sql" || !-d "$module/expected" @@ -452,7 +453,7 @@ sub subdircheck } chdir $module; - my @tests = fetchTests(); + my @tests = fetchTests($obey_installcheck); # Leave if no tests are listed in the module. if (scalar @tests == 0) @@ -516,6 +517,14 @@ sub contribcheck my $status = $? >> 8; $mstat ||= $status; } + + subdircheck('test_decoding', -1); + $mstat ||= $? >> 8; + + # The DB would need to be restarted + #subdircheck('pg_stat_statements', -1); + #$mstat ||= $? >> 8; + exit $mstat if $mstat; return; } @@ -530,6 +539,19 @@ sub modulescheck my $status = $? >> 8; $mstat ||= $status; } + + subdircheck('commit_ts', -1); + $mstat ||= $? >> 8; + + subdircheck('test_rls_hooks', -1); + $mstat ||= $? >> 8; + + ## The DB would need to be restarted + #subdircheck('worker_spi', -1); + #$mstat ||= $? >> 8; + + # src/test/modules/snapshot_too_old/Makefile + exit $mstat if $mstat; return; } @@ -726,6 +748,7 @@ sub fetchTests my $m = <$handle>; close($handle); my $t = ""; + my $obey_installcheck = shift || 1; $m =~ s{\\\r?\n}{}g; @@ -733,7 +756,7 @@ sub fetchTests # so bypass its run by returning an empty set of tests. if ($m =~ /^\s*NO_INSTALLCHECK\s*=\s*\S+/m) { - return (); + return () if $obey_installcheck == 1; } if ($m =~ /^REGRESS\s*=\s*(.*)$/gm)