1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2024-12-14 10:13:05 +02:00
pgbackrest/test/test.pl

87 lines
3.4 KiB
Perl
Raw Normal View History

2013-11-17 21:58:21 +03:00
#!/usr/bin/perl
2014-04-03 00:25:37 +03:00
####################################################################################################################################
2014-06-08 00:29:11 +03:00
# test.pl - BackRest Unit Tests
2014-04-03 00:25:37 +03:00
####################################################################################################################################
####################################################################################################################################
# Perl includes
####################################################################################################################################
use strict;
use warnings;
use english;
use File::Basename;
use Getopt::Long;
use Carp;
use lib dirname($0) . "/lib";
use BackRestTest::FileTest;
2014-04-03 00:25:37 +03:00
####################################################################################################################################
# Command line parameters
####################################################################################################################################
my $strLogLevel = 'off'; # Log level for tests
my $strModule = 'all';
my $strModuleTest = 'all';
GetOptions ("log-level=s" => \$strLogLevel,
"module=s" => \$strModule,
"module-test=s" => \$strModuleTest)
or die("Error in command line arguments\n");
####################################################################################################################################
# Setup
####################################################################################################################################
# Set a neutral umask so tests work as expected
umask(0);
# Set console log level to trace for testing
log_level_set(undef, uc($strLogLevel));
if ($strModuleTest ne 'all' && $strModule eq 'all')
{
confess "--module must be provided for test \"${strModuleTest}\"";
}
2014-06-08 00:29:11 +03:00
####################################################################################################################################
# Clean whitespace
####################################################################################################################################
# find .. -not \( -path ../.git -prune \) -not \( -path ../test/test -prune \) -not \( -iname ".DS_Store" \)
####################################################################################################################################
# Make sure version number matches in README.md and VERSION
####################################################################################################################################
my $hReadMe;
my $strLine;
my $bMatch = false;
my $strVersion = version_get();
if (!open($hReadMe, '<', dirname($0) . "/../README.md"))
{
confess "unable to open README.md";
}
while ($strLine = readline($hReadMe))
{
if ($strLine =~ /^\#\#\# v/)
{
$bMatch = substr($strLine, 5, length($strVersion)) eq $strVersion;
last;
}
}
if (!$bMatch)
{
confess "unable to find version ${strVersion} as last revision in README.md";
}
####################################################################################################################################
# Runs tests
2014-04-03 00:25:37 +03:00
####################################################################################################################################
if ($strModule eq 'all' || $strModule eq "file")
{
BackRestFileTest($strModuleTest);
}
2014-06-02 00:23:33 +03:00
print "\nTEST COMPLETED SUCCESSFULLY (DESPITE ANY ERROR MESSAGES YOU SAW)\n";