1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2025-01-18 04:58:51 +02:00

Add infoArchiveMove() and infoBackupMove().

This commit is contained in:
Cynthia Shang 2020-09-08 13:02:13 -04:00 committed by David Steele
parent 5941f5631a
commit ecb112f802
6 changed files with 25 additions and 4 deletions

View File

@ -35,6 +35,7 @@ struct InfoArchive
InfoPg *infoPg; // Contents of the DB data
};
OBJECT_DEFINE_MOVE(INFO_ARCHIVE);
OBJECT_DEFINE_FREE(INFO_ARCHIVE);
/***********************************************************************************************************************************

View File

@ -43,6 +43,9 @@ Functions
const String *infoArchiveIdHistoryMatch(
const InfoArchive *this, const unsigned int historyId, const unsigned int pgVersion, const uint64_t pgSystemId);
// Move to a new parent mem context
InfoArchive *infoArchiveMove(InfoArchive *this, MemContext *parentNew);
/***********************************************************************************************************************************
Getters/Setters
***********************************************************************************************************************************/

View File

@ -64,6 +64,7 @@ struct InfoBackup
List *backup; // List of current backups and their associated data
};
OBJECT_DEFINE_MOVE(INFO_BACKUP);
OBJECT_DEFINE_FREE(INFO_BACKUP);
/***********************************************************************************************************************************

View File

@ -74,6 +74,9 @@ void infoBackupDataAdd(const InfoBackup *this, const Manifest *manifest);
// Delete backup from the current backup list
void infoBackupDataDelete(const InfoBackup *this, const String *backupDeleteLabel);
// Move to a new parent mem context
InfoBackup *infoBackupMove(InfoBackup *this, MemContext *parentNew);
/***********************************************************************************************************************************
Getters/Setters
***********************************************************************************************************************************/

View File

@ -35,7 +35,14 @@ testRun(void)
InfoArchive *info = NULL;
TEST_ASSIGN(info, infoArchiveNewLoad(ioBufferReadNew(contentLoad)), " load new archive info");
// Load and test move function
MEM_CONTEXT_TEMP_BEGIN()
{
TEST_ASSIGN(info, infoArchiveNewLoad(ioBufferReadNew(contentLoad)), "load new archive info");
TEST_RESULT_VOID(infoArchiveMove(info, memContextPrior()), " move info");
}
MEM_CONTEXT_TEMP_END();
TEST_RESULT_STR_Z(infoArchiveId(info), "9.4-1", " archiveId set");
TEST_RESULT_PTR(infoArchivePg(info), info->infoPg, " infoPg set");
TEST_RESULT_STR(infoArchiveCipherPass(info), NULL, " no cipher sub");

View File

@ -40,9 +40,15 @@ testRun(void)
"\"db-version\":\"9.4\"}\n"
);
// Load to make sure ignore-section is ignored
InfoBackup *infoBackup;
TEST_ASSIGN(infoBackup, infoBackupNewLoad(ioBufferReadNew(contentLoad)), " new backup info");
InfoBackup *infoBackup = NULL;
// Load and test move function then make sure ignore-section is ignored
MEM_CONTEXT_TEMP_BEGIN()
{
TEST_ASSIGN(infoBackup, infoBackupNewLoad(ioBufferReadNew(contentLoad)), "new backup info");
TEST_RESULT_VOID(infoBackupMove(infoBackup, memContextPrior()), " move info");
}
MEM_CONTEXT_TEMP_END();
// Save to verify with new created info backup
Buffer *contentSave = bufNew(0);