You've already forked pgbackrest
mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2026-05-22 10:15:16 +02:00
Various improvements to the test suite:
* Allow logging to be suppressed via logDisable() and logEnable(). * Added more flexibility in initializing and cleaning up after modules and tests. * testResult() suppresses logging and reports exceptions. * testException() allows messages to be matched with regular expressions. * Refactor name/locations of common modules that setup test environments.
This commit is contained in:
@@ -6,6 +6,7 @@ test/.vagrant
|
|||||||
test/package
|
test/package
|
||||||
test/nytprof.out
|
test/nytprof.out
|
||||||
test/nytprof/*
|
test/nytprof/*
|
||||||
|
test/scratch.txt
|
||||||
test/coverage*
|
test/coverage*
|
||||||
doc/output/*
|
doc/output/*
|
||||||
doc/doc/output/*
|
doc/doc/output/*
|
||||||
|
|||||||
@@ -232,6 +232,10 @@
|
|||||||
<release-item>
|
<release-item>
|
||||||
<p>Split the <cmd>check</cmd> command out of the <code>Archive.pm</code> module.</p>
|
<p>Split the <cmd>check</cmd> command out of the <code>Archive.pm</code> module.</p>
|
||||||
</release-item>
|
</release-item>
|
||||||
|
|
||||||
|
<release-item>
|
||||||
|
<p>Allow logging to be suppressed via <code>logDisable()</code> and <code>logEnable()</code>.</p>
|
||||||
|
</release-item>
|
||||||
</release-refactor-list>
|
</release-refactor-list>
|
||||||
</release-core-list>
|
</release-core-list>
|
||||||
|
|
||||||
@@ -262,6 +266,18 @@
|
|||||||
<release-item>
|
<release-item>
|
||||||
<p>Added unit tests for low-level functions in the <code>File</code> and <code>BackupCommon</code> modules.</p>
|
<p>Added unit tests for low-level functions in the <code>File</code> and <code>BackupCommon</code> modules.</p>
|
||||||
</release-item>
|
</release-item>
|
||||||
|
|
||||||
|
<release-item>
|
||||||
|
<p>Added more flexibility in initializing and cleaning up after modules and tests.</p>
|
||||||
|
</release-item>
|
||||||
|
|
||||||
|
<release-item>
|
||||||
|
<p><code>testResult()</code> suppresses logging and reports exceptions.</p>
|
||||||
|
</release-item>
|
||||||
|
|
||||||
|
<release-item>
|
||||||
|
<p><code>testException()</code> allows messages to be matched with regular expressions.</p>
|
||||||
|
</release-item>
|
||||||
</release-feature-list>
|
</release-feature-list>
|
||||||
|
|
||||||
<release-refactor-list>
|
<release-refactor-list>
|
||||||
@@ -276,6 +292,10 @@
|
|||||||
<release-item>
|
<release-item>
|
||||||
<p>Added expect log expression to replace year subdirectories in <path>backup.history</path>.</p>
|
<p>Added expect log expression to replace year subdirectories in <path>backup.history</path>.</p>
|
||||||
</release-item>
|
</release-item>
|
||||||
|
|
||||||
|
<release-item>
|
||||||
|
<p>Refactor name/locations of common modules that setup test environments.</p>
|
||||||
|
</release-item>
|
||||||
</release-refactor-list>
|
</release-refactor-list>
|
||||||
</release-test-list>
|
</release-test-list>
|
||||||
</release>
|
</release>
|
||||||
|
|||||||
@@ -72,6 +72,9 @@ my $strLogLevelFile = OFF;
|
|||||||
my $strLogLevelConsole = OFF;
|
my $strLogLevelConsole = OFF;
|
||||||
my $strLogLevelStdErr = WARN;
|
my $strLogLevelStdErr = WARN;
|
||||||
|
|
||||||
|
# Allow log to be globally enabled or disabled with logEnable() and logDisable()
|
||||||
|
my $bLogDisable = 0;
|
||||||
|
|
||||||
# Test globals
|
# Test globals
|
||||||
my $bTest = false;
|
my $bTest = false;
|
||||||
my $fTestDelay;
|
my $fTestDelay;
|
||||||
@@ -186,6 +189,26 @@ sub logLevelSet
|
|||||||
|
|
||||||
push @EXPORT, qw(logLevelSet);
|
push @EXPORT, qw(logLevelSet);
|
||||||
|
|
||||||
|
####################################################################################################################################
|
||||||
|
# logDisable
|
||||||
|
####################################################################################################################################
|
||||||
|
sub logDisable
|
||||||
|
{
|
||||||
|
$bLogDisable++;
|
||||||
|
}
|
||||||
|
|
||||||
|
push @EXPORT, qw(logDisable);
|
||||||
|
|
||||||
|
####################################################################################################################################
|
||||||
|
# logEnable
|
||||||
|
####################################################################################################################################
|
||||||
|
sub logEnable
|
||||||
|
{
|
||||||
|
$bLogDisable--;
|
||||||
|
}
|
||||||
|
|
||||||
|
push @EXPORT, qw(logEnable);
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# logDebugParam
|
# logDebugParam
|
||||||
#
|
#
|
||||||
@@ -406,6 +429,8 @@ sub logDebugBuild
|
|||||||
return $rResult;
|
return $rResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
push @EXPORT, qw(logDebugBuild);
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# logDebugOut
|
# logDebugOut
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
@@ -476,6 +501,25 @@ sub logException
|
|||||||
|
|
||||||
push @EXPORT, qw(logException);
|
push @EXPORT, qw(logException);
|
||||||
|
|
||||||
|
####################################################################################################################################
|
||||||
|
# logErrorResult
|
||||||
|
####################################################################################################################################
|
||||||
|
sub logErrorResult
|
||||||
|
{
|
||||||
|
my $oResult = shift;
|
||||||
|
my $iCode = shift;
|
||||||
|
my $strMessage = shift;
|
||||||
|
|
||||||
|
if (!$oResult)
|
||||||
|
{
|
||||||
|
confess &log(ERROR, $strMessage . (defined($!) ? ": $!" : ''), $iCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $oResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
push @EXPORT, qw(logErrorResult);
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# LOG - log messages
|
# LOG - log messages
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
@@ -575,69 +619,74 @@ sub log
|
|||||||
(defined($iProcessId) ? $iProcessId : 0)) .
|
(defined($iProcessId) ? $iProcessId : 0)) .
|
||||||
(' ' x (7 - length($strLevel))) . "${strLevel}: ${strMessageFormat}\n";
|
(' ' x (7 - length($strLevel))) . "${strLevel}: ${strMessageFormat}\n";
|
||||||
|
|
||||||
# Output to stderr depending on log level
|
# Skip output if disabled
|
||||||
if (!$rExtra->{bLogConsole} && $iLogLevelRank <= $oLogLevelRank{$strLogLevelStdErr}{rank})
|
if (!$bLogDisable)
|
||||||
{
|
{
|
||||||
if ($strLogLevelStdErr ne PROTOCOL)
|
# Output to stderr depending on log level
|
||||||
|
if (!$rExtra->{bLogConsole} && $iLogLevelRank <= $oLogLevelRank{$strLogLevelStdErr}{rank})
|
||||||
{
|
{
|
||||||
syswrite(*STDERR, $strLevel . (defined($iCode) ? " [${iCode}]" : '') . ': ');
|
if ($strLogLevelStdErr ne PROTOCOL)
|
||||||
|
{
|
||||||
|
syswrite(*STDERR, $strLevel . (defined($iCode) ? " [${iCode}]" : '') . ': ');
|
||||||
|
}
|
||||||
|
|
||||||
|
syswrite(*STDERR, "${strMessage}\n");
|
||||||
|
$rExtra->{bLogConsole} = true;
|
||||||
}
|
}
|
||||||
|
# Else output to stdout depending on log level and test flag
|
||||||
syswrite(*STDERR, "${strMessage}\n");
|
elsif (!$rExtra->{bLogConsole} && $iLogLevelRank <= $oLogLevelRank{$strLogLevelConsole}{rank} ||
|
||||||
$rExtra->{bLogConsole} = true;
|
$bTest && $strLevel eq TEST)
|
||||||
}
|
|
||||||
# Else output to stdout depending on log level and test flag
|
|
||||||
elsif (!$rExtra->{bLogConsole} && $iLogLevelRank <= $oLogLevelRank{$strLogLevelConsole}{rank} || $bTest && $strLevel eq TEST)
|
|
||||||
{
|
|
||||||
if (!$bSuppressLog)
|
|
||||||
{
|
|
||||||
syswrite(*STDOUT, $strMessageFormat);
|
|
||||||
}
|
|
||||||
|
|
||||||
# If in test mode and this is a test messsage then delay so the calling process has time to read the message
|
|
||||||
if ($bTest && $strLevel eq TEST && $fTestDelay > 0)
|
|
||||||
{
|
|
||||||
usleep($fTestDelay * 1000000);
|
|
||||||
}
|
|
||||||
|
|
||||||
$rExtra->{bLogConsole} = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
# Output to file depending on log level and test flag
|
|
||||||
if (!$rExtra->{bLogLogFile} && $iLogLevelRank <= $oLogLevelRank{$strLogLevelFile}{rank})
|
|
||||||
{
|
|
||||||
if (defined($hLogFile) || (defined($strLogLevelFile) && $strLogLevelFile ne OFF))
|
|
||||||
{
|
{
|
||||||
if (!$bSuppressLog)
|
if (!$bSuppressLog)
|
||||||
{
|
{
|
||||||
if (defined($hLogFile))
|
syswrite(*STDOUT, $strMessageFormat);
|
||||||
{
|
}
|
||||||
syswrite($hLogFile, $strMessageFormat);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$strLogFileCache .= $strMessageFormat;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($strLevel eq ASSERT ||
|
# If in test mode and this is a test messsage then delay so the calling process has time to read the message
|
||||||
($strLevel eq ERROR && ($strLogLevelFile eq DEBUG || $strLogLevelFile eq TRACE)))
|
if ($bTest && $strLevel eq TEST && $fTestDelay > 0)
|
||||||
{
|
{
|
||||||
my $strStackTrace = longmess() . "\n";
|
usleep($fTestDelay * 1000000);
|
||||||
$strStackTrace =~ s/\n/\n /g;
|
}
|
||||||
|
|
||||||
|
$rExtra->{bLogConsole} = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Output to file depending on log level and test flag
|
||||||
|
if (!$rExtra->{bLogLogFile} && $iLogLevelRank <= $oLogLevelRank{$strLogLevelFile}{rank})
|
||||||
|
{
|
||||||
|
if (defined($hLogFile) || (defined($strLogLevelFile) && $strLogLevelFile ne OFF))
|
||||||
|
{
|
||||||
|
if (!$bSuppressLog)
|
||||||
|
{
|
||||||
if (defined($hLogFile))
|
if (defined($hLogFile))
|
||||||
{
|
{
|
||||||
syswrite($hLogFile, $strStackTrace);
|
syswrite($hLogFile, $strMessageFormat);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$strLogFileCache .= $strStackTrace;
|
$strLogFileCache .= $strMessageFormat;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($strLevel eq ASSERT ||
|
||||||
|
($strLevel eq ERROR && ($strLogLevelFile eq DEBUG || $strLogLevelFile eq TRACE)))
|
||||||
|
{
|
||||||
|
my $strStackTrace = longmess() . "\n";
|
||||||
|
$strStackTrace =~ s/\n/\n /g;
|
||||||
|
|
||||||
|
if (defined($hLogFile))
|
||||||
|
{
|
||||||
|
syswrite($hLogFile, $strStackTrace);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$strLogFileCache .= $strStackTrace;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
$rExtra->{bLogFile} = true;
|
$rExtra->{bLogFile} = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Throw a typed exception if code is defined
|
# Throw a typed exception if code is defined
|
||||||
|
|||||||
@@ -84,9 +84,9 @@ db-version="9.4"
|
|||||||
[db:history]
|
[db:history]
|
||||||
1={"db-id":6353949018581704918,"db-version":"9.4"}
|
1={"db-id":6353949018581704918,"db-version":"9.4"}
|
||||||
|
|
||||||
> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001
|
> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001
|
||||||
------------------------------------------------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --no-fork --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db
|
P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db
|
||||||
P00 INFO: push WAL segment [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001
|
P00 INFO: push WAL segment [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001
|
||||||
P00 DEBUG: Archive::ArchivePush->push(): bAsync = false, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001
|
P00 DEBUG: Archive::ArchivePush->push(): bAsync = false, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001
|
||||||
P00 DEBUG: Protocol::Protocol::protocolGet(): iRemoteIdx = <1>, oParam = [undef], strRemoteType = backup
|
P00 DEBUG: Protocol::Protocol::protocolGet(): iRemoteIdx = <1>, oParam = [undef], strRemoteType = backup
|
||||||
|
|||||||
@@ -84,9 +84,9 @@ db-version="9.4"
|
|||||||
[db:history]
|
[db:history]
|
||||||
1={"db-id":6353949018581704918,"db-version":"9.4"}
|
1={"db-id":6353949018581704918,"db-version":"9.4"}
|
||||||
|
|
||||||
> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001
|
> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001
|
||||||
------------------------------------------------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --no-fork --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db
|
P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db
|
||||||
P00 INFO: push WAL segment [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001
|
P00 INFO: push WAL segment [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001
|
||||||
P00 DEBUG: Archive::ArchivePush->push(): bAsync = false, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001
|
P00 DEBUG: Archive::ArchivePush->push(): bAsync = false, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001
|
||||||
P00 DEBUG: Protocol::Protocol::protocolGet(): iRemoteIdx = <1>, oParam = [undef], strRemoteType = backup
|
P00 DEBUG: Protocol::Protocol::protocolGet(): iRemoteIdx = <1>, oParam = [undef], strRemoteType = backup
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
# ArchiveGetTest.pm - Tests for archive-get command
|
# ArchiveGetTest.pm - Tests for archive-get command
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
package pgBackRestTest::Archive::ArchiveGetTest;
|
package pgBackRestTest::Archive::ArchiveGetTest;
|
||||||
use parent 'pgBackRestTest::Full::FullCommonTest';
|
use parent 'pgBackRestTest::Common::Env::EnvHostTest';
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# Perl includes
|
# Perl includes
|
||||||
@@ -25,9 +25,9 @@ use pgBackRest::File;
|
|||||||
use pgBackRest::FileCommon;
|
use pgBackRest::FileCommon;
|
||||||
use pgBackRest::Manifest;
|
use pgBackRest::Manifest;
|
||||||
|
|
||||||
|
use pgBackRestTest::Common::Env::EnvHostTest;
|
||||||
use pgBackRestTest::Common::ExecuteTest;
|
use pgBackRestTest::Common::ExecuteTest;
|
||||||
use pgBackRestTest::Common::RunTest;
|
use pgBackRestTest::Common::RunTest;
|
||||||
use pgBackRestTest::Full::FullCommonTest;
|
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# run
|
# run
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
# ArchivePushTest.pm - Tests for archive-push command
|
# ArchivePushTest.pm - Tests for archive-push command
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
package pgBackRestTest::Archive::ArchivePushTest;
|
package pgBackRestTest::Archive::ArchivePushTest;
|
||||||
use parent 'pgBackRestTest::Full::FullCommonTest';
|
use parent 'pgBackRestTest::Common::Env::EnvHostTest';
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# Perl includes
|
# Perl includes
|
||||||
@@ -25,9 +25,9 @@ use pgBackRest::File;
|
|||||||
use pgBackRest::FileCommon;
|
use pgBackRest::FileCommon;
|
||||||
use pgBackRest::Manifest;
|
use pgBackRest::Manifest;
|
||||||
|
|
||||||
|
use pgBackRestTest::Common::Env::EnvHostTest;
|
||||||
use pgBackRestTest::Common::ExecuteTest;
|
use pgBackRestTest::Common::ExecuteTest;
|
||||||
use pgBackRestTest::Common::RunTest;
|
use pgBackRestTest::Common::RunTest;
|
||||||
use pgBackRestTest::Full::FullCommonTest;
|
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# archiveCheck
|
# archiveCheck
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
# ArchiveStopTest.pm - Tests for archive-push command to make sure aync queue limits are implemented correctly
|
# ArchiveStopTest.pm - Tests for archive-push command to make sure aync queue limits are implemented correctly
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
package pgBackRestTest::Archive::ArchiveStopTest;
|
package pgBackRestTest::Archive::ArchiveStopTest;
|
||||||
use parent 'pgBackRestTest::Full::FullCommonTest';
|
use parent 'pgBackRestTest::Common::Env::EnvHostTest';
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# Perl includes
|
# Perl includes
|
||||||
@@ -25,9 +25,9 @@ use pgBackRest::File;
|
|||||||
use pgBackRest::FileCommon;
|
use pgBackRest::FileCommon;
|
||||||
use pgBackRest::Manifest;
|
use pgBackRest::Manifest;
|
||||||
|
|
||||||
|
use pgBackRestTest::Common::Env::EnvHostTest;
|
||||||
use pgBackRestTest::Common::ExecuteTest;
|
use pgBackRestTest::Common::ExecuteTest;
|
||||||
use pgBackRestTest::Common::RunTest;
|
use pgBackRestTest::Common::RunTest;
|
||||||
use pgBackRestTest::Full::FullCommonTest;
|
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# run
|
# run
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
# ArchiveUnitTest.pm - Tests for ArchiveCommon module
|
# ArchiveUnitTest.pm - Tests for ArchiveCommon module
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
package pgBackRestTest::Archive::ArchiveUnitTest;
|
package pgBackRestTest::Archive::ArchiveUnitTest;
|
||||||
use parent 'pgBackRestTest::Full::FullCommonTest';
|
use parent 'pgBackRestTest::Common::Env::EnvHostTest';
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# Perl includes
|
# Perl includes
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
# BackupUnitTest.pm - Tests for Backup module
|
# BackupUnitTest.pm - Tests for Backup module
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
package pgBackRestTest::Backup::BackupUnitTest;
|
package pgBackRestTest::Backup::BackupUnitTest;
|
||||||
use parent 'pgBackRestTest::Full::FullCommonTest';
|
use parent 'pgBackRestTest::Common::Env::EnvHostTest';
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# Perl includes
|
# Perl includes
|
||||||
|
|||||||
@@ -271,23 +271,23 @@ sub perlInstall
|
|||||||
if ($strOS eq VM_CO6)
|
if ($strOS eq VM_CO6)
|
||||||
{
|
{
|
||||||
return $strImage .
|
return $strImage .
|
||||||
"RUN yum install -y perl perl-Time-HiRes perl-parent perl-JSON perl-Digest-SHA perl-DBD-Pg";
|
'RUN yum install -y perl perl-Time-HiRes perl-parent perl-JSON perl-Digest-SHA perl-DBD-Pg';
|
||||||
}
|
}
|
||||||
elsif ($strOS eq VM_CO7)
|
elsif ($strOS eq VM_CO7)
|
||||||
{
|
{
|
||||||
return $strImage .
|
return $strImage .
|
||||||
"RUN yum install -y perl perl-JSON-PP perl-Digest-SHA perl-DBD-Pg";
|
'RUN yum install -y perl perl-JSON-PP perl-Digest-SHA perl-DBD-Pg';
|
||||||
}
|
}
|
||||||
elsif ($strOS eq VM_U12 || $strOS eq VM_U14)
|
elsif ($strOS eq VM_U12 || $strOS eq VM_U14)
|
||||||
{
|
{
|
||||||
return $strImage .
|
return $strImage .
|
||||||
"RUN apt-get install -y libdbd-pg-perl libdbi-perl libnet-daemon-perl libplrpc-perl";
|
'RUN apt-get install -y libdbd-pg-perl libdbi-perl libnet-daemon-perl libplrpc-perl';
|
||||||
}
|
}
|
||||||
elsif ($strOS eq VM_U16 || $strOS eq VM_D8)
|
elsif ($strOS eq VM_U16 || $strOS eq VM_D8)
|
||||||
{
|
{
|
||||||
return $strImage .
|
return $strImage .
|
||||||
"RUN apt-get install -y libdbd-pg-perl libdbi-perl" .
|
'RUN apt-get install -y libdbd-pg-perl libdbi-perl' .
|
||||||
($strOS eq VM_U16 ? ' libdevel-cover-perl' : '');
|
($strOS eq VM_U16 ? ' libdevel-cover-perl libtest-pod-coverage-perl' : '');
|
||||||
}
|
}
|
||||||
|
|
||||||
confess &log(ERROR, "unable to install perl for os '${strOS}'");
|
confess &log(ERROR, "unable to install perl for os '${strOS}'");
|
||||||
|
|||||||
+4
-4
@@ -1,8 +1,8 @@
|
|||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# FullCommonTest.pm - Common code for backup tests
|
# FullCommonTest.pm - Common code for backup tests
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
package pgBackRestTest::Full::FullCommonTest;
|
package pgBackRestTest::Common::Env::EnvHostTest;
|
||||||
use parent 'pgBackRestTest::Common::RunTest';
|
use parent 'pgBackRestTest::Config::ConfigEnvTest';
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# Perl includes
|
# Perl includes
|
||||||
@@ -33,9 +33,9 @@ use constant WAL_VERSION_94 => '94';
|
|||||||
push @EXPORT, qw(WAL_VERSION_94);
|
push @EXPORT, qw(WAL_VERSION_94);
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# init
|
# initModule
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
sub init
|
sub initModule
|
||||||
{
|
{
|
||||||
# Set file and path modes
|
# Set file and path modes
|
||||||
pathModeDefaultSet('0700');
|
pathModeDefaultSet('0700');
|
||||||
@@ -157,7 +157,8 @@ sub testListGet
|
|||||||
my $oTestRun =
|
my $oTestRun =
|
||||||
{
|
{
|
||||||
&TEST_VM => $strTestOS,
|
&TEST_VM => $strTestOS,
|
||||||
&TEST_CONTAINER => $$oModule{&TESTDEF_TEST_CONTAINER},
|
&TEST_CONTAINER => defined($oTest->{&TESTDEF_TEST_CONTAINER}) ?
|
||||||
|
$oTest->{&TESTDEF_TEST_CONTAINER} : $oModule->{&TESTDEF_TEST_CONTAINER},
|
||||||
&TEST_PGSQL_BIN => $strPgSqlBin,
|
&TEST_PGSQL_BIN => $strPgSqlBin,
|
||||||
&TEST_PERL_ARCH_PATH => $$oyVm{$strTestOS}{&VMDEF_PERL_ARCH_PATH},
|
&TEST_PERL_ARCH_PATH => $$oyVm{$strTestOS}{&VMDEF_PERL_ARCH_PATH},
|
||||||
&TEST_MODULE => $$oModule{&TESTDEF_MODULE_NAME},
|
&TEST_MODULE => $$oModule{&TESTDEF_MODULE_NAME},
|
||||||
|
|||||||
@@ -17,9 +17,11 @@ use File::Basename qw(dirname);
|
|||||||
|
|
||||||
use pgBackRest::Common::Exception;
|
use pgBackRest::Common::Exception;
|
||||||
use pgBackRest::Common::Log;
|
use pgBackRest::Common::Log;
|
||||||
|
use pgBackRest::Common::Wait;
|
||||||
|
|
||||||
use pgBackRestTest::Common::LogTest;
|
|
||||||
use pgBackRestTest::Common::DefineTest;
|
use pgBackRestTest::Common::DefineTest;
|
||||||
|
use pgBackRestTest::Common::ExecuteTest;
|
||||||
|
use pgBackRestTest::Common::LogTest;
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# Constant to use when bogus data is required
|
# Constant to use when bogus data is required
|
||||||
@@ -59,18 +61,37 @@ sub new
|
|||||||
}
|
}
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# init
|
# initModule
|
||||||
#
|
#
|
||||||
# Empty init sub in case the ancestor class does not delare one.
|
# Empty init sub in case the ancestor class does not delare one.
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
sub init {}
|
sub initModule {}
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# final
|
# initTest
|
||||||
|
#
|
||||||
|
# Empty init sub in case the ancestor class does not delare one.
|
||||||
|
####################################################################################################################################
|
||||||
|
sub initTest {}
|
||||||
|
|
||||||
|
####################################################################################################################################
|
||||||
|
# cleanTest
|
||||||
|
#
|
||||||
|
# Delete all files in test directory.
|
||||||
|
####################################################################################################################################
|
||||||
|
sub cleanTest
|
||||||
|
{
|
||||||
|
my $self = shift;
|
||||||
|
|
||||||
|
executeTest('sudo rm -rf ' . $self->testPath() . '/*');
|
||||||
|
}
|
||||||
|
|
||||||
|
####################################################################################################################################
|
||||||
|
# cleanModule
|
||||||
#
|
#
|
||||||
# Empty final sub in case the ancestor class does not delare one.
|
# Empty final sub in case the ancestor class does not delare one.
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
sub final {}
|
sub cleanModule {}
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# process
|
# process
|
||||||
@@ -126,11 +147,14 @@ sub process
|
|||||||
{name => 'strGroup'},
|
{name => 'strGroup'},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
# Init will only be run on first test, clean/init on subsequent tests
|
||||||
|
$self->{bFirstTest} = true;
|
||||||
|
|
||||||
# Init, run, and end the test(s)
|
# Init, run, and end the test(s)
|
||||||
$self->init();
|
$self->initModule();
|
||||||
$self->run();
|
$self->run();
|
||||||
$self->final();
|
|
||||||
$self->end();
|
$self->end();
|
||||||
|
$self->cleanModule();
|
||||||
|
|
||||||
# Make sure the correct number of tests ran
|
# Make sure the correct number of tests ran
|
||||||
my $hModule = testDefModuleGet($self->{strModule});
|
my $hModule = testDefModuleGet($self->{strModule});
|
||||||
@@ -229,6 +253,14 @@ sub begin
|
|||||||
|
|
||||||
$self->{strBackRestExe} = $strExe;
|
$self->{strBackRestExe} = $strExe;
|
||||||
|
|
||||||
|
if (!$self->{bFirstTest})
|
||||||
|
{
|
||||||
|
$self->cleanTest();
|
||||||
|
}
|
||||||
|
|
||||||
|
$self->initTest();
|
||||||
|
$self->{bFirstTest} = false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -255,16 +287,60 @@ sub testResult
|
|||||||
my $self = shift;
|
my $self = shift;
|
||||||
my $fnSub = shift;
|
my $fnSub = shift;
|
||||||
my $strExpected = shift;
|
my $strExpected = shift;
|
||||||
|
my $strDescription = shift;
|
||||||
|
my $iWaitSeconds = shift;
|
||||||
|
|
||||||
my $strActual = $fnSub->();
|
&log(INFO, ' ' . (defined($strDescription) ? $strDescription : 'no description'));
|
||||||
|
my $strActual;
|
||||||
|
|
||||||
if (!defined($strExpected) && defined($strActual) || defined($strExpected) && !defined($strActual) ||
|
my $oWait = waitInit(defined($iWaitSeconds) ? $iWaitSeconds : 0);
|
||||||
$strActual ne $strExpected)
|
my $bDone = false;
|
||||||
|
|
||||||
|
do
|
||||||
{
|
{
|
||||||
confess
|
eval
|
||||||
'expected ' . (defined($strExpected) ? "\"${strExpected}\"" : '[undef]') .
|
{
|
||||||
" but actual was " . (defined($strActual) ? "\"${strActual}\"" : '[undef]');
|
logDisable();
|
||||||
}
|
my @stryResult = ref($fnSub) eq 'CODE' ? $fnSub->() : $fnSub;
|
||||||
|
|
||||||
|
if (@stryResult <= 1)
|
||||||
|
{
|
||||||
|
$strActual = ${logDebugBuild($stryResult[0])};
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$strActual = ${logDebugBuild(\@stryResult)};
|
||||||
|
}
|
||||||
|
|
||||||
|
logEnable();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
or do
|
||||||
|
{
|
||||||
|
logEnable();
|
||||||
|
|
||||||
|
if (!isException($EVAL_ERROR))
|
||||||
|
{
|
||||||
|
confess "unexpected standard Perl exception" . (defined($EVAL_ERROR) ? ": ${EVAL_ERROR}" : '');
|
||||||
|
}
|
||||||
|
|
||||||
|
confess &logException($EVAL_ERROR);
|
||||||
|
};
|
||||||
|
|
||||||
|
if ($strActual ne (defined($strExpected) ? $strExpected : "[undef]"))
|
||||||
|
{
|
||||||
|
if (!waitMore($oWait))
|
||||||
|
{
|
||||||
|
confess
|
||||||
|
'expected ' . (defined($strExpected) ? "\"${strExpected}\"" : '[undef]') .
|
||||||
|
" but actual was " . (defined($strActual) ? "\"${strActual}\"" : '[undef]');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$bDone = true;
|
||||||
|
}
|
||||||
|
} while (!$bDone);
|
||||||
}
|
}
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
@@ -277,22 +353,31 @@ sub testException
|
|||||||
my $iCodeExpected = shift;
|
my $iCodeExpected = shift;
|
||||||
my $strMessageExpected = shift;
|
my $strMessageExpected = shift;
|
||||||
|
|
||||||
|
# Output first line of the error message
|
||||||
|
my @stryErrorMessage = split('\n', $strMessageExpected);
|
||||||
|
&log(INFO, " [${iCodeExpected}] " . $stryErrorMessage[0]);
|
||||||
|
|
||||||
my $bError = false;
|
my $bError = false;
|
||||||
my $strError = "exception ${iCodeExpected}, \"${strMessageExpected}\" was expected";
|
my $strError = "exception ${iCodeExpected}, \"${strMessageExpected}\" was expected";
|
||||||
|
|
||||||
eval
|
eval
|
||||||
{
|
{
|
||||||
|
logDisable();
|
||||||
$fnSub->();
|
$fnSub->();
|
||||||
|
logEnable();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
or do
|
or do
|
||||||
{
|
{
|
||||||
|
logEnable();
|
||||||
|
|
||||||
if (!isException($EVAL_ERROR))
|
if (!isException($EVAL_ERROR))
|
||||||
{
|
{
|
||||||
confess "${strError} but actual was standard Perl exception";
|
confess "${strError} but actual was standard Perl exception" . (defined($EVAL_ERROR) ? ": ${EVAL_ERROR}" : '');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!($EVAL_ERROR->code() == $iCodeExpected && $EVAL_ERROR->message() eq $strMessageExpected))
|
if (!($EVAL_ERROR->code() == $iCodeExpected &&
|
||||||
|
($EVAL_ERROR->message() eq $strMessageExpected || $EVAL_ERROR->message() =~ $strMessageExpected)))
|
||||||
{
|
{
|
||||||
confess "${strError} but actual was " . $EVAL_ERROR->code() . ", \"" . $EVAL_ERROR->message() . "\"";
|
confess "${strError} but actual was " . $EVAL_ERROR->code() . ", \"" . $EVAL_ERROR->message() . "\"";
|
||||||
}
|
}
|
||||||
@@ -408,7 +493,13 @@ sub testRunExe
|
|||||||
if (defined($strTest) && $hTest->{&TESTDEF_TEST_NAME} eq $strTest)
|
if (defined($strTest) && $hTest->{&TESTDEF_TEST_NAME} eq $strTest)
|
||||||
{
|
{
|
||||||
$hTestCoverage =
|
$hTestCoverage =
|
||||||
defined($hTest->{&TESTDEF_TEST_COVERAGE}{$iRun}) ? $hTest->{&TESTDEF_TEST_COVERAGE}{$iRun}: $hTestCoverage;
|
defined($hTest->{&TESTDEF_TEST_COVERAGE}{$iRun}) ? $hTest->{&TESTDEF_TEST_COVERAGE}{$iRun} :
|
||||||
|
$hTest->{&TESTDEF_TEST_COVERAGE}{&TESTDEF_TEST_ALL};
|
||||||
|
|
||||||
|
if (!defined($hTestCoverage))
|
||||||
|
{
|
||||||
|
$hTestCoverage = $hTestModule->{&TESTDEF_TEST_COVERAGE};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
# ConfigConfigTest.pm - Tests for mixed command line and config file options in Config.pm
|
# ConfigConfigTest.pm - Tests for mixed command line and config file options in Config.pm
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
package pgBackRestTest::Config::ConfigConfigTest;
|
package pgBackRestTest::Config::ConfigConfigTest;
|
||||||
use parent 'pgBackRestTest::Config::ConfigCommonTest';
|
use parent 'pgBackRestTest::Config::ConfigEnvTest';
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# Perl includes
|
# Perl includes
|
||||||
@@ -350,4 +350,10 @@ sub run
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
####################################################################################################################################
|
||||||
|
# Getters
|
||||||
|
####################################################################################################################################
|
||||||
|
# Change this from the default so the same stanza is not used in all tests.
|
||||||
|
sub stanza {return 'main'};
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|||||||
+11
-7
@@ -1,7 +1,7 @@
|
|||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# ConfigCommonTest.pm - Common code for Config unit tests
|
# ConfigCommonTest.pm - Common code for Config unit tests
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
package pgBackRestTest::Config::ConfigCommonTest;
|
package pgBackRestTest::Config::ConfigEnvTest;
|
||||||
use parent 'pgBackRestTest::Common::RunTest';
|
use parent 'pgBackRestTest::Common::RunTest';
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
@@ -45,6 +45,16 @@ sub commandSetTest
|
|||||||
$$oOption{command} = $strCommand;
|
$$oOption{command} = $strCommand;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub optionReset
|
||||||
|
{
|
||||||
|
my $self = shift;
|
||||||
|
my $oOption = shift;
|
||||||
|
my $strKey = shift;
|
||||||
|
|
||||||
|
delete($$oOption{option}{$strKey});
|
||||||
|
delete($$oOption{boolean}{$strKey});
|
||||||
|
}
|
||||||
|
|
||||||
# sub optionRemoveTest
|
# sub optionRemoveTest
|
||||||
# {
|
# {
|
||||||
# my $self = shift;
|
# my $self = shift;
|
||||||
@@ -236,10 +246,4 @@ sub optionTestExpect
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
####################################################################################################################################
|
|
||||||
# Getters
|
|
||||||
####################################################################################################################################
|
|
||||||
# Change this from the default so the same stanza is not used in all tests.
|
|
||||||
sub stanza {return 'main'};
|
|
||||||
|
|
||||||
1;
|
1;
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
# ConfigOptionTest.pm - Tests for command line options in Config.pm
|
# ConfigOptionTest.pm - Tests for command line options in Config.pm
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
package pgBackRestTest::Config::ConfigOptionTest;
|
package pgBackRestTest::Config::ConfigOptionTest;
|
||||||
use parent 'pgBackRestTest::Config::ConfigCommonTest';
|
use parent 'pgBackRestTest::Config::ConfigEnvTest';
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# Perl includes
|
# Perl includes
|
||||||
@@ -344,7 +344,7 @@ sub run
|
|||||||
|
|
||||||
my $strCommand = commandWrite(CMD_ARCHIVE_GET);
|
my $strCommand = commandWrite(CMD_ARCHIVE_GET);
|
||||||
my $strExpectedCommand = abs_path($0) . " --backup-host=db.mydomain.com \"--db-path=/db path/main\"" .
|
my $strExpectedCommand = abs_path($0) . " --backup-host=db.mydomain.com \"--db-path=/db path/main\"" .
|
||||||
" --repo-path=/repo --stanza=main " . CMD_ARCHIVE_GET;
|
" --repo-path=/repo --stanza=app " . CMD_ARCHIVE_GET;
|
||||||
|
|
||||||
if ($strCommand ne $strExpectedCommand)
|
if ($strCommand ne $strExpectedCommand)
|
||||||
{
|
{
|
||||||
@@ -380,4 +380,10 @@ sub run
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
####################################################################################################################################
|
||||||
|
# Getters
|
||||||
|
####################################################################################################################################
|
||||||
|
# Change this from the default so the same stanza is not used in all tests.
|
||||||
|
sub stanza {return 'app'};
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# ExpireCommonTest.pm - Common code for expire tests
|
# ExpireCommonTest.pm - Common code for expire tests
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
package pgBackRestTest::Expire::ExpireCommonTest;
|
package pgBackRestTest::Expire::ExpireEnvTest;
|
||||||
use parent 'pgBackRestTest::Common::RunTest';
|
use parent 'pgBackRestTest::Common::RunTest';
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
# ExpireExpireTest.pm - Tests for expire command
|
# ExpireExpireTest.pm - Tests for expire command
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
package pgBackRestTest::Expire::ExpireExpireTest;
|
package pgBackRestTest::Expire::ExpireExpireTest;
|
||||||
use parent 'pgBackRestTest::Full::FullCommonTest';
|
use parent 'pgBackRestTest::Common::Env::EnvHostTest';
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# Perl includes
|
# Perl includes
|
||||||
@@ -25,10 +25,10 @@ use pgBackRest::File;
|
|||||||
use pgBackRest::FileCommon;
|
use pgBackRest::FileCommon;
|
||||||
use pgBackRest::Manifest;
|
use pgBackRest::Manifest;
|
||||||
|
|
||||||
|
use pgBackRestTest::Common::Env::EnvHostTest;
|
||||||
use pgBackRestTest::Common::ExecuteTest;
|
use pgBackRestTest::Common::ExecuteTest;
|
||||||
use pgBackRestTest::Common::RunTest;
|
use pgBackRestTest::Common::RunTest;
|
||||||
use pgBackRestTest::Full::FullCommonTest;
|
use pgBackRestTest::Expire::ExpireEnvTest;
|
||||||
use pgBackRestTest::Expire::ExpireCommonTest;
|
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# run
|
# run
|
||||||
@@ -43,7 +43,7 @@ sub run
|
|||||||
my ($oHostDbMaster, $oHostDbStandby, $oHostBackup, $oFile) = $self->setup(true, $self->expect());
|
my ($oHostDbMaster, $oHostDbStandby, $oHostBackup, $oFile) = $self->setup(true, $self->expect());
|
||||||
|
|
||||||
# Create the test object
|
# Create the test object
|
||||||
my $oExpireTest = new pgBackRestTest::Expire::ExpireCommonTest($oHostBackup, $self->backrestExe(), $oFile, $self->expect());
|
my $oExpireTest = new pgBackRestTest::Expire::ExpireEnvTest($oHostBackup, $self->backrestExe(), $oFile, $self->expect());
|
||||||
|
|
||||||
# ??? This function creates data elements in the $oExpireTest object that are used by the $oExpireTest functions. But
|
# ??? This function creates data elements in the $oExpireTest object that are used by the $oExpireTest functions. But
|
||||||
# should probably change to use the stanza-create command especially with stanza-upgrade.
|
# should probably change to use the stanza-create command especially with stanza-upgrade.
|
||||||
|
|||||||
@@ -22,11 +22,11 @@ use pgBackRestTest::Common::Host::HostBackupTest;
|
|||||||
use pgBackRestTest::Common::ExecuteTest;
|
use pgBackRestTest::Common::ExecuteTest;
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# init
|
# initModule
|
||||||
#
|
#
|
||||||
# Common objects and variables used by all tests.
|
# Common objects and variables used by all tests.
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
sub init
|
sub initModule
|
||||||
{
|
{
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
|
||||||
@@ -57,13 +57,12 @@ sub init
|
|||||||
HOST_PROTOCOL_TIMEOUT);
|
HOST_PROTOCOL_TIMEOUT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# final
|
# cleanModule
|
||||||
#
|
#
|
||||||
# Close objects created for tests.
|
# Close objects created for tests.
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
sub final
|
sub cleanModule
|
||||||
{
|
{
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ sub run
|
|||||||
# Else success
|
# Else success
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$self->testResult($strFunction, "0");
|
$self->testResult($strFunction, '[undef]');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
# FullRealTest.pm - Tests for all commands against a real database
|
# FullRealTest.pm - Tests for all commands against a real database
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
package pgBackRestTest::Full::FullRealTest;
|
package pgBackRestTest::Full::FullRealTest;
|
||||||
use parent 'pgBackRestTest::Full::FullCommonTest';
|
use parent 'pgBackRestTest::Common::Env::EnvHostTest';
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# Perl includes
|
# Perl includes
|
||||||
@@ -28,10 +28,10 @@ use pgBackRest::Manifest;
|
|||||||
use pgBackRest::Version;
|
use pgBackRest::Version;
|
||||||
|
|
||||||
use pgBackRestTest::Common::ContainerTest;
|
use pgBackRestTest::Common::ContainerTest;
|
||||||
|
use pgBackRestTest::Common::Env::EnvHostTest;
|
||||||
use pgBackRestTest::Common::ExecuteTest;
|
use pgBackRestTest::Common::ExecuteTest;
|
||||||
use pgBackRestTest::Common::FileTest;
|
use pgBackRestTest::Common::FileTest;
|
||||||
use pgBackRestTest::Common::RunTest;
|
use pgBackRestTest::Common::RunTest;
|
||||||
use pgBackRestTest::Full::FullCommonTest;
|
|
||||||
use pgBackRestTest::Common::Host::HostBaseTest;
|
use pgBackRestTest::Common::Host::HostBaseTest;
|
||||||
use pgBackRestTest::Common::Host::HostBackupTest;
|
use pgBackRestTest::Common::Host::HostBackupTest;
|
||||||
use pgBackRestTest::Common::Host::HostDbTest;
|
use pgBackRestTest::Common::Host::HostDbTest;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
# FullSyntheticTest.pm - Tests for all commands that can be run against synthetic data
|
# FullSyntheticTest.pm - Tests for all commands that can be run against synthetic data
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
package pgBackRestTest::Full::FullSyntheticTest;
|
package pgBackRestTest::Full::FullSyntheticTest;
|
||||||
use parent 'pgBackRestTest::Full::FullCommonTest';
|
use parent 'pgBackRestTest::Common::Env::EnvHostTest';
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# Perl includes
|
# Perl includes
|
||||||
@@ -27,10 +27,10 @@ use pgBackRest::Manifest;
|
|||||||
use pgBackRest::Version;
|
use pgBackRest::Version;
|
||||||
|
|
||||||
use pgBackRestTest::Common::ContainerTest;
|
use pgBackRestTest::Common::ContainerTest;
|
||||||
|
use pgBackRestTest::Common::Env::EnvHostTest;
|
||||||
use pgBackRestTest::Common::ExecuteTest;
|
use pgBackRestTest::Common::ExecuteTest;
|
||||||
use pgBackRestTest::Common::FileTest;
|
use pgBackRestTest::Common::FileTest;
|
||||||
use pgBackRestTest::Common::RunTest;
|
use pgBackRestTest::Common::RunTest;
|
||||||
use pgBackRestTest::Full::FullCommonTest;
|
|
||||||
use pgBackRestTest::Common::Host::HostBackupTest;
|
use pgBackRestTest::Common::Host::HostBackupTest;
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
# StanzaCreateTest.pm - Tests for stanza-create command
|
# StanzaCreateTest.pm - Tests for stanza-create command
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
package pgBackRestTest::Stanza::StanzaCreateTest;
|
package pgBackRestTest::Stanza::StanzaCreateTest;
|
||||||
use parent 'pgBackRestTest::Full::FullCommonTest';
|
use parent 'pgBackRestTest::Common::Env::EnvHostTest';
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# Perl includes
|
# Perl includes
|
||||||
@@ -25,9 +25,9 @@ use pgBackRest::File;
|
|||||||
use pgBackRest::FileCommon;
|
use pgBackRest::FileCommon;
|
||||||
use pgBackRest::Manifest;
|
use pgBackRest::Manifest;
|
||||||
|
|
||||||
|
use pgBackRestTest::Common::Env::EnvHostTest;
|
||||||
use pgBackRestTest::Common::ExecuteTest;
|
use pgBackRestTest::Common::ExecuteTest;
|
||||||
use pgBackRestTest::Common::RunTest;
|
use pgBackRestTest::Common::RunTest;
|
||||||
use pgBackRestTest::Full::FullCommonTest;
|
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# run
|
# run
|
||||||
@@ -69,7 +69,7 @@ sub run
|
|||||||
# Generate WAL then push to get valid archive data in the archive directory
|
# Generate WAL then push to get valid archive data in the archive directory
|
||||||
my ($strArchiveFile, $strSourceFile) = $self->archiveGenerate($oFile, $strXlogPath, 1, 1, WAL_VERSION_94);
|
my ($strArchiveFile, $strSourceFile) = $self->archiveGenerate($oFile, $strXlogPath, 1, 1, WAL_VERSION_94);
|
||||||
my $strCommand = $oHostDbMaster->backrestExe() . ' --config=' . $oHostDbMaster->backrestConfig() .
|
my $strCommand = $oHostDbMaster->backrestExe() . ' --config=' . $oHostDbMaster->backrestConfig() .
|
||||||
' --no-fork --stanza=db archive-push';
|
' --stanza=db archive-push';
|
||||||
$oHostDbMaster->executeSimple($strCommand . " ${strSourceFile}", {oLogTest => $self->expect()});
|
$oHostDbMaster->executeSimple($strCommand . " ${strSourceFile}", {oLogTest => $self->expect()});
|
||||||
|
|
||||||
# With data existing in the archive dir, remove the info file and confirm failure
|
# With data existing in the archive dir, remove the info file and confirm failure
|
||||||
|
|||||||
Reference in New Issue
Block a user