mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Backport from 5.0 a fix that will start ndb only for tests that needs it
This commit is contained in:
@ -193,6 +193,28 @@ sub collect_one_test_case($$$$$$) {
|
|||||||
$tinfo->{'slave_restart'}= 1;
|
$tinfo->{'slave_restart'}= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Cluster is needed by test case if testname contains ndb
|
||||||
|
if ( defined mtr_match_substring($tname,"ndb") )
|
||||||
|
{
|
||||||
|
$tinfo->{'ndb_test'}= 1;
|
||||||
|
if ( $::opt_skip_ndbcluster )
|
||||||
|
{
|
||||||
|
# Skip all ndb tests
|
||||||
|
$tinfo->{'skip'}= 1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ( ! $::opt_with_ndbcluster )
|
||||||
|
{
|
||||||
|
# Ndb is not supported, skip them
|
||||||
|
$tinfo->{'skip'}= 1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$tinfo->{'ndb_test'}= 0;
|
||||||
|
}
|
||||||
|
|
||||||
# FIXME what about embedded_server + ndbcluster, skip ?!
|
# FIXME what about embedded_server + ndbcluster, skip ?!
|
||||||
|
|
||||||
my $master_opt_file= "$testdir/$tname-master.opt";
|
my $master_opt_file= "$testdir/$tname-master.opt";
|
||||||
|
@ -50,6 +50,23 @@ sub mtr_match_extension ($$) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Match a substring anywere in a string
|
||||||
|
|
||||||
|
sub mtr_match_substring ($$) {
|
||||||
|
my $string= shift;
|
||||||
|
my $substring= shift;
|
||||||
|
|
||||||
|
if ( $string =~ /(.*)\Q$substring\E(.*)$/ ) # strncmp
|
||||||
|
{
|
||||||
|
return $1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return undef; # NULL
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
sub mtr_match_any_exact ($$) {
|
sub mtr_match_any_exact ($$) {
|
||||||
my $string= shift;
|
my $string= shift;
|
||||||
my $mlist= shift;
|
my $mlist= shift;
|
||||||
|
@ -1581,6 +1581,16 @@ sub run_testcase ($) {
|
|||||||
{
|
{
|
||||||
$do_restart= 1; # Always restart if script to run
|
$do_restart= 1; # Always restart if script to run
|
||||||
}
|
}
|
||||||
|
elsif ( $tinfo->{'ndb_test'} and $master->[0]->{'ndbcluster'} == 1 )
|
||||||
|
{
|
||||||
|
$do_restart= 1; # Restart with cluster
|
||||||
|
# print "Restarting because cluster need to be enabled\n";
|
||||||
|
}
|
||||||
|
elsif ($tinfo->{'ndb_test'} == 0 and $master->[0]->{'ndbcluster'} == 0)
|
||||||
|
{
|
||||||
|
$do_restart= 1; # Restart without cluster
|
||||||
|
# print "Restarting because cluster need to be disabled\n";
|
||||||
|
}
|
||||||
elsif ( $master->[0]->{'running_master_is_special'} and
|
elsif ( $master->[0]->{'running_master_is_special'} and
|
||||||
$master->[0]->{'running_master_is_special'}->{'timezone'} eq
|
$master->[0]->{'running_master_is_special'}->{'timezone'} eq
|
||||||
$tinfo->{'timezone'} and
|
$tinfo->{'timezone'} and
|
||||||
@ -1646,7 +1656,7 @@ sub run_testcase ($) {
|
|||||||
|
|
||||||
if ( ! $opt_local_master )
|
if ( ! $opt_local_master )
|
||||||
{
|
{
|
||||||
if ( $master->[0]->{'ndbcluster'} )
|
if ( $master->[0]->{'ndbcluster'} && $tinfo->{'ndb_test'})
|
||||||
{
|
{
|
||||||
$master->[0]->{'ndbcluster'}= ndbcluster_start();
|
$master->[0]->{'ndbcluster'}= ndbcluster_start();
|
||||||
if ( $master->[0]->{'ndbcluster'} )
|
if ( $master->[0]->{'ndbcluster'} )
|
||||||
@ -1659,8 +1669,22 @@ sub run_testcase ($) {
|
|||||||
{
|
{
|
||||||
# FIXME not correct location for do_before_start_master()
|
# FIXME not correct location for do_before_start_master()
|
||||||
do_before_start_master($tname,$tinfo->{'master_sh'});
|
do_before_start_master($tname,$tinfo->{'master_sh'});
|
||||||
|
|
||||||
|
# Save skip_ndbcluster
|
||||||
|
my $save_opt_skip_ndbcluster= $opt_skip_ndbcluster;
|
||||||
|
if (!$tinfo->{'ndb_test'})
|
||||||
|
{
|
||||||
|
# Modify skip_ndbcluster so cluster is skipped for this
|
||||||
|
# and subsequent testcases(until we find one that does not cluster)
|
||||||
|
$opt_skip_ndbcluster= 1;
|
||||||
|
}
|
||||||
|
|
||||||
$master->[0]->{'pid'}=
|
$master->[0]->{'pid'}=
|
||||||
mysqld_start('master',0,$tinfo->{'master_opt'},[]);
|
mysqld_start('master',0,$tinfo->{'master_opt'},[]);
|
||||||
|
|
||||||
|
# Restore skip_ndbcluster
|
||||||
|
$opt_skip_ndbcluster= $save_opt_skip_ndbcluster;
|
||||||
|
|
||||||
if ( ! $master->[0]->{'pid'} )
|
if ( ! $master->[0]->{'pid'} )
|
||||||
{
|
{
|
||||||
report_failure_and_restart($tinfo);
|
report_failure_and_restart($tinfo);
|
||||||
@ -2026,7 +2050,7 @@ sub mysqld_arguments ($$$$$) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $opt_with_ndbcluster )
|
if ( $opt_with_ndbcluster && !$opt_skip_ndbcluster)
|
||||||
{
|
{
|
||||||
mtr_add_arg($args, "%s--ndbcluster", $prefix);
|
mtr_add_arg($args, "%s--ndbcluster", $prefix);
|
||||||
mtr_add_arg($args, "%s--ndb-connectstring=%s", $prefix,
|
mtr_add_arg($args, "%s--ndb-connectstring=%s", $prefix,
|
||||||
|
Reference in New Issue
Block a user