You've already forked pgbackrest
mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2025-07-13 01:00:23 +02:00
Autogenerate test system identifiers.
hrnPgControlToBuffer() and hrnPgWalToBuffer() now generate the system id based on the version of Postgres. If a value less than 100 is specified for systemId then it will be added to the default system id so there can be multiple ids for a single version of PostgreSQL. Add constants to represent version system ids in tests. These will eventually be auto-generated. This changes some checksums and we no longer have big-endian tests systems, so X those checksums out so it is obvious they are no longer valid.
This commit is contained in:
@ -230,11 +230,14 @@ hrnPgControlToBuffer(PgControl pgControl)
|
||||
FUNCTION_HARNESS_PARAM(PG_CONTROL, pgControl);
|
||||
FUNCTION_HARNESS_END();
|
||||
|
||||
ASSERT(pgControl.version != 0);
|
||||
|
||||
// Set defaults if values are not passed
|
||||
pgControl.pageSize = pgControl.pageSize == 0 ? PG_PAGE_SIZE_DEFAULT : pgControl.pageSize;
|
||||
pgControl.walSegmentSize = pgControl.walSegmentSize == 0 ? PG_WAL_SEGMENT_SIZE_DEFAULT : pgControl.walSegmentSize;
|
||||
pgControl.catalogVersion = pgControl.catalogVersion == 0 ?
|
||||
hrnPgInterfaceVersion(pgControl.version)->catalogVersion() : pgControl.catalogVersion;
|
||||
pgControl.systemId = pgControl.systemId < 100 ? hrnPgSystemId(pgControl.version) + pgControl.systemId : pgControl.systemId;
|
||||
|
||||
// Create the buffer and clear it
|
||||
Buffer *result = bufNew(HRN_PG_CONTROL_SIZE);
|
||||
@ -262,6 +265,10 @@ hrnPgWalToBuffer(PgWal pgWal, Buffer *walBuffer)
|
||||
if (pgWal.size == 0)
|
||||
pgWal.size = PG_WAL_SEGMENT_SIZE_DEFAULT;
|
||||
|
||||
// Set default system id if not specified
|
||||
if (pgWal.systemId < 100)
|
||||
pgWal.systemId = hrnPgSystemId(pgWal.version) + pgWal.systemId;
|
||||
|
||||
// Generate WAL
|
||||
hrnPgInterfaceVersion(pgWal.version)->wal(pgWal, bufPtr(walBuffer));
|
||||
|
||||
|
@ -12,6 +12,40 @@ Control file size used to create pg_control
|
||||
***********************************************************************************************************************************/
|
||||
#define HRN_PG_CONTROL_SIZE 8192
|
||||
|
||||
/***********************************************************************************************************************************
|
||||
System id constants by version
|
||||
***********************************************************************************************************************************/
|
||||
#define HRN_PG_SYSTEMID_83 (10000000000000000000ULL + (uint64_t)PG_VERSION_83)
|
||||
#define HRN_PG_SYSTEMID_83_Z "10000000000000080300"
|
||||
#define HRN_PG_SYSTEMID_84 (10000000000000000000ULL + (uint64_t)PG_VERSION_84)
|
||||
#define HRN_PG_SYSTEMID_84_Z "10000000000000080400"
|
||||
#define HRN_PG_SYSTEMID_90 (10000000000000000000ULL + (uint64_t)PG_VERSION_90)
|
||||
#define HRN_PG_SYSTEMID_90_Z "10000000000000090000"
|
||||
#define HRN_PG_SYSTEMID_91 (10000000000000000000ULL + (uint64_t)PG_VERSION_91)
|
||||
#define HRN_PG_SYSTEMID_91_Z "10000000000000090100"
|
||||
#define HRN_PG_SYSTEMID_92 (10000000000000000000ULL + (uint64_t)PG_VERSION_92)
|
||||
#define HRN_PG_SYSTEMID_92_Z "10000000000000090200"
|
||||
#define HRN_PG_SYSTEMID_93 (10000000000000000000ULL + (uint64_t)PG_VERSION_93)
|
||||
#define HRN_PG_SYSTEMID_93_Z "10000000000000090300"
|
||||
#define HRN_PG_SYSTEMID_94 (10000000000000000000ULL + (uint64_t)PG_VERSION_94)
|
||||
#define HRN_PG_SYSTEMID_94_Z "10000000000000090400"
|
||||
#define HRN_PG_SYSTEMID_95 (10000000000000000000ULL + (uint64_t)PG_VERSION_95)
|
||||
#define HRN_PG_SYSTEMID_95_Z "10000000000000090500"
|
||||
#define HRN_PG_SYSTEMID_96 (10000000000000000000ULL + (uint64_t)PG_VERSION_96)
|
||||
#define HRN_PG_SYSTEMID_96_Z "10000000000000090600"
|
||||
#define HRN_PG_SYSTEMID_10 (10000000000000000000ULL + (uint64_t)PG_VERSION_10)
|
||||
#define HRN_PG_SYSTEMID_10_Z "10000000000000100000"
|
||||
#define HRN_PG_SYSTEMID_10_1_Z "10000000000000100001"
|
||||
#define HRN_PG_SYSTEMID_11 (10000000000000000000ULL + (uint64_t)PG_VERSION_11)
|
||||
#define HRN_PG_SYSTEMID_11_Z "10000000000000110000"
|
||||
#define HRN_PG_SYSTEMID_11_1_Z "10000000000000110001"
|
||||
#define HRN_PG_SYSTEMID_12 (10000000000000000000ULL + (uint64_t)PG_VERSION_12)
|
||||
#define HRN_PG_SYSTEMID_12_Z "10000000000000120000"
|
||||
#define HRN_PG_SYSTEMID_13 (10000000000000000000ULL + (uint64_t)PG_VERSION_13)
|
||||
#define HRN_PG_SYSTEMID_13_Z "10000000000000130000"
|
||||
#define HRN_PG_SYSTEMID_14 (10000000000000000000ULL + (uint64_t)PG_VERSION_14)
|
||||
#define HRN_PG_SYSTEMID_14_Z "10000000000000140000"
|
||||
|
||||
/***********************************************************************************************************************************
|
||||
Functions
|
||||
***********************************************************************************************************************************/
|
||||
@ -21,6 +55,13 @@ unsigned int hrnPgCatalogVersion(unsigned int pgVersion);
|
||||
// Create pg_control
|
||||
Buffer *hrnPgControlToBuffer(PgControl pgControl);
|
||||
|
||||
// Get system id by version
|
||||
__attribute__((always_inline)) static inline uint64_t
|
||||
hrnPgSystemId(const unsigned int pgVersion)
|
||||
{
|
||||
return 10000000000000000000ULL + (uint64_t)pgVersion;
|
||||
}
|
||||
|
||||
// Create WAL for testing
|
||||
void hrnPgWalToBuffer(PgWal pgWal, Buffer *walBuffer);
|
||||
|
||||
|
@ -151,8 +151,7 @@ testRun(void)
|
||||
TEST_TITLE("no segments to find");
|
||||
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_10, .systemId = 0xFACEFACEFACEFACE}));
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_10}));
|
||||
|
||||
HRN_INFO_PUT(
|
||||
storageRepoWrite(), INFO_ARCHIVE_PATH_FILE,
|
||||
@ -160,7 +159,7 @@ testRun(void)
|
||||
"db-id=1\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-id\":18072658121562454734,\"db-version\":\"10\"}\n");
|
||||
"1={\"db-id\":" HRN_PG_SYSTEMID_10_Z ",\"db-version\":\"10\"}\n");
|
||||
|
||||
strLstAddZ(argList, "000000010000000100000001");
|
||||
HRN_CFG_LOAD(cfgCmdArchiveGet, argList, .role = cfgCmdRoleAsync);
|
||||
@ -252,8 +251,8 @@ testRun(void)
|
||||
"db-id=1\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-id\":18072658121562454734,\"db-version\":\"10\"}\n"
|
||||
"2={\"db-id\":18072658121562454734,\"db-version\":\"10\"}\n");
|
||||
"1={\"db-id\":" HRN_PG_SYSTEMID_10_Z ",\"db-version\":\"10\"}\n"
|
||||
"2={\"db-id\":" HRN_PG_SYSTEMID_10_Z ",\"db-version\":\"10\"}\n");
|
||||
|
||||
HRN_STORAGE_PUT_EMPTY(
|
||||
storageRepoWrite(), STORAGE_REPO_ARCHIVE "/10-1/000000010000000100000001-abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd");
|
||||
@ -290,8 +289,8 @@ testRun(void)
|
||||
"db-id=1\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-id\":18072658121562454734,\"db-version\":\"10\"}\n"
|
||||
"2={\"db-id\":18072658121562454734,\"db-version\":\"10\"}\n");
|
||||
"1={\"db-id\":" HRN_PG_SYSTEMID_10_Z ",\"db-version\":\"10\"}\n"
|
||||
"2={\"db-id\":" HRN_PG_SYSTEMID_10_Z ",\"db-version\":\"10\"}\n");
|
||||
|
||||
HRN_STORAGE_PUT_EMPTY(
|
||||
storageRepoWrite(), STORAGE_REPO_ARCHIVE "/10-1/000000010000000100000001-abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd");
|
||||
@ -336,7 +335,7 @@ testRun(void)
|
||||
"db-id=1\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-id\":18072658121562454734,\"db-version\":\"11\"}\n");
|
||||
"1={\"db-id\":" HRN_PG_SYSTEMID_11_Z ",\"db-version\":\"11\"}\n");
|
||||
|
||||
HRN_STORAGE_PUT_EMPTY(
|
||||
storageRepoWrite(), STORAGE_REPO_ARCHIVE "/10-1/0000000100000001000000FE-abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd");
|
||||
@ -352,7 +351,7 @@ testRun(void)
|
||||
TEST_RESULT_LOG(
|
||||
"P00 INFO: get 3 WAL file(s) from archive: 0000000100000001000000FE...000000010000000200000000\n"
|
||||
"P00 WARN: repo2: [ArchiveMismatchError] unable to retrieve the archive id for database version '10' and system-id"
|
||||
" '18072658121562454734'\n"
|
||||
" '" HRN_PG_SYSTEMID_10_Z "'\n"
|
||||
"P01 DETAIL: found 0000000100000001000000FE in the repo1: 10-1 archive\n"
|
||||
"P00 DETAIL: unable to find 0000000100000001000000FF in the archive");
|
||||
|
||||
@ -360,13 +359,13 @@ testRun(void)
|
||||
storageSpoolWrite(), STORAGE_SPOOL_ARCHIVE_IN "/0000000100000001000000FE.ok",
|
||||
"0\n"
|
||||
"repo2: [ArchiveMismatchError] unable to retrieve the archive id for database version '10' and system-id"
|
||||
" '18072658121562454734'",
|
||||
" '" HRN_PG_SYSTEMID_10_Z "'",
|
||||
.remove = true);
|
||||
TEST_STORAGE_GET(
|
||||
storageSpoolWrite(), STORAGE_SPOOL_ARCHIVE_IN "/0000000100000001000000FF.ok",
|
||||
"0\n"
|
||||
"repo2: [ArchiveMismatchError] unable to retrieve the archive id for database version '10' and system-id"
|
||||
" '18072658121562454734'",
|
||||
" '" HRN_PG_SYSTEMID_10_Z "'",
|
||||
.remove = true);
|
||||
TEST_STORAGE_GET_EMPTY(storageSpoolWrite(), STORAGE_SPOOL_ARCHIVE_IN "/0000000100000001000000FE", .remove = true);
|
||||
TEST_STORAGE_LIST_EMPTY(storageSpool(), STORAGE_SPOOL_ARCHIVE_IN);
|
||||
@ -381,7 +380,7 @@ testRun(void)
|
||||
"db-id=1\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-id\":18072658121562454734,\"db-version\":\"10\"}\n");
|
||||
"1={\"db-id\":" HRN_PG_SYSTEMID_10_Z ",\"db-version\":\"10\"}\n");
|
||||
|
||||
HRN_STORAGE_PATH_CREATE(storageRepoIdxWrite(1), STORAGE_REPO_ARCHIVE "/10-1", .mode = 0400);
|
||||
|
||||
@ -479,7 +478,7 @@ testRun(void)
|
||||
"db-id=1\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-id\":18072658121562454734,\"db-version\":\"11\"}\n");
|
||||
"1={\"db-id\":" HRN_PG_SYSTEMID_10_Z ",\"db-version\":\"11\"}\n");
|
||||
HRN_STORAGE_PATH_CREATE(storageRepoIdxWrite(2), "10-1", .mode = 0400);
|
||||
|
||||
HRN_STORAGE_PUT_EMPTY(
|
||||
@ -494,7 +493,7 @@ testRun(void)
|
||||
TEST_RESULT_LOG(
|
||||
"P00 INFO: get 1 WAL file(s) from archive: 000000010000000200000000\n"
|
||||
"P00 WARN: repo3: [ArchiveMismatchError] unable to retrieve the archive id for database version '10' and system-id"
|
||||
" '18072658121562454734'\n"
|
||||
" '" HRN_PG_SYSTEMID_10_Z "'\n"
|
||||
"P01 WARN: repo1: 10-1/0000000100000002/000000010000000200000000-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.gz"
|
||||
" [FormatError] unexpected eof in compressed data\n"
|
||||
"P01 DETAIL: found 000000010000000200000000 in the repo2: 10-1 archive");
|
||||
@ -503,7 +502,7 @@ testRun(void)
|
||||
storageSpoolWrite(), STORAGE_SPOOL_ARCHIVE_IN "/000000010000000200000000.ok",
|
||||
"0\n"
|
||||
"repo3: [ArchiveMismatchError] unable to retrieve the archive id for database version '10' and system-id"
|
||||
" '18072658121562454734'\n"
|
||||
" '" HRN_PG_SYSTEMID_10_Z "'\n"
|
||||
"repo1: 10-1/0000000100000002/000000010000000200000000-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.gz"
|
||||
" [FormatError] unexpected eof in compressed data",
|
||||
.remove = true);
|
||||
@ -528,7 +527,7 @@ testRun(void)
|
||||
TEST_RESULT_LOG(
|
||||
"P00 INFO: get 1 WAL file(s) from archive: 000000010000000200000000\n"
|
||||
"P00 WARN: repo3: [ArchiveMismatchError] unable to retrieve the archive id for database version '10' and system-id"
|
||||
" '18072658121562454734'\n"
|
||||
" '" HRN_PG_SYSTEMID_10_Z "'\n"
|
||||
"P01 WARN: [FileReadError] raised from local-1 shim protocol: unable to get 000000010000000200000000:\n"
|
||||
" repo1: 10-1/0000000100000002/000000010000000200000000-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.gz"
|
||||
" [FormatError] unexpected eof in compressed data\n"
|
||||
@ -546,7 +545,7 @@ testRun(void)
|
||||
" [FormatError] unexpected eof in compressed data\n"
|
||||
"[FileReadError] on retry after 0ms\n"
|
||||
"repo3: [ArchiveMismatchError] unable to retrieve the archive id for database version '10' and system-id"
|
||||
" '18072658121562454734'",
|
||||
" '" HRN_PG_SYSTEMID_10_Z "'",
|
||||
.remove = true);
|
||||
TEST_STORAGE_LIST(
|
||||
storageSpoolWrite(), STORAGE_SPOOL_ARCHIVE_IN, "000000010000000200000000.pgbackrest.tmp\n", .remove = true);
|
||||
@ -625,8 +624,7 @@ testRun(void)
|
||||
TEST_TITLE("no valid repo");
|
||||
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_10, .systemId = 0xFACEFACEFACEFACE}));
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_10}));
|
||||
|
||||
strLstAddZ(argList, TEST_PATH "/pg/pg_wal/RECOVERYXLOG");
|
||||
HRN_CFG_LOAD(cfgCmdArchiveGet, argList, .exeBogus = true);
|
||||
@ -783,8 +781,7 @@ testRun(void)
|
||||
TEST_TITLE("pg version does not match archive.info");
|
||||
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_11, .systemId = 0xFACEFACEFACEFACE}));
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_11}));
|
||||
|
||||
HRN_INFO_PUT(
|
||||
storageRepoWrite(), INFO_ARCHIVE_PATH_FILE,
|
||||
@ -792,7 +789,7 @@ testRun(void)
|
||||
"db-id=1\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-id\":18072658121562454734,\"db-version\":\"10\"}");
|
||||
"1={\"db-id\":" HRN_PG_SYSTEMID_10_Z ",\"db-version\":\"10\"}");
|
||||
|
||||
argBaseList = strLstNew();
|
||||
hrnCfgArgRawZ(argBaseList, cfgOptPgPath, TEST_PATH "/pg");
|
||||
@ -808,27 +805,26 @@ testRun(void)
|
||||
|
||||
TEST_RESULT_LOG(
|
||||
"P00 WARN: repo1: [ArchiveMismatchError] unable to retrieve the archive id for database version '11' and system-id"
|
||||
" '18072658121562454734'");
|
||||
" '" HRN_PG_SYSTEMID_11_Z "'");
|
||||
|
||||
// -------------------------------------------------------------------------------------------------------------------------
|
||||
TEST_TITLE("pg system id does not match archive.info");
|
||||
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_10, .systemId = 0x8888888888888888}));
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_10, .systemId = 1}));
|
||||
|
||||
TEST_ERROR(cmdArchiveGet(), RepoInvalidError, "unable to find a valid repository");
|
||||
|
||||
TEST_RESULT_LOG(
|
||||
"P00 WARN: repo1: [ArchiveMismatchError] unable to retrieve the archive id for database version '10' and system-id"
|
||||
" '9838263505978427528'");
|
||||
" '" HRN_PG_SYSTEMID_10_1_Z "'");
|
||||
|
||||
// -------------------------------------------------------------------------------------------------------------------------
|
||||
TEST_TITLE("file is missing");
|
||||
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_10, .systemId = 0xFACEFACEFACEFACE}));
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_10}));
|
||||
|
||||
TEST_RESULT_INT(cmdArchiveGet(), 1, "get");
|
||||
|
||||
@ -881,10 +877,10 @@ testRun(void)
|
||||
"db-id=1\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-id\":18072658121562454734,\"db-version\":\"10\"}\n"
|
||||
"2={\"db-id\":18072658121562454734,\"db-version\":\"10\"}\n"
|
||||
"3={\"db-id\":10000000000000000000,\"db-version\":\"11\"}\n"
|
||||
"4={\"db-id\":18072658121562454734,\"db-version\":\"10\"}");
|
||||
"1={\"db-id\":" HRN_PG_SYSTEMID_10_Z ",\"db-version\":\"10\"}\n"
|
||||
"2={\"db-id\":" HRN_PG_SYSTEMID_10_Z ",\"db-version\":\"10\"}\n"
|
||||
"3={\"db-id\":" HRN_PG_SYSTEMID_11_Z ",\"db-version\":\"11\"}\n"
|
||||
"4={\"db-id\":" HRN_PG_SYSTEMID_10_Z ",\"db-version\":\"10\"}");
|
||||
|
||||
TEST_RESULT_INT(cmdArchiveGet(), 0, "get");
|
||||
|
||||
@ -974,7 +970,7 @@ testRun(void)
|
||||
"db-id=1\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-id\":18072658121562454734,\"db-version\":\"10\"}",
|
||||
"1={\"db-id\":" HRN_PG_SYSTEMID_10_Z ",\"db-version\":\"10\"}",
|
||||
.cipherType = cipherTypeAes256Cbc);
|
||||
|
||||
HRN_STORAGE_PUT(
|
||||
@ -1022,7 +1018,7 @@ testRun(void)
|
||||
"db-id=2\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"2={\"db-id\":18072658121562454734,\"db-version\":\"10\"}");
|
||||
"2={\"db-id\":" HRN_PG_SYSTEMID_10_Z ",\"db-version\":\"10\"}");
|
||||
|
||||
HRN_STORAGE_PATH_CREATE(storageRepoIdxWrite(0), STORAGE_REPO_ARCHIVE "/10-2", .mode = 0400);
|
||||
|
||||
@ -1117,7 +1113,7 @@ testRun(void)
|
||||
"db-id=2\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"2={\"db-id\":18072658121562454734,\"db-version\":\"10\"}");
|
||||
"2={\"db-id\":" HRN_PG_SYSTEMID_10_Z ",\"db-version\":\"10\"}");
|
||||
|
||||
// Put a warning in the file to show that it was read and later overwritten
|
||||
HRN_STORAGE_PUT_Z(storageSpoolWrite(), STORAGE_SPOOL_ARCHIVE_IN "/000000010000000100000001.ok", "0\nshould not be output");
|
||||
|
@ -72,7 +72,7 @@ testRun(void)
|
||||
Buffer *walBuffer = bufNew((size_t)16 * 1024 * 1024);
|
||||
bufUsedSet(walBuffer, bufSize(walBuffer));
|
||||
memset(bufPtr(walBuffer), 0, bufSize(walBuffer));
|
||||
hrnPgWalToBuffer((PgWal){.version = PG_VERSION_10, .systemId = 0xFACEFACEFACEFACE}, walBuffer);
|
||||
hrnPgWalToBuffer((PgWal){.version = PG_VERSION_10}, walBuffer);
|
||||
|
||||
HRN_STORAGE_PUT(storagePgWrite(), "pg_wal/000000010000000100000002", walBuffer);
|
||||
HRN_STORAGE_PUT(storagePgWrite(), "pg_wal/000000010000000100000003", walBuffer);
|
||||
@ -105,8 +105,7 @@ testRun(void)
|
||||
TEST_TITLE("mismatched pg_control and archive.info - pg version");
|
||||
|
||||
HRN_STORAGE_PUT(
|
||||
storageTest, "pg/" PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_96, .systemId = 0xFACEFACEFACEFACE}));
|
||||
storageTest, "pg/" PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_96}));
|
||||
|
||||
// Create incorrect archive info
|
||||
HRN_INFO_PUT(
|
||||
@ -120,8 +119,8 @@ testRun(void)
|
||||
TEST_ERROR(
|
||||
archivePushCheck(true), RepoInvalidError,
|
||||
"unable to find a valid repository:\n"
|
||||
"repo1: [ArchiveMismatchError] PostgreSQL version 9.6, system-id 18072658121562454734 do not match repo1 stanza version"
|
||||
" 9.4, system-id 5555555555555555555"
|
||||
"repo1: [ArchiveMismatchError] PostgreSQL version 9.6, system-id " HRN_PG_SYSTEMID_96_Z " do not match repo1 stanza"
|
||||
" version 9.4, system-id 5555555555555555555"
|
||||
"\nHINT: are you archiving to the correct stanza?");
|
||||
|
||||
// -------------------------------------------------------------------------------------------------------------------------
|
||||
@ -139,8 +138,8 @@ testRun(void)
|
||||
TEST_ERROR(
|
||||
archivePushCheck(true), RepoInvalidError,
|
||||
"unable to find a valid repository:\n"
|
||||
"repo1: [ArchiveMismatchError] PostgreSQL version 9.6, system-id 18072658121562454734 do not match repo1 stanza version"
|
||||
" 9.6, system-id 5555555555555555555"
|
||||
"repo1: [ArchiveMismatchError] PostgreSQL version 9.6, system-id " HRN_PG_SYSTEMID_96_Z " do not match repo1 stanza"
|
||||
" version 9.6, system-id 5555555555555555555"
|
||||
"\nHINT: are you archiving to the correct stanza?");
|
||||
|
||||
// -------------------------------------------------------------------------------------------------------------------------
|
||||
@ -153,13 +152,13 @@ testRun(void)
|
||||
"db-id=1\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-id\":18072658121562454734,\"db-version\":\"9.6\"}\n");
|
||||
"1={\"db-id\":" HRN_PG_SYSTEMID_96_Z ",\"db-version\":\"9.6\"}\n");
|
||||
|
||||
ArchivePushCheckResult result = {0};
|
||||
TEST_ASSIGN(result, archivePushCheck(true), "get archive check result");
|
||||
|
||||
TEST_RESULT_UINT(result.pgVersion, PG_VERSION_96, "check pg version");
|
||||
TEST_RESULT_UINT(result.pgSystemId, 0xFACEFACEFACEFACE, "check pg system id");
|
||||
TEST_RESULT_UINT(result.pgSystemId, HRN_PG_SYSTEMID_96, "check pg system id");
|
||||
|
||||
ArchivePushFileRepoData *repoData = lstGet(result.repoList, 0);
|
||||
TEST_RESULT_UINT(repoData->repoIdx, 0, "check repo idx");
|
||||
@ -183,7 +182,7 @@ testRun(void)
|
||||
"db-id=1\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-id\":18072658121562454734,\"db-version\":\"9.6\"}\n");
|
||||
"1={\"db-id\":" HRN_PG_SYSTEMID_96_Z ",\"db-version\":\"9.6\"}\n");
|
||||
|
||||
// repo4 has incorrect info
|
||||
HRN_INFO_PUT(
|
||||
@ -197,10 +196,10 @@ testRun(void)
|
||||
TEST_ASSIGN(result, archivePushCheck(false), "get archive check result");
|
||||
|
||||
TEST_RESULT_UINT(result.pgVersion, PG_VERSION_96, "check pg version");
|
||||
TEST_RESULT_UINT(result.pgSystemId, 0xFACEFACEFACEFACE, "check pg system id");
|
||||
TEST_RESULT_UINT(result.pgSystemId, HRN_PG_SYSTEMID_96, "check pg system id");
|
||||
TEST_RESULT_STRLST_Z(
|
||||
result.errorList,
|
||||
"repo4: [ArchiveMismatchError] repo2 stanza version 9.6, system-id 18072658121562454734 do not match repo4 stanza"
|
||||
"repo4: [ArchiveMismatchError] repo2 stanza version 9.6, system-id " HRN_PG_SYSTEMID_96_Z " do not match repo4 stanza"
|
||||
" version 9.4, system-id 5555555555555555555\n"
|
||||
"HINT: are you archiving to the correct stanza?\n",
|
||||
"check error list");
|
||||
@ -222,12 +221,12 @@ testRun(void)
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-id\":5555555555555555555,\"db-version\":\"9.4\"}\n"
|
||||
"2={\"db-id\":18072658121562454734,\"db-version\":\"9.6\"}\n");
|
||||
"2={\"db-id\":" HRN_PG_SYSTEMID_96_Z ",\"db-version\":\"9.6\"}\n");
|
||||
|
||||
TEST_ASSIGN(result, archivePushCheck(false), "get archive check result");
|
||||
|
||||
TEST_RESULT_UINT(result.pgVersion, PG_VERSION_96, "check pg version");
|
||||
TEST_RESULT_UINT(result.pgSystemId, 0xFACEFACEFACEFACE, "check pg system id");
|
||||
TEST_RESULT_UINT(result.pgSystemId, HRN_PG_SYSTEMID_96, "check pg system id");
|
||||
|
||||
repoData = lstGet(result.repoList, 0);
|
||||
TEST_RESULT_UINT(repoData->repoIdx, 0, "check repo idx");
|
||||
@ -290,8 +289,7 @@ testRun(void)
|
||||
HRN_CFG_LOAD(cfgCmdArchivePush, argListTemp);
|
||||
|
||||
HRN_STORAGE_PUT(
|
||||
storageTest, "pg/" PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_11, .systemId = 0xFACEFACEFACEFACE}));
|
||||
storageTest, "pg/" PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_11}));
|
||||
|
||||
HRN_INFO_PUT(
|
||||
storageRepoIdxWrite(0), INFO_ARCHIVE_PATH_FILE,
|
||||
@ -299,13 +297,13 @@ testRun(void)
|
||||
"db-id=1\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-id\":18072658121562454734,\"db-version\":\"11\"}\n");
|
||||
"1={\"db-id\":" HRN_PG_SYSTEMID_11_Z ",\"db-version\":\"11\"}\n");
|
||||
|
||||
// Generate WAL with incorrect headers and try to push them
|
||||
Buffer *walBuffer1 = bufNew((size_t)16 * 1024 * 1024);
|
||||
bufUsedSet(walBuffer1, bufSize(walBuffer1));
|
||||
memset(bufPtr(walBuffer1), 0, bufSize(walBuffer1));
|
||||
hrnPgWalToBuffer((PgWal){.version = PG_VERSION_10, .systemId = 0xFACEFACEFACEFACE}, walBuffer1);
|
||||
hrnPgWalToBuffer((PgWal){.version = PG_VERSION_10}, walBuffer1);
|
||||
|
||||
HRN_STORAGE_PUT(storagePgWrite(), "pg_wal/000000010000000100000001", walBuffer1);
|
||||
|
||||
@ -313,19 +311,19 @@ testRun(void)
|
||||
|
||||
TEST_ERROR(
|
||||
cmdArchivePush(), ArchiveMismatchError,
|
||||
"WAL file '" TEST_PATH "/pg/pg_wal/000000010000000100000001' version 10, system-id 18072658121562454734 do not match"
|
||||
" stanza version 11, system-id 18072658121562454734");
|
||||
"WAL file '" TEST_PATH "/pg/pg_wal/000000010000000100000001' version 10, system-id " HRN_PG_SYSTEMID_10_Z " do not"
|
||||
" match stanza version 11, system-id " HRN_PG_SYSTEMID_11_Z "");
|
||||
|
||||
memset(bufPtr(walBuffer1), 0, bufSize(walBuffer1));
|
||||
hrnPgWalToBuffer((PgWal){.version = PG_VERSION_11, .systemId = 0xECAFECAFECAFECAF}, walBuffer1);
|
||||
hrnPgWalToBuffer((PgWal){.version = PG_VERSION_11, .systemId = 1}, walBuffer1);
|
||||
const char *walBuffer1Sha1 = strZ(bufHex(cryptoHashOne(HASH_TYPE_SHA1_STR, walBuffer1)));
|
||||
|
||||
HRN_STORAGE_PUT(storagePgWrite(), "pg_wal/000000010000000100000001", walBuffer1);
|
||||
|
||||
TEST_ERROR(
|
||||
cmdArchivePush(), ArchiveMismatchError,
|
||||
"WAL file '" TEST_PATH "/pg/pg_wal/000000010000000100000001' version 11, system-id 17055110554209741999 do not match"
|
||||
" stanza version 11, system-id 18072658121562454734");
|
||||
"WAL file '" TEST_PATH "/pg/pg_wal/000000010000000100000001' version 11, system-id " HRN_PG_SYSTEMID_11_1_Z " do not"
|
||||
" match stanza version 11, system-id " HRN_PG_SYSTEMID_11_Z);
|
||||
|
||||
// -------------------------------------------------------------------------------------------------------------------------
|
||||
TEST_TITLE("push by ignoring the invalid header");
|
||||
@ -350,13 +348,13 @@ testRun(void)
|
||||
HRN_CFG_LOAD(cfgCmdArchivePush, argListTemp);
|
||||
|
||||
memset(bufPtr(walBuffer1), 0, bufSize(walBuffer1));
|
||||
hrnPgWalToBuffer((PgWal){.version = PG_VERSION_11, .systemId = 0xFACEFACEFACEFACE}, walBuffer1);
|
||||
hrnPgWalToBuffer((PgWal){.version = PG_VERSION_11}, walBuffer1);
|
||||
|
||||
// Check sha1 checksum against fixed values once to make sure they are not getting munged. After this we'll calculate them
|
||||
// directly from the buffers to reduce the cost of maintaining checksums.
|
||||
walBuffer1Sha1 = TEST_64BIT() ?
|
||||
(TEST_BIG_ENDIAN() ? "1c5f963d720bb199d7935dbd315447ea2ec3feb2" : "aae7591a1dbc58f21d0d004886075094f622e6dd") :
|
||||
"28a13fd8cf6fcd9f9a8108aed4c8bcc58040863a";
|
||||
(TEST_BIG_ENDIAN() ? "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" : "858a9ef24b79468eb2a61543b58140addfede0fc") :
|
||||
"044ec0576dc4e59d460aa3a8ac796ba4874ddff3";
|
||||
|
||||
HRN_STORAGE_PUT(storagePgWrite(), "pg_wal/000000010000000100000001", walBuffer1);
|
||||
|
||||
@ -377,7 +375,7 @@ testRun(void)
|
||||
Buffer *walBuffer2 = bufNew((size_t)16 * 1024 * 1024);
|
||||
bufUsedSet(walBuffer2, bufSize(walBuffer2));
|
||||
memset(bufPtr(walBuffer2), 0xFF, bufSize(walBuffer2));
|
||||
hrnPgWalToBuffer((PgWal){.version = PG_VERSION_11, .systemId = 0xFACEFACEFACEFACE}, walBuffer2);
|
||||
hrnPgWalToBuffer((PgWal){.version = PG_VERSION_11}, walBuffer2);
|
||||
const char *walBuffer2Sha1 = strZ(bufHex(cryptoHashOne(HASH_TYPE_SHA1_STR, walBuffer2)));
|
||||
|
||||
HRN_STORAGE_PUT(storagePgWrite(), "pg_wal/000000010000000100000001", walBuffer2);
|
||||
@ -487,7 +485,7 @@ testRun(void)
|
||||
"db-id=1\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-id\":18072658121562454734,\"db-version\":\"11\"}",
|
||||
"1={\"db-id\":" HRN_PG_SYSTEMID_11_Z ",\"db-version\":\"11\"}",
|
||||
.cipherType = cipherTypeAes256Cbc, .cipherPass = "badpassphrase");
|
||||
|
||||
// repo3 is not encrypted
|
||||
@ -497,7 +495,7 @@ testRun(void)
|
||||
"db-id=1\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-id\":18072658121562454734,\"db-version\":\"11\"}");
|
||||
"1={\"db-id\":" HRN_PG_SYSTEMID_11_Z ",\"db-version\":\"11\"}");
|
||||
|
||||
// Push encrypted WAL segment
|
||||
TEST_RESULT_VOID(cmdArchivePush(), "push the WAL segment");
|
||||
@ -671,8 +669,8 @@ testRun(void)
|
||||
hrnCfgArgRawZ(argList, cfgOptRepoPath, TEST_PATH "/repo");
|
||||
hrnCfgArgRawBool(argList, cfgOptLogSubprocess, true);
|
||||
|
||||
HRN_STORAGE_PUT(storageTest, "pg/" PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_94, .systemId = 0xAAAABBBBCCCCDDDD}));
|
||||
HRN_STORAGE_PUT(
|
||||
storageTest, "pg/" PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_94}));
|
||||
|
||||
HRN_INFO_PUT(
|
||||
storageTest, "repo/archive/test/archive.info",
|
||||
@ -680,7 +678,7 @@ testRun(void)
|
||||
"db-id=1\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-id\":12297848147757817309,\"db-version\":\"9.4\"}\n");
|
||||
"1={\"db-id\":" HRN_PG_SYSTEMID_94_Z ",\"db-version\":\"9.4\"}\n");
|
||||
|
||||
// -------------------------------------------------------------------------------------------------------------------------
|
||||
TEST_TITLE("async, ignore error file on first pass");
|
||||
@ -755,7 +753,7 @@ testRun(void)
|
||||
Buffer *walBuffer1 = bufNew((size_t)16 * 1024 * 1024);
|
||||
bufUsedSet(walBuffer1, bufSize(walBuffer1));
|
||||
memset(bufPtr(walBuffer1), 0xFF, bufSize(walBuffer1));
|
||||
hrnPgWalToBuffer((PgWal){.version = PG_VERSION_94, .systemId = 0xAAAABBBBCCCCDDDD}, walBuffer1);
|
||||
hrnPgWalToBuffer((PgWal){.version = PG_VERSION_94}, walBuffer1);
|
||||
const char *walBuffer1Sha1 = strZ(bufHex(cryptoHashOne(HASH_TYPE_SHA1_STR, walBuffer1)));
|
||||
|
||||
HRN_STORAGE_PUT(storagePgWrite(),"pg_xlog/000000010000000100000001", walBuffer1);
|
||||
@ -816,7 +814,7 @@ testRun(void)
|
||||
"db-id=1\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-id\":12297848147757817309,\"db-version\":\"9.4\"}\n");
|
||||
"1={\"db-id\":" HRN_PG_SYSTEMID_94_Z ",\"db-version\":\"9.4\"}\n");
|
||||
|
||||
// Recreate ready file for WAL 1
|
||||
HRN_STORAGE_PUT_EMPTY(storagePgWrite(), "pg_xlog/archive_status/000000010000000100000001.ready");
|
||||
@ -860,7 +858,7 @@ testRun(void)
|
||||
Buffer *walBuffer2 = bufNew((size_t)16 * 1024 * 1024);
|
||||
bufUsedSet(walBuffer2, bufSize(walBuffer2));
|
||||
memset(bufPtr(walBuffer2), 0x0C, bufSize(walBuffer2));
|
||||
hrnPgWalToBuffer((PgWal){.version = PG_VERSION_94, .systemId = 0xAAAABBBBCCCCDDDD}, walBuffer2);
|
||||
hrnPgWalToBuffer((PgWal){.version = PG_VERSION_94}, walBuffer2);
|
||||
const char *walBuffer2Sha1 = strZ(bufHex(cryptoHashOne(HASH_TYPE_SHA1_STR, walBuffer2)));
|
||||
|
||||
HRN_STORAGE_PUT(storagePgWrite(), "pg_xlog/000000010000000100000002", walBuffer2);
|
||||
@ -909,7 +907,7 @@ testRun(void)
|
||||
Buffer *walBuffer3 = bufNew((size_t)16 * 1024 * 1024);
|
||||
bufUsedSet(walBuffer3, bufSize(walBuffer3));
|
||||
memset(bufPtr(walBuffer3), 0x44, bufSize(walBuffer3));
|
||||
hrnPgWalToBuffer((PgWal){.version = PG_VERSION_94, .systemId = 0xAAAABBBBCCCCDDDD}, walBuffer3);
|
||||
hrnPgWalToBuffer((PgWal){.version = PG_VERSION_94}, walBuffer3);
|
||||
const char *walBuffer3Sha1 = strZ(bufHex(cryptoHashOne(HASH_TYPE_SHA1_STR, walBuffer3)));
|
||||
|
||||
HRN_STORAGE_PUT(storagePgWrite(), "pg_xlog/000000010000000100000003", walBuffer3);
|
||||
|
@ -1003,16 +1003,15 @@ testRun(void)
|
||||
HRN_CFG_LOAD(cfgCmdBackup, argList);
|
||||
|
||||
TEST_ERROR(
|
||||
backupInit(infoBackupNew(PG_VERSION_91, 1000000000000000910, hrnPgCatalogVersion(PG_VERSION_91), NULL)), ConfigError,
|
||||
"option 'backup-standby' not valid for PostgreSQL < 9.2");
|
||||
backupInit(infoBackupNew(PG_VERSION_91, HRN_PG_SYSTEMID_91, hrnPgCatalogVersion(PG_VERSION_91), NULL)),
|
||||
ConfigError, "option 'backup-standby' not valid for PostgreSQL < 9.2");
|
||||
|
||||
// -------------------------------------------------------------------------------------------------------------------------
|
||||
TEST_TITLE("warn and reset when backup from standby used in offline mode");
|
||||
|
||||
// Create pg_control
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_92, .systemId = 1000000000000000920}));
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_92}));
|
||||
|
||||
argList = strLstNew();
|
||||
hrnCfgArgRawZ(argList, cfgOptStanza, "test1");
|
||||
@ -1024,7 +1023,7 @@ testRun(void)
|
||||
HRN_CFG_LOAD(cfgCmdBackup, argList);
|
||||
|
||||
TEST_RESULT_VOID(
|
||||
backupInit(infoBackupNew(PG_VERSION_92, 1000000000000000920, hrnPgCatalogVersion(PG_VERSION_92), NULL)),
|
||||
backupInit(infoBackupNew(PG_VERSION_92, HRN_PG_SYSTEMID_92, hrnPgCatalogVersion(PG_VERSION_92), NULL)),
|
||||
"backup init");
|
||||
TEST_RESULT_BOOL(cfgOptionBool(cfgOptBackupStandby), false, "check backup-standby");
|
||||
|
||||
@ -1036,8 +1035,7 @@ testRun(void)
|
||||
|
||||
// Create pg_control
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_10, .systemId = 1000000000000001000}));
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_10}));
|
||||
|
||||
argList = strLstNew();
|
||||
hrnCfgArgRawZ(argList, cfgOptStanza, "test1");
|
||||
@ -1048,14 +1046,16 @@ testRun(void)
|
||||
HRN_CFG_LOAD(cfgCmdBackup, argList);
|
||||
|
||||
TEST_ERROR(
|
||||
backupInit(infoBackupNew(PG_VERSION_11, 1000000000000001100, hrnPgCatalogVersion(PG_VERSION_11), NULL)),
|
||||
backupInit(infoBackupNew(PG_VERSION_11, HRN_PG_SYSTEMID_11, hrnPgCatalogVersion(PG_VERSION_11), NULL)),
|
||||
BackupMismatchError,
|
||||
"PostgreSQL version 10, system-id 1000000000000001000 do not match stanza version 11, system-id 1000000000000001100\n"
|
||||
"PostgreSQL version 10, system-id " HRN_PG_SYSTEMID_10_Z " do not match stanza version 11, system-id"
|
||||
" " HRN_PG_SYSTEMID_11_Z "\n"
|
||||
"HINT: is this the correct stanza?");
|
||||
TEST_ERROR(
|
||||
backupInit(infoBackupNew(PG_VERSION_10, 1000000000000001100, hrnPgCatalogVersion(PG_VERSION_10), NULL)),
|
||||
backupInit(infoBackupNew(PG_VERSION_10, HRN_PG_SYSTEMID_11, hrnPgCatalogVersion(PG_VERSION_10), NULL)),
|
||||
BackupMismatchError,
|
||||
"PostgreSQL version 10, system-id 1000000000000001000 do not match stanza version 10, system-id 1000000000000001100\n"
|
||||
"PostgreSQL version 10, system-id " HRN_PG_SYSTEMID_10_Z " do not match stanza version 10, system-id"
|
||||
" " HRN_PG_SYSTEMID_11_Z "\n"
|
||||
"HINT: is this the correct stanza?");
|
||||
|
||||
// -------------------------------------------------------------------------------------------------------------------------
|
||||
@ -1063,8 +1063,7 @@ testRun(void)
|
||||
|
||||
// Create pg_control
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_83, .systemId = 1000000000000000830}));
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_83}));
|
||||
|
||||
argList = strLstNew();
|
||||
hrnCfgArgRawZ(argList, cfgOptStanza, "test1");
|
||||
@ -1076,7 +1075,7 @@ testRun(void)
|
||||
HRN_CFG_LOAD(cfgCmdBackup, argList);
|
||||
|
||||
TEST_RESULT_VOID(
|
||||
backupInit(infoBackupNew(PG_VERSION_83, 1000000000000000830, hrnPgCatalogVersion(PG_VERSION_83), NULL)),
|
||||
backupInit(infoBackupNew(PG_VERSION_83, HRN_PG_SYSTEMID_83, hrnPgCatalogVersion(PG_VERSION_83), NULL)),
|
||||
"backup init");
|
||||
TEST_RESULT_BOOL(cfgOptionBool(cfgOptStartFast), false, "check start-fast");
|
||||
|
||||
@ -1087,8 +1086,7 @@ testRun(void)
|
||||
|
||||
// Create pg_control
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_84, .systemId = 1000000000000000840}));
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_84}));
|
||||
|
||||
argList = strLstNew();
|
||||
hrnCfgArgRawZ(argList, cfgOptStanza, "test1");
|
||||
@ -1100,7 +1098,7 @@ testRun(void)
|
||||
HRN_CFG_LOAD(cfgCmdBackup, argList);
|
||||
|
||||
TEST_RESULT_VOID(
|
||||
backupInit(infoBackupNew(PG_VERSION_84, 1000000000000000840, hrnPgCatalogVersion(PG_VERSION_84), NULL)),
|
||||
backupInit(infoBackupNew(PG_VERSION_84, HRN_PG_SYSTEMID_84, hrnPgCatalogVersion(PG_VERSION_84), NULL)),
|
||||
"backup init");
|
||||
TEST_RESULT_BOOL(cfgOptionBool(cfgOptStopAuto), false, "check stop-auto");
|
||||
|
||||
@ -1111,8 +1109,7 @@ testRun(void)
|
||||
|
||||
// Create pg_control
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_93, .systemId = PG_VERSION_93}));
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_93}));
|
||||
|
||||
// Create stanza
|
||||
argList = strLstNew();
|
||||
@ -1142,7 +1139,8 @@ testRun(void)
|
||||
});
|
||||
|
||||
TEST_RESULT_VOID(
|
||||
dbFree(backupInit(infoBackupNew(PG_VERSION_93, PG_VERSION_93, hrnPgCatalogVersion(PG_VERSION_93), NULL))->dbPrimary),
|
||||
dbFree(
|
||||
backupInit(infoBackupNew(PG_VERSION_93, HRN_PG_SYSTEMID_93, hrnPgCatalogVersion(PG_VERSION_93), NULL))->dbPrimary),
|
||||
"backup init");
|
||||
TEST_RESULT_BOOL(cfgOptionBool(cfgOptChecksumPage), false, "check checksum-page");
|
||||
|
||||
@ -1155,7 +1153,7 @@ testRun(void)
|
||||
// Create pg_control with page checksums
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_93, .systemId = PG_VERSION_93, .pageChecksum = true}));
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_93, .pageChecksum = true}));
|
||||
|
||||
argList = strLstNew();
|
||||
hrnCfgArgRawZ(argList, cfgOptStanza, "test1");
|
||||
@ -1174,14 +1172,14 @@ testRun(void)
|
||||
});
|
||||
|
||||
TEST_RESULT_VOID(
|
||||
dbFree(backupInit(infoBackupNew(PG_VERSION_93, PG_VERSION_93, hrnPgCatalogVersion(PG_VERSION_93), NULL))->dbPrimary),
|
||||
dbFree(
|
||||
backupInit(infoBackupNew(PG_VERSION_93, HRN_PG_SYSTEMID_93, hrnPgCatalogVersion(PG_VERSION_93), NULL))->dbPrimary),
|
||||
"backup init");
|
||||
TEST_RESULT_BOOL(cfgOptionBool(cfgOptChecksumPage), false, "check checksum-page");
|
||||
|
||||
// Create pg_control without page checksums
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_93, .systemId = PG_VERSION_93}));
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_93}));
|
||||
|
||||
harnessPqScriptSet((HarnessPq [])
|
||||
{
|
||||
@ -1192,7 +1190,8 @@ testRun(void)
|
||||
});
|
||||
|
||||
TEST_RESULT_VOID(
|
||||
dbFree(backupInit(infoBackupNew(PG_VERSION_93, PG_VERSION_93, hrnPgCatalogVersion(PG_VERSION_93), NULL))->dbPrimary),
|
||||
dbFree(
|
||||
backupInit(infoBackupNew(PG_VERSION_93, HRN_PG_SYSTEMID_93, hrnPgCatalogVersion(PG_VERSION_93), NULL))->dbPrimary),
|
||||
"backup init");
|
||||
TEST_RESULT_BOOL(cfgOptionBool(cfgOptChecksumPage), false, "check checksum-page");
|
||||
}
|
||||
@ -1205,8 +1204,7 @@ testRun(void)
|
||||
|
||||
// Create pg_control
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_93, .systemId = PG_VERSION_93}));
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_93}));
|
||||
|
||||
// Create stanza
|
||||
StringList *argList = strLstNew();
|
||||
@ -1246,7 +1244,7 @@ testRun(void)
|
||||
});
|
||||
|
||||
BackupData *backupData = backupInit(
|
||||
infoBackupNew(PG_VERSION_93, PG_VERSION_93, hrnPgCatalogVersion(PG_VERSION_93), NULL));
|
||||
infoBackupNew(PG_VERSION_93, HRN_PG_SYSTEMID_93, hrnPgCatalogVersion(PG_VERSION_93), NULL));
|
||||
|
||||
TEST_RESULT_INT(backupTime(backupData, true), 1575392588, "multiple tries for sleep");
|
||||
TEST_ERROR(backupTime(backupData, true), KernelError, "PostgreSQL clock has not advanced to the next second after 3 tries");
|
||||
@ -1485,8 +1483,7 @@ testRun(void)
|
||||
|
||||
// Create pg_control
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_84, .systemId = 1000000000000000840}));
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_84}));
|
||||
|
||||
cmdStanzaCreate();
|
||||
TEST_RESULT_LOG("P00 INFO: stanza-create for stanza 'test1' on repo1");
|
||||
@ -1538,8 +1535,8 @@ testRun(void)
|
||||
"P00 INFO: new backup label = [FULL-1]\n"
|
||||
"P00 INFO: full backup size = 8KB, file total = 2",
|
||||
TEST_64BIT() ?
|
||||
(TEST_BIG_ENDIAN() ? "749acedef8f8d5fe35fc20c0375657f876ccc38e" : "21e2ddc99cdf4cfca272eee4f38891146092e358") :
|
||||
"8bb70506d988a8698d9e8cf90736ada23634571b");
|
||||
(TEST_BIG_ENDIAN() ? "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" : "7ac45fd284c8b8aa84ec84927e95601023911b8e") :
|
||||
"37689eebc90fa4bf25d34101e3193fb5b592295b");
|
||||
|
||||
// Make pg no longer appear to be running
|
||||
HRN_STORAGE_REMOVE(storagePgWrite(), PG_FILE_POSTMTRPID, .errorOnMissing = true);
|
||||
@ -1736,8 +1733,7 @@ testRun(void)
|
||||
|
||||
// Create pg_control
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_95, .systemId = 1000000000000000950}),
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_95}),
|
||||
.timeModified = backupTimeStart);
|
||||
|
||||
cmdStanzaCreate();
|
||||
@ -2169,8 +2165,7 @@ testRun(void)
|
||||
{
|
||||
// Update pg_control
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_96, .systemId = 1000000000000000960}),
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_96}),
|
||||
.timeModified = backupTimeStart);
|
||||
|
||||
// Update version
|
||||
@ -2314,10 +2309,7 @@ testRun(void)
|
||||
// Update pg_control
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer(
|
||||
(PgControl){
|
||||
.version = PG_VERSION_11, .systemId = 1000000000000001100, .pageChecksum = true,
|
||||
.walSegmentSize = 1024 * 1024}),
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_11, .pageChecksum = true, .walSegmentSize = 1024 * 1024}),
|
||||
.timeModified = backupTimeStart);
|
||||
|
||||
// Update version
|
||||
|
@ -151,8 +151,7 @@ testRun(void)
|
||||
|
||||
// Create pg_control for standby
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_92, .systemId = 6569239123849665679}));
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_92}));
|
||||
|
||||
// Standby database path doesn't match pg_control
|
||||
harnessPqScriptSet((HarnessPq [])
|
||||
@ -178,29 +177,29 @@ testRun(void)
|
||||
// Create pg_control for primary
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgIdxWrite(1), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_92, .systemId = 6569239123849665679}));
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_92}));
|
||||
|
||||
// Create info files
|
||||
HRN_INFO_PUT(
|
||||
storageRepoIdxWrite(0), INFO_ARCHIVE_PATH_FILE,
|
||||
"[db]\n"
|
||||
"db-id=1\n"
|
||||
"db-system-id=6569239123849665679\n"
|
||||
"db-system-id=" HRN_PG_SYSTEMID_92_Z "\n"
|
||||
"db-version=\"9.2\"\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-id\":6569239123849665679,\"db-version\":\"9.2\"}\n");
|
||||
"1={\"db-id\":" HRN_PG_SYSTEMID_92_Z ",\"db-version\":\"9.2\"}\n");
|
||||
HRN_INFO_PUT(
|
||||
storageRepoIdxWrite(0), INFO_BACKUP_PATH_FILE,
|
||||
"[db]\n"
|
||||
"db-catalog-version=201608131\n"
|
||||
"db-control-version=920\n"
|
||||
"db-id=1\n"
|
||||
"db-system-id=6569239123849665679\n"
|
||||
"db-system-id=" HRN_PG_SYSTEMID_92_Z "\n"
|
||||
"db-version=\"9.2\"\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-catalog-version\":201608131,\"db-control-version\":920,\"db-system-id\":6569239123849665679,"
|
||||
"1={\"db-catalog-version\":201608131,\"db-control-version\":920,\"db-system-id\":" HRN_PG_SYSTEMID_92_Z ","
|
||||
"\"db-version\":\"9.2\"}\n");
|
||||
|
||||
// Single repo config - error when checking archive mode setting on database
|
||||
@ -272,22 +271,22 @@ testRun(void)
|
||||
storageRepoIdxWrite(1), INFO_ARCHIVE_PATH_FILE,
|
||||
"[db]\n"
|
||||
"db-id=1\n"
|
||||
"db-system-id=6569239123849665679\n"
|
||||
"db-system-id=" HRN_PG_SYSTEMID_92_Z "\n"
|
||||
"db-version=\"9.2\"\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-id\":6569239123849665679,\"db-version\":\"9.2\"}\n");
|
||||
"1={\"db-id\":" HRN_PG_SYSTEMID_92_Z ",\"db-version\":\"9.2\"}\n");
|
||||
HRN_INFO_PUT(
|
||||
storageRepoIdxWrite(1), INFO_BACKUP_PATH_FILE,
|
||||
"[db]\n"
|
||||
"db-catalog-version=201608131\n"
|
||||
"db-control-version=920\n"
|
||||
"db-id=1\n"
|
||||
"db-system-id=6569239123849665679\n"
|
||||
"db-system-id=" HRN_PG_SYSTEMID_92_Z "\n"
|
||||
"db-version=\"9.2\"\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-catalog-version\":201608131,\"db-control-version\":920,\"db-system-id\":6569239123849665679,"
|
||||
"1={\"db-catalog-version\":201608131,\"db-control-version\":920,\"db-system-id\":" HRN_PG_SYSTEMID_92_Z ","
|
||||
"\"db-version\":\"9.2\"}\n");
|
||||
|
||||
// Error when WAL segment not found
|
||||
@ -574,7 +573,7 @@ testRun(void)
|
||||
// Create pg_control
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgIdxWrite(0), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_96, .systemId = 6569239123849665679}));
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_96}));
|
||||
|
||||
// Create info files
|
||||
TEST_RESULT_VOID(cmdStanzaCreate(), "stanza create - encryption");
|
||||
@ -583,7 +582,7 @@ testRun(void)
|
||||
// Version mismatch
|
||||
TEST_ERROR(
|
||||
checkStanzaInfoPg(
|
||||
storageRepoIdx(0), PG_VERSION_94, 6569239123849665679, cfgOptionIdxStrId(cfgOptRepoCipherType, 0),
|
||||
storageRepoIdx(0), PG_VERSION_94, HRN_PG_SYSTEMID_94, cfgOptionIdxStrId(cfgOptRepoCipherType, 0),
|
||||
cfgOptionIdxStr(cfgOptRepoCipherPass, 0)),
|
||||
FileInvalidError,
|
||||
"backup and archive info files exist but do not match the database\n"
|
||||
|
@ -62,8 +62,7 @@ testRun(void)
|
||||
|
||||
// Create pg_control
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_96, .systemId = 6569239123849665679}));
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_96}));
|
||||
|
||||
TEST_RESULT_VOID(cmdStanzaCreate(), "stanza create - one repo, no files exist");
|
||||
TEST_RESULT_LOG("P00 INFO: stanza-create for stanza 'db' on repo1");
|
||||
@ -72,11 +71,11 @@ testRun(void)
|
||||
storageHrn, "test.info",
|
||||
"[db]\n"
|
||||
"db-id=1\n"
|
||||
"db-system-id=6569239123849665679\n"
|
||||
"db-system-id=" HRN_PG_SYSTEMID_96_Z "\n"
|
||||
"db-version=\"9.6\"\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-id\":6569239123849665679,\"db-version\":\"9.6\"}\n",
|
||||
"1={\"db-id\":" HRN_PG_SYSTEMID_96_Z ",\"db-version\":\"9.6\"}\n",
|
||||
.comment = "put archive info to test file");
|
||||
|
||||
TEST_RESULT_BOOL(
|
||||
@ -94,11 +93,11 @@ testRun(void)
|
||||
"db-catalog-version=201608131\n"
|
||||
"db-control-version=960\n"
|
||||
"db-id=1\n"
|
||||
"db-system-id=6569239123849665679\n"
|
||||
"db-system-id=" HRN_PG_SYSTEMID_96_Z "\n"
|
||||
"db-version=\"9.6\"\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-catalog-version\":201608131,\"db-control-version\":960,\"db-system-id\":6569239123849665679,"
|
||||
"1={\"db-catalog-version\":201608131,\"db-control-version\":960,\"db-system-id\":" HRN_PG_SYSTEMID_96_Z ","
|
||||
"\"db-version\":\"9.6\"}\n",
|
||||
.comment = "put backup info to test file");
|
||||
|
||||
@ -363,11 +362,11 @@ testRun(void)
|
||||
storageRepoIdxWrite(0), INFO_ARCHIVE_PATH_FILE,
|
||||
"[db]\n"
|
||||
"db-id=1\n"
|
||||
"db-system-id=6569239123849665679\n"
|
||||
"db-system-id=" HRN_PG_SYSTEMID_96_Z "\n"
|
||||
"db-version=\"9.6\"\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-id\":6569239123849665679,\"db-version\":\"9.6\"}\n",
|
||||
"1={\"db-id\":" HRN_PG_SYSTEMID_96_Z ",\"db-version\":\"9.6\"}\n",
|
||||
.comment = "put archive info to file repo1");
|
||||
TEST_STORAGE_EXISTS(
|
||||
storageRepoIdxWrite(0), INFO_BACKUP_PATH_FILE INFO_COPY_EXT, .remove = true,
|
||||
@ -396,19 +395,19 @@ testRun(void)
|
||||
"db-catalog-version=201608131\n"
|
||||
"db-control-version=960\n"
|
||||
"db-id=2\n"
|
||||
"db-system-id=6569239123849665679\n"
|
||||
"db-system-id=" HRN_PG_SYSTEMID_96_Z "\n"
|
||||
"db-version=\"9.6\"\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"2={\"db-catalog-version\":201608131,\"db-control-version\":960,\"db-system-id\":6569239123849665679,"
|
||||
"2={\"db-catalog-version\":201608131,\"db-control-version\":960,\"db-system-id\":" HRN_PG_SYSTEMID_96_Z ","
|
||||
"\"db-version\":\"9.6\"}\n",
|
||||
.comment = "put backup info to file - bad db-id");
|
||||
|
||||
TEST_ERROR(
|
||||
cmdStanzaCreate(), FileInvalidError,
|
||||
"backup info file and archive info file do not match\n"
|
||||
"archive: id = 1, version = 9.6, system-id = 6569239123849665679\n"
|
||||
"backup : id = 2, version = 9.6, system-id = 6569239123849665679\n"
|
||||
"archive: id = 1, version = 9.6, system-id = " HRN_PG_SYSTEMID_96_Z "\n"
|
||||
"backup : id = 2, version = 9.6, system-id = " HRN_PG_SYSTEMID_96_Z "\n"
|
||||
"HINT: this may be a symptom of repository corruption!");
|
||||
TEST_RESULT_LOG("P00 INFO: stanza-create for stanza 'db' on repo1");
|
||||
|
||||
@ -427,22 +426,22 @@ testRun(void)
|
||||
"db-catalog-version=201510051\n"
|
||||
"db-control-version=942\n"
|
||||
"db-id=1\n"
|
||||
"db-system-id=6569239123849665679\n"
|
||||
"db-system-id=" HRN_PG_SYSTEMID_96_Z "\n"
|
||||
"db-version=\"9.5\"\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-catalog-version\":201510051,\"db-control-version\":942,\"db-system-id\":6569239123849665679,"
|
||||
"1={\"db-catalog-version\":201510051,\"db-control-version\":942,\"db-system-id\":" HRN_PG_SYSTEMID_96_Z ","
|
||||
"\"db-version\":\"9.5\"}\n");
|
||||
|
||||
HRN_INFO_PUT(
|
||||
storageRepoIdxWrite(0), INFO_ARCHIVE_PATH_FILE,
|
||||
"[db]\n"
|
||||
"db-id=1\n"
|
||||
"db-system-id=6569239123849665679\n"
|
||||
"db-system-id=" HRN_PG_SYSTEMID_96_Z "\n"
|
||||
"db-version=\"9.5\"\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-id\":6569239123849665679,\"db-version\":\"9.5\"}\n");
|
||||
"1={\"db-id\":" HRN_PG_SYSTEMID_96_Z ",\"db-version\":\"9.5\"}\n");
|
||||
|
||||
TEST_ERROR(
|
||||
cmdStanzaCreate(), FileInvalidError,
|
||||
@ -529,8 +528,7 @@ testRun(void)
|
||||
|
||||
// Create pg_control
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_92, .systemId = 6569239123849665699}));
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_92}));
|
||||
|
||||
harnessPqScriptSet((HarnessPq [])
|
||||
{
|
||||
@ -570,7 +568,7 @@ testRun(void)
|
||||
// Create pg_control with different version
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_91, .systemId = 6569239123849665699}));
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_91}));
|
||||
|
||||
harnessPqScriptSet((HarnessPq [])
|
||||
{
|
||||
@ -589,8 +587,7 @@ testRun(void)
|
||||
|
||||
// Create pg_control
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_92, .systemId = 6569239123849665699}));
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_92}));
|
||||
|
||||
harnessPqScriptSet((HarnessPq [])
|
||||
{
|
||||
@ -619,12 +616,12 @@ testRun(void)
|
||||
// Create pg_control for primary
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgIdxWrite(1), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_92, .systemId = 6569239123849665699}));
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_92}));
|
||||
|
||||
// Create pg_control for standby
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgIdxWrite(0), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_94, .systemId = 6569239123849665700}));
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_94}));
|
||||
|
||||
harnessPqScriptSet((HarnessPq [])
|
||||
{
|
||||
@ -636,7 +633,7 @@ testRun(void)
|
||||
PgControl pgControl = {0};
|
||||
TEST_ASSIGN(pgControl, pgValidate(), "validate primary on pg2");
|
||||
TEST_RESULT_UINT(pgControl.version, PG_VERSION_92, "version set");
|
||||
TEST_RESULT_UINT(pgControl.systemId, 6569239123849665699, "systemId set");
|
||||
TEST_RESULT_UINT(pgControl.systemId, HRN_PG_SYSTEMID_92, "systemId set");
|
||||
TEST_RESULT_UINT(pgControl.catalogVersion, 201204301, "catalogVersion set");
|
||||
}
|
||||
|
||||
@ -665,8 +662,7 @@ testRun(void)
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
// Create pg_control for the rest of the tests
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_96, .systemId = 6569239123849665679}));
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_96}));
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
TEST_TITLE("stanza-upgrade - info file mismatch: db-id");
|
||||
@ -678,11 +674,11 @@ testRun(void)
|
||||
"db-catalog-version=201608131\n"
|
||||
"db-control-version=960\n"
|
||||
"db-id=1\n"
|
||||
"db-system-id=6569239123849665679\n"
|
||||
"db-system-id=" HRN_PG_SYSTEMID_96_Z "\n"
|
||||
"db-version=\"9.6\"\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-catalog-version\":201608131,\"db-control-version\":960,\"db-system-id\":6569239123849665679,"
|
||||
"1={\"db-catalog-version\":201608131,\"db-control-version\":960,\"db-system-id\":" HRN_PG_SYSTEMID_96_Z ","
|
||||
"\"db-version\":\"9.6\"}\n");
|
||||
|
||||
// backup info up to date but archive info db-id mismatch
|
||||
@ -690,17 +686,17 @@ testRun(void)
|
||||
storageRepoIdxWrite(0), INFO_ARCHIVE_PATH_FILE,
|
||||
"[db]\n"
|
||||
"db-id=2\n"
|
||||
"db-system-id=6569239123849665679\n"
|
||||
"db-system-id=" HRN_PG_SYSTEMID_96_Z "\n"
|
||||
"db-version=\"9.6\"\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"2={\"db-id\":6569239123849665679,\"db-version\":\"9.6\"}\n");
|
||||
"2={\"db-id\":" HRN_PG_SYSTEMID_96_Z ",\"db-version\":\"9.6\"}\n");
|
||||
|
||||
TEST_ERROR(
|
||||
cmdStanzaUpgrade(), FileInvalidError,
|
||||
"backup info file and archive info file do not match\n"
|
||||
"archive: id = 2, version = 9.6, system-id = 6569239123849665679\n"
|
||||
"backup : id = 1, version = 9.6, system-id = 6569239123849665679\n"
|
||||
"archive: id = 2, version = 9.6, system-id = " HRN_PG_SYSTEMID_96_Z "\n"
|
||||
"backup : id = 1, version = 9.6, system-id = " HRN_PG_SYSTEMID_96_Z "\n"
|
||||
"HINT: this may be a symptom of repository corruption!");
|
||||
TEST_RESULT_LOG("P00 INFO: stanza-upgrade for stanza 'db' on repo1");
|
||||
|
||||
@ -714,23 +710,23 @@ testRun(void)
|
||||
"db-catalog-version=201608131\n"
|
||||
"db-control-version=960\n"
|
||||
"db-id=2\n"
|
||||
"db-system-id=6569239123849665679\n"
|
||||
"db-system-id=" HRN_PG_SYSTEMID_96_Z "\n"
|
||||
"db-version=\"9.6\"\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-catalog-version\":201510051,\"db-control-version\":942,\"db-system-id\":6569239123849665999,"
|
||||
"\"db-version\":\"9.5\"}\n"
|
||||
"2={\"db-catalog-version\":201608131,\"db-control-version\":960,\"db-system-id\":6569239123849665679,"
|
||||
"2={\"db-catalog-version\":201608131,\"db-control-version\":960,\"db-system-id\":" HRN_PG_SYSTEMID_96_Z ","
|
||||
"\"db-version\":\"9.6\"}\n");
|
||||
HRN_INFO_PUT(
|
||||
storageRepoIdxWrite(0), INFO_ARCHIVE_PATH_FILE,
|
||||
"[db]\n"
|
||||
"db-id=1\n"
|
||||
"db-system-id=6569239123849665679\n"
|
||||
"db-system-id=" HRN_PG_SYSTEMID_96_Z "\n"
|
||||
"db-version=\"9.5\"\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-id\":6569239123849665679,\"db-version\":\"9.5\"}\n");
|
||||
"1={\"db-id\":" HRN_PG_SYSTEMID_96_Z ",\"db-version\":\"9.5\"}\n");
|
||||
|
||||
TEST_RESULT_VOID(cmdStanzaUpgrade(), "stanza upgrade - archive.info file upgraded - version");
|
||||
TEST_RESULT_LOG("P00 INFO: stanza-upgrade for stanza 'db' on repo1");
|
||||
@ -739,12 +735,12 @@ testRun(void)
|
||||
storageHrn, "test.info",
|
||||
"[db]\n"
|
||||
"db-id=2\n"
|
||||
"db-system-id=6569239123849665679\n"
|
||||
"db-system-id=" HRN_PG_SYSTEMID_96_Z "\n"
|
||||
"db-version=\"9.6\"\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-id\":6569239123849665679,\"db-version\":\"9.5\"}\n"
|
||||
"2={\"db-id\":6569239123849665679,\"db-version\":\"9.6\"}\n",
|
||||
"1={\"db-id\":" HRN_PG_SYSTEMID_96_Z ",\"db-version\":\"9.5\"}\n"
|
||||
"2={\"db-id\":" HRN_PG_SYSTEMID_96_Z ",\"db-version\":\"9.6\"}\n",
|
||||
.comment = "put archive info to test file");
|
||||
|
||||
TEST_RESULT_BOOL(
|
||||
@ -766,11 +762,11 @@ testRun(void)
|
||||
"db-catalog-version=201608131\n"
|
||||
"db-control-version=960\n"
|
||||
"db-id=1\n"
|
||||
"db-system-id=6569239123849665679\n"
|
||||
"db-system-id=" HRN_PG_SYSTEMID_96_Z "\n"
|
||||
"db-version=\"9.5\"\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-catalog-version\":201510051,\"db-control-version\":942,\"db-system-id\":6569239123849665679,"
|
||||
"1={\"db-catalog-version\":201510051,\"db-control-version\":942,\"db-system-id\":" HRN_PG_SYSTEMID_96_Z ","
|
||||
"\"db-version\":\"9.5\"}\n");
|
||||
|
||||
TEST_RESULT_VOID(cmdStanzaUpgrade(), "stanza upgrade - backup.info file upgraded - version");
|
||||
@ -782,13 +778,13 @@ testRun(void)
|
||||
"db-catalog-version=201608131\n"
|
||||
"db-control-version=960\n"
|
||||
"db-id=2\n"
|
||||
"db-system-id=6569239123849665679\n"
|
||||
"db-system-id=" HRN_PG_SYSTEMID_96_Z "\n"
|
||||
"db-version=\"9.6\"\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-catalog-version\":201510051,\"db-control-version\":942,\"db-system-id\":6569239123849665679,"
|
||||
"1={\"db-catalog-version\":201510051,\"db-control-version\":942,\"db-system-id\":" HRN_PG_SYSTEMID_96_Z ","
|
||||
"\"db-version\":\"9.5\"}\n"
|
||||
"2={\"db-catalog-version\":201608131,\"db-control-version\":960,\"db-system-id\":6569239123849665679,"
|
||||
"2={\"db-catalog-version\":201608131,\"db-control-version\":960,\"db-system-id\":" HRN_PG_SYSTEMID_96_Z ","
|
||||
"\"db-version\":\"9.6\"}\n",
|
||||
.comment = "put backup info to test file");
|
||||
|
||||
@ -811,13 +807,13 @@ testRun(void)
|
||||
"db-catalog-version=201608131\n"
|
||||
"db-control-version=960\n"
|
||||
"db-id=2\n"
|
||||
"db-system-id=6569239123849665679\n"
|
||||
"db-system-id=" HRN_PG_SYSTEMID_96_Z "\n"
|
||||
"db-version=\"9.6\"\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-catalog-version\":201510051,\"db-control-version\":942,\"db-system-id\":6569239123849665999,"
|
||||
"\"db-version\":\"9.5\"}\n"
|
||||
"2={\"db-catalog-version\":201608131,\"db-control-version\":960,\"db-system-id\":6569239123849665679,"
|
||||
"2={\"db-catalog-version\":201608131,\"db-control-version\":960,\"db-system-id\":" HRN_PG_SYSTEMID_96_Z ","
|
||||
"\"db-version\":\"9.6\"}\n");
|
||||
HRN_INFO_PUT(
|
||||
storageRepoIdxWrite(0), INFO_ARCHIVE_PATH_FILE,
|
||||
@ -836,12 +832,12 @@ testRun(void)
|
||||
storageHrn, "test.info",
|
||||
"[db]\n"
|
||||
"db-id=2\n"
|
||||
"db-system-id=6569239123849665679\n"
|
||||
"db-system-id=" HRN_PG_SYSTEMID_96_Z "\n"
|
||||
"db-version=\"9.6\"\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-id\":6569239123849665999,\"db-version\":\"9.6\"}\n"
|
||||
"2={\"db-id\":6569239123849665679,\"db-version\":\"9.6\"}\n",
|
||||
"2={\"db-id\":" HRN_PG_SYSTEMID_96_Z ",\"db-version\":\"9.6\"}\n",
|
||||
.comment = "put archive info to test file");
|
||||
|
||||
TEST_RESULT_BOOL(
|
||||
@ -879,13 +875,13 @@ testRun(void)
|
||||
"db-catalog-version=201608131\n"
|
||||
"db-control-version=960\n"
|
||||
"db-id=2\n"
|
||||
"db-system-id=6569239123849665679\n"
|
||||
"db-system-id=" HRN_PG_SYSTEMID_96_Z "\n"
|
||||
"db-version=\"9.6\"\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-catalog-version\":201608131,\"db-control-version\":960,\"db-system-id\":6569239123849665999,"
|
||||
"\"db-version\":\"9.6\"}\n"
|
||||
"2={\"db-catalog-version\":201608131,\"db-control-version\":960,\"db-system-id\":6569239123849665679,"
|
||||
"2={\"db-catalog-version\":201608131,\"db-control-version\":960,\"db-system-id\":" HRN_PG_SYSTEMID_96_Z ","
|
||||
"\"db-version\":\"9.6\"}\n",
|
||||
.comment = "put backup info to test file");
|
||||
TEST_RESULT_BOOL(
|
||||
@ -914,8 +910,7 @@ testRun(void)
|
||||
|
||||
// Create pg_control for stanza-create
|
||||
HRN_STORAGE_PUT(
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL,
|
||||
hrnPgControlToBuffer((PgControl){.version = PG_VERSION_96, .systemId = 6569239123849665679}));
|
||||
storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_96}));
|
||||
|
||||
TEST_RESULT_VOID(cmdStanzaCreate(), "create a stanza that will not be deleted");
|
||||
TEST_RESULT_LOG("P00 INFO: stanza-create for stanza 'otherstanza' on repo1");
|
||||
|
@ -37,14 +37,14 @@ testRun(void)
|
||||
"db-catalog-version=201409291\n" \
|
||||
"db-control-version=942\n" \
|
||||
"db-id=1\n" \
|
||||
"db-system-id=6625592122879095702\n" \
|
||||
"db-system-id=" HRN_PG_SYSTEMID_94_Z "\n" \
|
||||
"db-version=\"9.4\"\n"
|
||||
|
||||
#define TEST_BACKUP_DB2_11 \
|
||||
"db-catalog-version=201707211\n" \
|
||||
"db-control-version=1100\n" \
|
||||
"db-id=2\n" \
|
||||
"db-system-id=6626363367545678089\n" \
|
||||
"db-system-id=" HRN_PG_SYSTEMID_11_Z "\n" \
|
||||
"db-version=\"11\"\n"
|
||||
|
||||
#define TEST_BACKUP_DB1_CURRENT_FULL1 \
|
||||
@ -77,11 +77,11 @@ testRun(void)
|
||||
"\"option-checksum-page\":true,\"option-compress\":true,\"option-hardlink\":false,\"option-online\":true}\n"
|
||||
|
||||
#define TEST_BACKUP_DB1_HISTORY \
|
||||
"1={\"db-catalog-version\":201409291,\"db-control-version\":942,\"db-system-id\":6625592122879095702," \
|
||||
"1={\"db-catalog-version\":201409291,\"db-control-version\":942,\"db-system-id\":" HRN_PG_SYSTEMID_94_Z "," \
|
||||
"\"db-version\":\"9.4\"}"
|
||||
|
||||
#define TEST_BACKUP_DB2_HISTORY \
|
||||
"2={\"db-catalog-version\":201707211,\"db-control-version\":1100,\"db-system-id\":6626363367545678089," \
|
||||
"2={\"db-catalog-version\":201707211,\"db-control-version\":1100,\"db-system-id\":" HRN_PG_SYSTEMID_11_Z "," \
|
||||
"\"db-version\":\"11\"}"
|
||||
|
||||
#define TEST_BACKUP_INFO_MULTI_HISTORY_BASE \
|
||||
@ -101,21 +101,21 @@ testRun(void)
|
||||
#define TEST_ARCHIVE_INFO_BASE \
|
||||
"[db]\n" \
|
||||
"db-id=1\n" \
|
||||
"db-system-id=6625592122879095702\n" \
|
||||
"db-system-id=" HRN_PG_SYSTEMID_94_Z "\n" \
|
||||
"db-version=\"9.4\"\n" \
|
||||
"\n" \
|
||||
"[db:history]\n" \
|
||||
"1={\"db-id\":6625592122879095702,\"db-version\":\"9.4\"}"
|
||||
"1={\"db-id\":" HRN_PG_SYSTEMID_94_Z ",\"db-version\":\"9.4\"}"
|
||||
|
||||
#define TEST_ARCHIVE_INFO_MULTI_HISTORY_BASE \
|
||||
"[db]\n" \
|
||||
"db-id=2\n" \
|
||||
"db-system-id=6626363367545678089\n" \
|
||||
"db-system-id=" HRN_PG_SYSTEMID_11_Z "\n" \
|
||||
"db-version=\"11\"\n" \
|
||||
"\n" \
|
||||
"[db:history]\n" \
|
||||
"1={\"db-id\":6625592122879095702,\"db-version\":\"9.4\"}\n" \
|
||||
"2={\"db-id\":6626363367545678089,\"db-version\":\"11\"}"
|
||||
"1={\"db-id\":" HRN_PG_SYSTEMID_94_Z ",\"db-version\":\"9.4\"}\n" \
|
||||
"2={\"db-id\":" HRN_PG_SYSTEMID_11_Z ",\"db-version\":\"11\"}"
|
||||
|
||||
#define TEST_MANIFEST_HEADER \
|
||||
"[backup]\n" \
|
||||
@ -131,7 +131,7 @@ testRun(void)
|
||||
"db-catalog-version=201204301\n" \
|
||||
"db-control-version=922\n" \
|
||||
"db-id=1\n" \
|
||||
"db-system-id=6625592122879095702\n" \
|
||||
"db-system-id=" HRN_PG_SYSTEMID_94_Z "\n" \
|
||||
"db-version=\"9.2\"\n"
|
||||
|
||||
#define TEST_MANIFEST_DB_94 \
|
||||
@ -140,7 +140,7 @@ testRun(void)
|
||||
"db-catalog-version=201409291\n" \
|
||||
"db-control-version=942\n" \
|
||||
"db-id=1\n" \
|
||||
"db-system-id=6625592122879095702\n" \
|
||||
"db-system-id=" HRN_PG_SYSTEMID_94_Z "\n" \
|
||||
"db-version=\"9.4\"\n"
|
||||
|
||||
#define TEST_MANIFEST_OPTION_ALL \
|
||||
@ -257,7 +257,7 @@ testRun(void)
|
||||
"P00 WARN: unable to open missing file '" TEST_PATH "/repo/backup/db/20181119-152138F/backup.manifest.copy'"
|
||||
" for read\n"
|
||||
"P00 ERROR: [028]: '20181119-152138F' may not be recoverable - PG data (id 1, version 9.2, system-id "
|
||||
"6625592122879095702) is not in the backup.info history, skipping");
|
||||
HRN_PG_SYSTEMID_94_Z ") is not in the backup.info history, skipping");
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
TEST_TITLE("rerun test with db-system-id invalid and no main");
|
||||
@ -305,7 +305,7 @@ testRun(void)
|
||||
"db-catalog-version=201409291\n"
|
||||
"db-control-version=942\n"
|
||||
"db-id=0\n"
|
||||
"db-system-id=6625592122879095702\n"
|
||||
"db-system-id=" HRN_PG_SYSTEMID_94_Z "\n"
|
||||
"db-version=\"9.4\"\n"
|
||||
TEST_MANIFEST_OPTION_ALL
|
||||
TEST_MANIFEST_TARGET
|
||||
@ -326,7 +326,7 @@ testRun(void)
|
||||
"P00 WARN: unable to open missing file '" TEST_PATH "/repo/backup/db/20181119-152138F/backup.manifest' for read\n"
|
||||
"P00 WARN: 20181119-152138F/backup.manifest is missing or unusable, using copy\n"
|
||||
"P00 ERROR: [028]: '20181119-152138F' may not be recoverable - PG data (id 0, version 9.4, system-id "
|
||||
"6625592122879095702) is not in the backup.info history, skipping");
|
||||
HRN_PG_SYSTEMID_94_Z ") is not in the backup.info history, skipping");
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
TEST_TITLE("missing main manifest, errored copy");
|
||||
@ -567,11 +567,11 @@ testRun(void)
|
||||
archiveInfo, infoArchiveNewLoad(ioBufferReadNew(harnessInfoChecksumZ(
|
||||
"[db]\n"
|
||||
"db-id=2\n"
|
||||
"db-system-id=6626363367545678089\n"
|
||||
"db-system-id=" HRN_PG_SYSTEMID_11_Z "\n"
|
||||
"db-version=\"11\"\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"2={\"db-id\":6626363367545678089,\"db-version\":\"11\"}"))), "archive.info missing history");
|
||||
"2={\"db-id\":" HRN_PG_SYSTEMID_11_Z ",\"db-version\":\"11\"}"))), "archive.info missing history");
|
||||
|
||||
TEST_ERROR(
|
||||
verifyPgHistory(infoArchivePg(archiveInfo), infoBackupPg(backupInfo)), FormatError,
|
||||
@ -584,12 +584,12 @@ testRun(void)
|
||||
archiveInfo, infoArchiveNewLoad(ioBufferReadNew(harnessInfoChecksumZ(
|
||||
"[db]\n"
|
||||
"db-id=2\n"
|
||||
"db-system-id=6626363367545678089\n"
|
||||
"db-system-id=" HRN_PG_SYSTEMID_11_Z "\n"
|
||||
"db-version=\"11\"\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-id\":6625592122879095777,\"db-version\":\"9.4\"}\n"
|
||||
"2={\"db-id\":6626363367545678089,\"db-version\":\"11\"}"))), "archive.info history system id mismatch");
|
||||
"2={\"db-id\":" HRN_PG_SYSTEMID_11_Z ",\"db-version\":\"11\"}"))), "archive.info history system id mismatch");
|
||||
|
||||
TEST_ERROR(
|
||||
verifyPgHistory(infoArchivePg(archiveInfo), infoBackupPg(backupInfo)), FormatError,
|
||||
@ -602,12 +602,12 @@ testRun(void)
|
||||
archiveInfo, infoArchiveNewLoad(ioBufferReadNew(harnessInfoChecksumZ(
|
||||
"[db]\n"
|
||||
"db-id=2\n"
|
||||
"db-system-id=6626363367545678089\n"
|
||||
"db-system-id=" HRN_PG_SYSTEMID_11_Z "\n"
|
||||
"db-version=\"11\"\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"1={\"db-id\":6625592122879095702,\"db-version\":\"9.5\"}\n"
|
||||
"2={\"db-id\":6626363367545678089,\"db-version\":\"11\"}"))), "archive.info history version mismatch");
|
||||
"1={\"db-id\":" HRN_PG_SYSTEMID_94_Z ",\"db-version\":\"9.5\"}\n"
|
||||
"2={\"db-id\":" HRN_PG_SYSTEMID_11_Z ",\"db-version\":\"11\"}"))), "archive.info history version mismatch");
|
||||
|
||||
TEST_ERROR(
|
||||
verifyPgHistory(infoArchivePg(archiveInfo), infoBackupPg(backupInfo)), FormatError,
|
||||
@ -620,12 +620,12 @@ testRun(void)
|
||||
archiveInfo, infoArchiveNewLoad(ioBufferReadNew(harnessInfoChecksumZ(
|
||||
"[db]\n"
|
||||
"db-id=2\n"
|
||||
"db-system-id=6626363367545678089\n"
|
||||
"db-system-id=" HRN_PG_SYSTEMID_11_Z "\n"
|
||||
"db-version=\"11\"\n"
|
||||
"\n"
|
||||
"[db:history]\n"
|
||||
"3={\"db-id\":6625592122879095702,\"db-version\":\"9.4\"}\n"
|
||||
"2={\"db-id\":6626363367545678089,\"db-version\":\"11\"}"))), "archive.info history id mismatch");
|
||||
"3={\"db-id\":" HRN_PG_SYSTEMID_94_Z ",\"db-version\":\"9.4\"}\n"
|
||||
"2={\"db-id\":" HRN_PG_SYSTEMID_11_Z ",\"db-version\":\"11\"}"))), "archive.info history id mismatch");
|
||||
|
||||
TEST_ERROR(
|
||||
verifyPgHistory(infoArchivePg(archiveInfo), infoBackupPg(backupInfo)), FormatError,
|
||||
@ -804,8 +804,8 @@ testRun(void)
|
||||
"P00 WARN: invalid checksum, actual 'e056f784a995841fd4e2802b809299b8db6803a2' but expected 'BOGUS'"
|
||||
" <REPO:ARCHIVE>/archive.info\n"
|
||||
"P00 ERROR: [029]: backup info file and archive info file do not match\n"
|
||||
" archive: id = 1, version = 9.4, system-id = 6625592122879095702\n"
|
||||
" backup : id = 2, version = 11, system-id = 6626363367545678089\n"
|
||||
" archive: id = 1, version = 9.4, system-id = " HRN_PG_SYSTEMID_94_Z "\n"
|
||||
" backup : id = 2, version = 11, system-id = " HRN_PG_SYSTEMID_11_Z "\n"
|
||||
" HINT: this may be a symptom of repository corruption!");
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
@ -926,8 +926,7 @@ testRun(void)
|
||||
Buffer *walBuffer = bufNew((size_t)(1024 * 1024));
|
||||
bufUsedSet(walBuffer, bufSize(walBuffer));
|
||||
memset(bufPtr(walBuffer), 0, bufSize(walBuffer));
|
||||
hrnPgWalToBuffer(
|
||||
(PgWal){.version = PG_VERSION_11, .systemId = 6626363367545678089, .size = 1024 * 1024}, walBuffer);
|
||||
hrnPgWalToBuffer((PgWal){.version = PG_VERSION_11, .size = 1024 * 1024}, walBuffer);
|
||||
const char *walBufferSha1 = strZ(bufHex(cryptoHashOne(HASH_TYPE_SHA1_STR, walBuffer)));
|
||||
|
||||
HRN_STORAGE_PUT(
|
||||
@ -1419,8 +1418,7 @@ testRun(void)
|
||||
Buffer *walBuffer = bufNew((size_t)(1024 * 1024));
|
||||
bufUsedSet(walBuffer, bufSize(walBuffer));
|
||||
memset(bufPtr(walBuffer), 0, bufSize(walBuffer));
|
||||
hrnPgWalToBuffer(
|
||||
(PgWal){.version = PG_VERSION_11, .systemId = 6626363367545678089, .size = 1024 * 1024}, walBuffer);
|
||||
hrnPgWalToBuffer((PgWal){.version = PG_VERSION_11, .size = 1024 * 1024}, walBuffer);
|
||||
const char *walBufferSha1 = strZ(bufHex(cryptoHashOne(HASH_TYPE_SHA1_STR, walBuffer)));
|
||||
|
||||
HRN_STORAGE_PUT(
|
||||
|
@ -191,13 +191,13 @@ testRun(void)
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
pgData.id = 3;
|
||||
pgData.version = PG_VERSION_96;
|
||||
pgData.systemId = 6399999999999999999;
|
||||
pgData.systemId = HRN_PG_SYSTEMID_96;
|
||||
TEST_RESULT_VOID(infoPgAdd(infoPg, &pgData), "infoPgAdd");
|
||||
|
||||
InfoPgData pgDataTest = infoPgDataCurrent(infoPg);
|
||||
TEST_RESULT_INT(pgDataTest.id, 3, " id set");
|
||||
TEST_RESULT_INT(pgDataTest.version, PG_VERSION_96, " version set");
|
||||
TEST_RESULT_UINT(pgDataTest.systemId, 6399999999999999999, " system-id set");
|
||||
TEST_RESULT_UINT(pgDataTest.systemId, HRN_PG_SYSTEMID_96, " system-id set");
|
||||
|
||||
// infoPgDataToLog
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
|
Reference in New Issue
Block a user