There were a few tests/configurations that the FreeBSD job did under
Cirrus that we didn't carry over yet. I looked into this, and the
attached patch fixes that. Some of these tests are quite important, I
think, so we should put those somewhere.
I moved most of them over to macOS, mainly to keep them all together,
since some things had already been moved there, and the overall run-time
outcome from this seems reasonable.
The "Test running" step could probably be tweaked cosmetically a bit
more. I put in a YAML anchor so we could move it around or duplicate it
more easily, but maybe that's not necessary or useful (and the use of
the DYLD_* environment variable doesn't make it portable anyway). Also,
it's not clear if the "Stop running server" step is needed and exactly
how it should be phrased to be most effective in this new environment.From a067f35829f5db7b7b03d2ac1eed934820597a5c Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <[email protected]>
Date: Wed, 3 Jun 2026 12:47:35 +0200
Subject: [PATCH v7.2.pe] Move more coverage from previously FreeBSD elsewhere
The following testing aspects were previously (Cirrus CI) covered by
the FreeBSD job. Since we currently (GitHub Actions) don't have
FreeBSD support, we move these elsewhere for now:
- RELCACHE_FORCE_RELEASE (moved to macOS)
- ENFORCE_REGRESSION_TEST_NAME_RESTRICTIONS (moved to macOS)
- PG_TEST_INITDB_EXTRA_OPTS test reading/writing/copying of node trees
as well as debug_parallel_query=regress (moved to macOS)
- PG_TEST_PG_UPGRADE_MODE --link (moved to Linux 64-bit (macOS already
tests --clone))
- meson test --setup running (moved to macOS)
---
.github/workflows/pg-ci.yml | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 8594d540f6a..f17ea8d4037 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -484,6 +484,7 @@ jobs:
# Linux Meson, 64 bit
#
# SPECIAL:
+ # - Enables --link for pg_upgrade
# - Uses address sanitizer, (sanitizer failures are typically printed in the
# server log). We test asan with meson rather than autoconf, as it's a bit
# faster at running the tests.
@@ -502,6 +503,7 @@ jobs:
- name: Update Environment
env:
SANITIZER_FLAGS: -fsanitize=address
+ PG_TEST_PG_UPGRADE_MODE: --link
PG_TEST_INITDB_EXTRA_OPTS: -c io_method=io_uring
run: *linux_update_config_cmd
@@ -535,9 +537,11 @@ jobs:
# SPECIAL:
+ # - Uses postgres specific CPPFLAGS that increase test coverage
# - Enables --clone for pg_upgrade and pg_combinebackup
# - Specifies configuration options that test reading/writing/copying of
node trees
# - Specifies debug_parallel_query=regress, to catch related issues during CI
+ # - Also runs tests against a running postgres instance
macos:
name: macOS - Meson
needs: [setup, sanity-check]
@@ -574,6 +578,7 @@ jobs:
CC: ccache cc
CXX: ccache c++
+ CPPFLAGS: -DRELCACHE_FORCE_RELEASE
-DENFORCE_REGRESSION_TEST_NAME_RESTRICTIONS
CFLAGS: -Og -ggdb
CXXFLAGS: -Og -ggdb
PG_TEST_PG_UPGRADE_MODE: --clone
@@ -663,6 +668,30 @@ jobs:
ADDITIONAL_SETUP: ulimit -n 1024
run: *meson_test_world_cmd
+ - name: Test running
+ env:
+ # default is 256, pretty low
+ ADDITIONAL_SETUP: ulimit -n 1024
+ run: &meson_test_running_cmd |
+ ${{case(runner.os == 'Windows', '', 'ulimit -c unlimited')}}
+
+ ${{env.ADDITIONAL_SETUP}}
+
+ meson test ${{env.MTEST_ARGS}} --quiet --suite setup --logbase setup
+ export
DYLD_LIBRARY_PATH="$(pwd)/build/tmp_install/usr/local/pgsql/lib/:$DYLD_LIBRARY_PATH"
+ mkdir -p build/testrun
+ build/tmp_install/usr/local/pgsql/bin/initdb -N build/runningcheck
--no-instructions -A trust
+ echo "include '$(pwd)/src/tools/ci/pg_ci_base.conf'" >>
build/runningcheck/postgresql.conf
+ build/tmp_install/usr/local/pgsql/bin/pg_ctl -c -o '-c fsync=off' -D
build/runningcheck -l build/testrun/runningcheck.log start
+ meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}}
--setup running
+ build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck
stop
+
+ # FIXME This was needed on Cirrus, not clear if still needed on GHA.
+ - name: Stop running server
+ if: failure()
+ run: |
+ build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck
stop || true
+
- name: Core backtraces
if: failure() && !cancelled()
run: src/tools/ci/cores_backtrace.sh macos "$HOME/cores"
base-commit: 273a3c77615e793089b2f41b666b6fcaa970a0c9
prerequisite-patch-id: 0a2de37807149c445a4cd80241a42ee3f5ea79a3
prerequisite-patch-id: fbb888f1b18b110d58732fc73dabd5d7260d3b95
prerequisite-patch-id: 771699edad2daa5f2d9104767c5558f9c972f273
--
2.54.0