diff --git a/test/define.yaml b/test/define.yaml index dbf8ea268..a1c77a87b 100644 --- a/test/define.yaml +++ b/test/define.yaml @@ -427,27 +427,6 @@ unit: coverage: - common/lock - # ******************************************************************************************************************************** - - name: postgres - - test: - # ---------------------------------------------------------------------------------------------------------------------------- - - name: client - total: 1 - harness: pq - - coverage: - - postgres/client - - # ---------------------------------------------------------------------------------------------------------------------------- - - name: interface - total: 9 - harness: postgres - - coverage: - - postgres/interface - - postgres/interface/page - # ******************************************************************************************************************************** - name: protocol @@ -596,6 +575,27 @@ unit: - storage/storage - storage/write + # ******************************************************************************************************************************** + - name: postgres + + test: + # ---------------------------------------------------------------------------------------------------------------------------- + - name: client + total: 1 + harness: pq + + coverage: + - postgres/client + + # ---------------------------------------------------------------------------------------------------------------------------- + - name: interface + total: 9 + harness: postgres + + coverage: + - postgres/interface + - postgres/interface/page + # ******************************************************************************************************************************** - name: build diff --git a/test/src/common/harnessPostgres.h b/test/src/common/harnessPostgres.h index 9cc32d6e8..744245c26 100644 --- a/test/src/common/harnessPostgres.h +++ b/test/src/common/harnessPostgres.h @@ -7,6 +7,8 @@ Harness for PostgreSQL Interface #include "postgres/interface.h" #include "postgres/version.h" +#include "common/harnessStorage.h" + /*********************************************************************************************************************************** Control file size used to create pg_control ***********************************************************************************************************************************/ @@ -46,6 +48,19 @@ System id constants by version #define HRN_PG_SYSTEMID_14 (10000000000000000000ULL + (uint64_t)PG_VERSION_14) #define HRN_PG_SYSTEMID_14_Z "10000000000000140000" +/*********************************************************************************************************************************** +Put a control file to storage +***********************************************************************************************************************************/ +#define HRN_PG_CONTROL_PUT(storageParam, versionParam, ...) \ + HRN_STORAGE_PUT( \ + storageParam, PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = versionParam, __VA_ARGS__})) + +/*********************************************************************************************************************************** +Update control file time +***********************************************************************************************************************************/ +#define HRN_PG_CONTROL_TIME(storageParam, timeParam, ...) \ + HRN_STORAGE_TIME(storageParam, PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, timeParam) + /*********************************************************************************************************************************** Functions ***********************************************************************************************************************************/ diff --git a/test/src/module/command/archiveGetTest.c b/test/src/module/command/archiveGetTest.c index 1da948e9b..2ab529d25 100644 --- a/test/src/module/command/archiveGetTest.c +++ b/test/src/module/command/archiveGetTest.c @@ -150,8 +150,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})); + HRN_PG_CONTROL_PUT(storagePgWrite(), PG_VERSION_10); HRN_INFO_PUT( storageRepoWrite(), INFO_ARCHIVE_PATH_FILE, @@ -623,8 +622,7 @@ testRun(void) // ------------------------------------------------------------------------------------------------------------------------- TEST_TITLE("no valid repo"); - HRN_STORAGE_PUT( - storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_10})); + HRN_PG_CONTROL_PUT(storagePgWrite(), PG_VERSION_10); strLstAddZ(argList, TEST_PATH "/pg/pg_wal/RECOVERYXLOG"); HRN_CFG_LOAD(cfgCmdArchiveGet, argList, .exeBogus = true); @@ -780,8 +778,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})); + HRN_PG_CONTROL_PUT(storagePgWrite(), PG_VERSION_11); HRN_INFO_PUT( storageRepoWrite(), INFO_ARCHIVE_PATH_FILE, @@ -810,9 +807,7 @@ testRun(void) // ------------------------------------------------------------------------------------------------------------------------- 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 = 1})); + HRN_PG_CONTROL_PUT(storagePgWrite(), PG_VERSION_10, .systemId = 1); TEST_ERROR(cmdArchiveGet(), RepoInvalidError, "unable to find a valid repository"); @@ -823,8 +818,7 @@ testRun(void) // ------------------------------------------------------------------------------------------------------------------------- TEST_TITLE("file is missing"); - HRN_STORAGE_PUT( - storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_10})); + HRN_PG_CONTROL_PUT(storagePgWrite(), PG_VERSION_10); TEST_RESULT_INT(cmdArchiveGet(), 1, "get"); diff --git a/test/src/module/command/archivePushTest.c b/test/src/module/command/archivePushTest.c index f3c47c54f..2bff23c1e 100644 --- a/test/src/module/command/archivePushTest.c +++ b/test/src/module/command/archivePushTest.c @@ -104,8 +104,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})); + HRN_PG_CONTROL_PUT(storagePgWrite(), PG_VERSION_96); // Create incorrect archive info HRN_INFO_PUT( @@ -288,8 +287,7 @@ testRun(void) strLstAddZ(argListTemp, "pg_wal/000000010000000100000001"); HRN_CFG_LOAD(cfgCmdArchivePush, argListTemp); - HRN_STORAGE_PUT( - storageTest, "pg/" PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_11})); + HRN_PG_CONTROL_PUT(storagePgWrite(), PG_VERSION_11); HRN_INFO_PUT( storageRepoIdxWrite(0), INFO_ARCHIVE_PATH_FILE, @@ -669,8 +667,7 @@ 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})); + HRN_PG_CONTROL_PUT(storagePgWrite(), PG_VERSION_94); HRN_INFO_PUT( storageTest, "repo/archive/test/archive.info", diff --git a/test/src/module/command/backupTest.c b/test/src/module/command/backupTest.c index 7cc0a65db..6ec38ca7c 100644 --- a/test/src/module/command/backupTest.c +++ b/test/src/module/command/backupTest.c @@ -274,6 +274,9 @@ testBackupPqScript(unsigned int pgVersion, time_t backupTimeStart, TestBackupPqS const char *lsnStopStr = strZ(pgLsnToStr(lsnStop)); const char *walSegmentStop = strZ(pgLsnToWalSegment(param.timeline, lsnStop, pgControl.walSegmentSize)); + // Update pg_control on primary with the backup time + HRN_PG_CONTROL_TIME(storagePgIdxWrite(0), backupTimeStart); + // Write WAL segments to the archive // ----------------------------------------------------------------------------------------------------------------------------- if (!param.noPriorWal) @@ -1010,8 +1013,7 @@ testRun(void) 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})); + HRN_PG_CONTROL_PUT(storagePgWrite(), PG_VERSION_92); argList = strLstNew(); hrnCfgArgRawZ(argList, cfgOptStanza, "test1"); @@ -1034,8 +1036,7 @@ testRun(void) TEST_TITLE("error when pg_control does not match stanza"); // Create pg_control - HRN_STORAGE_PUT( - storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_10})); + HRN_PG_CONTROL_PUT(storagePgWrite(), PG_VERSION_10); argList = strLstNew(); hrnCfgArgRawZ(argList, cfgOptStanza, "test1"); @@ -1062,8 +1063,7 @@ testRun(void) TEST_TITLE("reset start-fast when PostgreSQL < 8.4"); // Create pg_control - HRN_STORAGE_PUT( - storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_83})); + HRN_PG_CONTROL_PUT(storagePgWrite(), PG_VERSION_83); argList = strLstNew(); hrnCfgArgRawZ(argList, cfgOptStanza, "test1"); @@ -1085,8 +1085,7 @@ testRun(void) TEST_TITLE("reset stop-auto when PostgreSQL < 9.3"); // Create pg_control - HRN_STORAGE_PUT( - storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_84})); + HRN_PG_CONTROL_PUT(storagePgWrite(), PG_VERSION_84); argList = strLstNew(); hrnCfgArgRawZ(argList, cfgOptStanza, "test1"); @@ -1108,8 +1107,7 @@ testRun(void) TEST_TITLE("reset checksum-page when the cluster does not have checksums enabled"); // Create pg_control - HRN_STORAGE_PUT( - storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_93})); + HRN_PG_CONTROL_PUT(storagePgWrite(), PG_VERSION_93); // Create stanza argList = strLstNew(); @@ -1151,9 +1149,7 @@ testRun(void) TEST_TITLE("ok if cluster checksums are enabled and checksum-page is any value"); // Create pg_control with page checksums - HRN_STORAGE_PUT( - storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, - hrnPgControlToBuffer((PgControl){.version = PG_VERSION_93, .pageChecksum = true})); + HRN_PG_CONTROL_PUT(storagePgWrite(), PG_VERSION_93, .pageChecksum = true); argList = strLstNew(); hrnCfgArgRawZ(argList, cfgOptStanza, "test1"); @@ -1178,8 +1174,7 @@ testRun(void) 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})); + HRN_PG_CONTROL_PUT(storagePgWrite(), PG_VERSION_93); harnessPqScriptSet((HarnessPq []) { @@ -1203,8 +1198,7 @@ testRun(void) TEST_TITLE("sleep retries and stall error"); // Create pg_control - HRN_STORAGE_PUT( - storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_93})); + HRN_PG_CONTROL_PUT(storagePgWrite(), PG_VERSION_93); // Create stanza StringList *argList = strLstNew(); @@ -1482,8 +1476,7 @@ testRun(void) HRN_CFG_LOAD(cfgCmdStanzaCreate, argList); // Create pg_control - HRN_STORAGE_PUT( - storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_84})); + HRN_PG_CONTROL_PUT(storagePgWrite(), PG_VERSION_84); cmdStanzaCreate(); TEST_RESULT_LOG("P00 INFO: stanza-create for stanza 'test1' on repo1"); @@ -1732,9 +1725,7 @@ testRun(void) HRN_CFG_LOAD(cfgCmdStanzaCreate, argList); // Create pg_control - HRN_STORAGE_PUT( - storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_95}), - .timeModified = backupTimeStart); + HRN_PG_CONTROL_PUT(storagePgWrite(), PG_VERSION_95); cmdStanzaCreate(); TEST_RESULT_LOG("P00 INFO: stanza-create for stanza 'test1' on repo1"); @@ -1981,7 +1972,7 @@ testRun(void) "[target:file]\n" "pg_data/PG_VERSION={\"checksum\":\"06d06bb31b570b94d7b4325f511f853dbe771c21\",\"size\":3" ",\"timestamp\":1570000000}\n" - "pg_data/global/pg_control={\"size\":8192,\"timestamp\":1570000000}\n" + "pg_data/global/pg_control={\"size\":8192,\"timestamp\":1570100000}\n" "pg_data/not-in-resume={\"checksum\":\"984816fd329622876e14907634264e6f332e9fb3\",\"size\":4" ",\"timestamp\":1570100000}\n" "pg_data/pg_xlog/0000000105D95D3000000000={\"size\":16777216,\"timestamp\":1570100002}\n" @@ -2139,7 +2130,7 @@ testRun(void) "[target:file]\n" "pg_data/PG_VERSION={\"checksum\":\"06d06bb31b570b94d7b4325f511f853dbe771c21\",\"reference\":\"20191003-105320F\"" ",\"size\":3,\"timestamp\":1570000000}\n" - "pg_data/global/pg_control={\"reference\":\"20191003-105320F\",\"size\":8192,\"timestamp\":1570000000}\n" + "pg_data/global/pg_control={\"reference\":\"20191003-105320F\",\"size\":8192,\"timestamp\":1570200000}\n" "pg_data/postgresql.conf={\"checksum\":\"e3db315c260e79211b7b52587123b7aa060f30ab\"" ",\"reference\":\"20191003-105320F\",\"size\":11,\"timestamp\":1570000000}\n" "pg_data/resume-ref={\"size\":0,\"timestamp\":1570200000}\n" @@ -2164,9 +2155,7 @@ testRun(void) { // Update pg_control - HRN_STORAGE_PUT( - storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_96}), - .timeModified = backupTimeStart); + HRN_PG_CONTROL_PUT(storagePgWrite(), PG_VERSION_96); // Update version HRN_STORAGE_PUT_Z(storagePgWrite(), PG_FILE_PGVERSION, PG_VERSION_96_STR, .timeModified = backupTimeStart); @@ -2307,10 +2296,7 @@ testRun(void) { // Update pg_control - HRN_STORAGE_PUT( - storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, - hrnPgControlToBuffer((PgControl){.version = PG_VERSION_11, .pageChecksum = true, .walSegmentSize = 1024 * 1024}), - .timeModified = backupTimeStart); + HRN_PG_CONTROL_PUT(storagePgWrite(), PG_VERSION_11, .pageChecksum = true, .walSegmentSize = 1024 * 1024); // Update version HRN_STORAGE_PUT_Z(storagePgWrite(), PG_FILE_PGVERSION, PG_VERSION_11_STR, .timeModified = backupTimeStart); @@ -2522,8 +2508,6 @@ testRun(void) // ------------------------------------------------------------------------------------------------------------------------- TEST_TITLE("error when pg_control not present"); - backupTimeStart = BACKUP_EPOCH + 2300000; - { // Load options StringList *argList = strLstNew(); @@ -2535,8 +2519,11 @@ testRun(void) hrnCfgArgRawBool(argList, cfgOptRepoHardlink, true); HRN_CFG_LOAD(cfgCmdBackup, argList); + // Preserve prior timestamp on pg_control + testBackupPqScriptP(PG_VERSION_11, BACKUP_EPOCH + 2300000, .errorAfterStart = true); + HRN_PG_CONTROL_TIME(storagePg(), backupTimeStart); + // Run backup - testBackupPqScriptP(PG_VERSION_11, backupTimeStart, .errorAfterStart = true); TEST_ERROR( cmdBackup(), FileMissingError, "pg_control must be present in all online backups\n" @@ -2574,9 +2561,6 @@ testRun(void) hrnCfgArgRawBool(argList, cfgOptRepoHardlink, true); HRN_CFG_LOAD(cfgCmdBackup, argList); - // Update pg_control timestamp - HRN_STORAGE_TIME(storagePg(), "global/pg_control", backupTimeStart); - // Run backup. Make sure that the timeline selected converts to hexdecimal that can't be interpreted as decimal. testBackupPqScriptP(PG_VERSION_11, backupTimeStart, .timeline = 0x2C, .walTotal = 2); TEST_RESULT_VOID(cmdBackup(), "backup"); diff --git a/test/src/module/command/checkTest.c b/test/src/module/command/checkTest.c index 7d64c4c71..973805fa9 100644 --- a/test/src/module/command/checkTest.c +++ b/test/src/module/command/checkTest.c @@ -150,8 +150,7 @@ testRun(void) HRN_CFG_LOAD(cfgCmdCheck, argList); // Create pg_control for standby - HRN_STORAGE_PUT( - storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_92})); + HRN_PG_CONTROL_PUT(storagePgWrite(), PG_VERSION_92); // Standby database path doesn't match pg_control harnessPqScriptSet((HarnessPq []) @@ -175,9 +174,7 @@ testRun(void) TEST_TITLE("standby and primary database - error on primary but standby check ok"); // Create pg_control for primary - HRN_STORAGE_PUT( - storagePgIdxWrite(1), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, - hrnPgControlToBuffer((PgControl){.version = PG_VERSION_92})); + HRN_PG_CONTROL_PUT(storagePgIdxWrite(1), PG_VERSION_92); // Create info files HRN_INFO_PUT( @@ -571,9 +568,7 @@ testRun(void) HRN_CFG_LOAD(cfgCmdStanzaCreate, argList); // Create pg_control - HRN_STORAGE_PUT( - storagePgIdxWrite(0), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, - hrnPgControlToBuffer((PgControl){.version = PG_VERSION_96})); + HRN_PG_CONTROL_PUT(storagePgIdxWrite(0), PG_VERSION_96); // Create info files TEST_RESULT_VOID(cmdStanzaCreate(), "stanza create - encryption"); diff --git a/test/src/module/command/stanzaTest.c b/test/src/module/command/stanzaTest.c index a04e92427..aba5e7e98 100644 --- a/test/src/module/command/stanzaTest.c +++ b/test/src/module/command/stanzaTest.c @@ -61,8 +61,7 @@ testRun(void) HRN_CFG_LOAD(cfgCmdStanzaCreate, argList); // Create pg_control - HRN_STORAGE_PUT( - storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_96})); + HRN_PG_CONTROL_PUT(storagePgWrite(), 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"); @@ -527,8 +526,7 @@ testRun(void) TEST_TITLE("pgControl and database match"); // Create pg_control - HRN_STORAGE_PUT( - storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_92})); + HRN_PG_CONTROL_PUT(storagePgWrite(), PG_VERSION_92); harnessPqScriptSet((HarnessPq []) { @@ -566,9 +564,7 @@ testRun(void) TEST_TITLE("pg_control and version mismatch"); // Create pg_control with different version - HRN_STORAGE_PUT( - storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, - hrnPgControlToBuffer((PgControl){.version = PG_VERSION_91})); + HRN_PG_CONTROL_PUT(storagePgWrite(), PG_VERSION_91); harnessPqScriptSet((HarnessPq []) { @@ -586,8 +582,7 @@ testRun(void) TEST_TITLE("pg_control and path mismatch"); // Create pg_control - HRN_STORAGE_PUT( - storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_92})); + HRN_PG_CONTROL_PUT(storagePgWrite(), PG_VERSION_92); harnessPqScriptSet((HarnessPq []) { @@ -614,14 +609,10 @@ testRun(void) HRN_CFG_LOAD(cfgCmdStanzaCreate, argList); // Create pg_control for primary - HRN_STORAGE_PUT( - storagePgIdxWrite(1), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, - hrnPgControlToBuffer((PgControl){.version = PG_VERSION_92})); + HRN_PG_CONTROL_PUT(storagePgIdxWrite(1), 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})); + HRN_PG_CONTROL_PUT(storagePgIdxWrite(0), PG_VERSION_94); harnessPqScriptSet((HarnessPq []) { @@ -661,8 +652,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})); + HRN_PG_CONTROL_PUT(storagePgWrite(), PG_VERSION_96); //-------------------------------------------------------------------------------------------------------------------------- TEST_TITLE("stanza-upgrade - info file mismatch: db-id"); @@ -909,8 +899,7 @@ testRun(void) HRN_CFG_LOAD(cfgCmdStanzaCreate, argList); // Create pg_control for stanza-create - HRN_STORAGE_PUT( - storagePgWrite(), PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, hrnPgControlToBuffer((PgControl){.version = PG_VERSION_96})); + HRN_PG_CONTROL_PUT(storagePgWrite(), 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"); diff --git a/test/src/module/postgres/interfaceTest.c b/test/src/module/postgres/interfaceTest.c index 08a6e36b3..d282fa5c8 100644 --- a/test/src/module/postgres/interfaceTest.c +++ b/test/src/module/postgres/interfaceTest.c @@ -47,8 +47,6 @@ testRun(void) TEST_RESULT_UINT(pgInterface[0].version, PG_VERSION_MAX, "check max version"); //-------------------------------------------------------------------------------------------------------------------------- - const String *controlFile = STRDEF(PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL); - // Create a bogus control file Buffer *result = bufNew(HRN_PG_CONTROL_SIZE); memset(bufPtr(result), 0, bufSize(result)); @@ -65,9 +63,7 @@ testRun(void) "unexpected control version = 501 and catalog version = 19780101\nHINT: is this version of PostgreSQL supported?"); //-------------------------------------------------------------------------------------------------------------------------- - storagePutP( - storageNewWriteP(storageTest, controlFile), - hrnPgControlToBuffer((PgControl){.version = PG_VERSION_11, .systemId = 0xFACEFACE, .walSegmentSize = 1024 * 1024})); + HRN_PG_CONTROL_PUT(storageTest, PG_VERSION_11, .systemId = 0xFACEFACE, .walSegmentSize = 1024 * 1024); PgControl info = {0}; TEST_ASSIGN(info, pgControlFromFile(storageTest), "get control info v11"); @@ -76,26 +72,19 @@ testRun(void) TEST_RESULT_UINT(info.catalogVersion, 201809051, " check catalog version"); //-------------------------------------------------------------------------------------------------------------------------- - storagePutP( - storageNewWriteP(storageTest, controlFile), - hrnPgControlToBuffer((PgControl){.version = PG_VERSION_93, .walSegmentSize = 1024 * 1024})); + HRN_PG_CONTROL_PUT(storageTest, PG_VERSION_93, .walSegmentSize = 1024 * 1024); TEST_ERROR( pgControlFromFile(storageTest), FormatError, "wal segment size is 1048576 but must be 16777216 for PostgreSQL <= 10"); //-------------------------------------------------------------------------------------------------------------------------- - storagePutP( - storageNewWriteP(storageTest, controlFile), - hrnPgControlToBuffer((PgControl){.version = PG_VERSION_95, .pageSize = 32 * 1024})); + HRN_PG_CONTROL_PUT(storageTest, PG_VERSION_95, .pageSize = 32 * 1024); TEST_ERROR(pgControlFromFile(storageTest), FormatError, "page size is 32768 but must be 8192"); //-------------------------------------------------------------------------------------------------------------------------- - storagePutP( - storageNewWriteP(storageTest, controlFile), - hrnPgControlToBuffer( - (PgControl){ - .version = PG_VERSION_83, .systemId = 0xEFEFEFEFEF, .catalogVersion = hrnPgCatalogVersion(PG_VERSION_83)})); + HRN_PG_CONTROL_PUT( + storageTest, PG_VERSION_83, .systemId = 0xEFEFEFEFEF, .catalogVersion = hrnPgCatalogVersion(PG_VERSION_83)); TEST_ASSIGN(info, pgControlFromFile(storageTest), "get control info v83"); TEST_RESULT_UINT(info.systemId, 0xEFEFEFEFEF, " check system id");