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";
|
2014-05-14 22:07:37 +03:00
|
|
|
use BackRestTest::FileTest;
|
2014-04-03 00:25:37 +03:00
|
|
|
|
|
|
|
####################################################################################################################################
|
2014-06-04 04:22:07 +03:00
|
|
|
# Command line parameters
|
|
|
|
####################################################################################################################################
|
2014-06-05 17:20:03 +03:00
|
|
|
my $strLogLevel = 'off'; # Log level for tests
|
|
|
|
my $strModule = 'all';
|
|
|
|
my $strModuleTest = 'all';
|
2014-06-04 04:22:07 +03:00
|
|
|
|
2014-06-05 17:20:03 +03:00
|
|
|
GetOptions ("log-level=s" => \$strLogLevel,
|
|
|
|
"module=s" => \$strModule,
|
|
|
|
"module-test=s" => \$strModuleTest)
|
2014-06-04 04:22:07 +03:00
|
|
|
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));
|
|
|
|
|
2014-06-05 17:20:03 +03:00
|
|
|
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";
|
|
|
|
}
|
|
|
|
|
2014-06-04 04:22:07 +03:00
|
|
|
####################################################################################################################################
|
|
|
|
# Runs tests
|
2014-04-03 00:25:37 +03:00
|
|
|
####################################################################################################################################
|
2014-06-05 17:20:03 +03:00
|
|
|
if ($strModule eq 'all' || $strModule eq "file")
|
|
|
|
{
|
|
|
|
BackRestFileTest($strModuleTest);
|
|
|
|
}
|
2014-05-14 22:07:37 +03:00
|
|
|
|
2014-06-02 00:23:33 +03:00
|
|
|
print "\nTEST COMPLETED SUCCESSFULLY (DESPITE ANY ERROR MESSAGES YOU SAW)\n";
|