e55d733041
This is a workaround for inefficient handling of many setjmps in gcc >= 4.9. Setjmp is used in all error handling, but in the unit tests each test macro contains an error handling block so they add up pretty quickly for large unit tests. Enabling -ftree-coalesce-vars in affected versions reduces build time and memory requirements by nearly an order of magnitude. Even so, compiles are much slower than gcc <= 4.8. We submitted a bug for this at: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87316 Which was marked as a duplicate of: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63155 |
||
---|---|---|
.. | ||
code-count | ||
data | ||
docker | ||
expect | ||
lib/pgBackRestTest | ||
lint | ||
package | ||
src | ||
.gitignore | ||
container.yaml | ||
define.yaml | ||
README.md | ||
test.pl | ||
travis.pl | ||
Vagrantfile |
pgBackRest
Regression, Unit, & Integration Testing
Introduction
pgBackRest uses Docker to run tests and generate documentation. Docker's light-weight virualization 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 that 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 that 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 that pg-version is only applicable to the full
test in the backup
module.
Iterate All Possible Test Combinations:
/backrest/test/test.pl --dry-run