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)


Reply via email to