David Steele
051c961151
S3 repository support.
2017-06-12 10:52:32 -04:00
David Steele
de7fc37f88
Storage and IO layer refactor:
...
Refactor storage layer to allow for new repository filesystems using drivers. (Reviewed by Cynthia Shang.)
Refactor IO layer to allow for new compression formats, checksum types, and other capabilities using filters. (Reviewed by Cynthia Shang.)
2017-06-09 17:51:41 -04:00
Cynthia Shang
7e982f05f5
Fixed config warnings raised from a remote process causing errors in the master process.
...
Fixed by Cynthia Shang.
2017-05-16 11:28:51 -04:00
David Steele
5296747271
Move backup modules into Backup directory.
2017-05-15 16:01:00 -04:00
David Steele
2a23157bf2
Move modules in Protocol directory in subdirectories.
2017-05-15 11:12:14 -04:00
David Steele
c31da3f961
Moved test and env modules to new directories to avoid namespace conflicts with common tests.
2017-05-12 16:43:04 -04:00
David Steele
4049d59c9e
Fixed issue with --dry-run requiring --vm-out to work properly.
2017-05-12 16:27:06 -04:00
David Steele
979610a07d
Fixed an undefined variable when a module had no uncoverable code exceptions.
2017-04-13 20:10:28 -04:00
David Steele
77ef4fde20
Set --vm-max=2 for CI.
2017-04-13 07:42:45 -04:00
Cynthia Shang
21a000d002
Silence some perl critic warnings.
...
* Variables::RequireNegativeIndice
* Variables::ProhibitUnusedVariables
* Variables::ProhibitAugmentedAssignmentInDeclaration
* Modules::ProhibitConditionalUseStatements
2017-04-10 17:23:39 -04:00
Cynthia Shang
b63ede5614
Added ability to test warning messages.
...
Contributed by Cynthia Shang.
2017-04-10 13:53:19 -04:00
David Steele
3d84f2ce5e
Improvements to Ini.pm.
...
* Refactor Ini.pm to facilitate testing.
* Complete statement/branch coverage for Ini.pm.
* Improved functions used to test/munge manifest and info files.
2017-04-10 13:24:45 -04:00
David Steele
367e06f4be
Coverage testing always enabled on Debian-based containers.
...
* Full coverage is verified when specified.
* Modules marked with partial coverage will error if they are actually fully covered.
* Simplified test representation is DefineTest.
* Added new representation for queries in DefineTest and added API functions.
* Update modules using DefineTest to use new API.
2017-04-10 12:31:30 -04:00
Cynthia Shang
b620e6b282
Improvements and additional tests for stanza-upgrade.
...
Contributed by Cynthia Shang.
2017-04-06 19:36:37 -04:00
David Steele
0da216c034
Require description in every call to testResult() and make iWaitSeconds optional.
2017-04-05 10:50:32 -04:00
David Steele
c7b61a2002
Refactor backupLabel() and add unit tests.
2017-04-05 10:16:16 -04:00
David Steele
b2f43b5601
Allow functions to accept optional parameters as a hash.
...
Refactor File->list() and fileList() to accept optional parameters.
2017-04-04 21:17:19 -04:00
Cynthia Shang
beead043ac
Added stanza-upgrade command.
...
The stanza-upgrade command provides a mechanism for upgrading a stanza after upgrading to a new major version of PostgreSQL.
Contributed by Cynthia Shang.
2017-04-03 10:42:55 -04:00
Cynthia Shang
af7e4f4b4b
Added validation of pgbackrest.conf to display warnings if options are not valid or are not in the correct section.
...
Contributed by Cynthia Shang.
2017-03-22 19:03:28 -04:00
David Steele
5eb585c9ba
Improved truncation when outputting errors logs in the ExecuteTest module.
2017-03-01 14:38:05 -05:00
David Steele
31d2d790bd
Added --retry option.
2017-02-21 22:10:02 -05:00
David Steele
023578c008
Make package tests work with dev builds.
2017-02-21 14:22:03 -05:00
David Steele
0e9bc513c9
Suppress lint on all but the first test.
2017-02-21 12:54:27 -05:00
David Steele
14ca4dac6f
Improved the code and tests for fileManifest().
...
Done to prevent a possible race condition when files are removed by the database while the manifest is being built.
2017-02-21 11:56:55 -05:00
David Steele
01312f6260
Improved formatting of testResult() output.
2017-02-21 11:47:45 -05:00
David Steele
86fee3da18
Continuous integration using travis-ci.
2017-02-21 08:59:23 -05:00
David Steele
56543f7a99
Added package builds to test suite and other improvements:
...
* Automated builds of Debian packages for all supported distributions.
* Added --dev option to aggregate commonly used dev options.
* Added --no-package option to skip package builds.
* C library and packages are built by default, added -smart option to rebuild only when file changes are detected.
* The --libc-only option has been changed to --build-only now that packages builds have been added.
2017-02-17 22:31:16 -05:00
David Steele
ac7ff755b3
Container executions now load the user's environment.
2017-02-16 17:18:48 -05:00
David Steele
e2ac7e1ea6
Fixed a regression introduced in v1.13 that could cause backups to fail.
...
This happened if files were removed (e.g. tables dropped) while the manifest was being built.
Reported by Navid Golpayegani.
2017-02-13 19:59:14 -05:00
David Steele
498f52da09
Improvements to documentation engine:
...
* Documentation can now be built with reusable blocks to reduce duplication.
* Added ability to pass options to containers within the documentation.
* Add proper tag to slightly emphasize proper nouns.
2017-02-10 10:22:05 -05:00
David Steele
cded35791d
Added --log-timestamp option.
...
Allow timestamps to be suppressed in logging. This is primarily used to avoid filters in the automated documentation.
2017-02-05 10:59:49 -05:00
David Steele
8b5f37c2a8
Added archive and backup WAL ranges to the info command.
2017-02-05 10:31:29 -05:00
David Steele
43ada9fb33
Improved, multi-process implementation of asynchronous archiving.
2017-01-27 11:02:27 -05:00
David Steele
2a9ba877e1
Refactor process IO and process master/minion code out from the common protocol code.
2017-01-27 10:06:16 -05:00
David Steele
18db178ac3
Various improvements to the test suite:
...
* Allow logging to be suppressed via logDisable() and logEnable().
* Added more flexibility in initializing and cleaning up after modules and tests.
* testResult() suppresses logging and reports exceptions.
* testException() allows messages to be matched with regular expressions.
* Refactor name/locations of common modules that setup test environments.
2017-01-27 09:42:30 -05:00
David Steele
0e4f51c271
Added integration for testing coverage with Devel::Cover.
2017-01-09 20:49:04 -05:00
David Steele
39744a4f1d
Fixed an issue where a missing user/group on restore could cause an "uninitialized value" error in File->owner().
...
Reported by Leonardo Avellar.
2017-01-05 15:19:56 -05:00
David Steele
4ff2714bf0
Return proper error code when unable to convert a relative path to an absolute path.
...
Suggested by Yogesh Sharma.
2017-01-04 18:39:50 -05:00
David Steele
c8dfc673b8
Moved tests into new modules to better reflect actual usage.
2017-01-04 18:31:16 -05:00
David Steele
e3d63c0252
Allow multiple --module, --test, and --run options to be used for test.pl.
2017-01-04 18:29:13 -05:00
Cynthia Shang
be337c951a
Improvements to stanza-create:
...
* Force only required when a change is needed for backup.info or archive.info.
* Identical files are not overwritten.
2017-01-04 10:12:29 -05:00
David Steele
b91ca11329
Added expect log expression to replace year subdirectories in backup.history.
2017-01-04 10:09:21 -05:00
David Steele
83beab7ec3
Refactor File module to improve test coverage.
...
Added unit tests for low-level functions in the BackupCommon module.
2016-12-23 11:43:26 -05:00
David Steele
5d3473b52d
Refactor File module to improve test coverage.
2016-12-23 08:30:34 -05:00
David Steele
6b2666a9d7
Split test modules into separate files.
...
Makes the code more maintainable. Tests are dynamically loaded by name rather than requiring an if-else block.
2016-12-23 08:22:59 -05:00
Cynthia Shang
974a02dbe4
Improved stanza-create command so that it can repair broken repositories in most cases and is robust enough to be made mandatory.
...
Contributed by Cynthia Shang.
2016-12-20 16:52:20 -05:00
David Steele
36a5349b1c
Added the --checksum-page option.
...
This option allows pgBackRest to validate page checksums in data files when checksums are enabled on PostgreSQL >= 9.3. Note that this functionality requires a C library which may not initially be available in OS packages. The option will automatically be enabled when the library is present and checksums are enabled on the cluster.
2016-12-12 18:54:07 -05:00
David Steele
b4884e5a0b
Fixed an issue where the db-port option specified on the backup server would not be properly passed to the remote unless it was from the first configured database.
...
Reported by Michael Vitale.
2016-12-10 14:05:28 -05:00
David Steele
eff7b46eb1
Various improvements to validation of backup and restore.
2016-12-10 09:11:12 -05:00
David Steele
f818901c0e
Added the --repo-sync option to allow directory syncs in the repository to be disabled.
...
This is for file systems that do not support them, e.g. NTFS
2016-12-10 09:06:45 -05:00