1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2025-07-15 01:04:37 +02:00

Pass file by reference in manifestFileAdd().

Coverity complained that this pass by value was inefficient:

CID 376402:  Performance inefficiencies  (PASS_BY_VALUE)
Passing parameter file of type "ManifestFile" (size 136 bytes) by value.

This was completely intentional since it gives us a copy of the struct that we can change without bothering the caller. However, updating fields is fine and may benefit the caller at some future data, and in any case does no harm now.

And as usual it is easier not to fight with Coverity.
This commit is contained in:
David Steele
2022-02-20 16:45:07 -06:00
parent b489707793
commit e6e1122dbc
7 changed files with 68 additions and 67 deletions

View File

@ -136,6 +136,7 @@
<github-issue id="1149"/> <github-issue id="1149"/>
<github-pull-request id="1662"/> <github-pull-request id="1662"/>
</commit> </commit>
<commit subject="Pass file by reference in manifestFileAdd()."/>
<release-item-contributor-list> <release-item-contributor-list>
<release-item-contributor id="david.steele"/> <release-item-contributor id="david.steele"/>

View File

@ -990,7 +990,7 @@ backupFilePut(BackupData *backupData, Manifest *manifest, const String *name, ti
file.checksumSha1, strZ(pckReadStrP(ioFilterGroupResultP(filterGroup, CRYPTO_HASH_FILTER_TYPE))), file.checksumSha1, strZ(pckReadStrP(ioFilterGroupResultP(filterGroup, CRYPTO_HASH_FILTER_TYPE))),
HASH_TYPE_SHA1_SIZE_HEX + 1); HASH_TYPE_SHA1_SIZE_HEX + 1);
manifestFileAdd(manifest, file); manifestFileAdd(manifest, &file);
LOG_DETAIL_FMT("wrote '%s' file returned from pg_stop_backup()", strZ(name)); LOG_DETAIL_FMT("wrote '%s' file returned from pg_stop_backup()", strZ(name));
} }
@ -2088,7 +2088,7 @@ backupArchiveCheckCopy(const BackupData *const backupData, Manifest *const manif
memcpy(file.checksumSha1, strZ(strSubN(archiveFile, 25, 40)), HASH_TYPE_SHA1_SIZE_HEX + 1); memcpy(file.checksumSha1, strZ(strSubN(archiveFile, 25, 40)), HASH_TYPE_SHA1_SIZE_HEX + 1);
manifestFileAdd(manifest, file); manifestFileAdd(manifest, &file);
} }
} }
MEM_CONTEXT_TEMP_END(); MEM_CONTEXT_TEMP_END();

View File

@ -417,25 +417,25 @@ manifestFileUnpack(const Manifest *const manifest, const ManifestFilePack *const
} }
void void
manifestFileAdd(Manifest *this, ManifestFile file) manifestFileAdd(Manifest *const this, ManifestFile *const file)
{ {
FUNCTION_TEST_BEGIN(); FUNCTION_TEST_BEGIN();
FUNCTION_TEST_PARAM(MANIFEST, this); FUNCTION_TEST_PARAM(MANIFEST, this);
FUNCTION_TEST_PARAM(VOID, file); FUNCTION_TEST_PARAM(MANIFEST_FILE, file);
FUNCTION_TEST_END(); FUNCTION_TEST_END();
ASSERT(this != NULL); ASSERT(this != NULL);
ASSERT(file.name != NULL); ASSERT(file->name != NULL);
file.user = manifestOwnerCache(this, file.user); file->user = manifestOwnerCache(this, file->user);
file.group = manifestOwnerCache(this, file.group); file->group = manifestOwnerCache(this, file->group);
if (file.reference != NULL) if (file->reference != NULL)
file.reference = strLstAddIfMissing(this->referenceList, file.reference); file->reference = strLstAddIfMissing(this->referenceList, file->reference);
MEM_CONTEXT_BEGIN(lstMemContext(this->pub.fileList)) MEM_CONTEXT_BEGIN(lstMemContext(this->pub.fileList))
{ {
const ManifestFilePack *const filePack = manifestFilePack(this, &file); const ManifestFilePack *const filePack = manifestFilePack(this, file);
lstAdd(this->pub.fileList, &filePack); lstAdd(this->pub.fileList, &filePack);
} }
MEM_CONTEXT_END(); MEM_CONTEXT_END();
@ -1054,7 +1054,7 @@ manifestBuildCallback(void *data, const StorageInfo *info)
!strEqZ(manifestName, MANIFEST_TARGET_PGDATA "/" PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL); !strEqZ(manifestName, MANIFEST_TARGET_PGDATA "/" PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL);
} }
manifestFileAdd(buildData.manifest, file); manifestFileAdd(buildData.manifest, &file);
break; break;
} }
@ -1871,7 +1871,7 @@ manifestLoadCallback(void *callbackData, const String *section, const String *ke
else else
file.user = manifest->fileUserDefault; file.user = manifest->fileUserDefault;
manifestFileAdd(manifest, file); manifestFileAdd(manifest, &file);
} }
MEM_CONTEXT_END(); MEM_CONTEXT_END();
} }

View File

@ -291,7 +291,7 @@ manifestFile(const Manifest *const this, const unsigned int fileIdx)
} }
// Add a file // Add a file
void manifestFileAdd(Manifest *this, ManifestFile file); void manifestFileAdd(Manifest *this, ManifestFile *file);
// Find file in pack format by name // Find file in pack format by name
const ManifestFilePack *manifestFilePackFind(const Manifest *this, const String *name); const ManifestFilePack *manifestFilePackFind(const Manifest *this, const String *name);

View File

@ -1935,7 +1935,7 @@ testRun(void)
manifestTargetAdd(manifestResume, &(ManifestTarget){.name = MANIFEST_TARGET_PGDATA_STR, .path = STRDEF("/pg")}); manifestTargetAdd(manifestResume, &(ManifestTarget){.name = MANIFEST_TARGET_PGDATA_STR, .path = STRDEF("/pg")});
manifestPathAdd(manifestResume, &(ManifestPath){.name = MANIFEST_TARGET_PGDATA_STR}); manifestPathAdd(manifestResume, &(ManifestPath){.name = MANIFEST_TARGET_PGDATA_STR});
manifestFileAdd(manifestResume, (ManifestFile){.name = STRDEF("pg_data/" PG_FILE_PGVERSION)}); manifestFileAdd(manifestResume, &(ManifestFile){.name = STRDEF("pg_data/" PG_FILE_PGVERSION)});
manifestSave( manifestSave(
manifestResume, manifestResume,
@ -2057,7 +2057,7 @@ testRun(void)
OBJ_NEW_BEGIN(Manifest) OBJ_NEW_BEGIN(Manifest)
{ {
manifest = manifestNewInternal(); manifest = manifestNewInternal();
manifestFileAdd(manifest, (ManifestFile){.name = STRDEF("pg_data/test")}); manifestFileAdd(manifest, &(ManifestFile){.name = STRDEF("pg_data/test")});
} }
OBJ_NEW_END(); OBJ_NEW_END();
@ -2483,7 +2483,7 @@ testRun(void)
HRN_STORAGE_PUT_EMPTY( HRN_STORAGE_PUT_EMPTY(
storageRepoWrite(), strZ(strNewFmt(STORAGE_REPO_BACKUP "/%s/pg_data/size-mismatch.gz", strZ(resumeLabel)))); storageRepoWrite(), strZ(strNewFmt(STORAGE_REPO_BACKUP "/%s/pg_data/size-mismatch.gz", strZ(resumeLabel))));
manifestFileAdd( manifestFileAdd(
manifestResume, (ManifestFile){ manifestResume, &(ManifestFile){
.name = STRDEF("pg_data/size-mismatch"), .checksumSha1 = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", .name = STRDEF("pg_data/size-mismatch"), .checksumSha1 = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
.size = 33}); .size = 33});
@ -2492,7 +2492,7 @@ testRun(void)
HRN_STORAGE_PUT_EMPTY( HRN_STORAGE_PUT_EMPTY(
storageRepoWrite(), strZ(strNewFmt(STORAGE_REPO_BACKUP "/%s/pg_data/time-mismatch.gz", strZ(resumeLabel)))); storageRepoWrite(), strZ(strNewFmt(STORAGE_REPO_BACKUP "/%s/pg_data/time-mismatch.gz", strZ(resumeLabel))));
manifestFileAdd( manifestFileAdd(
manifestResume, (ManifestFile){ manifestResume, &(ManifestFile){
.name = STRDEF("pg_data/time-mismatch"), .checksumSha1 = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", .size = 4, .name = STRDEF("pg_data/time-mismatch"), .checksumSha1 = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", .size = 4,
.timestamp = backupTimeStart - 1}); .timestamp = backupTimeStart - 1});
@ -2502,7 +2502,7 @@ testRun(void)
storageRepoWrite(), strZ(strNewFmt(STORAGE_REPO_BACKUP "/%s/pg_data/zero-size.gz", strZ(resumeLabel))), storageRepoWrite(), strZ(strNewFmt(STORAGE_REPO_BACKUP "/%s/pg_data/zero-size.gz", strZ(resumeLabel))),
"ZERO-SIZE"); "ZERO-SIZE");
manifestFileAdd( manifestFileAdd(
manifestResume, (ManifestFile){.name = STRDEF("pg_data/zero-size"), .size = 0, .timestamp = backupTimeStart}); manifestResume, &(ManifestFile){.name = STRDEF("pg_data/zero-size"), .size = 0, .timestamp = backupTimeStart});
// Path is not in manifest // Path is not in manifest
HRN_STORAGE_PATH_CREATE( HRN_STORAGE_PATH_CREATE(
@ -2663,7 +2663,7 @@ testRun(void)
HRN_STORAGE_PUT_EMPTY( HRN_STORAGE_PUT_EMPTY(
storageRepoWrite(), strZ(strNewFmt(STORAGE_REPO_BACKUP "/%s/pg_data/resume-ref.gz", strZ(resumeLabel)))); storageRepoWrite(), strZ(strNewFmt(STORAGE_REPO_BACKUP "/%s/pg_data/resume-ref.gz", strZ(resumeLabel))));
manifestFileAdd( manifestFileAdd(
manifestResume, (ManifestFile){.name = STRDEF("pg_data/resume-ref"), .size = 0, .reference = STRDEF("BOGUS")}); manifestResume, &(ManifestFile){.name = STRDEF("pg_data/resume-ref"), .size = 0, .reference = STRDEF("BOGUS")});
// Time does not match between cluster and resume manifest (but resume because time is in future so delta enabled). Note // Time does not match between cluster and resume manifest (but resume because time is in future so delta enabled). Note
// also that the repo file is intenionally corrupt to generate a warning about corruption in the repository. // also that the repo file is intenionally corrupt to generate a warning about corruption in the repository.
@ -2671,7 +2671,7 @@ testRun(void)
HRN_STORAGE_PUT_EMPTY( HRN_STORAGE_PUT_EMPTY(
storageRepoWrite(), strZ(strNewFmt(STORAGE_REPO_BACKUP "/%s/pg_data/time-mismatch2.gz", strZ(resumeLabel)))); storageRepoWrite(), strZ(strNewFmt(STORAGE_REPO_BACKUP "/%s/pg_data/time-mismatch2.gz", strZ(resumeLabel))));
manifestFileAdd( manifestFileAdd(
manifestResume, (ManifestFile){ manifestResume, &(ManifestFile){
.name = STRDEF("pg_data/time-mismatch2"), .checksumSha1 = "984816fd329622876e14907634264e6f332e9fb3", .size = 4, .name = STRDEF("pg_data/time-mismatch2"), .checksumSha1 = "984816fd329622876e14907634264e6f332e9fb3", .size = 4,
.timestamp = backupTimeStart}); .timestamp = backupTimeStart});

View File

@ -131,7 +131,7 @@ testManifestMinimal(const String *label, unsigned int pgVersion, const String *p
manifestPathAdd(result, &pathBase); manifestPathAdd(result, &pathBase);
ManifestFile fileVersion = { ManifestFile fileVersion = {
.name = STRDEF("pg_data/" PG_FILE_PGVERSION), .mode = 0600, .group = groupName(), .user = userName()}; .name = STRDEF("pg_data/" PG_FILE_PGVERSION), .mode = 0600, .group = groupName(), .user = userName()};
manifestFileAdd(result, fileVersion); manifestFileAdd(result, &fileVersion);
} }
OBJ_NEW_END(); OBJ_NEW_END();
@ -815,7 +815,7 @@ testRun(void)
manifestFileAdd( manifestFileAdd(
manifest, manifest,
(ManifestFile){.name = STRDEF(MANIFEST_TARGET_PGDATA "/pg_hba.conf"), .size = 4, .timestamp = 1482182860}); &(ManifestFile){.name = STRDEF(MANIFEST_TARGET_PGDATA "/pg_hba.conf"), .size = 4, .timestamp = 1482182860});
TEST_RESULT_VOID(restoreManifestMap(manifest), "remap links"); TEST_RESULT_VOID(restoreManifestMap(manifest), "remap links");
@ -982,7 +982,7 @@ testRun(void)
ManifestPath path = {.name = STRDEF("pg_data/bogus_path"), .user = STRDEF("path-user-bogus")}; ManifestPath path = {.name = STRDEF("pg_data/bogus_path"), .user = STRDEF("path-user-bogus")};
manifestPathAdd(manifest, &path); manifestPathAdd(manifest, &path);
ManifestFile file = {.name = STRDEF("pg_data/bogus_file"), .mode = 0600, .group = STRDEF("file-group-bogus")}; ManifestFile file = {.name = STRDEF("pg_data/bogus_file"), .mode = 0600, .group = STRDEF("file-group-bogus")};
manifestFileAdd(manifest, file); manifestFileAdd(manifest, &file);
ManifestLink link = {.name = STRDEF("pg_data/bogus_link"), .destination = STRDEF("/"), .group = STRDEF("link-group-bogus")}; ManifestLink link = {.name = STRDEF("pg_data/bogus_link"), .destination = STRDEF("/"), .group = STRDEF("link-group-bogus")};
manifestLinkAdd(manifest, &link); manifestLinkAdd(manifest, &link);
@ -1034,7 +1034,7 @@ testRun(void)
manifest = testManifestMinimal(STRDEF("20161219-212741F_20161219-21275D"), PG_VERSION_96, pgPath); manifest = testManifestMinimal(STRDEF("20161219-212741F_20161219-21275D"), PG_VERSION_96, pgPath);
manifestFileAdd(manifest, file); manifestFileAdd(manifest, &file);
manifestLinkAdd(manifest, &link); manifestLinkAdd(manifest, &link);
TEST_RESULT_VOID(restoreManifestOwner(manifest, &rootReplaceUser, &rootReplaceGroup), "check ownership"); TEST_RESULT_VOID(restoreManifestOwner(manifest, &rootReplaceUser, &rootReplaceGroup), "check ownership");
@ -1051,7 +1051,7 @@ testRun(void)
TEST_TITLE("owner is root and ownership of pg_data is bad"); TEST_TITLE("owner is root and ownership of pg_data is bad");
manifestPathAdd(manifest, &path); manifestPathAdd(manifest, &path);
manifestFileAdd(manifest, file); manifestFileAdd(manifest, &file);
HRN_SYSTEM_FMT("sudo chown 77777:77777 %s", strZ(pgPath)); HRN_SYSTEM_FMT("sudo chown 77777:77777 %s", strZ(pgPath));
@ -1243,7 +1243,7 @@ testRun(void)
HRN_SYSTEM_FMT("rm -rf %s/*", strZ(pgPath)); HRN_SYSTEM_FMT("rm -rf %s/*", strZ(pgPath));
manifestFileAdd(manifest, (ManifestFile){.name = STRDEF(MANIFEST_TARGET_PGDATA "/" PG_FILE_POSTGRESQLAUTOCONF)}); manifestFileAdd(manifest, &(ManifestFile){.name = STRDEF(MANIFEST_TARGET_PGDATA "/" PG_FILE_POSTGRESQLAUTOCONF)});
HRN_STORAGE_PUT_EMPTY(storagePgWrite(), PG_FILE_POSTGRESQLAUTOCONF); HRN_STORAGE_PUT_EMPTY(storagePgWrite(), PG_FILE_POSTGRESQLAUTOCONF);
HRN_STORAGE_PUT_EMPTY(storagePgWrite(), PG_FILE_RECOVERYSIGNAL); HRN_STORAGE_PUT_EMPTY(storagePgWrite(), PG_FILE_RECOVERYSIGNAL);
@ -1303,7 +1303,7 @@ testRun(void)
manifest->pub.data.pgCatalogVersion = hrnPgCatalogVersion(PG_VERSION_90); manifest->pub.data.pgCatalogVersion = hrnPgCatalogVersion(PG_VERSION_90);
manifestTargetAdd(manifest, &(ManifestTarget){.name = MANIFEST_TARGET_PGDATA_STR, .path = STRDEF("/pg")}); manifestTargetAdd(manifest, &(ManifestTarget){.name = MANIFEST_TARGET_PGDATA_STR, .path = STRDEF("/pg")});
manifestFileAdd(manifest, (ManifestFile){.name = STRDEF(MANIFEST_TARGET_PGDATA "/" PG_FILE_PGVERSION)}); manifestFileAdd(manifest, &(ManifestFile){.name = STRDEF(MANIFEST_TARGET_PGDATA "/" PG_FILE_PGVERSION)});
} }
OBJ_NEW_END(); OBJ_NEW_END();
@ -1324,11 +1324,11 @@ testRun(void)
manifestDbAdd(manifest, &(ManifestDb){.name = STRDEF("user-made-system-db"), .id = 16380, .lastSystemId = 12168}); manifestDbAdd(manifest, &(ManifestDb){.name = STRDEF("user-made-system-db"), .id = 16380, .lastSystemId = 12168});
manifestDbAdd(manifest, &(ManifestDb){.name = STRDEF(UTF8_DB_NAME), .id = 16384, .lastSystemId = 12168}); manifestDbAdd(manifest, &(ManifestDb){.name = STRDEF(UTF8_DB_NAME), .id = 16384, .lastSystemId = 12168});
manifestFileAdd( manifestFileAdd(
manifest, (ManifestFile){.name = STRDEF(MANIFEST_TARGET_PGDATA "/" PG_PATH_BASE "/1/" PG_FILE_PGVERSION)}); manifest, &(ManifestFile){.name = STRDEF(MANIFEST_TARGET_PGDATA "/" PG_PATH_BASE "/1/" PG_FILE_PGVERSION)});
manifestFileAdd( manifestFileAdd(
manifest, (ManifestFile){.name = STRDEF(MANIFEST_TARGET_PGDATA "/" PG_PATH_BASE "/16381/" PG_FILE_PGVERSION)}); manifest, &(ManifestFile){.name = STRDEF(MANIFEST_TARGET_PGDATA "/" PG_PATH_BASE "/16381/" PG_FILE_PGVERSION)});
manifestFileAdd( manifestFileAdd(
manifest, (ManifestFile){.name = STRDEF(MANIFEST_TARGET_PGDATA "/" PG_PATH_BASE "/16385/" PG_FILE_PGVERSION)}); manifest, &(ManifestFile){.name = STRDEF(MANIFEST_TARGET_PGDATA "/" PG_PATH_BASE "/16385/" PG_FILE_PGVERSION)});
} }
MEM_CONTEXT_END(); MEM_CONTEXT_END();
@ -1353,7 +1353,7 @@ testRun(void)
MEM_CONTEXT_BEGIN(manifest->pub.memContext) MEM_CONTEXT_BEGIN(manifest->pub.memContext)
{ {
manifestFileAdd( manifestFileAdd(
manifest, (ManifestFile){.name = STRDEF(MANIFEST_TARGET_PGDATA "/" PG_PATH_BASE "/16384/" PG_FILE_PGVERSION)}); manifest, &(ManifestFile){.name = STRDEF(MANIFEST_TARGET_PGDATA "/" PG_PATH_BASE "/16384/" PG_FILE_PGVERSION)});
} }
MEM_CONTEXT_END(); MEM_CONTEXT_END();
@ -1424,7 +1424,7 @@ testRun(void)
{ {
manifestDbAdd(manifest, &(ManifestDb){.name = STRDEF("test2"), .id = 32768, .lastSystemId = 12168}); manifestDbAdd(manifest, &(ManifestDb){.name = STRDEF("test2"), .id = 32768, .lastSystemId = 12168});
manifestFileAdd( manifestFileAdd(
manifest, (ManifestFile){.name = STRDEF(MANIFEST_TARGET_PGDATA "/" PG_PATH_BASE "/32768/" PG_FILE_PGVERSION)}); manifest, &(ManifestFile){.name = STRDEF(MANIFEST_TARGET_PGDATA "/" PG_PATH_BASE "/32768/" PG_FILE_PGVERSION)});
} }
MEM_CONTEXT_END(); MEM_CONTEXT_END();
@ -1448,7 +1448,7 @@ testRun(void)
.name = STRDEF(MANIFEST_TARGET_PGTBLSPC "/16387"), .tablespaceId = 16387, .tablespaceName = STRDEF("ts1"), .name = STRDEF(MANIFEST_TARGET_PGTBLSPC "/16387"), .tablespaceId = 16387, .tablespaceName = STRDEF("ts1"),
.path = STRDEF("/ts1")}); .path = STRDEF("/ts1")});
manifestFileAdd( manifestFileAdd(
manifest, (ManifestFile){.name = STRDEF(MANIFEST_TARGET_PGDATA "/" PG_PATH_BASE "/32768/" PG_FILE_PGVERSION)}); manifest, &(ManifestFile){.name = STRDEF(MANIFEST_TARGET_PGDATA "/" PG_PATH_BASE "/32768/" PG_FILE_PGVERSION)});
} }
MEM_CONTEXT_END(); MEM_CONTEXT_END();
@ -1470,7 +1470,7 @@ testRun(void)
{ {
manifestDbAdd(manifest, &(ManifestDb){.name = STRDEF("test3"), .id = 65536, .lastSystemId = 12168}); manifestDbAdd(manifest, &(ManifestDb){.name = STRDEF("test3"), .id = 65536, .lastSystemId = 12168});
manifestFileAdd( manifestFileAdd(
manifest, (ManifestFile){ manifest, &(ManifestFile){
.name = STRDEF(MANIFEST_TARGET_PGTBLSPC "/16387/PG_9.4_201409291/65536/" PG_FILE_PGVERSION)}); .name = STRDEF(MANIFEST_TARGET_PGTBLSPC "/16387/PG_9.4_201409291/65536/" PG_FILE_PGVERSION)});
} }
MEM_CONTEXT_END(); MEM_CONTEXT_END();
@ -2053,7 +2053,7 @@ testRun(void)
// PG_VERSION // PG_VERSION
manifestFileAdd( manifestFileAdd(
manifest, manifest,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(TEST_PGDATA PG_FILE_PGVERSION), .size = 4, .timestamp = 1482182860, .name = STRDEF(TEST_PGDATA PG_FILE_PGVERSION), .size = 4, .timestamp = 1482182860,
.mode = 0600, .group = groupName(), .user = userName(), .mode = 0600, .group = groupName(), .user = userName(),
.checksumSha1 = "b74d60e763728399bcd3fb63f7dd1f97b46c6b44"}); .checksumSha1 = "b74d60e763728399bcd3fb63f7dd1f97b46c6b44"});
@ -2184,7 +2184,7 @@ testRun(void)
// tablespace_map (will be ignored during restore) // tablespace_map (will be ignored during restore)
manifestFileAdd( manifestFileAdd(
manifest, manifest,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(TEST_PGDATA PG_FILE_TABLESPACEMAP), .size = 0, .timestamp = 1482182860, .name = STRDEF(TEST_PGDATA PG_FILE_TABLESPACEMAP), .size = 0, .timestamp = 1482182860,
.mode = 0600, .group = groupName(), .user = userName(), .checksumSha1 = HASH_TYPE_SHA1_ZERO}); .mode = 0600, .group = groupName(), .user = userName(), .checksumSha1 = HASH_TYPE_SHA1_ZERO});
HRN_STORAGE_PUT_EMPTY(storageRepoWrite(), TEST_REPO_PATH PG_FILE_TABLESPACEMAP); HRN_STORAGE_PUT_EMPTY(storageRepoWrite(), TEST_REPO_PATH PG_FILE_TABLESPACEMAP);
@ -2218,7 +2218,7 @@ testRun(void)
// pg_tblspc/1/16384/PG_VERSION // pg_tblspc/1/16384/PG_VERSION
manifestFileAdd( manifestFileAdd(
manifest, manifest,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(MANIFEST_TARGET_PGTBLSPC "/1/16384/" PG_FILE_PGVERSION), .size = 4, .name = STRDEF(MANIFEST_TARGET_PGTBLSPC "/1/16384/" PG_FILE_PGVERSION), .size = 4,
.timestamp = 1482182860, .mode = 0600, .group = groupName(), .user = userName(), .timestamp = 1482182860, .mode = 0600, .group = groupName(), .user = userName(),
.checksumSha1 = "b74d60e763728399bcd3fb63f7dd1f97b46c6b44"}); .checksumSha1 = "b74d60e763728399bcd3fb63f7dd1f97b46c6b44"});
@ -2400,7 +2400,7 @@ testRun(void)
manifestFileAdd( manifestFileAdd(
manifest, manifest,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(TEST_PGDATA PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL), .size = 8192, .timestamp = 1482182860, .name = STRDEF(TEST_PGDATA PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL), .size = 8192, .timestamp = 1482182860,
.mode = 0600, .group = groupName(), .user = userName(), .mode = 0600, .group = groupName(), .user = userName(),
.checksumSha1 = "5e2b96c19c4f5c63a5afa2de504d29fe64a4c908"}); .checksumSha1 = "5e2b96c19c4f5c63a5afa2de504d29fe64a4c908"});
@ -2409,7 +2409,7 @@ testRun(void)
// global/999 // global/999
manifestFileAdd( manifestFileAdd(
manifest, manifest,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(TEST_PGDATA PG_PATH_GLOBAL "/999"), .size = 0, .timestamp = 1482182860, .name = STRDEF(TEST_PGDATA PG_PATH_GLOBAL "/999"), .size = 0, .timestamp = 1482182860,
.mode = 0600, .group = groupName(), .user = userName(), .mode = 0600, .group = groupName(), .user = userName(),
.checksumSha1 = HASH_TYPE_SHA1_ZERO}); .checksumSha1 = HASH_TYPE_SHA1_ZERO});
@ -2418,7 +2418,7 @@ testRun(void)
// PG_VERSION // PG_VERSION
manifestFileAdd( manifestFileAdd(
manifest, manifest,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(TEST_PGDATA PG_FILE_PGVERSION), .size = 4, .sizeRepo = 4, .timestamp = 1482182860, .name = STRDEF(TEST_PGDATA PG_FILE_PGVERSION), .size = 4, .sizeRepo = 4, .timestamp = 1482182860,
.mode = 0600, .group = groupName(), .user = userName(), .bundleId = 1, .bundleOffset = 0, .mode = 0600, .group = groupName(), .user = userName(), .bundleId = 1, .bundleOffset = 0,
.reference = STRDEF(TEST_LABEL), .checksumSha1 = "8dbabb96e032b8d9f1993c0e4b9141e71ade01a1"}); .reference = STRDEF(TEST_LABEL), .checksumSha1 = "8dbabb96e032b8d9f1993c0e4b9141e71ade01a1"});
@ -2440,7 +2440,7 @@ testRun(void)
// base/1/PG_VERSION. File was written as part of bundle 1 above // base/1/PG_VERSION. File was written as part of bundle 1 above
manifestFileAdd( manifestFileAdd(
manifest, manifest,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(TEST_PGDATA "base/1/" PG_FILE_PGVERSION), .size = 4, .sizeRepo = 4, .timestamp = 1482182860, .name = STRDEF(TEST_PGDATA "base/1/" PG_FILE_PGVERSION), .size = 4, .sizeRepo = 4, .timestamp = 1482182860,
.mode = 0600, .group = groupName(), .user = userName(), .bundleId = 1, .bundleOffset = 4, .mode = 0600, .group = groupName(), .user = userName(), .bundleId = 1, .bundleOffset = 4,
.checksumSha1 = "8dbabb96e032b8d9f1993c0e4b9141e71ade01a1"}); .checksumSha1 = "8dbabb96e032b8d9f1993c0e4b9141e71ade01a1"});
@ -2452,7 +2452,7 @@ testRun(void)
manifestFileAdd( manifestFileAdd(
manifest, manifest,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(TEST_PGDATA "base/1/2"), .size = 8192, .timestamp = 1482182860, .name = STRDEF(TEST_PGDATA "base/1/2"), .size = 8192, .timestamp = 1482182860,
.mode = 0600, .group = groupName(), .user = userName(), .mode = 0600, .group = groupName(), .user = userName(),
.checksumSha1 = "4d7b2a36c5387decf799352a3751883b7ceb96aa"}); .checksumSha1 = "4d7b2a36c5387decf799352a3751883b7ceb96aa"});
@ -2470,7 +2470,7 @@ testRun(void)
// base/16384/PG_VERSION // base/16384/PG_VERSION
manifestFileAdd( manifestFileAdd(
manifest, manifest,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(TEST_PGDATA "base/16384/" PG_FILE_PGVERSION), .size = 4, .timestamp = 1482182860, .name = STRDEF(TEST_PGDATA "base/16384/" PG_FILE_PGVERSION), .size = 4, .timestamp = 1482182860,
.mode = 0600, .group = groupName(), .user = userName(), .mode = 0600, .group = groupName(), .user = userName(),
.checksumSha1 = "8dbabb96e032b8d9f1993c0e4b9141e71ade01a1"}); .checksumSha1 = "8dbabb96e032b8d9f1993c0e4b9141e71ade01a1"});
@ -2483,7 +2483,7 @@ testRun(void)
manifestFileAdd( manifestFileAdd(
manifest, manifest,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(TEST_PGDATA "base/16384/16385"), .size = 16384, .timestamp = 1482182860, .name = STRDEF(TEST_PGDATA "base/16384/16385"), .size = 16384, .timestamp = 1482182860,
.mode = 0600, .group = groupName(), .user = userName(), .mode = 0600, .group = groupName(), .user = userName(),
.checksumSha1 = "d74e5f7ebe52a3ed468ba08c5b6aefaccd1ca88f"}); .checksumSha1 = "d74e5f7ebe52a3ed468ba08c5b6aefaccd1ca88f"});
@ -2499,7 +2499,7 @@ testRun(void)
// base/32768/PG_VERSION // base/32768/PG_VERSION
manifestFileAdd( manifestFileAdd(
manifest, manifest,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(TEST_PGDATA "base/32768/" PG_FILE_PGVERSION), .size = 4, .timestamp = 1482182860, .name = STRDEF(TEST_PGDATA "base/32768/" PG_FILE_PGVERSION), .size = 4, .timestamp = 1482182860,
.mode = 0600, .group = groupName(), .user = userName(), .mode = 0600, .group = groupName(), .user = userName(),
.checksumSha1 = "8dbabb96e032b8d9f1993c0e4b9141e71ade01a1"}); .checksumSha1 = "8dbabb96e032b8d9f1993c0e4b9141e71ade01a1"});
@ -2512,7 +2512,7 @@ testRun(void)
manifestFileAdd( manifestFileAdd(
manifest, manifest,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(TEST_PGDATA "base/32768/32769"), .size = 32768, .timestamp = 1482182860, .name = STRDEF(TEST_PGDATA "base/32768/32769"), .size = 32768, .timestamp = 1482182860,
.mode = 0600, .group = groupName(), .user = userName(), .mode = 0600, .group = groupName(), .user = userName(),
.checksumSha1 = "a40f0986acb1531ce0cc75a23dcf8aa406ae9081"}); .checksumSha1 = "a40f0986acb1531ce0cc75a23dcf8aa406ae9081"});
@ -2529,7 +2529,7 @@ testRun(void)
.name = name, .destination = STRDEF("../config/postgresql.conf"), .group = groupName(), .user = userName()}); .name = name, .destination = STRDEF("../config/postgresql.conf"), .group = groupName(), .user = userName()});
manifestFileAdd( manifestFileAdd(
manifest, manifest,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(TEST_PGDATA "postgresql.conf"), .size = 15, .timestamp = 1482182860, .name = STRDEF(TEST_PGDATA "postgresql.conf"), .size = 15, .timestamp = 1482182860,
.mode = 0600, .group = groupName(), .user = userName(), .mode = 0600, .group = groupName(), .user = userName(),
.checksumSha1 = "98b8abb2e681e2a5a7d8ab082c0a79727887558d"}); .checksumSha1 = "98b8abb2e681e2a5a7d8ab082c0a79727887558d"});
@ -2546,7 +2546,7 @@ testRun(void)
.name = name, .destination = STRDEF("../config/pg_hba.conf"), .group = groupName(), .user = userName()}); .name = name, .destination = STRDEF("../config/pg_hba.conf"), .group = groupName(), .user = userName()});
manifestFileAdd( manifestFileAdd(
manifest, manifest,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(TEST_PGDATA "pg_hba.conf"), .size = 11, .timestamp = 1482182860, .name = STRDEF(TEST_PGDATA "pg_hba.conf"), .size = 11, .timestamp = 1482182860,
.mode = 0600, .group = groupName(), .user = userName(), .mode = 0600, .group = groupName(), .user = userName(),
.checksumSha1 = "401215e092779574988a854d8c7caed7f91dba4b"}); .checksumSha1 = "401215e092779574988a854d8c7caed7f91dba4b"});
@ -2555,7 +2555,7 @@ testRun(void)
// tablespace_map (will be ignored during restore) // tablespace_map (will be ignored during restore)
manifestFileAdd( manifestFileAdd(
manifest, manifest,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(TEST_PGDATA PG_FILE_TABLESPACEMAP), .size = 0, .timestamp = 1482182860, .name = STRDEF(TEST_PGDATA PG_FILE_TABLESPACEMAP), .size = 0, .timestamp = 1482182860,
.mode = 0600, .group = groupName(), .user = userName(), .checksumSha1 = HASH_TYPE_SHA1_ZERO}); .mode = 0600, .group = groupName(), .user = userName(), .checksumSha1 = HASH_TYPE_SHA1_ZERO});
HRN_STORAGE_PUT_EMPTY(storageRepoWrite(), TEST_REPO_PATH PG_FILE_TABLESPACEMAP); HRN_STORAGE_PUT_EMPTY(storageRepoWrite(), TEST_REPO_PATH PG_FILE_TABLESPACEMAP);

View File

@ -957,7 +957,7 @@ testRun(void)
manifestFileAdd( manifestFileAdd(
manifest, manifest,
(ManifestFile){.name = STRDEF(MANIFEST_TARGET_PGDATA "/" PG_FILE_PGVERSION), .size = 4, .timestamp = 1482182860}); &(ManifestFile){.name = STRDEF(MANIFEST_TARGET_PGDATA "/" PG_FILE_PGVERSION), .size = 4, .timestamp = 1482182860});
TEST_RESULT_VOID(manifestBuildValidate(manifest, false, 1482182860, false), "validate manifest"); TEST_RESULT_VOID(manifestBuildValidate(manifest, false, 1482182860, false), "validate manifest");
TEST_RESULT_INT(manifest->pub.data.backupTimestampCopyStart, 1482182860, "check copy start"); TEST_RESULT_INT(manifest->pub.data.backupTimestampCopyStart, 1482182860, "check copy start");
@ -1036,22 +1036,22 @@ testRun(void)
&(ManifestPath){.name = MANIFEST_TARGET_PGDATA_STR, .mode = 0700, .group = STRDEF("test"), .user = STRDEF("test")}); &(ManifestPath){.name = MANIFEST_TARGET_PGDATA_STR, .mode = 0700, .group = STRDEF("test"), .user = STRDEF("test")});
manifestFileAdd( manifestFileAdd(
manifest, manifest,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(MANIFEST_TARGET_PGDATA "/BOGUS"), .size = 6, .sizeRepo = 6, .timestamp = 1482182860, .name = STRDEF(MANIFEST_TARGET_PGDATA "/BOGUS"), .size = 6, .sizeRepo = 6, .timestamp = 1482182860,
.mode = 0600, .group = STRDEF("test"), .user = STRDEF("test")}); .mode = 0600, .group = STRDEF("test"), .user = STRDEF("test")});
manifestFileAdd( manifestFileAdd(
manifest, manifest,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(MANIFEST_TARGET_PGDATA "/FILE3"), .size = 0, .sizeRepo = 0, .timestamp = 1482182860, .name = STRDEF(MANIFEST_TARGET_PGDATA "/FILE3"), .size = 0, .sizeRepo = 0, .timestamp = 1482182860,
.mode = 0600, .group = STRDEF("test"), .user = STRDEF("test")}); .mode = 0600, .group = STRDEF("test"), .user = STRDEF("test")});
manifestFileAdd( manifestFileAdd(
manifest, manifest,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(MANIFEST_TARGET_PGDATA "/FILE4"), .size = 55, .sizeRepo = 55, .timestamp = 1482182861, .name = STRDEF(MANIFEST_TARGET_PGDATA "/FILE4"), .size = 55, .sizeRepo = 55, .timestamp = 1482182861,
.mode = 0600, .group = STRDEF("test"), .user = STRDEF("test")}); .mode = 0600, .group = STRDEF("test"), .user = STRDEF("test")});
manifestFileAdd( manifestFileAdd(
manifest, manifest,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(MANIFEST_TARGET_PGDATA "/" PG_FILE_PGVERSION), .size = 4, .sizeRepo = 4, .timestamp = 1482182860, .name = STRDEF(MANIFEST_TARGET_PGDATA "/" PG_FILE_PGVERSION), .size = 4, .sizeRepo = 4, .timestamp = 1482182860,
.mode = 0600, .group = STRDEF("test"), .user = STRDEF("test")}); .mode = 0600, .group = STRDEF("test"), .user = STRDEF("test")});
} }
@ -1066,17 +1066,17 @@ testRun(void)
manifestFileAdd( manifestFileAdd(
manifestPrior, manifestPrior,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(MANIFEST_TARGET_PGDATA "/FILE3"), .size = 0, .sizeRepo = 0, .timestamp = 1482182860, .name = STRDEF(MANIFEST_TARGET_PGDATA "/FILE3"), .size = 0, .sizeRepo = 0, .timestamp = 1482182860,
.checksumSha1 = "da39a3ee5e6b4b0d3255bfef95601890afd80709"}); .checksumSha1 = "da39a3ee5e6b4b0d3255bfef95601890afd80709"});
manifestFileAdd( manifestFileAdd(
manifestPrior, manifestPrior,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(MANIFEST_TARGET_PGDATA "/FILE4"), .size = 55, .sizeRepo = 55, .timestamp = 1482182860, .name = STRDEF(MANIFEST_TARGET_PGDATA "/FILE4"), .size = 55, .sizeRepo = 55, .timestamp = 1482182860,
.checksumSha1 = "ccccccccccaaaaaaaaaabbbbbbbbbbdddddddddd"}); .checksumSha1 = "ccccccccccaaaaaaaaaabbbbbbbbbbdddddddddd"});
manifestFileAdd( manifestFileAdd(
manifestPrior, manifestPrior,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(MANIFEST_TARGET_PGDATA "/" PG_FILE_PGVERSION), .size = 4, .sizeRepo = 4, .timestamp = 1482182860, .name = STRDEF(MANIFEST_TARGET_PGDATA "/" PG_FILE_PGVERSION), .size = 4, .sizeRepo = 4, .timestamp = 1482182860,
.checksumSha1 = "aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd"}); .checksumSha1 = "aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd"});
} }
@ -1116,18 +1116,18 @@ testRun(void)
lstClear(manifest->pub.fileList); lstClear(manifest->pub.fileList);
manifestFileAdd( manifestFileAdd(
manifest, manifest,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(MANIFEST_TARGET_PGDATA "/FILE1"), .size = 4, .sizeRepo = 4, .timestamp = 1482182860, .name = STRDEF(MANIFEST_TARGET_PGDATA "/FILE1"), .size = 4, .sizeRepo = 4, .timestamp = 1482182860,
.mode = 0600, .group = STRDEF("test"), .user = STRDEF("test")}); .mode = 0600, .group = STRDEF("test"), .user = STRDEF("test")});
manifestFileAdd( manifestFileAdd(
manifest, manifest,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(MANIFEST_TARGET_PGDATA "/" PG_FILE_PGVERSION), .size = 4, .sizeRepo = 4, .timestamp = 1482182860, .name = STRDEF(MANIFEST_TARGET_PGDATA "/" PG_FILE_PGVERSION), .size = 4, .sizeRepo = 4, .timestamp = 1482182860,
.mode = 0600, .group = STRDEF("test"), .user = STRDEF("test")}); .mode = 0600, .group = STRDEF("test"), .user = STRDEF("test")});
manifestFileAdd( manifestFileAdd(
manifestPrior, manifestPrior,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(MANIFEST_TARGET_PGDATA "/FILE1"), .size = 4, .sizeRepo = 4, .timestamp = 1482182860, .name = STRDEF(MANIFEST_TARGET_PGDATA "/FILE1"), .size = 4, .sizeRepo = 4, .timestamp = 1482182860,
.reference = STRDEF("20190101-010101F_20190202-010101D"), .reference = STRDEF("20190101-010101F_20190202-010101D"),
.checksumSha1 = "aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd"}); .checksumSha1 = "aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd"});
@ -1167,7 +1167,7 @@ testRun(void)
manifestFileAdd( manifestFileAdd(
manifest, manifest,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(MANIFEST_TARGET_PGDATA "/FILE1"), .size = 4, .sizeRepo = 4, .timestamp = 1482182859, .name = STRDEF(MANIFEST_TARGET_PGDATA "/FILE1"), .size = 4, .sizeRepo = 4, .timestamp = 1482182859,
.mode = 0600, .group = STRDEF("test"), .user = STRDEF("test")}); .mode = 0600, .group = STRDEF("test"), .user = STRDEF("test")});
@ -1178,7 +1178,7 @@ testRun(void)
varLstAdd(checksumPageErrorList, varNewUInt(77)); varLstAdd(checksumPageErrorList, varNewUInt(77));
manifestFileAdd( manifestFileAdd(
manifestPrior, manifestPrior,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(MANIFEST_TARGET_PGDATA "/FILE1"), .size = 4, .sizeRepo = 4, .timestamp = 1482182860, .name = STRDEF(MANIFEST_TARGET_PGDATA "/FILE1"), .size = 4, .sizeRepo = 4, .timestamp = 1482182860,
.reference = STRDEF("20190101-010101F_20190202-010101D"), .reference = STRDEF("20190101-010101F_20190202-010101D"),
.checksumSha1 = "aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd", .checksumPage = true, .checksumPageError = true, .checksumSha1 = "aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd", .checksumPage = true, .checksumPageError = true,
@ -1218,18 +1218,18 @@ testRun(void)
lstClear(manifest->pub.fileList); lstClear(manifest->pub.fileList);
manifestFileAdd( manifestFileAdd(
manifest, manifest,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(MANIFEST_TARGET_PGDATA "/FILE1"), .size = 6, .sizeRepo = 6, .timestamp = 1482182861, .name = STRDEF(MANIFEST_TARGET_PGDATA "/FILE1"), .size = 6, .sizeRepo = 6, .timestamp = 1482182861,
.mode = 0600, .group = STRDEF("test"), .user = STRDEF("test")}); .mode = 0600, .group = STRDEF("test"), .user = STRDEF("test")});
manifestFileAdd( manifestFileAdd(
manifest, manifest,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(MANIFEST_TARGET_PGDATA "/FILE2"), .size = 6, .sizeRepo = 6, .timestamp = 1482182860, .name = STRDEF(MANIFEST_TARGET_PGDATA "/FILE2"), .size = 6, .sizeRepo = 6, .timestamp = 1482182860,
.mode = 0600, .group = STRDEF("test"), .user = STRDEF("test")}); .mode = 0600, .group = STRDEF("test"), .user = STRDEF("test")});
manifestFileAdd( manifestFileAdd(
manifestPrior, manifestPrior,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(MANIFEST_TARGET_PGDATA "/FILE2"), .size = 4, .sizeRepo = 4, .timestamp = 1482182860, .name = STRDEF(MANIFEST_TARGET_PGDATA "/FILE2"), .size = 4, .sizeRepo = 4, .timestamp = 1482182860,
.reference = STRDEF("20190101-010101F_20190202-010101D"), .reference = STRDEF("20190101-010101F_20190202-010101D"),
.checksumSha1 = "ddddddddddbbbbbbbbbbccccccccccaaaaaaaaaa"}); .checksumSha1 = "ddddddddddbbbbbbbbbbccccccccccaaaaaaaaaa"});
@ -1286,14 +1286,14 @@ testRun(void)
lstClear(manifest->pub.fileList); lstClear(manifest->pub.fileList);
manifestFileAdd( manifestFileAdd(
manifest, manifest,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(MANIFEST_TARGET_PGDATA "/FILE1"), .size = 6, .sizeRepo = 6, .timestamp = 1482182861, .name = STRDEF(MANIFEST_TARGET_PGDATA "/FILE1"), .size = 6, .sizeRepo = 6, .timestamp = 1482182861,
.mode = 0600, .group = STRDEF("test"), .user = STRDEF("test")}); .mode = 0600, .group = STRDEF("test"), .user = STRDEF("test")});
manifest->pub.data.backupOptionOnline = BOOL_TRUE_VAR; manifest->pub.data.backupOptionOnline = BOOL_TRUE_VAR;
manifestFileAdd( manifestFileAdd(
manifestPrior, manifestPrior,
(ManifestFile){ &(ManifestFile){
.name = STRDEF(MANIFEST_TARGET_PGDATA "/FILE2"), .size = 4, .sizeRepo = 4, .timestamp = 1482182860, .name = STRDEF(MANIFEST_TARGET_PGDATA "/FILE2"), .size = 4, .sizeRepo = 4, .timestamp = 1482182860,
.checksumSha1 = "ddddddddddbbbbbbbbbbccccccccccaaaaaaaaaa"}); .checksumSha1 = "ddddddddddbbbbbbbbbbccccccccccaaaaaaaaaa"});