Make mtr_report.pl into it's own package

Remove mtr_log_*
parent c10fb20d
......@@ -24,6 +24,8 @@ use strict;
use base qw(Exporter);
our @EXPORT= qw(collect_option collect_test_cases);
use mtr_report;
# Options used for the collect phase
our $start_from;
our $print_testcases;
......@@ -52,8 +54,6 @@ use File::Basename;
use IO::File();
use My::Config;
require "mtr_settings.pl";
require "mtr_report.pl";
require "mtr_match.pl";
require "mtr_misc.pl";
......
......@@ -18,30 +18,38 @@
# and is part of the translation of the Bourne shell script with the
# same name.
package mtr_report;
use strict;
use warnings;
sub mtr_report_test_passed($$);
sub mtr_report_test_failed($$);
sub mtr_report_test_skipped($);
sub mtr_report_stats ($);
sub mtr_print_line ();
sub mtr_print_thick_line ($);
sub mtr_print_header ();
sub mtr_report (@);
sub mtr_warning (@);
sub mtr_error (@);
sub mtr_debug (@);
sub mtr_verbose (@);
use base qw(Exporter);
our @EXPORT= qw(report_option mtr_print_line mtr_print_thick_line
mtr_print_header mtr_report mtr_report_stats
mtr_warning mtr_error mtr_debug mtr_verbose
mtr_verbose_restart mtr_report_test_passed
mtr_report_test_failed mtr_report_test_skipped
mtr_report_stats);
require "mtr_io.pl";
my $tot_real_time= 0;
sub mtr_report_test_name ($) {
our $timestamp= 0;
sub report_option {
my ($opt, $value)= @_;
# Convert - to _ in option name
$opt =~ s/-/_/;
no strict 'refs';
${$opt}= $value;
}
sub SHOW_SUITE_NAME() { return 1; };
sub _mtr_report_test_name ($) {
my $tinfo= shift;
my $tname= $tinfo->{name};
# Remove suite part of name
$tname =~ s/.*\.// unless SHOW_SUITE_NAME;
......@@ -49,14 +57,14 @@ sub mtr_report_test_name ($) {
$tname.= " '$tinfo->{combination}'"
if defined $tinfo->{combination};
_mtr_log("$tname");
print _timestamp();
printf "%-30s ", $tname;
}
sub mtr_report_test_skipped ($) {
my $tinfo= shift;
mtr_report_test_name($tinfo);
_mtr_report_test_name($tinfo);
$tinfo->{'result'}= 'MTR_RES_SKIPPED';
if ( $tinfo->{'disable'} )
......@@ -83,7 +91,7 @@ sub mtr_report_test_skipped ($) {
sub mtr_report_test_passed ($$) {
my ($tinfo, $use_timer)= @_;
mtr_report_test_name($tinfo);
_mtr_report_test_name($tinfo);
my $timer= "";
if ( $use_timer and -f "$::opt_vardir/log/timer" )
......@@ -102,7 +110,7 @@ sub mtr_report_test_passed ($$) {
sub mtr_report_test_failed ($$) {
my ($tinfo, $logfile)= @_;
mtr_report_test_name($tinfo);
_mtr_report_test_name($tinfo);
$tinfo->{'result'}= 'MTR_RES_FAILED';
my $test_failures= $tinfo->{'failures'} || 0;
......@@ -440,7 +448,7 @@ sub mtr_print_line () {
}
sub mtr_print_thick_line ($) {
sub mtr_print_thick_line {
my $char= shift || '=';
print $char x 60, "\n";
}
......@@ -467,52 +475,33 @@ sub mtr_print_header () {
#
##############################################################################
use IO::File;
use Time::localtime;
sub _timestamp {
return "" unless $timestamp;
my $tm= localtime();
return sprintf("%02d%02d%02d %2d:%02d:%02d ",
$tm->year % 100, $tm->mon+1, $tm->mday,
$tm->hour, $tm->min, $tm->sec);
}
my $log_file_ref= undef;
sub mtr_log_init ($) {
my ($filename)= @_;
mtr_error("Log is already open") if defined $log_file_ref;
$log_file_ref= IO::File->new($filename, "a") or
mtr_warning("Could not create logfile $filename: $!");
}
sub _mtr_log (@) {
print $log_file_ref join(" ", _timestamp(), @_),"\n"
if defined $log_file_ref;
}
# Print message to screen
sub mtr_report (@) {
# Print message to screen and log
_mtr_log(@_);
print join(" ", @_),"\n";
print join(" ", @_), "\n";
}
# Print warning to screen
sub mtr_warning (@) {
# Print message to screen and log
_mtr_log("WARNING: ", @_);
print STDERR "mysql-test-run: WARNING: ",join(" ", @_),"\n";
print STDERR _timestamp(), "mysql-test-run: WARNING: ", join(" ", @_), "\n";
}
# Print error to screen and then exit
sub mtr_error (@) {
# Print message to screen and log
_mtr_log("ERROR: ", @_);
print STDERR "mysql-test-run: *** ERROR: ",join(" ", @_),"\n";
print STDERR _timestamp(), "mysql-test-run: *** ERROR: ", join(" ", @_), "\n";
exit(1);
}
......@@ -520,18 +509,15 @@ sub mtr_error (@) {
sub mtr_debug (@) {
if ( $::opt_verbose > 1 )
{
_mtr_log("###: ", @_);
print STDERR "####: ",join(" ", @_),"\n";
print STDERR _timestamp(), "####: ", join(" ", @_), "\n";
}
}
sub mtr_verbose (@) {
# Always print to log, print to screen only when --verbose is used
_mtr_log("> ",@_);
if ( $::opt_verbose )
{
print STDERR "> ",join(" ", @_),"\n";
print STDERR _timestamp(), "> ",join(" ", @_),"\n";
}
}
......@@ -539,11 +525,9 @@ sub mtr_verbose (@) {
sub mtr_verbose_restart (@) {
my ($server, @args)= @_;
my $proc= $server->{proc};
# Always print to log, print to screen only when --verbose is used
_mtr_log("> Restart: $proc - ",@args);
if ( $::opt_verbose_restart )
{
print STDERR "> Restart $proc - ",join(" ", @args),"\n";
print STDERR _timestamp(), "> Restart $proc - ",join(" ", @args),"\n";
}
}
......
#
# Defines used to control how mysql-test-run.pl
# should work in the current version of MySQL
#
# Control if the suite name should be output before testname
sub SHOW_SUITE_NAME { return 1; };
# Control which suites are run by default
sub DEFAULT_SUITES { return "main,binlog,federated,rpl,rpl_ndb,ndb"; };
1;
......@@ -33,9 +33,6 @@ BEGIN {
"Could not find the lib/ directory \n";
exit(1);
}
# Include settings that control how the script behaves
require "lib/mtr_settings.pl";
}
......@@ -50,6 +47,7 @@ use My::SafeProcess;
use My::ConfigFactory;
use My::Options;
use mtr_cases;
use mtr_report;
our $is_win32_perl= ($^O eq "MSWin32"); # ActiveState Win32 Perl
our $is_cygwin= ($^O eq "cygwin"); # Cygwin Perl
......@@ -58,7 +56,6 @@ our $is_win32= ($is_win32_perl or $is_cygwin);
require "lib/mtr_process.pl";
require "lib/mtr_io.pl";
require "lib/mtr_gcov.pl";
require "lib/mtr_report.pl";
require "lib/mtr_match.pl";
require "lib/mtr_misc.pl";
require "lib/mtr_unique.pl";
......@@ -87,7 +84,8 @@ my $path_config_file; # The generated config file, var/my.cnf
# executables will be used by the test suite.
our $opt_vs_config = $ENV{'MTR_VS_CONFIG'};
our $opt_suites= DEFAULT_SUITES;
my $DEFAULT_SUITES= "main,binlog,federated,rpl,rpl_ndb,ndb";
our $opt_suites= $DEFAULT_SUITES;
our $opt_verbose= 0; # Verbose output, enable with --verbose
our $opt_verbose_restart= 0; # Verbose output for restarts
......@@ -100,7 +98,7 @@ our $exe_ndbd;
our $exe_ndb_mgmd= "";
our $exe_libtool;
our $opt_big_test= 0;
my $opt_big_test= 0;
our @opt_combinations;
......@@ -384,6 +382,7 @@ sub command_line_setup {
'suite-timeout=i' => \$opt_suite_timeout,
'shutdown-timeout=i' => \$opt_shutdown_timeout,
'warnings!' => \$opt_warnings,
'timestamp' => \&report_option,
'help|h' => \$opt_usage,
) or usage("Can't read options");
......@@ -1946,8 +1945,6 @@ sub initialize_servers {
}
}
check_running_as_root();
mtr_log_init("$opt_vardir/log/mysql-test-run.log");
}
......@@ -2090,7 +2087,7 @@ sub run_testcase_check_skip_test($)
{
$tinfo->{comment}=
"Failed to find cluster binaries";
mtr_report_test_failed($tinfo);
mtr_report_test_failed($tinfo, undef);
return 1;
}
}
......@@ -2357,6 +2354,7 @@ sub run_testcase ($) {
{
# Stop all servers that are known to be running
stop_all_servers();
after_test_failure($tinfo->{'name'});
mtr_report("Resuming tests...\n");
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment