1
0
mirror of https://github.com/postgrespro/pg_probackup.git synced 2026-06-21 01:34:15 +02:00

Merge remote-tracking branch 'origin/REL_2_5' into autotests

This commit is contained in:
Oleg Gurev
2025-11-28 13:19:22 +03:00
11 changed files with 46 additions and 116 deletions
-93
View File
@@ -1,93 +0,0 @@
name: Build Probackup
on:
push:
branches:
- "**"
# Runs triggered by pull requests are disabled to prevent executing potentially unsafe code from public pull requests
# pull_request:
# branches:
# - main
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
build-win2019:
runs-on:
- windows-2019
env:
zlib_dir: C:\dep\zlib
steps:
- uses: actions/checkout@v2
- name: Install pacman packages
run: |
$env:PATH += ";C:\msys64\usr\bin"
pacman -S --noconfirm --needed bison flex
- name: Make zlib
run: |
git clone -b v1.2.11 --depth 1 https://github.com/madler/zlib.git
cd zlib
cmake -DCMAKE_INSTALL_PREFIX:PATH=C:\dep\zlib -G "Visual Studio 16 2019" .
cmake --build . --config Release --target ALL_BUILD
cmake --build . --config Release --target INSTALL
copy C:\dep\zlib\lib\zlibstatic.lib C:\dep\zlib\lib\zdll.lib
copy C:\dep\zlib\bin\zlib.dll C:\dep\zlib\lib
- name: Get Postgres sources
run: git clone -b REL_14_STABLE https://github.com/postgres/postgres.git
# Copy ptrack to contrib to build the ptrack extension
# Convert line breaks in the patch file to LF otherwise the patch doesn't apply
- name: Get Ptrack sources
run: |
git clone -b master --depth 1 https://github.com/postgrespro/ptrack.git
Copy-Item -Path ptrack -Destination postgres\contrib -Recurse
(Get-Content ptrack\patches\REL_14_STABLE-ptrack-core.diff -Raw).Replace("`r`n","`n") | Set-Content ptrack\patches\REL_14_STABLE-ptrack-core.diff -Force -NoNewline
cd postgres
git apply -3 ../ptrack/patches/REL_14_STABLE-ptrack-core.diff
- name: Build Postgres
run: |
$env:PATH += ";C:\msys64\usr\bin"
cd postgres\src\tools\msvc
(Get-Content config_default.pl) -Replace "zlib *=>(.*?)(?=,? *#)", "zlib => '${{ env.zlib_dir }}'" | Set-Content config.pl
cmd.exe /s /c "`"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat`" amd64 && .\build.bat"
- name: Build Probackup
run: cmd.exe /s /c "`"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat`" amd64 && perl .\gen_probackup_project.pl `"${{ github.workspace }}`"\postgres"
- name: Install Postgres
run: |
cd postgres
src\tools\msvc\install.bat postgres_install
- name: Install Testgres
run: |
git clone -b no-port-for --single-branch --depth 1 https://github.com/postgrespro/testgres.git
pip3 install psycopg2 ./testgres
# Grant the Github runner user full control of the workspace for initdb to successfully process the data folder
- name: Test Probackup
run: |
icacls.exe "${{ github.workspace }}" /grant "${env:USERNAME}:(OI)(CI)F"
$env:PATH += ";${{ github.workspace }}\postgres\postgres_install\lib;${{ env.zlib_dir }}\lib"
$Env:LC_MESSAGES = "English"
$Env:PG_CONFIG = "${{ github.workspace }}\postgres\postgres_install\bin\pg_config.exe"
$Env:PGPROBACKUPBIN = "${{ github.workspace }}\postgres\Release\pg_probackup\pg_probackup.exe"
$Env:PG_PROBACKUP_PTRACK = "ON"
If (!$Env:MODE -Or $Env:MODE -Eq "basic") {
$Env:PG_PROBACKUP_TEST_BASIC = "ON"
python -m unittest -v tests
python -m unittest -v tests.init_test
} else {
python -m unittest -v tests.$Env:MODE
}
+15 -10
View File
@@ -1,6 +1,6 @@
os: linux
dist: jammy
dist: noble
language: c
@@ -63,17 +63,21 @@ notifications:
# Default MODE is basic, i.e. all tests with PG_PROBACKUP_TEST_BASIC=ON
env:
- PG_VERSION=16 PG_BRANCH=master PTRACK_PATCH_PG_BRANCH=master
- PG_VERSION=19 PG_BRANCH=master PTRACK_PATCH_PG_BRANCH=master
- PG_VERSION=18 PG_BRANCH=REL_18_STABLE PTRACK_PATCH_PG_BRANCH=REL_18_STABLE
- PG_VERSION=18 PG_BRANCH=REL_18_STABLE PTRACK_PATCH_PG_BRANCH=REL_18_STABLE MODE=full
- PG_VERSION=17 PG_BRANCH=REL_17_STABLE PTRACK_PATCH_PG_BRANCH=REL_17_STABLE
- PG_VERSION=16 PG_BRANCH=REL_16_STABLE PTRACK_PATCH_PG_BRANCH=REL_16_STABLE
- PG_VERSION=15 PG_BRANCH=REL_15_STABLE PTRACK_PATCH_PG_BRANCH=REL_15_STABLE
- PG_VERSION=14 PG_BRANCH=REL_14_STABLE PTRACK_PATCH_PG_BRANCH=REL_14_STABLE
- PG_VERSION=13 PG_BRANCH=REL_13_STABLE PTRACK_PATCH_PG_BRANCH=REL_13_STABLE
- PG_VERSION=12 PG_BRANCH=REL_12_STABLE PTRACK_PATCH_PG_BRANCH=REL_12_STABLE
- PG_VERSION=11 PG_BRANCH=REL_11_STABLE PTRACK_PATCH_PG_BRANCH=REL_11_STABLE
- PG_VERSION=10 PG_BRANCH=REL_10_STABLE
- PG_VERSION=9.6 PG_BRANCH=REL9_6_STABLE
- PG_VERSION=9.5 PG_BRANCH=REL9_5_STABLE
- PG_VERSION=15 PG_BRANCH=REL_15_STABLE PTRACK_PATCH_PG_BRANCH=OFF MODE=backup_test.BackupTest.test_full_backup
- PG_VERSION=15 PG_BRANCH=REL_15_STABLE PTRACK_PATCH_PG_BRANCH=OFF MODE=backup_test.BackupTest.test_full_backup_stream
# - PG_VERSION=12 PG_BRANCH=REL_12_STABLE PTRACK_PATCH_PG_BRANCH=REL_12_STABLE
# - PG_VERSION=11 PG_BRANCH=REL_11_STABLE PTRACK_PATCH_PG_BRANCH=REL_11_STABLE
# - PG_VERSION=10 PG_BRANCH=REL_10_STABLE
# - PG_VERSION=9.6 PG_BRANCH=REL9_6_STABLE
# - PG_VERSION=9.5 PG_BRANCH=REL9_5_STABLE
# - PG_VERSION=18 PG_BRANCH=REL_18_STABLE PTRACK_PATCH_PG_BRANCH=OFF MODE=backup_test.BackupTest.test_full_backup
# - PG_VERSION=18 PG_BRANCH=REL_18_STABLE PTRACK_PATCH_PG_BRANCH=OFF MODE=backup_test.BackupTest.test_full_backup_stream
# - PG_VERSION=13 PG_BRANCH=REL_13_STABLE PTRACK_PATCH_PG_BRANCH=REL_13_STABLE MODE=backup
# - PG_VERSION=13 PG_BRANCH=REL_13_STABLE PTRACK_PATCH_PG_BRANCH=REL_13_STABLE MODE=catchup
# - PG_VERSION=13 PG_BRANCH=REL_13_STABLE PTRACK_PATCH_PG_BRANCH=REL_13_STABLE MODE=checkdb
@@ -92,7 +96,8 @@ env:
jobs:
allow_failures:
- if: env(PG_BRANCH) = master
- if: env(PG_BRANCH) = REL9_5_STABLE
- if: env(MODE) = full
# - if: env(PG_BRANCH) = REL9_5_STABLE
# - if: env(MODE) IN (archive, backup, delta, locking, merge, replica, retention, restore)
# Only run CI for master branch commits to limit our travis usage
+2 -2
View File
@@ -1104,7 +1104,7 @@ class CfsBackupNoEncTest(ProbackupTest, unittest.TestCase):
list_data_files = find_by_pattern(
[self.get_tblspace_path(self.node, tblspace_name)],
'^.*/\d+$')
r'^.*/\d+$')
self.assertTrue(
list_data_files,
"ERROR: Files of data not found into tablespace dir"
@@ -1166,7 +1166,7 @@ class CfsBackupNoEncTest(ProbackupTest, unittest.TestCase):
list_data_files = find_by_pattern(
[self.get_tblspace_path(self.node, tblspace_name)],
'^.*/\d+$')
r'^.*/\d+$')
self.assertTrue(
list_data_files,
"ERROR: Files of data not found into tablespace dir"
+2 -2
View File
@@ -486,7 +486,7 @@ class DeleteTest(ProbackupTest, unittest.TestCase):
# @unittest.skip("skip")
def test_delete_multiple_descendants(self):
"""
r"""
PAGEb3
| PAGEa3
PAGEb2 /
@@ -654,7 +654,7 @@ class DeleteTest(ProbackupTest, unittest.TestCase):
# @unittest.skip("skip")
def test_delete_multiple_descendants_dry_run(self):
"""
r"""
PAGEa3
PAGEa2 /
\ /
+1
View File
@@ -214,6 +214,7 @@ class FalsePositive(ProbackupTest, unittest.TestCase):
@y.sokolov: looks like this test should pass.
So I commented 'expectedFailure'
"""
self._check_gdb_flag_or_skip_test()
backup_dir = os.path.join(self.tmp_path, self.module_name, self.fname, 'backup')
node = self.make_simple_node(
base_dir=os.path.join(self.module_name, self.fname, 'node'),
+1 -1
View File
@@ -2429,7 +2429,7 @@ class IncrRestoreTest(ProbackupTest, unittest.TestCase):
"""
Check that failed incremental restore can be restarted
"""
self._check_gdb_flag_or_skip_test
self._check_gdb_flag_or_skip_test()
node = self.make_simple_node('node',
set_replication=True,
initdb_params=['--data-checksums'])
+1 -1
View File
@@ -1950,7 +1950,7 @@ class MergeTest(ProbackupTest, unittest.TestCase):
# @unittest.skip("skip")
def test_merge_multiple_descendants(self):
"""
r"""
PAGEb3
| PAGEa3
PAGEb2 /
+1 -1
View File
@@ -3866,7 +3866,7 @@ class RestoreTest(ProbackupTest, unittest.TestCase):
"""
Check that partially restored PostgreSQL instance cannot be started
"""
self._check_gdb_flag_or_skip_test
self._check_gdb_flag_or_skip_test()
node = self.make_simple_node('node',
set_replication=True,
initdb_params=['--data-checksums'])
+2 -2
View File
@@ -714,7 +714,7 @@ class RetentionTest(ProbackupTest, unittest.TestCase):
# @unittest.skip("skip")
def test_basic_window_merge_multiple_descendants(self):
"""
r"""
PAGEb3
| PAGEa3
-----------------------------retention window
@@ -970,7 +970,7 @@ class RetentionTest(ProbackupTest, unittest.TestCase):
# @unittest.skip("skip")
def test_basic_window_merge_multiple_descendants_1(self):
"""
r"""
PAGEb3
| PAGEa3
-----------------------------retention window
+6 -1
View File
@@ -39,6 +39,11 @@ cd postgres # Go to postgres dir
if [ "$PG_PROBACKUP_PTRACK" = "ON" ]; then
git apply -3 contrib/ptrack/patches/${PTRACK_PATCH_PG_BRANCH}-ptrack-core.diff
fi
if [ "$PG_BRANCH" = "REL_18_STABLE" ]; then
git apply -3 ../patches/${PG_BRANCH}_pg_probackup.patch
fi
CC='ccache gcc' CFLAGS="-Og" ./configure --prefix=$PGHOME \
--cache-file=~/.ccache/configure-cache \
--enable-debug --enable-cassert --enable-depend \
@@ -63,4 +68,4 @@ if [ ! -d "contrib/amcheck" ]; then
make -C contrib/amcheck install
fi
pip3 install testgres
pip3 install -r ../tests/requirements.txt
+15 -3
View File
@@ -21,6 +21,10 @@ if [ -z ${PGPROBACKUP_GDB+x} ]; then
PGPROBACKUP_GDB=ON
fi
if [ -z ${PG_PROBACKUP_PTRACK+x} ]; then
PG_PROBACKUP_PTRACK=ON
fi
echo "############### Testing:"
echo PG_PROBACKUP_PARANOIA=${PG_PROBACKUP_PARANOIA}
echo ARCHIVE_COMPRESSION=${ARCHIVE_COMPRESSION}
@@ -30,12 +34,20 @@ echo PGPROBACKUP_SSH_REMOTE=${PGPROBACKUP_SSH_REMOTE}
echo PGPROBACKUP_GDB=${PGPROBACKUP_GDB}
echo PG_PROBACKUP_PTRACK=${PG_PROBACKUP_PTRACK}
#Run Full tests only if FULL_TESTS=ON e.g. for master branch
if [ "$MODE" = "full" ] && [ -z ${FULL_TESTS} ]; then
exit
fi
if [ "$MODE" = "basic" ]; then
export PG_PROBACKUP_TEST_BASIC=ON
echo PG_PROBACKUP_TEST_BASIC=${PG_PROBACKUP_TEST_BASIC}
python3 -m unittest -v tests
python3 -m unittest -v tests.init_test
python3 -m pytest -v -n4 -k "test_basic"
python3 -m pytest -v -n4 -k "init_test.py"
elif [ "$MODE" = "full" ]; then
echo PG_PROBACKUP_TEST_BASIC=${PG_PROBACKUP_TEST_BASIC}
python3 -m pytest -v -n4
else
echo PG_PROBACKUP_TEST_BASIC=${PG_PROBACKUP_TEST_BASIC}
python3 -m unittest -v tests.$MODE
python3 -m pytest -v -n4 -k "$MODE"
fi