mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 18:20:07 +01:00
Make --with-ndbcluster only be valid together with --bench
Improve code that detects if ndb shuold be installed Remove call to stop_all_servers after install db, if any servers are still running and need to be stopped they will be stopped atuomatically
This commit is contained in:
parent
d45b61b1b5
commit
8d72bf9448
2 changed files with 71 additions and 60 deletions
|
@ -59,7 +59,9 @@ sub collect_test_cases ($) {
|
|||
|
||||
if ( @::opt_cases )
|
||||
{
|
||||
foreach my $tname ( @::opt_cases ) { # Run in specified order, no sort
|
||||
foreach my $tname ( @::opt_cases )
|
||||
{
|
||||
# Run in specified order, no sort
|
||||
my $elem= undef;
|
||||
my $component_id= undef;
|
||||
|
||||
|
@ -85,7 +87,7 @@ sub collect_test_cases ($) {
|
|||
|
||||
# If target component is known, check that the specified test case
|
||||
# exists.
|
||||
#
|
||||
#
|
||||
# Otherwise, try to guess the target component.
|
||||
|
||||
if ( $component_id )
|
||||
|
@ -127,7 +129,8 @@ sub collect_test_cases ($) {
|
|||
}
|
||||
else
|
||||
{
|
||||
foreach my $elem ( sort readdir(TESTDIR) ) {
|
||||
foreach my $elem ( sort readdir(TESTDIR) )
|
||||
{
|
||||
my $component_id= undef;
|
||||
my $tname= undef;
|
||||
|
||||
|
@ -144,7 +147,9 @@ sub collect_test_cases ($) {
|
|||
next;
|
||||
}
|
||||
|
||||
next if $::opt_do_test and ! defined mtr_match_prefix($elem,$::opt_do_test);
|
||||
# Skip tests that does not match the --do-test= filter
|
||||
next if $::opt_do_test and
|
||||
! defined mtr_match_prefix($elem,$::opt_do_test);
|
||||
|
||||
collect_one_test_case($testdir,$resdir,$tname,$elem,$cases,\%disabled,
|
||||
$component_id);
|
||||
|
@ -152,7 +157,7 @@ sub collect_test_cases ($) {
|
|||
closedir TESTDIR;
|
||||
}
|
||||
|
||||
# Reorder the test cases in an order that wil make them faster to run
|
||||
# Reorder the test cases in an order that will make them faster to run
|
||||
if ( $::opt_reorder )
|
||||
{
|
||||
|
||||
|
@ -306,40 +311,6 @@ sub collect_one_test_case($$$$$$$) {
|
|||
$tinfo->{'slave_num'}= 1;
|
||||
}
|
||||
|
||||
if ( $::opt_with_ndbcluster or defined mtr_match_substring($tname,"ndb") )
|
||||
{
|
||||
# This is an ndb test or all tests should be run with ndb cluster started
|
||||
$tinfo->{'ndb_test'}= 1;
|
||||
if ( ! $::opt_ndbcluster_supported )
|
||||
{
|
||||
# Ndb is not supported, skip them
|
||||
$tinfo->{'skip'}= 1;
|
||||
$tinfo->{'comment'}= "No ndbcluster support";
|
||||
return;
|
||||
}
|
||||
elsif ( $::opt_skip_ndbcluster )
|
||||
{
|
||||
# All ndb test's should be skipped
|
||||
$tinfo->{'skip'}= 1;
|
||||
$tinfo->{'comment'}= "No ndbcluster tests(--skip-ndbcluster)";
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
# This is not a ndb test
|
||||
$tinfo->{'ndb_test'}= 0;
|
||||
if ( $::opt_with_ndbcluster_only )
|
||||
{
|
||||
# Only the ndb test should be run, all other should be skipped
|
||||
$tinfo->{'skip'}= 1;
|
||||
$tinfo->{'comment'}= "Only ndbcluster tests(--with-ndbcluster-only)";
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
# FIXME what about embedded_server + ndbcluster, skip ?!
|
||||
|
||||
my $master_opt_file= "$testdir/$tname-master.opt";
|
||||
my $slave_opt_file= "$testdir/$tname-slave.opt";
|
||||
my $slave_mi_file= "$testdir/$tname.slave-mi";
|
||||
|
@ -550,6 +521,37 @@ sub collect_one_test_case($$$$$$$) {
|
|||
$tinfo->{'comment'}= "Test need debug binaries";
|
||||
return;
|
||||
}
|
||||
|
||||
if ( $tinfo->{'ndb_test'} )
|
||||
{
|
||||
# This is a NDB test
|
||||
if ( ! $::glob_ndbcluster_supported )
|
||||
{
|
||||
# Ndb is not supported, skip it
|
||||
$tinfo->{'skip'}= 1;
|
||||
$tinfo->{'comment'}= "No ndbcluster support";
|
||||
return;
|
||||
}
|
||||
elsif ( $::opt_skip_ndbcluster )
|
||||
{
|
||||
# All ndb test's should be skipped
|
||||
$tinfo->{'skip'}= 1;
|
||||
$tinfo->{'comment'}= "No ndbcluster tests(--skip-ndbcluster)";
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
# This is not a ndb test
|
||||
if ( $::opt_with_ndbcluster_only )
|
||||
{
|
||||
# Only the ndb test should be run, all other should be skipped
|
||||
$tinfo->{'skip'}= 1;
|
||||
$tinfo->{'comment'}= "Only ndbcluster tests(--with-ndbcluster-only)";
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -563,6 +565,7 @@ our @tags=
|
|||
["include/have_binlog_format_statement.inc", "binlog_format", "stmt"],
|
||||
["include/big_test.inc", "big_test", 1],
|
||||
["include/have_debug.inc", "need_debug", 1],
|
||||
["include/have_ndb.inc", "ndb_test", 1],
|
||||
["include/have_ndb_extra.inc", "ndb_extra", 1],
|
||||
["require_manager", "require_manager", 1],
|
||||
);
|
||||
|
|
|
@ -65,6 +65,7 @@ use IO::Socket;
|
|||
use IO::Socket::INET;
|
||||
use Data::Dumper;
|
||||
use strict;
|
||||
use warnings;
|
||||
use diagnostics;
|
||||
|
||||
our $glob_win32_perl= ($^O eq "MSWin32"); # ActiveState Win32 Perl
|
||||
|
@ -277,7 +278,7 @@ our $opt_skip_ndbcluster= 0;
|
|||
our $opt_skip_ndbcluster_slave= 0;
|
||||
our $opt_with_ndbcluster= 0;
|
||||
our $opt_with_ndbcluster_only= 0;
|
||||
our $opt_ndbcluster_supported= 0;
|
||||
our $glob_ndbcluster_supported= 0;
|
||||
our $opt_ndb_extra_test= 0;
|
||||
our $opt_skip_master_binlog= 0;
|
||||
our $opt_skip_slave_binlog= 0;
|
||||
|
@ -572,10 +573,10 @@ sub command_line_setup () {
|
|||
'compress' => \$opt_compress,
|
||||
'bench' => \$opt_bench,
|
||||
'small-bench' => \$opt_small_bench,
|
||||
'with-ndbcluster' => \$opt_with_ndbcluster,
|
||||
|
||||
# Control what test suites or cases to run
|
||||
'force' => \$opt_force,
|
||||
'with-ndbcluster' => \$opt_with_ndbcluster,
|
||||
'with-ndbcluster-only' => \$opt_with_ndbcluster_only,
|
||||
'skip-ndbcluster|skip-ndb' => \$opt_skip_ndbcluster,
|
||||
'skip-ndbcluster-slave|skip-ndb-slave'
|
||||
|
@ -846,9 +847,9 @@ sub command_line_setup () {
|
|||
# --------------------------------------------------------------------------
|
||||
# Ndb cluster flags
|
||||
# --------------------------------------------------------------------------
|
||||
if ( $opt_with_ndbcluster and $opt_skip_ndbcluster)
|
||||
if ( $opt_with_ndbcluster and !$opt_bench)
|
||||
{
|
||||
mtr_error("Can't specify both --with-ndbcluster and --skip-ndbcluster");
|
||||
mtr_error("Can only use --with-ndbcluster togheter with --bench");
|
||||
}
|
||||
|
||||
if ( $opt_ndbconnectstring )
|
||||
|
@ -1485,7 +1486,7 @@ sub environment_setup () {
|
|||
# --------------------------------------------------------------------------
|
||||
# Add the path where libndbclient can be found
|
||||
# --------------------------------------------------------------------------
|
||||
if ( $opt_ndbcluster_supported )
|
||||
if ( $glob_ndbcluster_supported )
|
||||
{
|
||||
push(@ld_library_paths, "$glob_basedir/storage/ndb/src/.libs");
|
||||
}
|
||||
|
@ -1870,6 +1871,8 @@ sub cleanup_stale_files () {
|
|||
rmtree(readlink($opt_vardir));
|
||||
# Remove the entire "var" dir
|
||||
rmtree("$opt_vardir/");
|
||||
# Remove the "var" symlink
|
||||
unlink($opt_vardir);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -2042,7 +2045,7 @@ sub check_ndbcluster_support ($) {
|
|||
$opt_skip_ndbcluster_slave= 1;
|
||||
return;
|
||||
}
|
||||
$opt_ndbcluster_supported= 1;
|
||||
$glob_ndbcluster_supported= 1;
|
||||
mtr_report("Using ndbcluster when necessary, mysqld supports it");
|
||||
|
||||
if ( $mysql_version_id < 50100 )
|
||||
|
@ -2059,11 +2062,6 @@ sub check_ndbcluster_support ($) {
|
|||
sub ndbcluster_start_install ($) {
|
||||
my $cluster= shift;
|
||||
|
||||
if ( $opt_skip_ndbcluster or $glob_use_running_ndbcluster )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
mtr_report("Installing $cluster->{'name'} Cluster");
|
||||
|
||||
mkdir($cluster->{'data_dir'});
|
||||
|
@ -2477,11 +2475,24 @@ sub mysql_install_db () {
|
|||
|
||||
my $cluster_started_ok= 1; # Assume it can be started
|
||||
|
||||
if (ndbcluster_start_install($clusters->[0]) ||
|
||||
($max_slave_num && !$opt_skip_ndbcluster_slave &&
|
||||
ndbcluster_start_install($clusters->[1])))
|
||||
if ($opt_skip_ndbcluster || $glob_use_running_ndbcluster)
|
||||
{
|
||||
mtr_warning("Failed to start install of cluster");
|
||||
# Don't install master cluster
|
||||
}
|
||||
elsif (ndbcluster_start_install($clusters->[0]))
|
||||
{
|
||||
mtr_warning("Failed to start install of $clusters->[0]->{name}");
|
||||
$cluster_started_ok= 0;
|
||||
}
|
||||
|
||||
if ($max_slave_num == 0 ||
|
||||
$opt_skip_ndbcluster_slave || $glob_use_running_ndbcluster_slave)
|
||||
{
|
||||
# Don't install slave cluster
|
||||
}
|
||||
elsif (ndbcluster_start_install($clusters->[1]))
|
||||
{
|
||||
mtr_warning("Failed to start install of $clusters->[1]->{name}");
|
||||
$cluster_started_ok= 0;
|
||||
}
|
||||
|
||||
|
@ -2514,9 +2525,6 @@ sub mysql_install_db () {
|
|||
}
|
||||
}
|
||||
|
||||
# Stop clusters...
|
||||
stop_all_servers();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -3592,14 +3600,14 @@ sub run_testcase_need_master_restart($)
|
|||
mtr_verbose("Restart master: Restart forced with --force-restart");
|
||||
}
|
||||
elsif ( ! $opt_skip_ndbcluster and
|
||||
$tinfo->{'ndb_test'} == 0 and
|
||||
!$tinfo->{'ndb_test'} and
|
||||
$clusters->[0]->{'pid'} != 0 )
|
||||
{
|
||||
$do_restart= 1; # Restart without cluster
|
||||
mtr_verbose("Restart master: Test does not need cluster");
|
||||
}
|
||||
elsif ( ! $opt_skip_ndbcluster and
|
||||
$tinfo->{'ndb_test'} == 1 and
|
||||
$tinfo->{'ndb_test'} and
|
||||
$clusters->[0]->{'pid'} == 0 )
|
||||
{
|
||||
$do_restart= 1; # Restart with cluster
|
||||
|
@ -4455,6 +4463,7 @@ Options to control what engine/variation to run
|
|||
skip-ssl Dont start server with support for ssl connections
|
||||
bench Run the benchmark suite
|
||||
small-bench Run the benchmarks with --small-tests --small-tables
|
||||
with-ndbcluster Use cluster as default table type for benchmark
|
||||
|
||||
Options to control directories to use
|
||||
benchdir=DIR The directory where the benchmark suite is stored
|
||||
|
@ -4471,7 +4480,6 @@ Options to control directories to use
|
|||
Options to control what test suites or cases to run
|
||||
|
||||
force Continue to run the suite after failure
|
||||
with-ndbcluster Use cluster in all tests
|
||||
with-ndbcluster-only Run only tests that include "ndb" in the filename
|
||||
skip-ndb[cluster] Skip all tests that need cluster
|
||||
skip-ndb[cluster]-slave Skip all tests that need a slave cluster
|
||||
|
|
Loading…
Add table
Reference in a new issue