summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <msvensson@neptunus.(none)>2006-10-06 11:24:31 +0200
committerunknown <msvensson@neptunus.(none)>2006-10-06 11:24:31 +0200
commit80c96d859f80e40f6604f38a883385bf4f793e29 (patch)
tree8111f95d2b2a14c571ae1597d49c5d8870679a48
parent5c8da505963e1cc1100814912d45dccd5e454ce0 (diff)
parent9350dbc4f96c0b58784132e1c0556e0238c53177 (diff)
downloadmariadb-git-80c96d859f80e40f6604f38a883385bf4f793e29.tar.gz
Merge neptunus.(none):/home/msvensson/mysql/same_tools/my41-same_tools
into neptunus.(none):/home/msvensson/mysql/same_tools/my50-same_tools mysql-test/lib/mtr_cases.pl: Auto merged mysql-test/mysql-test-run.pl: Auto merged
-rw-r--r--mysql-test/lib/mtr_cases.pl31
-rwxr-xr-xmysql-test/mysql-test-run.pl93
2 files changed, 57 insertions, 67 deletions
diff --git a/mysql-test/lib/mtr_cases.pl b/mysql-test/lib/mtr_cases.pl
index bb92730444c..344c80ac0bf 100644
--- a/mysql-test/lib/mtr_cases.pl
+++ b/mysql-test/lib/mtr_cases.pl
@@ -164,31 +164,36 @@ sub collect_test_cases ($) {
# 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 $tinfo (@$cases)
+ foreach $tinfo (@$cases)
{
my @this_criteria = ();
+ #
# Append the criteria for sorting, in order of importance.
- push(@this_criteria, join("!", sort @{$tinfo->{'master_opt'}}) . "~"); # Ending with "~" makes empty sort later than filled
+ #
+
push(@this_criteria, "ndb=" . ($tinfo->{'ndb_test'} ? "1" : "0"));
push(@this_criteria, "restart=" . ($tinfo->{'master_restart'} ? "1" : "0"));
- push(@this_criteria, "big_test=" . ($tinfo->{'big_test'} ? "1" : "0"));
- push(@this_criteria, join("|", sort keys %{$tinfo})); # Group similar things together. The values may differ substantially. FIXME?
- push(@this_criteria, $tinfo->{'name'}); # Finally, order by the name
-
+ # Group test with similar options together.
+ # Ending with "~" makes empty sort later than filled
+ push(@this_criteria, join("!", sort @{$tinfo->{'master_opt'}}) . "~");
+
+ # Finally, order by the name
+ push(@this_criteria, $tinfo->{'name'});
+
$sort_criteria{$tinfo->{"name"}} = join(" ", @this_criteria);
}
@$cases = sort { $sort_criteria{$a->{"name"}} cmp $sort_criteria{$b->{"name"}}; } @$cases;
### For debugging the sort-order
-# foreach $tinfo (@$cases)
-# {
-# print $sort_criteria{$tinfo->{"name"}};
-# print " -> \t";
-# print $tinfo->{"name"};
-# print "\n";
-# }
+ foreach $tinfo (@$cases)
+ {
+ print $sort_criteria{$tinfo->{"name"}};
+ print " -> \t";
+ print $tinfo->{"name"};
+ print "\n";
+ }
}
return $cases;
diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl
index 23a9b30d76b..31a2c1e32a3 100755
--- a/mysql-test/mysql-test-run.pl
+++ b/mysql-test/mysql-test-run.pl
@@ -323,7 +323,7 @@ our $default_mysqld_port;
sub main ();
sub initial_setup ();
sub command_line_setup ();
-sub snapshot_setup ();
+sub datadir_setup ();
sub executable_setup ();
sub environment_setup ();
sub kill_running_server ();
@@ -416,7 +416,6 @@ sub main () {
unless $need_ndbcluster;
$opt_skip_im= 1 unless $need_im;
- snapshot_setup();
initialize_servers();
run_suite($opt_suite, $tests);
@@ -1122,7 +1121,7 @@ sub command_line_setup () {
$path_snapshot= "$opt_tmpdir/snapshot_$opt_master_myport/";
}
-sub snapshot_setup () {
+sub datadir_setup () {
# Make a list of all data_dirs
@data_dir_lst = (
@@ -2370,6 +2369,9 @@ sub run_suite () {
##############################################################################
sub initialize_servers () {
+
+ datadir_setup();
+
if ( ! $glob_use_running_server )
{
kill_running_server();
@@ -3520,6 +3522,11 @@ sub run_testcase_need_master_restart($)
join(" ", @{$tinfo->{'master_opt'}}) . "' != '" .
join(" ", @{$master->[0]->{'start_opts'}}) . "'" );
}
+ elsif( ! $master->[0]->{'pid'} )
+ {
+ $do_restart= 1;
+ mtr_verbose("Restart because: master is not started");
+ }
return $do_restart;
}
@@ -3531,57 +3538,35 @@ sub run_testcase_need_slave_restart($)
# We try to find out if we are to restart the slaves
my $do_slave_restart= 0; # Assumes we don't have to
- # FIXME only restart slave when necessary
- $do_slave_restart= 1;
-
-# if ( ! $slave->[0]->{'pid'} )
-# {
-# # mtr_verbose("Slave not started, no need to check slave restart");
-# }
-# elsif ( $do_restart )
-# {
-# $do_slave_restart= 1; # Always restart if master restart
-# mtr_verbose("Restart slave because: Master restart");
-# }
-# elsif ( $tinfo->{'slave_sh'} )
-# {
-# $do_slave_restart= 1; # Always restart if script to run
-# mtr_verbose("Restart slave because: Always restart if script to run");
-# }
-# elsif ( ! $opt_skip_ndbcluster_slave and
-# $tinfo->{'ndb_test'} == 0 and
-# $clusters->[1]->{'pid'} != 0 )
-# {
-# $do_slave_restart= 1; # Restart without slave cluster
-# mtr_verbose("Restart slave because: Test does not need slave cluster");
-# }
-# elsif ( ! $opt_with_ndbcluster_slave and
-# $tinfo->{'ndb_test'} == 1 and
-# $clusters->[1]->{'pid'} == 0 )
-# {
-# $do_slave_restart= 1; # Restart with slave cluster
-# mtr_verbose("Restart slave because: Test need slave cluster");
-# }
-# elsif ( $tinfo->{'slave_restart'} )
-# {
-# $do_slave_restart= 1;
-# mtr_verbose("Restart slave because: slave_restart");
-# }
-# elsif ( $slave->[0]->{'running_slave_is_special'} )
-# {
-# $do_slave_restart= 1;
-# mtr_verbose("Restart slave because: running_slave_is_special");
-# }
-# # Check that running slave was started with same options
-# # as the current test requires
-# elsif (! mtr_same_opts($slave->[0]->{'start_opts'},
-# $tinfo->{'slave_opt'}) )
-# {
-# $do_slave_restart= 1;
-# mtr_verbose("Restart slave because: running with different options '" .
-# join(" ", @{$tinfo->{'slave_opt'}}) . "' != '" .
-# join(" ", @{$slave->[0]->{'start_opts'}}) . "'" );
-# }
+ if ( $max_slave_num == 0)
+ {
+ mtr_verbose("No testcase use slaves, no slave restarts");
+ }
+ else
+ {
+
+ # Check if any slave is currently started
+ my $any_slave_started= 0;
+ foreach my $mysqld (@{$slave})
+ {
+ if ( $mysqld->{'pid'} )
+ {
+ $any_slave_started= 1;
+ last;
+ }
+ }
+
+ if ($any_slave_started)
+ {
+ mtr_verbose("Any slave is started, need to restart");
+ $do_slave_restart= 1;
+ }
+ elsif ( $tinfo->{'slave_num'} )
+ {
+ mtr_verbose("Test need slave, check for restart");
+ $do_slave_restart= 1;
+ }
+ }
return $do_slave_restart;