Merge mysql.com:/home/ram/work/mysql-5.1-maint

into  mysql.com:/home/ram/work/b29353/b29353.5.1
parents 2ca3289e a7ddf48f
...@@ -18,125 +18,41 @@ ...@@ -18,125 +18,41 @@
## Process this file with automake to create Makefile.in ## Process this file with automake to create Makefile.in
SUBDIRS = ndb SUBDIRS = ndb
DIST_SUBDIRS=ndb
benchdir_root= $(prefix)
testdir = $(benchdir_root)/mysql-test
EXTRA_SCRIPTS = mysql-test-run-shell.sh install_test_db.sh \
valgrind.supp $(PRESCRIPTS)
EXTRA_DIST = $(EXTRA_SCRIPTS) suite
GENSCRIPTS = mysql-test-run-shell install_test_db mtr mysql-test-run
PRESCRIPTS = mysql-test-run.pl PRESCRIPTS = mysql-test-run.pl
GENSCRIPTS = mysql-test-run-shell \
install_test_db \
mtr \
mysql-test-run
EXTRA_SCRIPTS = mysql-test-run-shell.sh \
install_test_db.sh \
valgrind.supp $(PRESCRIPTS)
EXTRA_DIST_DIRS = t r include lib std_data suite extra
EXTRA_DIST = $(EXTRA_DIST_DIRS) $(EXTRA_SCRIPTS) README
test_SCRIPTS = $(GENSCRIPTS) $(PRESCRIPTS) test_SCRIPTS = $(GENSCRIPTS) $(PRESCRIPTS)
test_DATA = std_data/client-key.pem std_data/client-cert.pem \
std_data/cacert.pem std_data/server-cert.pem \
std_data/server-key.pem
CLEANFILES = $(GENSCRIPTS) CLEANFILES = $(GENSCRIPTS)
INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I..
dist-hook:
mkdir -p \
$(distdir)/t \
$(distdir)/extra/binlog_tests \
$(distdir)/extra/rpl_tests \
$(distdir)/r \
$(distdir)/include \
$(distdir)/std_data \
$(distdir)/std_data/ndb_backup50 \
$(distdir)/std_data/ndb_backup51 \
$(distdir)/lib
-$(INSTALL_DATA) $(srcdir)/t/*.def $(distdir)/t
$(INSTALL_DATA) $(srcdir)/t/*.test $(distdir)/t
-$(INSTALL_DATA) $(srcdir)/t/*.imtest $(distdir)/t
$(INSTALL_DATA) $(srcdir)/t/*.sql $(distdir)/t
-$(INSTALL_DATA) $(srcdir)/t/*.disabled $(distdir)/t
$(INSTALL_DATA) $(srcdir)/t/*.opt $(srcdir)/t/*.slave-mi $(distdir)/t
$(INSTALL_SCRIPT) $(srcdir)/t/*.sh $(distdir)/t
$(INSTALL_DATA) $(srcdir)/extra/binlog_tests/*.test $(distdir)/extra/binlog_tests
$(INSTALL_DATA) $(srcdir)/extra/rpl_tests/*.test $(distdir)/extra/rpl_tests
-$(INSTALL_DATA) $(srcdir)/extra/binlog_tests/*.opt $(distdir)/extra/binlog_tests
-$(INSTALL_DATA) $(srcdir)/extra/rpl_tests/*.opt $(distdir)/extra/rpl_tests
$(INSTALL_DATA) $(srcdir)/include/*.inc $(distdir)/include
$(INSTALL_DATA) $(srcdir)/include/*.test $(distdir)/include
$(INSTALL_DATA) $(srcdir)/r/*.result $(srcdir)/r/*.require $(distdir)/r
$(INSTALL_DATA) $(srcdir)/std_data/Moscow_leap $(distdir)/std_data
$(INSTALL_DATA) $(srcdir)/std_data/Index.xml $(distdir)/std_data
$(INSTALL_DATA) $(srcdir)/std_data/*.dat $(srcdir)/std_data/*.000001 $(distdir)/std_data
$(INSTALL_DATA) $(srcdir)/std_data/des_key_file $(distdir)/std_data
$(INSTALL_DATA) $(srcdir)/std_data/*.pem $(distdir)/std_data
$(INSTALL_DATA) $(srcdir)/std_data/*.frm $(distdir)/std_data
$(INSTALL_DATA) $(srcdir)/std_data/*.MY* $(distdir)/std_data
$(INSTALL_DATA) $(srcdir)/std_data/*.cnf $(distdir)/std_data
$(INSTALL_DATA) $(srcdir)/std_data/ndb_backup50/BACKUP* $(distdir)/std_data/ndb_backup50
$(INSTALL_DATA) $(srcdir)/std_data/ndb_backup51/BACKUP* $(distdir)/std_data/ndb_backup51
$(INSTALL_DATA) $(srcdir)/lib/*.pl $(distdir)/lib
-rm -rf `find $(distdir)/suite -type d -name SCCS` $(distdir)/suite/row_lock
install-data-local:
$(mkinstalldirs) \
$(DESTDIR)$(testdir)/t \
$(DESTDIR)$(testdir)/extra/binlog_tests \
$(DESTDIR)$(testdir)/extra/rpl_tests \
$(DESTDIR)$(testdir)/r \
$(DESTDIR)$(testdir)/include \
$(DESTDIR)$(testdir)/std_data \
$(DESTDIR)$(testdir)/std_data/ndb_backup50 \
$(DESTDIR)$(testdir)/std_data/ndb_backup51 \
$(DESTDIR)$(testdir)/lib
$(INSTALL_DATA) $(srcdir)/README $(DESTDIR)$(testdir)
-$(INSTALL_DATA) $(srcdir)/t/*.def $(DESTDIR)$(testdir)/t
$(INSTALL_DATA) $(srcdir)/t/*.test $(DESTDIR)$(testdir)/t
-$(INSTALL_DATA) $(srcdir)/t/*.imtest $(DESTDIR)$(testdir)/t
$(INSTALL_DATA) $(srcdir)/t/*.sql $(DESTDIR)$(testdir)/t
-$(INSTALL_DATA) $(srcdir)/t/*.disabled $(DESTDIR)$(testdir)/t
$(INSTALL_DATA) $(srcdir)/t/*.opt $(DESTDIR)$(testdir)/t
$(INSTALL_SCRIPT) $(srcdir)/t/*.sh $(DESTDIR)$(testdir)/t
$(INSTALL_DATA) $(srcdir)/t/*.slave-mi $(DESTDIR)$(testdir)/t
$(INSTALL_DATA) $(srcdir)/r/*.result $(DESTDIR)$(testdir)/r
$(INSTALL_DATA) $(srcdir)/r/*.require $(DESTDIR)$(testdir)/r
$(INSTALL_DATA) $(srcdir)/extra/binlog_tests/*.test $(DESTDIR)$(testdir)/extra/binlog_tests
$(INSTALL_DATA) $(srcdir)/extra/rpl_tests/*.test $(DESTDIR)$(testdir)/extra/rpl_tests
-$(INSTALL_DATA) $(srcdir)/extra/binlog_tests/*.opt $(DESTDIR)$(testdir)/extra/binlog_tests
-$(INSTALL_DATA) $(srcdir)/extra/rpl_tests/*.opt $(DESTDIR)$(testdir)/extra/rpl_tests
$(INSTALL_DATA) $(srcdir)/include/*.inc $(DESTDIR)$(testdir)/include
$(INSTALL_DATA) $(srcdir)/include/*.test $(DESTDIR)$(testdir)/include
$(INSTALL_DATA) $(srcdir)/std_data/*.dat $(DESTDIR)$(testdir)/std_data
$(INSTALL_DATA) $(srcdir)/std_data/*.*001 $(DESTDIR)$(testdir)/std_data
$(INSTALL_DATA) $(srcdir)/std_data/*.cnf $(DESTDIR)$(testdir)/std_data
$(INSTALL_DATA) $(srcdir)/std_data/des_key_file $(DESTDIR)$(testdir)/std_data
$(INSTALL_DATA) $(srcdir)/std_data/Moscow_leap $(DESTDIR)$(testdir)/std_data
$(INSTALL_DATA) $(srcdir)/std_data/Index.xml $(DESTDIR)$(testdir)/std_data
$(INSTALL_DATA) $(srcdir)/std_data/*.pem $(DESTDIR)$(testdir)/std_data
$(INSTALL_DATA) $(srcdir)/std_data/*.frm $(DESTDIR)$(testdir)/std_data
$(INSTALL_DATA) $(srcdir)/std_data/*.MY* $(DESTDIR)$(testdir)/std_data
$(INSTALL_DATA) $(srcdir)/std_data/*.cnf $(DESTDIR)$(testdir)/std_data
$(INSTALL_DATA) $(srcdir)/std_data/ndb_backup50/BACKUP* $(DESTDIR)$(testdir)/std_data/ndb_backup50
$(INSTALL_DATA) $(srcdir)/std_data/ndb_backup51/BACKUP* $(DESTDIR)$(testdir)/std_data/ndb_backup51
$(INSTALL_DATA) $(srcdir)/lib/*.pl $(DESTDIR)$(testdir)/lib
for f in `(cd $(srcdir); find suite -type f | egrep -v 'SCCS|row_lock')`; \
do \
d=$(DESTDIR)$(testdir)/`dirname $$f`; \
mkdir -p $$d ; \
$(INSTALL_DATA) $(srcdir)/$$f $$d ; \
done
uninstall-local:
@RM@ -f -r $(DESTDIR)$(testdir)
# mtr - a shortcut for executing mysql-test-run.pl # mtr - a shortcut for executing mysql-test-run.pl
mtr: mtr:
$(RM) -f mtr @RM@ -f mtr
$(LN_S) mysql-test-run.pl mtr @LN_S@ mysql-test-run.pl mtr
# mysql-test-run - a shortcut for executing mysql-test-run.pl # mysql-test-run - a shortcut for executing mysql-test-run.pl
mysql-test-run: mysql-test-run:
$(RM) -f mysql-test-run @RM@ -f mysql-test-run
$(LN_S) mysql-test-run.pl mysql-test-run @LN_S@ mysql-test-run.pl mysql-test-run
SUFFIXES = .sh SUFFIXES = .sh
testdir = $(prefix)/mysql-test
.sh: .sh:
@RM@ -f $@ $@-t @RM@ -f $@ $@-t
@SED@ \ @SED@ \
......
...@@ -23,7 +23,8 @@ use IO::File(); ...@@ -23,7 +23,8 @@ use IO::File();
use strict; use strict;
sub collect_test_cases ($); sub collect_test_cases ($);
sub collect_one_test_case ($$$$$$$); sub collect_one_suite ($$);
sub collect_one_test_case ($$$$$$$$$);
sub mtr_options_from_test_file($$); sub mtr_options_from_test_file($$);
...@@ -34,7 +35,120 @@ sub mtr_options_from_test_file($$); ...@@ -34,7 +35,120 @@ sub mtr_options_from_test_file($$);
############################################################################## ##############################################################################
sub collect_test_cases ($) { sub collect_test_cases ($) {
my $suite= shift; # Test suite name my $suites= shift; # Semicolon separated list of test suites
my $cases = []; # Array of hash
foreach my $suite (split(",", $suites))
{
collect_one_suite($suite, $cases);
}
if ( @::opt_cases )
{
# Check that the tests specified was found
# in at least one suite
foreach my $tname ( @::opt_cases )
{
my $found= 0;
foreach my $test ( @$cases )
{
if ( mtr_match_extension($test->{'name'}, $tname) )
{
$found= 1;
}
}
if ( not $found )
{
mtr_error("Could not find $tname in any suite");
}
}
}
if ( $::opt_reorder )
{
# Reorder the test cases in an order that will make them faster to run
my %sort_criteria;
# Make a mapping of test name to a string that represents how that test
# should be sorted among the other tests. Put the most important criterion
# first, then a sub-criterion, then sub-sub-criterion, et c.
foreach my $tinfo (@$cases)
{
my @criteria = ();
# Look for tests that muct be in run in a defined order
# that is defined by test having the same name except for
# the ending digit
# Put variables into hash
my $test_name= $tinfo->{'name'};
my $depend_on_test_name;
if ( $test_name =~ /^([\D]+)([0-9]{1})$/ )
{
my $base_name= $1;
my $idx= $2;
mtr_verbose("$test_name => $base_name idx=$idx");
if ( $idx > 1 )
{
$idx-= 1;
$base_name= "$base_name$idx";
mtr_verbose("New basename $base_name");
}
foreach my $tinfo2 (@$cases)
{
if ( $tinfo2->{'name'} eq $base_name )
{
mtr_verbose("found dependent test $tinfo2->{'name'}");
$depend_on_test_name=$base_name;
}
}
}
if ( defined $depend_on_test_name )
{
mtr_verbose("Giving $test_name same critera as $depend_on_test_name");
$sort_criteria{$test_name} = $sort_criteria{$depend_on_test_name};
}
else
{
#
# Append the criteria for sorting, in order of importance.
#
push(@criteria, "ndb=" . ($tinfo->{'ndb_test'} ? "1" : "0"));
# Group test with equal options together.
# Ending with "~" makes empty sort later than filled
push(@criteria, join("!", sort @{$tinfo->{'master_opt'}}) . "~");
$sort_criteria{$test_name} = join(" ", @criteria);
}
}
@$cases = sort {
$sort_criteria{$a->{'name'}} . $a->{'name'} cmp
$sort_criteria{$b->{'name'}} . $b->{'name'}; } @$cases;
if ( $::opt_script_debug )
{
# For debugging the sort-order
foreach my $tinfo (@$cases)
{
print("$sort_criteria{$tinfo->{'name'}} -> \t$tinfo->{'name'}\n");
}
}
}
return $cases;
}
sub collect_one_suite($$)
{
my $suite= shift; # Test suite name
my $cases= shift; # List of test cases
mtr_verbose("Collecting: $suite");
my $testdir; my $testdir;
my $resdir; my $resdir;
...@@ -50,12 +164,8 @@ sub collect_test_cases ($) { ...@@ -50,12 +164,8 @@ sub collect_test_cases ($) {
$resdir= "$::glob_mysql_test_dir/suite/$suite/r"; $resdir= "$::glob_mysql_test_dir/suite/$suite/r";
} }
my $cases = []; # Array of hash, will be array of C struct
opendir(TESTDIR, $testdir) or mtr_error("Can't open dir \"$testdir\": $!");
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
# Disable some tests listed in disabled.def # Build a hash of disabled testcases for this suite
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
my %disabled; my %disabled;
if ( open(DISABLED, "$testdir/disabled.def" ) ) if ( open(DISABLED, "$testdir/disabled.def" ) )
...@@ -71,11 +181,19 @@ sub collect_test_cases ($) { ...@@ -71,11 +181,19 @@ sub collect_test_cases ($) {
close DISABLED; close DISABLED;
} }
# Read suite.opt file
my $suite_opt_file= "$testdir/suite.opt";
my $suite_opts= [];
if ( -f $suite_opt_file )
{
$suite_opts= mtr_get_opts_from_file($suite_opt_file);
}
if ( @::opt_cases ) if ( @::opt_cases )
{ {
# Collect in specified order, no sort
foreach my $tname ( @::opt_cases ) foreach my $tname ( @::opt_cases )
{ {
# Run in specified order, no sort
my $elem= undef; my $elem= undef;
my $component_id= undef; my $component_id= undef;
...@@ -122,7 +240,8 @@ sub collect_test_cases ($) { ...@@ -122,7 +240,8 @@ sub collect_test_cases ($) {
} }
elsif ( ! $mysqld_test_exists and ! $im_test_exists ) elsif ( ! $mysqld_test_exists and ! $im_test_exists )
{ {
mtr_error("Test case $tname is not found"); # Silently skip, could exist in another suite
next;
} }
elsif ( $mysqld_test_exists ) elsif ( $mysqld_test_exists )
{ {
...@@ -136,13 +255,15 @@ sub collect_test_cases ($) { ...@@ -136,13 +255,15 @@ sub collect_test_cases ($) {
} }
} }
collect_one_test_case($testdir,$resdir,$tname,$elem,$cases,\%disabled, collect_one_test_case($testdir,$resdir,$suite,$tname,
$component_id); $elem,$cases,\%disabled,$component_id,
$suite_opts);
} }
closedir TESTDIR;
} }
else else
{ {
opendir(TESTDIR, $testdir) or mtr_error("Can't open dir \"$testdir\": $!");
foreach my $elem ( sort readdir(TESTDIR) ) foreach my $elem ( sort readdir(TESTDIR) )
{ {
my $component_id= undef; my $component_id= undef;
...@@ -165,87 +286,13 @@ sub collect_test_cases ($) { ...@@ -165,87 +286,13 @@ sub collect_test_cases ($) {
next if $::opt_do_test and next if $::opt_do_test and
! defined mtr_match_prefix($elem,$::opt_do_test); ! defined mtr_match_prefix($elem,$::opt_do_test);
collect_one_test_case($testdir,$resdir,$tname,$elem,$cases,\%disabled, collect_one_test_case($testdir,$resdir,$suite,$tname,
$component_id); $elem,$cases,\%disabled,$component_id,
$suite_opts);
} }
closedir TESTDIR; closedir TESTDIR;
} }
# Reorder the test cases in an order that will make them faster to run
if ( $::opt_reorder )
{
my %sort_criteria;
# Make a mapping of test name to a string that represents how that test
# should be sorted among the other tests. Put the most important criterion
# first, then a sub-criterion, then sub-sub-criterion, et c.
foreach my $tinfo (@$cases)
{
my @criteria = ();
# Look for tests that muct be in run in a defined order
# that is defined by test having the same name except for
# the ending digit
# Put variables into hash
my $test_name= $tinfo->{'name'};
my $depend_on_test_name;
if ( $test_name =~ /^([\D]+)([0-9]{1})$/ )
{
my $base_name= $1;
my $idx= $2;
mtr_verbose("$test_name => $base_name idx=$idx");
if ( $idx > 1 )
{
$idx-= 1;
$base_name= "$base_name$idx";
mtr_verbose("New basename $base_name");
}
foreach my $tinfo2 (@$cases)
{
if ( $tinfo2->{'name'} eq $base_name )
{
mtr_verbose("found dependent test $tinfo2->{'name'}");
$depend_on_test_name=$base_name;
}
}
}
if ( defined $depend_on_test_name )
{
mtr_verbose("Giving $test_name same critera as $depend_on_test_name");
$sort_criteria{$test_name} = $sort_criteria{$depend_on_test_name};
}
else
{
#
# Append the criteria for sorting, in order of importance.
#
push(@criteria, "ndb=" . ($tinfo->{'ndb_test'} ? "1" : "0"));
# Group test with equal options together.
# Ending with "~" makes empty sort later than filled
push(@criteria, join("!", sort @{$tinfo->{'master_opt'}}) . "~");
$sort_criteria{$test_name} = join(" ", @criteria);
}
}
@$cases = sort {
$sort_criteria{$a->{'name'}} . $a->{'name'} cmp
$sort_criteria{$b->{'name'}} . $b->{'name'}; } @$cases;
if ( $::opt_script_debug )
{
# For debugging the sort-order
foreach my $tinfo (@$cases)
{
print("$sort_criteria{$tinfo->{'name'}} -> \t$tinfo->{'name'}\n");
}
}
}
return $cases; return $cases;
} }
...@@ -257,14 +304,16 @@ sub collect_test_cases ($) { ...@@ -257,14 +304,16 @@ sub collect_test_cases ($) {
############################################################################## ##############################################################################
sub collect_one_test_case($$$$$$$) { sub collect_one_test_case($$$$$$$$$) {
my $testdir= shift; my $testdir= shift;
my $resdir= shift; my $resdir= shift;
my $suite= shift;
my $tname= shift; my $tname= shift;
my $elem= shift; my $elem= shift;
my $cases= shift; my $cases= shift;
my $disabled=shift; my $disabled=shift;
my $component_id= shift; my $component_id= shift;
my $suite_opts= shift;
my $path= "$testdir/$elem"; my $path= "$testdir/$elem";
...@@ -279,7 +328,7 @@ sub collect_one_test_case($$$$$$$) { ...@@ -279,7 +328,7 @@ sub collect_one_test_case($$$$$$$) {
my $tinfo= {}; my $tinfo= {};
$tinfo->{'name'}= $tname; $tinfo->{'name'}= "$suite.$tname";
$tinfo->{'result_file'}= "$resdir/$tname.result"; $tinfo->{'result_file'}= "$resdir/$tname.result";
$tinfo->{'component_id'} = $component_id; $tinfo->{'component_id'} = $component_id;
push(@$cases, $tinfo); push(@$cases, $tinfo);
...@@ -334,6 +383,15 @@ sub collect_one_test_case($$$$$$$) { ...@@ -334,6 +383,15 @@ sub collect_one_test_case($$$$$$$) {
$tinfo->{'slave_opt'}= []; $tinfo->{'slave_opt'}= [];
$tinfo->{'slave_mi'}= []; $tinfo->{'slave_mi'}= [];
# Add suite opts
foreach my $opt ( @$suite_opts )
{
mtr_verbose($opt);
push(@{$tinfo->{'master_opt'}}, $opt);
push(@{$tinfo->{'slave_opt'}}, $opt);
}
# Add master opts
if ( -f $master_opt_file ) if ( -f $master_opt_file )
{ {
...@@ -394,6 +452,7 @@ sub collect_one_test_case($$$$$$$) { ...@@ -394,6 +452,7 @@ sub collect_one_test_case($$$$$$$) {
} }
} }
# Add slave opts
if ( -f $slave_opt_file ) if ( -f $slave_opt_file )
{ {
my $slave_opt= mtr_get_opts_from_file($slave_opt_file); my $slave_opt= mtr_get_opts_from_file($slave_opt_file);
......
...@@ -48,30 +48,15 @@ sub mtr_verbose (@); ...@@ -48,30 +48,15 @@ sub mtr_verbose (@);
# We can't use diff -u or diff -a as these are not portable # We can't use diff -u or diff -a as these are not portable
sub mtr_show_failed_diff ($) { sub mtr_show_failed_diff ($) {
my $result_file_name= shift; my $tinfo= shift;
# The reject and log files have been dumped to # The reject and log files have been dumped to
# to filenames based on the result_file's name # to filenames based on the result_file's name
my $tname= basename($result_file_name); my $base_file= mtr_match_extension($tinfo->{'result_file'},
$tname=~ s/\..*$//; "result"); # Trim extension
my $reject_file= "$base_file.reject";
my $reject_file= "r/$tname.reject"; my $result_file= "$base_file.result";
my $result_file= "r/$tname.result"; my $log_file= "$base_file.log";
my $log_file= "$::opt_vardir/log/$tname.log";
my $eval_file= "r/$tname.eval";
if ( $::opt_suite ne "main" )
{
$reject_file= "$::glob_mysql_test_dir/suite/$::opt_suite/$reject_file";
$result_file= "$::glob_mysql_test_dir/suite/$::opt_suite/$result_file";
$eval_file= "$::glob_mysql_test_dir/suite/$::opt_suite/$eval_file";
$log_file= "$::glob_mysql_test_dir/suite/$::opt_suite/$log_file";
}
if ( -f $eval_file )
{
$result_file= $eval_file;
}
my $diffopts= $::opt_udiff ? "-u" : "-c"; my $diffopts= $::opt_udiff ? "-u" : "-c";
......
...@@ -132,7 +132,7 @@ our $opt_vs_config = $ENV{'MTR_VS_CONFIG'}; ...@@ -132,7 +132,7 @@ our $opt_vs_config = $ENV{'MTR_VS_CONFIG'};
our $default_vardir; our $default_vardir;
our $opt_usage; our $opt_usage;
our $opt_suite; our $opt_suites= "main,binlog,rpl,rpl_ndb,ndb"; # Default suites to run
our $opt_script_debug= 0; # Script debugging, enable with --script-debug our $opt_script_debug= 0; # Script debugging, enable with --script-debug
our $opt_verbose= 0; # Verbose output, enable with --verbose our $opt_verbose= 0; # Verbose output, enable with --verbose
...@@ -404,7 +404,7 @@ sub main () { ...@@ -404,7 +404,7 @@ sub main () {
else else
{ {
# Figure out which tests we are going to run # Figure out which tests we are going to run
my $tests= collect_test_cases($opt_suite); my $tests= collect_test_cases($opt_suites);
# Turn off NDB and other similar options if no tests use it # Turn off NDB and other similar options if no tests use it
my ($need_ndbcluster,$need_im); my ($need_ndbcluster,$need_im);
...@@ -458,7 +458,7 @@ sub main () { ...@@ -458,7 +458,7 @@ sub main () {
run_report_features(); run_report_features();
} }
run_suite($opt_suite, $tests); run_tests($tests);
} }
mtr_exit(0); mtr_exit(0);
...@@ -474,7 +474,6 @@ sub command_line_setup () { ...@@ -474,7 +474,6 @@ sub command_line_setup () {
# These are defaults for things that are set on the command line # These are defaults for things that are set on the command line
$opt_suite= "main"; # Special default suite
my $opt_comment; my $opt_comment;
$opt_master_myport= 9306; $opt_master_myport= 9306;
...@@ -534,7 +533,7 @@ sub command_line_setup () { ...@@ -534,7 +533,7 @@ sub command_line_setup () {
'skip-slave-binlog' => \$opt_skip_slave_binlog, 'skip-slave-binlog' => \$opt_skip_slave_binlog,
'do-test=s' => \$opt_do_test, 'do-test=s' => \$opt_do_test,
'start-from=s' => \$opt_start_from, 'start-from=s' => \$opt_start_from,
'suite=s' => \$opt_suite, 'suite|suites=s' => \$opt_suites,
'skip-rpl' => \$opt_skip_rpl, 'skip-rpl' => \$opt_skip_rpl,
'skip-im' => \$opt_skip_im, 'skip-im' => \$opt_skip_im,
'skip-test=s' => \$opt_skip_test, 'skip-test=s' => \$opt_skip_test,
...@@ -2806,19 +2805,17 @@ sub run_benchmarks ($) { ...@@ -2806,19 +2805,17 @@ sub run_benchmarks ($) {
############################################################################## ##############################################################################
# #
# Run the test suite # Run the tests
# #
############################################################################## ##############################################################################
sub run_suite () { sub run_tests () {
my ($suite, $tests)= @_; my ($tests)= @_;
mtr_print_thick_line(); mtr_print_thick_line();
mtr_timer_start($glob_timers,"suite", 60 * $opt_suite_timeout); mtr_timer_start($glob_timers,"suite", 60 * $opt_suite_timeout);
mtr_report("Starting Tests in the '$suite' suite");
mtr_report_tests_not_skipped_though_disabled($tests); mtr_report_tests_not_skipped_though_disabled($tests);
mtr_print_header(); mtr_print_header();
...@@ -3281,18 +3278,14 @@ sub run_testcase_check_skip_test($) ...@@ -3281,18 +3278,14 @@ sub run_testcase_check_skip_test($)
sub do_before_run_mysqltest($) sub do_before_run_mysqltest($)
{ {
my $tinfo= shift; my $tinfo= shift;
my $tname= $tinfo->{'name'};
# Remove old files produced by mysqltest # Remove old files produced by mysqltest
my $result_dir= "r"; my $base_file= mtr_match_extension($tinfo->{'result_file'},
if ( $opt_suite ne "main" ) "result"); # Trim extension
{ unlink("$base_file.reject");
$result_dir= "suite/$opt_suite/r"; unlink("$base_file.progress");
} unlink("$base_file.log");
unlink("$result_dir/$tname.reject"); unlink("$base_file.warnings");
unlink("$result_dir/$tname.progress");
unlink("$result_dir/$tname.log");
unlink("$result_dir/$tname.warnings");
if (!$opt_extern) if (!$opt_extern)
{ {
...@@ -3311,7 +3304,6 @@ sub do_before_run_mysqltest($) ...@@ -3311,7 +3304,6 @@ sub do_before_run_mysqltest($)
sub do_after_run_mysqltest($) sub do_after_run_mysqltest($)
{ {
my $tinfo= shift; my $tinfo= shift;
my $tname= $tinfo->{'name'};
# Save info from this testcase run to mysqltest.log # Save info from this testcase run to mysqltest.log
mtr_appendfile_to_file($path_current_test_log, $path_mysqltest_log) mtr_appendfile_to_file($path_current_test_log, $path_mysqltest_log)
...@@ -3635,7 +3627,7 @@ sub report_failure_and_restart ($) { ...@@ -3635,7 +3627,7 @@ sub report_failure_and_restart ($) {
my $tinfo= shift; my $tinfo= shift;
mtr_report_test_failed($tinfo); mtr_report_test_failed($tinfo);
mtr_show_failed_diff($tinfo->{'result_file'}); mtr_show_failed_diff($tinfo);
print "\n"; print "\n";
if ( $opt_force ) if ( $opt_force )
{ {
...@@ -3774,15 +3766,7 @@ sub mysqld_arguments ($$$$) { ...@@ -3774,15 +3766,7 @@ sub mysqld_arguments ($$$$) {
if ( $mysql_version_id >= 50036) if ( $mysql_version_id >= 50036)
{ {
# By default, prevent the started mysqld to access files outside of vardir # By default, prevent the started mysqld to access files outside of vardir
my $secure_file_dir= $opt_vardir; mtr_add_arg($args, "%s--secure-file-priv=%s", $prefix, $opt_vardir);
if ( $opt_suite ne "main" )
{
# When running a suite other than default allow the mysqld
# access to subdirs of mysql-test/ in order to make it possible
# to "load data" from the suites data/ directory.
$secure_file_dir= $glob_mysql_test_dir;
}
mtr_add_arg($args, "%s--secure-file-priv=%s", $prefix, $secure_file_dir);
} }
if ( $mysql_version_id >= 50000 ) if ( $mysql_version_id >= 50000 )
...@@ -5159,7 +5143,9 @@ Options to control what test suites or cases to run ...@@ -5159,7 +5143,9 @@ Options to control what test suites or cases to run
ndb-extra Run extra tests from ndb directory ndb-extra Run extra tests from ndb directory
do-test=PREFIX Run test cases which name are prefixed with PREFIX do-test=PREFIX Run test cases which name are prefixed with PREFIX
start-from=PREFIX Run test cases starting from test prefixed with PREFIX start-from=PREFIX Run test cases starting from test prefixed with PREFIX
suite=NAME Run the test suite named NAME. The default is "main" suite[s]=NAME1,..,NAMEN Collect tests in suites from the comma separated
list of suite names.
The default is: "$opt_suites"
skip-rpl Skip the replication test cases. skip-rpl Skip the replication test cases.
skip-im Don't start IM, and skip the IM test cases skip-im Don't start IM, and skip the IM test cases
skip-test=PREFIX Skip test cases which name are prefixed with PREFIX skip-test=PREFIX Skip test cases which name are prefixed with PREFIX
......
mysqld is alive
End of 5.0 tests.
--secure-file-priv=$MYSQL_TEST_DIR
--secure-file-priv=$MYSQL_TEST_DIR
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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