You've already forked pgbackrest
mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2025-07-03 00:26:59 +02:00
Migrate backupRegExp() to C.
Removed the "anchor" parameter because it was never used in any calls in the Perl code so it was just a dead parameter that always defaulted to true. Contributed by Cynthia Shang.
This commit is contained in:
committed by
David Steele
parent
39ed4f763b
commit
a7281878ac
104
test/src/module/command/backupCommonTest.c
Normal file
104
test/src/module/command/backupCommonTest.c
Normal file
@ -0,0 +1,104 @@
|
||||
/***********************************************************************************************************************************
|
||||
Test Common Functions and Definitions for Backup and Expire Commands
|
||||
***********************************************************************************************************************************/
|
||||
#include "common/harnessConfig.h"
|
||||
#include "storage/driver/posix/storage.h"
|
||||
|
||||
#include <common/regExp.h>
|
||||
|
||||
/***********************************************************************************************************************************
|
||||
Test Run
|
||||
***********************************************************************************************************************************/
|
||||
void
|
||||
testRun(void)
|
||||
{
|
||||
FUNCTION_HARNESS_VOID();
|
||||
|
||||
// *****************************************************************************************************************************
|
||||
if (testBegin("backupRegExp()"))
|
||||
{
|
||||
String *full = strNew("20181119-152138F");
|
||||
String *incr = strNew("20181119-152138F_20181119-152152I");
|
||||
String *diff = strNew("20181119-152138F_20181119-152152D");
|
||||
|
||||
// -------------------------------------------------------------------------------------------------------------------------
|
||||
TEST_ERROR(
|
||||
backupRegExpP(0),
|
||||
AssertError, "assertion 'param.full || param.differential || param.incremental' failed");
|
||||
|
||||
// -------------------------------------------------------------------------------------------------------------------------
|
||||
String *filter = backupRegExpP(.full = true);
|
||||
TEST_RESULT_STR(strPtr(filter), "^[0-9]{8}\\-[0-9]{6}F$", "full backup regex with anchors");
|
||||
TEST_RESULT_BOOL(regExpMatchOne(filter, incr), false, " does not exactly match incr");
|
||||
TEST_RESULT_BOOL(regExpMatchOne(filter, diff), false, " does not exactly match diff");
|
||||
TEST_RESULT_BOOL(regExpMatchOne(filter, full), true, " exactly matches full");
|
||||
|
||||
// -------------------------------------------------------------------------------------------------------------------------
|
||||
filter = backupRegExpP(.full = true, .incremental = true);
|
||||
TEST_RESULT_STR(
|
||||
strPtr(filter),
|
||||
"^[0-9]{8}\\-[0-9]{6}F(\\_[0-9]{8}\\-[0-9]{6}I){0,1}$", "full and optional incr backup regex with anchors");
|
||||
TEST_RESULT_BOOL(regExpMatchOne(filter, incr), true, " match incr");
|
||||
TEST_RESULT_BOOL(regExpMatchOne(filter, diff), false, " does not match diff");
|
||||
TEST_RESULT_BOOL(regExpMatchOne(filter, full), true, " match full");
|
||||
TEST_RESULT_BOOL(
|
||||
regExpMatchOne(
|
||||
filter, strNew("12341234-123123F_12341234-123123IG")), false, " does not match with trailing character");
|
||||
TEST_RESULT_BOOL(
|
||||
regExpMatchOne(
|
||||
filter, strNew("A12341234-123123F_12341234-123123I")), false, " does not match with leading character");
|
||||
|
||||
// -------------------------------------------------------------------------------------------------------------------------
|
||||
filter = backupRegExpP(.full = true, .differential = true);
|
||||
TEST_RESULT_STR(
|
||||
strPtr(filter),
|
||||
"^[0-9]{8}\\-[0-9]{6}F(\\_[0-9]{8}\\-[0-9]{6}D){0,1}$", "full and optional diff backup regex with anchors");
|
||||
TEST_RESULT_BOOL(regExpMatchOne(filter, incr), false, " does not match incr");
|
||||
TEST_RESULT_BOOL(regExpMatchOne(filter, diff), true, " match diff");
|
||||
TEST_RESULT_BOOL(regExpMatchOne(filter, full), true, " match full");
|
||||
|
||||
// -------------------------------------------------------------------------------------------------------------------------
|
||||
filter = backupRegExpP(.full = true, .incremental = true, .differential = true);
|
||||
TEST_RESULT_STR(
|
||||
strPtr(filter),
|
||||
"^[0-9]{8}\\-[0-9]{6}F(\\_[0-9]{8}\\-[0-9]{6}(D|I)){0,1}$", "full, optional diff and incr backup regex with anchors");
|
||||
TEST_RESULT_BOOL(regExpMatchOne(filter, incr), true, " match incr");
|
||||
TEST_RESULT_BOOL(regExpMatchOne(filter, diff), true, " match diff");
|
||||
TEST_RESULT_BOOL(regExpMatchOne(filter, full), true, " match full");
|
||||
|
||||
// -------------------------------------------------------------------------------------------------------------------------
|
||||
filter = backupRegExpP(.incremental = true, .differential = true);
|
||||
TEST_RESULT_STR(
|
||||
strPtr(filter),
|
||||
"^[0-9]{8}\\-[0-9]{6}F\\_[0-9]{8}\\-[0-9]{6}(D|I)$", "diff and incr backup regex with anchors");
|
||||
TEST_RESULT_BOOL(regExpMatchOne(filter, incr), true, " match incr");
|
||||
TEST_RESULT_BOOL(regExpMatchOne(filter, diff), true, " match diff");
|
||||
TEST_RESULT_BOOL(regExpMatchOne(filter, full), false, " does not match full");
|
||||
TEST_RESULT_BOOL(
|
||||
regExpMatchOne(
|
||||
filter, strNew("12341234-123123F_12341234-123123DG")), false, " does not match with trailing character");
|
||||
TEST_RESULT_BOOL(
|
||||
regExpMatchOne(
|
||||
filter, strNew("A12341234-123123F_12341234-123123I")), false, " does not match with leading character");
|
||||
|
||||
// -------------------------------------------------------------------------------------------------------------------------
|
||||
filter = backupRegExpP(.incremental = true);
|
||||
TEST_RESULT_STR(
|
||||
strPtr(filter),
|
||||
"^[0-9]{8}\\-[0-9]{6}F\\_[0-9]{8}\\-[0-9]{6}I$", "incr backup regex with anchors");
|
||||
TEST_RESULT_BOOL(regExpMatchOne(filter, incr), true, " match incr");
|
||||
TEST_RESULT_BOOL(regExpMatchOne(filter, diff), false, " does not match diff");
|
||||
TEST_RESULT_BOOL(regExpMatchOne(filter, full), false, " does not match full");
|
||||
|
||||
// -------------------------------------------------------------------------------------------------------------------------
|
||||
filter = backupRegExpP(.differential = true);
|
||||
TEST_RESULT_STR(
|
||||
strPtr(filter),
|
||||
"^[0-9]{8}\\-[0-9]{6}F\\_[0-9]{8}\\-[0-9]{6}D$", "diff backup regex with anchors");
|
||||
TEST_RESULT_BOOL(regExpMatchOne(filter, incr), false, " does not match incr");
|
||||
TEST_RESULT_BOOL(regExpMatchOne(filter, diff), true, " match diff");
|
||||
TEST_RESULT_BOOL(regExpMatchOne(filter, full), false, " does not match full");
|
||||
}
|
||||
|
||||
FUNCTION_HARNESS_RESULT_VOID();
|
||||
}
|
Reference in New Issue
Block a user