You've already forked pgbackrest
mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2026-10-23 21:28:56 +03:00
Format 6 derives encryption keys from the passphrase with SHA-256 rather than SHA-1. Older repositories keep SHA-1, since the migration does not rewrite the files they already encrypted. The digest is picked when a passphrase is generated rather than at each use, so it is stored with the passphrase in CipherSpec and defaults to SHA-256. A passphrase outlives the format of the file it is stored in, so the format cannot decide how the key is derived. Info files at format 6 store cipher-digest beside cipher-pass, and a passphrase stored without one derives with SHA-1. stanza-upgrade writes back the digest the passphrase already had, so archives and backups from before the migration still load. Only a new passphrase gets SHA-256: the one for a stanza created at format 6, or for the manifest of a full backup written at it. The info file has the same problem in reverse. Its format sits inside the content that the passphrase decrypts, so a reader would have to decrypt the file to find out how to decrypt it. Format 6 puts a plaintext header in front instead: PGBR, the three-digit format, and a spare byte for later. It goes where the OpenSSL Salted__ magic used to go and is the same eight bytes, so the salt still starts in the same place. A file that starts with the magic came from format 5, the only format older than the header. The header format is checked before anything is decrypted, then compared against the format found in the content, so a file stitched together from two others is rejected rather than half read. The format constants move out of version.h into a new common/format, along with repoFormatValidate(), repoFormatDigest(), and CipherBlockFormat. That filter reads the header, builds a block cipher with the digest the format calls for, and streams the rest of the file through it. The block cipher no longer knows anything about repositories: it takes the digest from the spec and takes what sits in front of the content as a parameter. Verify checksums info files as stored rather than as decrypted, since the header has to come off before decryption can start. A file and its copy are written from the same bytes, so comparing the two still works. In an encrypted repository created by a Perl version the file and its copy are separate encryptions, so their checksums differ and verify reports it at detail level. A log line is better than a separate code path for repositories with seven year old backups.
1365 lines
44 KiB
YAML
1365 lines
44 KiB
YAML
# **********************************************************************************************************************************
|
|
# Test Definition
|
|
#
|
|
# Contains definitions for all unit, integration, performance, and tool tests.
|
|
#
|
|
# Each type is a list of test modules, each named for the path of the test module it defines, e.g. common/type/string is
|
|
# test/src/module/common/type/stringTest.c. Every module must have a name and a C module must also have a total. If this total does
|
|
# not match the actual number of tests in the module then an error will be thrown. A tool test is python and the rest are C.
|
|
#
|
|
# An entry that sets only options and defines no test is not a test module but the options that every module under its path
|
|
# inherits, e.g. the "build" entry sets the vms every module under build/ runs on. It must be declared before those modules and a
|
|
# module may override what it inherits. An option is only valid for one type, so each is documented with the type it belongs to.
|
|
#
|
|
# The keys below define a test module:
|
|
# * define - defines for C code (will also be applied to the test harness)
|
|
# * binReq - is the pgbackrest binary required for this test?
|
|
# * containerReq - is this test required to run in a container?
|
|
# * coverage - a list of code modules that the test provides coverage for. A code module may be covered by multiple tests. That
|
|
# means you must run all the tests by providing the --module option multiple times to get full coverage on the code module.
|
|
# If a code module contains only data it should be marked noCode (e.g. - help/help.auto: noCode). If a code module is
|
|
# included in another code module it should be marked as included (e.g. - md5.vendor: included).
|
|
# * feature - Defines a feature that is now available in the harness. For example, the "error" feature defines HRN_FEATURE_ERROR
|
|
# used to automatically check for errors in later tests. The common/error/error test is not able to access this error
|
|
# handling because it is used to implement the error handling, so it must do error testing in a more primitive way.
|
|
# * harness - Adds a harness module that contains functions to aid in testing. For example, the "log" harness includes the
|
|
# harness/log module to aid in expect log testing.
|
|
# * shim - list of modules that are shimmed in the harness, included in the order listed. This allows the harness to access
|
|
# static elements of the module to provide additional services for unit testing. An entry is either a bare module name or a
|
|
# map with a name and a 'function' list. In the latter case the listed functions in the C module will be appended with
|
|
# _SHIMMED and an implementation with the same function signature must be provided in the harness. Generally speaking this
|
|
# function will default to calling the original function, but after some initialization the shim may implement other logic
|
|
# that is useful for unit testing.
|
|
# * depend - Source modules that this test depends on that have not already been included in prior tests via coverage. Ideally
|
|
# this option would never be used because it is essentially documenting cross-dependencies in the code.
|
|
# * total - total tests in the module
|
|
# * include - modules to include directly into test.c (all files in coverage are automatically included)
|
|
# This is useful when a module's internal data needs to be manipulated for testing but no coverage is added by the test.
|
|
# **********************************************************************************************************************************
|
|
|
|
# **********************************************************************************************************************************
|
|
# Unit tests
|
|
# **********************************************************************************************************************************
|
|
unit:
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/error/error
|
|
total: 9
|
|
feature: error
|
|
harness:
|
|
name: error
|
|
shim:
|
|
- common/error/error
|
|
|
|
coverage:
|
|
- common/error/error
|
|
- common/error/error.auto: noCode
|
|
|
|
depend:
|
|
- common/stackTrace
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/stack-trace
|
|
total: 4
|
|
feature: stackTrace
|
|
harness:
|
|
name: stackTrace
|
|
shim:
|
|
- name: common/stackTrace
|
|
function:
|
|
- stackTraceBackCallback
|
|
|
|
coverage:
|
|
- common/stackTrace
|
|
|
|
depend:
|
|
- common/debug
|
|
- common/type/stringStatic
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/assert/off
|
|
total: 1
|
|
define: -DNDEBUG
|
|
|
|
coverage:
|
|
- common/assert: noCode
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/debug/off
|
|
total: 1
|
|
define: -DNDEBUG
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/assert/on
|
|
feature: assert
|
|
total: 1
|
|
|
|
coverage:
|
|
- common/assert: noCode
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/type/convert
|
|
total: 13
|
|
|
|
coverage:
|
|
- common/type/convert
|
|
|
|
depend:
|
|
- common/time
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/type/c
|
|
total: 2
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/time
|
|
total: 3
|
|
harness:
|
|
name: time
|
|
shim:
|
|
- name: common/time
|
|
function:
|
|
- timeMSec
|
|
|
|
coverage:
|
|
- common/time
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/mem-context
|
|
total: 8
|
|
feature: memContext
|
|
|
|
coverage:
|
|
- common/memContext
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/encode
|
|
total: 3
|
|
|
|
coverage:
|
|
- common/encode
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/type/object
|
|
total: 1
|
|
|
|
coverage:
|
|
- common/type/object
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/type/blob
|
|
total: 1
|
|
|
|
coverage:
|
|
- common/type/blob
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/type/string
|
|
total: 26
|
|
feature: string
|
|
|
|
coverage:
|
|
- test/harness/string
|
|
- common/type/string: included
|
|
- common/type/stringZ
|
|
- common/type/stringId
|
|
- common/type/stringList
|
|
|
|
depend:
|
|
- common/type/buffer
|
|
- common/type/keyValue
|
|
- common/type/list
|
|
- common/type/variant
|
|
- common/type/variantList
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/error/retry
|
|
total: 1
|
|
harness:
|
|
name: errorRetry
|
|
shim:
|
|
- name: common/error/retry
|
|
function:
|
|
- errRetryMessage
|
|
|
|
coverage:
|
|
- common/error/retry
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/type/list
|
|
total: 4
|
|
|
|
coverage:
|
|
- common/type/list
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/type/buffer
|
|
total: 5
|
|
|
|
coverage:
|
|
- common/type/buffer
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/type/variant
|
|
total: 12
|
|
|
|
coverage:
|
|
- common/type/variant
|
|
- common/type/variantList
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/reg-exp
|
|
total: 3
|
|
|
|
coverage:
|
|
- test/harness/regExp
|
|
- common/regExp: included
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/log
|
|
total: 6
|
|
feature: log
|
|
harness:
|
|
name: log
|
|
shim:
|
|
- common/log
|
|
|
|
coverage:
|
|
- common/log
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/debug/on
|
|
total: 4
|
|
feature: debug
|
|
|
|
coverage:
|
|
- common/debug
|
|
- common/type/stringStatic
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/fork
|
|
total: 1
|
|
|
|
coverage:
|
|
- common/fork
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/wait
|
|
total: 1
|
|
|
|
coverage:
|
|
- common/wait
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/type/json
|
|
total: 2
|
|
|
|
coverage:
|
|
- common/type/json
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/type/key-value
|
|
total: 2
|
|
|
|
coverage:
|
|
- common/type/keyValue
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/type/xml
|
|
total: 1
|
|
|
|
coverage:
|
|
- common/type/xml
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/stat
|
|
total: 1
|
|
feature: STAT
|
|
|
|
coverage:
|
|
- common/stat
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/user
|
|
total: 1
|
|
|
|
coverage:
|
|
- common/user
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/io/io
|
|
total: 6
|
|
feature: IO
|
|
harness:
|
|
- pack
|
|
- name: fd
|
|
shim:
|
|
- name: common/io/fd
|
|
function:
|
|
- fdReady
|
|
- name: common/io/fdWrite
|
|
function:
|
|
- ioFdWriteInternal
|
|
|
|
coverage:
|
|
- common/io/bufferRead
|
|
- common/io/bufferWrite
|
|
- common/io/fd
|
|
- common/io/fdRead
|
|
- common/io/fdWrite
|
|
- common/io/filter/buffer
|
|
- common/io/filter/filter
|
|
- common/io/filter/group
|
|
- common/io/filter/sink
|
|
- common/io/filter/size
|
|
- common/io/io
|
|
- common/io/limitRead
|
|
- common/io/read
|
|
- common/io/write
|
|
|
|
depend:
|
|
- common/type/pack
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/type/pack
|
|
total: 1
|
|
|
|
coverage:
|
|
- common/type/pack
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/compress
|
|
total: 5
|
|
|
|
coverage:
|
|
- common/compress/bz2/common
|
|
- common/compress/bz2/compress
|
|
- common/compress/bz2/decompress
|
|
- common/compress/gz/common
|
|
- common/compress/gz/compress
|
|
- common/compress/gz/decompress
|
|
- common/compress/lz4/common
|
|
- common/compress/lz4/compress
|
|
- common/compress/lz4/decompress
|
|
- common/compress/zst/common
|
|
- common/compress/zst/compress
|
|
- common/compress/zst/decompress
|
|
- common/compress/common
|
|
- common/compress/helper
|
|
|
|
depend:
|
|
- storage/posix/read
|
|
- storage/posix/storage
|
|
- storage/posix/write
|
|
- storage/iterator
|
|
- storage/list
|
|
- storage/read
|
|
- storage/readMulti
|
|
- storage/storage
|
|
- storage/write
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/crypto
|
|
total: 4
|
|
feature: STORAGE
|
|
harness:
|
|
name: storage
|
|
shim:
|
|
- storage/posix/storage
|
|
|
|
coverage:
|
|
- common/crypto/cipherBlock
|
|
- common/crypto/common
|
|
- common/crypto/hash
|
|
- common/crypto/md5.vendor: included
|
|
- common/crypto/spec
|
|
- common/crypto/xxhash
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/format
|
|
total: 3
|
|
|
|
coverage:
|
|
- common/format/cipherBlockFormat
|
|
- common/format/format
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/io/tls
|
|
total: 6
|
|
feature: SOCKET
|
|
harness:
|
|
- server
|
|
- name: socket
|
|
shim:
|
|
- name: common/io/socket/client
|
|
function:
|
|
- sckClientOpen
|
|
- sckClientOpenWait
|
|
|
|
coverage:
|
|
- common/io/client
|
|
- common/io/server
|
|
- common/io/session
|
|
- common/io/tls/client
|
|
- common/io/tls/common
|
|
- common/io/tls/server
|
|
- common/io/tls/session
|
|
- common/io/socket/address
|
|
- common/io/socket/client
|
|
- common/io/socket/common
|
|
- common/io/socket/server
|
|
- common/io/socket/session
|
|
|
|
include:
|
|
- common/io/fdRead
|
|
- common/io/read
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/io/http
|
|
total: 7
|
|
|
|
coverage:
|
|
- common/io/http/client
|
|
- common/io/http/common
|
|
- common/io/http/header
|
|
- common/io/http/query
|
|
- common/io/http/request
|
|
- common/io/http/response
|
|
- common/io/http/session
|
|
- common/io/http/url
|
|
|
|
include:
|
|
- common/io/socket/address
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/exec
|
|
total: 2
|
|
|
|
coverage:
|
|
- test/harness/exec
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/ini
|
|
total: 2
|
|
|
|
coverage:
|
|
- common/ini
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: common/lock
|
|
total: 1
|
|
harness:
|
|
- name: config
|
|
shim:
|
|
- config/load
|
|
- name: lock
|
|
shim:
|
|
- name: common/lock
|
|
function:
|
|
- lockInit
|
|
- name: storageHelper
|
|
shim:
|
|
- name: storage/helper
|
|
function:
|
|
- storageRepoGet
|
|
|
|
coverage:
|
|
- common/lock
|
|
|
|
depend:
|
|
- command/lock
|
|
- config/common
|
|
- config/config
|
|
- config/parse
|
|
- config/exec
|
|
- config/load
|
|
- config/protocol
|
|
- command/command
|
|
- postgres/interface
|
|
- postgres/interface/crc32
|
|
- postgres/interface/page
|
|
- protocol/client
|
|
- protocol/helper
|
|
- protocol/server
|
|
- storage/helper
|
|
- storage/remote/read
|
|
- storage/remote/readMulti
|
|
- storage/remote/protocol
|
|
- storage/remote/storage
|
|
- storage/remote/write
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: protocol/protocol
|
|
total: 8
|
|
harness:
|
|
name: protocol
|
|
shim:
|
|
- name: protocol/helper
|
|
function:
|
|
- protocolLocalExec
|
|
- protocolRemoteExec
|
|
containerReq: true
|
|
binReq: true
|
|
|
|
coverage:
|
|
- protocol/client
|
|
- protocol/helper
|
|
- protocol/parallel
|
|
- protocol/parallelJob
|
|
- protocol/server
|
|
|
|
include:
|
|
- test/harness/exec
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: config/parse
|
|
total: 6
|
|
|
|
coverage:
|
|
- config/common
|
|
- config/config
|
|
- config/parse
|
|
- config/parse.auto: noCode
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: config/load
|
|
total: 4
|
|
|
|
coverage:
|
|
- config/load
|
|
|
|
include:
|
|
- common/io/socket/common
|
|
- common/io/tls/common
|
|
- common/user
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: config/exec
|
|
total: 1
|
|
|
|
coverage:
|
|
- config/exec
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: config/protocol
|
|
total: 1
|
|
|
|
coverage:
|
|
- config/protocol
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: storage/posix
|
|
total: 24
|
|
|
|
coverage:
|
|
- storage/cifs/helper
|
|
- storage/cifs/storage
|
|
- storage/posix/read
|
|
- storage/posix/storage
|
|
- storage/posix/write
|
|
- storage/helper
|
|
- storage/iterator
|
|
- storage/list
|
|
- storage/read
|
|
- storage/storage
|
|
- storage/write
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: storage/remote
|
|
total: 12
|
|
|
|
coverage:
|
|
- storage/remote/read
|
|
- storage/remote/readMulti
|
|
- storage/remote/protocol
|
|
- storage/remote/storage
|
|
- storage/remote/write
|
|
- storage/helper
|
|
- storage/readMulti
|
|
- storage/storage
|
|
|
|
include:
|
|
- protocol/client
|
|
- storage/read
|
|
- storage/write
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: storage/azure
|
|
total: 4
|
|
|
|
coverage:
|
|
- storage/azure/helper
|
|
- storage/azure/read
|
|
- storage/azure/storage
|
|
- storage/azure/write
|
|
|
|
include:
|
|
- storage/helper
|
|
- storage/readMulti
|
|
- storage/storage
|
|
- storage/write
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: storage/gcs
|
|
total: 4
|
|
|
|
coverage:
|
|
- storage/gcs/helper
|
|
- storage/gcs/read
|
|
- storage/gcs/storage
|
|
- storage/gcs/write
|
|
|
|
include:
|
|
- storage/helper
|
|
- storage/readMulti
|
|
- storage/storage
|
|
- storage/write
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: storage/s3
|
|
total: 3
|
|
|
|
coverage:
|
|
- storage/s3/helper
|
|
- storage/s3/read
|
|
- storage/s3/storage
|
|
- storage/s3/write
|
|
- storage/read
|
|
- storage/readMulti
|
|
- storage/write
|
|
- storage/helper
|
|
|
|
include:
|
|
- storage/storage
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: storage/sftp
|
|
total: 14
|
|
harness:
|
|
name: libSsh2
|
|
integration: false
|
|
|
|
coverage:
|
|
- storage/sftp/helper
|
|
- storage/sftp/read
|
|
- storage/sftp/storage
|
|
- storage/sftp/write
|
|
|
|
include:
|
|
- storage/helper
|
|
- storage/read
|
|
- storage/storage
|
|
- storage/write
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: postgres/client
|
|
total: 1
|
|
harness:
|
|
name: pq
|
|
integration: false
|
|
|
|
coverage:
|
|
- postgres/client
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: postgres/interface
|
|
total: 10
|
|
harness:
|
|
name: postgres
|
|
shim:
|
|
- postgres/interface
|
|
|
|
coverage:
|
|
- postgres/interface
|
|
- postgres/interface/crc32
|
|
- postgres/interface/page
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: info/info
|
|
total: 3
|
|
harness: info
|
|
|
|
coverage:
|
|
- info/info
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: info/info-pg
|
|
total: 2
|
|
|
|
coverage:
|
|
- info/infoPg
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: info/info-archive
|
|
total: 2
|
|
|
|
coverage:
|
|
- info/infoArchive
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: info/manifest
|
|
total: 6
|
|
harness:
|
|
name: manifest
|
|
shim:
|
|
- info/manifest/manifest
|
|
|
|
coverage:
|
|
- info/manifest/manifest
|
|
|
|
depend:
|
|
- command/backup/common
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: info/info-backup
|
|
total: 3
|
|
|
|
coverage:
|
|
- info/infoBackup
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: db/db
|
|
total: 3
|
|
containerReq: true
|
|
binReq: true
|
|
|
|
coverage:
|
|
- db/db
|
|
- db/helper
|
|
- db/protocol
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: command/lock
|
|
total: 1
|
|
|
|
coverage:
|
|
- command/lock
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: command/control
|
|
total: 4
|
|
|
|
coverage:
|
|
- command/control/common
|
|
- command/control/start
|
|
- command/control/stop
|
|
|
|
include:
|
|
- command/lock
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: command/annotate
|
|
total: 1
|
|
|
|
coverage:
|
|
- command/annotate/annotate
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: command/archive/common
|
|
total: 9
|
|
|
|
coverage:
|
|
- command/archive/common
|
|
- command/archive/find
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: command/archive/get
|
|
total: 3
|
|
binReq: true
|
|
|
|
coverage:
|
|
- command/archive/common
|
|
- command/archive/get/file
|
|
- command/archive/get/get
|
|
- command/archive/get/protocol
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: command/archive/push
|
|
total: 4
|
|
binReq: true
|
|
|
|
coverage:
|
|
- command/archive/common
|
|
- command/archive/push/file
|
|
- command/archive/push/protocol
|
|
- command/archive/push/push
|
|
- command/command
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: command/stanza
|
|
total: 4
|
|
|
|
coverage:
|
|
- command/stanza/common
|
|
- command/stanza/create
|
|
- command/stanza/upgrade
|
|
- command/stanza/delete
|
|
|
|
depend:
|
|
- command/check/common
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: command/check
|
|
total: 4
|
|
|
|
coverage:
|
|
- command/check/common
|
|
- command/check/check
|
|
- command/check/report
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: command/command
|
|
total: 1
|
|
|
|
coverage:
|
|
- command/command
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: command/expire
|
|
total: 9
|
|
|
|
coverage:
|
|
- command/expire/expire
|
|
|
|
include:
|
|
- info/infoBackup
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: command/help
|
|
total: 4
|
|
|
|
coverage:
|
|
- command/help/help
|
|
- command/help/help.auto: noCode
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: command/info
|
|
total: 3
|
|
|
|
coverage:
|
|
- command/info/info
|
|
|
|
include:
|
|
- command/lock
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: command/backup
|
|
total: 13
|
|
harness:
|
|
- name: backup
|
|
integration: false
|
|
shim:
|
|
- name: command/backup/backup
|
|
function:
|
|
- backupProcess:
|
|
inc: process
|
|
- name: command/backup/protocol
|
|
function:
|
|
- backupFileComparator
|
|
- name: blockIncr
|
|
shim:
|
|
- command/restore/blockDelta
|
|
|
|
coverage:
|
|
- command/backup/backup
|
|
- command/backup/blockIncr
|
|
- command/backup/blockMap
|
|
- command/backup/common
|
|
- command/backup/complete.inc: included
|
|
- command/backup/db.inc: included
|
|
- command/backup/file.inc: included
|
|
- command/backup/incr.inc: included
|
|
- command/backup/label.inc: included
|
|
- command/backup/option.inc: included
|
|
- command/backup/pageChecksum
|
|
- command/backup/process.inc: included
|
|
- command/backup/protocol
|
|
- command/restore/blockDelta
|
|
|
|
include:
|
|
- info/info
|
|
- info/manifest/manifest
|
|
- storage/storage
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: command/restore
|
|
total: 16
|
|
|
|
harness: restore
|
|
|
|
coverage:
|
|
- command/restore/blockChecksum
|
|
- command/restore/blockDelta
|
|
- command/restore/clean.inc: included
|
|
- command/restore/config.inc: included
|
|
- command/restore/file.inc: included
|
|
- command/restore/process.inc: included
|
|
- command/restore/protocol
|
|
- command/restore/remap.inc: included
|
|
- command/restore/restore
|
|
- command/restore/select.inc: included
|
|
- command/restore/timeline
|
|
- command/restore/validate.inc: included
|
|
|
|
include:
|
|
- common/user
|
|
- info/infoBackup
|
|
- info/manifest/manifest
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: command/manifest
|
|
total: 1
|
|
|
|
include:
|
|
- command/manifest/manifest
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: command/repo
|
|
total: 3
|
|
|
|
coverage:
|
|
- command/repo/common
|
|
- command/repo/get
|
|
- command/repo/ls
|
|
- command/repo/rm
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: command/verify
|
|
total: 14
|
|
|
|
coverage:
|
|
- command/verify/file
|
|
- command/verify/protocol
|
|
- command/verify/verify
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: command/local
|
|
total: 1
|
|
|
|
coverage:
|
|
- command/local/local
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: command/remote
|
|
total: 1
|
|
|
|
coverage:
|
|
- command/remote/remote
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: command/exit
|
|
total: 3
|
|
|
|
coverage:
|
|
- command/exit
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: command/server
|
|
total: 2
|
|
harness: systemd
|
|
|
|
coverage:
|
|
- command/server/ping
|
|
- command/server/server
|
|
|
|
# **********************************************************************************************************************************
|
|
# Integration tests
|
|
#
|
|
# Integration tests are not run in a container. They are expected to create their own containers since most integration runs will
|
|
# create more than one. For this reason each run is executed individually.
|
|
#
|
|
# Only an integration test may set this option:
|
|
# * db - determines if the test will be run against multiple db versions
|
|
# **********************************************************************************************************************************
|
|
integration:
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: integration/all
|
|
db: true
|
|
total: 1
|
|
harness: host
|
|
|
|
# **********************************************************************************************************************************
|
|
# Performance tests
|
|
#
|
|
# Performance tests run in a single container but are more like integration tests than unit tests since they call the pgbackrest
|
|
# executable directly.
|
|
# **********************************************************************************************************************************
|
|
performance:
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: performance/type
|
|
total: 6
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: performance/storage
|
|
total: 2
|
|
|
|
include:
|
|
- storage/helper
|
|
|
|
# **********************************************************************************************************************************
|
|
# Tool tests
|
|
#
|
|
# Tests for the build, documentation, and test tools. These are python so they are run directly rather than built, which means no
|
|
# total is needed since there are no tests to select.
|
|
#
|
|
# Only a tool may set this option, since the tools are the same everywhere while a C test is exercising the platform it runs on:
|
|
# * vm - VMs that the test will be run on
|
|
#
|
|
# This type is last so that nothing it declares can affect the modules compiled into any other test.
|
|
# **********************************************************************************************************************************
|
|
tool:
|
|
|
|
# ********************************************************************************************************************************
|
|
# The build library, which every tool is built on. It is declared before the doc and test libraries so that those inherit it,
|
|
# which is the same direction the import hierarchy runs in.
|
|
# ********************************************************************************************************************************
|
|
- name: build
|
|
vm: [none, u24, rh9]
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: build/common/error
|
|
|
|
coverage:
|
|
- build/common/error
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: build/common/log
|
|
|
|
coverage:
|
|
- build/common/log
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: build/common/storage
|
|
|
|
coverage:
|
|
- build/common/storage
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: build/common/string
|
|
|
|
coverage:
|
|
- build/common/string_id
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: build/common/render
|
|
|
|
coverage:
|
|
- build/common/render
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: build/common/yaml
|
|
|
|
coverage:
|
|
- build/common/yaml
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: build/common/pack
|
|
|
|
coverage:
|
|
- build/common/pack
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: build/common/xml
|
|
|
|
coverage:
|
|
- build/common/xml
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: build/config/common
|
|
|
|
coverage:
|
|
- build/config/common
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: build/config/parse
|
|
|
|
coverage:
|
|
- build/config/parse
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: build/config/render
|
|
|
|
coverage:
|
|
- build/config/render
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: build/error/parse
|
|
|
|
coverage:
|
|
- build/error/parse
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: build/error/render
|
|
|
|
coverage:
|
|
- build/error/render
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: build/postgres/parse
|
|
|
|
coverage:
|
|
- build/postgres/parse
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: build/postgres/render
|
|
|
|
coverage:
|
|
- build/postgres/render
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: build/help/parse
|
|
|
|
coverage:
|
|
- build/help/parse
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: build/help/render
|
|
|
|
coverage:
|
|
- build/help/render
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: build/command/main
|
|
|
|
coverage:
|
|
- build/command/main
|
|
|
|
# ********************************************************************************************************************************
|
|
# The doc library, which sits on top of the build library.
|
|
# ********************************************************************************************************************************
|
|
- name: doc
|
|
vm: [none, u24, rh9]
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: doc/common/exec
|
|
|
|
coverage:
|
|
- doc/common/exec
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: doc/common/user
|
|
|
|
coverage:
|
|
- doc/common/user
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: doc/config/project
|
|
|
|
coverage:
|
|
- doc/config/project
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: doc/common/var_store
|
|
|
|
coverage:
|
|
- doc/common/var_store
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: doc/common/eval
|
|
|
|
coverage:
|
|
- doc/common/eval
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: doc/common/date
|
|
|
|
coverage:
|
|
- doc/common/date
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: doc/command/build/pre
|
|
|
|
coverage:
|
|
- doc/command/build/pre
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: doc/command/build/reference
|
|
|
|
coverage:
|
|
- doc/command/build/reference
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: doc/command/build/man
|
|
|
|
coverage:
|
|
- doc/command/build/man
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: doc/command/build/news
|
|
|
|
coverage:
|
|
- doc/command/build/news
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: doc/common/ini
|
|
|
|
coverage:
|
|
- doc/common/ini
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: doc/command/render/host
|
|
|
|
coverage:
|
|
- doc/command/render/host
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: doc/command/render/render
|
|
|
|
coverage:
|
|
- doc/command/render/render
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: doc/command/render/manifest
|
|
|
|
coverage:
|
|
- doc/command/render/manifest
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: doc/command/render/release
|
|
|
|
coverage:
|
|
- doc/command/render/release
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: doc/command/render/execute
|
|
|
|
coverage:
|
|
- doc/command/render/execute
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: doc/command/render/html
|
|
|
|
coverage:
|
|
- doc/command/render/html
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: doc/command/render/markdown
|
|
|
|
coverage:
|
|
- doc/command/render/markdown
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: doc/command/doc
|
|
|
|
coverage:
|
|
- doc/command/doc
|
|
|
|
# ********************************************************************************************************************************
|
|
# The test library, which sits on top of the doc library. It is the harness that runs everything here, so it is declared last.
|
|
# ********************************************************************************************************************************
|
|
- name: test
|
|
vm: [none, u24, rh9]
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: test/common/vm
|
|
|
|
coverage:
|
|
- test/common/vm
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: test/config/cli
|
|
|
|
coverage:
|
|
- test/config/cli
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: test/config/config
|
|
|
|
coverage:
|
|
- test/config/config
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: test/command/test/define
|
|
|
|
coverage:
|
|
- test/command/test/define
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: test/command/lint/lint
|
|
|
|
coverage:
|
|
- test/command/lint/ascii
|
|
- test/command/lint/lex
|
|
- test/command/lint/line
|
|
- test/command/lint/macro
|
|
- test/command/lint/string_id
|
|
- test/command/lint/lint
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: test/command/code/format
|
|
|
|
coverage:
|
|
- test/command/code/format
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: test/command/test/python
|
|
|
|
coverage:
|
|
- test/command/test/python
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: test/command/test/list
|
|
|
|
coverage:
|
|
- test/command/test/list
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: test/command/vm/build
|
|
|
|
coverage:
|
|
- test/command/vm/build
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: test/command/test/job
|
|
|
|
coverage:
|
|
- test/command/test/job
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: test/command/coverage/report
|
|
|
|
coverage:
|
|
- test/command/coverage/report
|
|
|
|
# The report renders the coverage model, which is defined with the command that builds it
|
|
depend:
|
|
- test/command/coverage/coverage
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: test/command/coverage/filter_py
|
|
|
|
coverage:
|
|
- test/command/coverage/filter_py
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: test/command/coverage/filter_c
|
|
|
|
coverage:
|
|
- test/command/coverage/filter_c
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: test/command/coverage/coverage
|
|
|
|
coverage:
|
|
- test/command/coverage/coverage
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: test/command/test/test
|
|
|
|
coverage:
|
|
- test/command/test/test
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: test/command/test/build
|
|
|
|
coverage:
|
|
- test/command/test/build
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------------------
|
|
- name: test/command/test/unit
|
|
|
|
coverage:
|
|
- test/command/test/unit
|