mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2024-12-14 10:13:05 +02:00
c8f806a293
* Make the code more modular and object-oriented. * Multiple Docker containers can now be created for a single test to simulate more realistic environments.
120 lines
3.7 KiB
Perl
120 lines
3.7 KiB
Perl
####################################################################################################################################
|
|
# ParamTest.pm - Allows parameters to be added to any object
|
|
####################################################################################################################################
|
|
package pgBackRestTest::Common::ParamTest;
|
|
|
|
####################################################################################################################################
|
|
# Perl includes
|
|
####################################################################################################################################
|
|
use strict;
|
|
use warnings FATAL => qw(all);
|
|
use Carp qw(confess);
|
|
|
|
use pgBackRest::Common::Log;
|
|
|
|
####################################################################################################################################
|
|
# paramSet
|
|
####################################################################################################################################
|
|
sub paramSet
|
|
{
|
|
my $self = shift;
|
|
|
|
# Assign function parameters, defaults, and log debug info
|
|
my
|
|
(
|
|
$strOperation,
|
|
$strKey,
|
|
$strValue,
|
|
) =
|
|
logDebugParam
|
|
(
|
|
__PACKAGE__ . '->paramSet', \@_,
|
|
{name => 'strKey', trace => true},
|
|
{name => 'strValue', trace => true},
|
|
);
|
|
|
|
$self->{param}{$strKey} = $strValue;
|
|
|
|
# Return from function and log return values if any
|
|
return logDebugReturn($strOperation);
|
|
}
|
|
|
|
####################################################################################################################################
|
|
# paramGet
|
|
####################################################################################################################################
|
|
sub paramGet
|
|
{
|
|
my $self = shift;
|
|
|
|
# Assign function parameters, defaults, and log debug info
|
|
my
|
|
(
|
|
$strOperation,
|
|
$strKey,
|
|
$bRequired,
|
|
$strDefault,
|
|
) =
|
|
logDebugParam
|
|
(
|
|
__PACKAGE__ . '->paramGet', \@_,
|
|
{name => 'strKey', trace => true},
|
|
{name => 'bRequired', default => true, trace => true},
|
|
{name => 'strDefault', required => false, trace => true},
|
|
);
|
|
|
|
my $strValue = $self->{param}{$strKey};
|
|
|
|
if (!defined($strValue))
|
|
{
|
|
if ($bRequired)
|
|
{
|
|
confess &log(ERROR, "param '${strKey}' is required");
|
|
}
|
|
|
|
$strValue = $strDefault;
|
|
}
|
|
|
|
# Return from function and log return values if any
|
|
return logDebugReturn
|
|
(
|
|
$strOperation,
|
|
{name => 'strValue', value => $strValue, trace => true}
|
|
);
|
|
}
|
|
|
|
####################################################################################################################################
|
|
# paramTest
|
|
####################################################################################################################################
|
|
sub paramTest
|
|
{
|
|
my $self = shift;
|
|
|
|
# Assign function parameters, defaults, and log debug info
|
|
my
|
|
(
|
|
$strOperation,
|
|
$strKey,
|
|
$strTestValue,
|
|
) =
|
|
logDebugParam
|
|
(
|
|
__PACKAGE__ . '->paramTest', \@_,
|
|
{name => 'strKey', trace => true},
|
|
{name => 'strTestValue', required => false, trace => true},
|
|
);
|
|
|
|
my $strValue = $self->paramGet($strKey, false);
|
|
|
|
my $bResult =
|
|
!defined($strTestValue) && defined($strValue) || defined($strTestValue) && $strTestValue eq $strValue ? true : false;
|
|
|
|
# Return from function and log return values if any
|
|
return logDebugReturn
|
|
(
|
|
$strOperation,
|
|
{name => 'bResult', value => $bResult, trace => true}
|
|
);
|
|
}
|
|
|
|
1;
|