1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2024-12-14 10:13:05 +02:00
pgbackrest/test
David Steele 39fc2b7ad6 v2.20: Bug Fixes
Bug Fixes:

* Fix archive-push/archive-get when PGDATA is symlinked. These commands tried to use cwd() as PGDATA but this would disagree with the path configured in pgBackRest if PGDATA was symlinked. If cwd() does not match the pgBackRest path then chdir() to the path and make sure the next cwd() matches the result from the first call. (Reported by Stephen Frost, Milosz Suchy.)
* Fix reference list when backup.info is reconstructed in expire command. Since the backup command is still using the Perl version of reconstruct this issue will not express unless 1) there is a backup missing from backup.info and 2) the expire command is run directly instead of running after backup as usual. This unlikely combination of events means this is probably not a problem in the field.
* Fix segfault on unexpected EOF in gzip decompression. (Reported by Stephen Frost.)
2019-12-12 08:20:21 -05:00
..
certificate New test containers with static test certificates. 2018-11-21 18:13:37 -05:00
code-count v2.20: Bug Fixes 2019-12-12 08:20:21 -05:00
data Automate generation of WAL and pg_control test files. 2017-11-18 20:02:54 -05:00
expect Remove test point infrastructure. 2019-12-10 13:16:47 -05:00
lib/pgBackRestTest Allow timezones to be explicitly set for testing. 2019-12-11 22:11:04 -05:00
src Allow timezones to be explicitly set for testing. 2019-12-11 22:11:04 -05:00
.gitignore Add configure script for improved multi-platform support. 2019-04-26 08:08:23 -04:00
container.yaml Only install specific lcov version when required. 2019-11-22 19:25:49 -05:00
define.yaml Add functions for building new manifests. 2019-12-08 18:43:47 -05:00
README.md Fix typos in the documentation. 2019-08-26 12:26:00 -04:00
test.pl Allow timezones to be explicitly set for testing. 2019-12-11 22:11:04 -05:00
travis.pl Allow parameters to be passed to travis.pl. 2019-10-15 17:19:42 +02:00
Vagrantfile Only install specific lcov version when required. 2019-11-22 19:25:49 -05:00

pgBackRest
Regression, Unit, & Integration Testing

Introduction

pgBackRest uses Docker to run tests and generate documentation. Docker's light-weight virtualization provides the a good balance between proper OS emulation and performance (especially startup)

A Vagrantfile is provided that contains the complete configuration required to run pgBackRest tests and build documentation. If Vagrant is not suitable then the Vagrantfile still contains the configuration steps required to build a test system.

NOTE: this is not required for normal operation of pgBackRest.

Testing

The easiest way to start testing pgBackRest is with the included Vagrantfile.

Build Vagrant and Logon:

cd test
vagrant up
vagrant ssh

The vagrant up command may take some time as a number of Docker containers must also be built. The vagrant ssh command automatically logs onto the VM.

Run All Tests:

/backrest/test/test.pl

Run Tests for a Specific OS:

/backrest/test/test.pl --vm=co6

Run Tests for a Specific OS and Module:

/backrest/test/test.pl --vm=co6 --module=backup

Run Tests for a Specific OS, Module, and Test:

/backrest/test/test.pl --vm=co6 --module=backup --test=full

Run Tests for a Specific OS, Module, Test, and Run:

/backrest/test/test.pl --vm=co6 --module=backup --test=full --run=1

Run Tests for a Specific OS, Module, Test, and Process Max:

/backrest/test/test.pl --vm=co6 --module=backup --test=full --process-max=4

NOTE: process-max is only applicable to the synthetic and full tests in the backup module.

Run Tests for a Specific OS, Module, Test, Process Max, and Database Version:

/backrest/test/test.pl --vm=co6 --module=backup --test=full --process-max=4 --pg-version=9.4

NOTE: pg-version is only applicable to the full test in the backup module.

Iterate All Possible Test Combinations:

/backrest/test/test.pl --dry-run