mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Fixup the regex's parsing the mysqld's version and variables
Add paths for ndb binaries Some more backport issues mysql-test/include/have_ndb.inc: Remove the check for NDB_STATUS_OK, handled by mysql-test-run.pl
This commit is contained in:
@ -1,4 +1,3 @@
|
|||||||
--exec test x$NDB_STATUS_OK = x1
|
|
||||||
-- require r/have_ndb.require
|
-- require r/have_ndb.require
|
||||||
disable_query_log;
|
disable_query_log;
|
||||||
show variables like "have_ndbcluster";
|
show variables like "have_ndbcluster";
|
||||||
|
@ -1141,7 +1141,7 @@ sub check_mysqld_features () {
|
|||||||
# print out version and a list of all features and settings
|
# print out version and a list of all features and settings
|
||||||
#
|
#
|
||||||
my $found_variable_list_start= 0;
|
my $found_variable_list_start= 0;
|
||||||
my $spec_file= "$opt_vardir/tmp/mysqld.spec";
|
my $spec_file= "$opt_vardir/mysqld.spec";
|
||||||
if ( mtr_run($exe_mysqld,
|
if ( mtr_run($exe_mysqld,
|
||||||
["--no-defaults",
|
["--no-defaults",
|
||||||
"--verbose",
|
"--verbose",
|
||||||
@ -1174,20 +1174,31 @@ sub check_mysqld_features () {
|
|||||||
if (!$found_variable_list_start)
|
if (!$found_variable_list_start)
|
||||||
{
|
{
|
||||||
# Look for start of variables list
|
# Look for start of variables list
|
||||||
if ( $line =~ /-*\s-*/ )
|
if ( $line =~ /[\-]+\s[\-]+/ )
|
||||||
{
|
{
|
||||||
$found_variable_list_start= 1;
|
$found_variable_list_start= 1;
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
# Put variables into hash
|
# Put variables into hash
|
||||||
if ( $line =~ /^(\w*)[ \t]*(\w*)$/ )
|
if ( $line =~ /^([\S]+)[ \t]+(.*)$/ )
|
||||||
{
|
{
|
||||||
|
# print "$1=$2\n";
|
||||||
$mysqld_variables{$1}= $2;
|
$mysqld_variables{$1}= $2;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
# The variable list is ended with a blank line, so when a line
|
||||||
|
# doesn't match the above regex, break the loop
|
||||||
|
last;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
unlink($spec_file);
|
||||||
mtr_error("Could not find version of MySQL") unless $mysql_version_id;
|
mtr_error("Could not find version of MySQL") unless $mysql_version_id;
|
||||||
|
mtr_error("Could not find variabes list") unless $found_variable_list_start;
|
||||||
|
|
||||||
check_ndbcluster_support(\%mysqld_variables);
|
check_ndbcluster_support(\%mysqld_variables);
|
||||||
check_ssl_support(\%mysqld_variables);
|
check_ssl_support(\%mysqld_variables);
|
||||||
@ -1197,6 +1208,14 @@ sub check_mysqld_features () {
|
|||||||
{
|
{
|
||||||
# Instance manager is not supported until 5.0
|
# Instance manager is not supported until 5.0
|
||||||
$opt_skip_im= 1;
|
$opt_skip_im= 1;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( $mysql_version_id < 50100 )
|
||||||
|
{
|
||||||
|
# Slave cluster is not supported until 5.1
|
||||||
|
$opt_skip_ndbcluster_slave= 1;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Set default values from mysqld_variables
|
# Set default values from mysqld_variables
|
||||||
@ -1294,13 +1313,26 @@ sub executable_setup () {
|
|||||||
mtr_script_exists("$glob_basedir/scripts/mysql_fix_privilege_tables",
|
mtr_script_exists("$glob_basedir/scripts/mysql_fix_privilege_tables",
|
||||||
"$path_client_bindir/mysql_fix_privilege_tables");
|
"$path_client_bindir/mysql_fix_privilege_tables");
|
||||||
|
|
||||||
if ( $opt_with_ndbcluster)
|
if ( ! $opt_skip_ndbcluster)
|
||||||
{
|
{
|
||||||
# Look for ndb tols and binaries
|
# Look for ndb tols and binaries
|
||||||
$path_ndb_tools_dir= mtr_path_exists("$glob_basedir/ndb/tools",
|
my $ndb_path= mtr_path_exists("$glob_basedir/ndb",
|
||||||
|
"$glob_basedir/storage/ndb");
|
||||||
|
|
||||||
|
$path_ndb_tools_dir= mtr_path_exists("$ndb_path/tools",
|
||||||
"$glob_basedir/bin");
|
"$glob_basedir/bin");
|
||||||
$exe_ndb_mgm= mtr_exe_exists("$glob_basedir/ndb/src/mgmclient/ndb_mgm",
|
$exe_ndb_mgm=
|
||||||
"$glob_basedir/bin/ndb_mgm");
|
mtr_exe_exists("$ndb_path/src/mgmclient/ndb_mgm",
|
||||||
|
"$glob_basedir/bin/ndb_mgm");
|
||||||
|
$exe_ndb_mgmd=
|
||||||
|
mtr_exe_exists("$ndb_path/src/mgmsrv/ndb_mgmd",
|
||||||
|
"$glob_basedir/bin/ndb_mgmd");
|
||||||
|
$exe_ndb_waiter=
|
||||||
|
mtr_exe_exists("$ndb_path/tools/ndb_waiter",
|
||||||
|
"$glob_basedir/bin/ndb_waiter");
|
||||||
|
$exe_ndbd=
|
||||||
|
mtr_exe_exists("$ndb_path/src/kernel/ndbd",
|
||||||
|
"$glob_basedir/bin/ndbd");
|
||||||
}
|
}
|
||||||
|
|
||||||
# Look for the udf_example library
|
# Look for the udf_example library
|
||||||
@ -1616,7 +1648,8 @@ sub environment_setup () {
|
|||||||
# Setup env so childs can execute mysql_fix_system_tables
|
# Setup env so childs can execute mysql_fix_system_tables
|
||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
my $cmdline_mysql_fix_system_tables=
|
my $cmdline_mysql_fix_system_tables=
|
||||||
"$exe_mysql_fix_system_tables --no-defaults --host=localhost --user=root --password= " .
|
"$exe_mysql_fix_system_tables --no-defaults --host=localhost " .
|
||||||
|
"--user=root --password= " .
|
||||||
"--basedir=$glob_basedir --bindir=$path_client_bindir --verbose " .
|
"--basedir=$glob_basedir --bindir=$path_client_bindir --verbose " .
|
||||||
"--port=$master->[0]->{'port'} " .
|
"--port=$master->[0]->{'port'} " .
|
||||||
"--socket=$master->[0]->{'path_sock'}";
|
"--socket=$master->[0]->{'path_sock'}";
|
||||||
@ -1832,7 +1865,7 @@ sub check_ssl_support ($) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $mysqld_variables->{'ssl'} eq "FALSE" )
|
if ( ! $mysqld_variables->{'ssl'} )
|
||||||
{
|
{
|
||||||
if ( $opt_ssl)
|
if ( $opt_ssl)
|
||||||
{
|
{
|
||||||
@ -1883,7 +1916,7 @@ sub check_ndbcluster_support ($) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $mysqld_variables->{'ndbcluster'} eq "FALSE")
|
if ( ! $mysqld_variables->{'ndb-connectstring'} )
|
||||||
{
|
{
|
||||||
mtr_report("Skipping ndbcluster, mysqld not compiled with ndbcluster");
|
mtr_report("Skipping ndbcluster, mysqld not compiled with ndbcluster");
|
||||||
$opt_skip_ndbcluster= 1;
|
$opt_skip_ndbcluster= 1;
|
||||||
@ -1949,6 +1982,11 @@ sub ndbcluster_start_install ($) {
|
|||||||
s/CHOOSE_HOSTNAME_.*/$ndb_host/;
|
s/CHOOSE_HOSTNAME_.*/$ndb_host/;
|
||||||
s/CHOOSE_FILESYSTEM/$cluster->{'data_dir'}/;
|
s/CHOOSE_FILESYSTEM/$cluster->{'data_dir'}/;
|
||||||
s/CHOOSE_PORT_MGM/$cluster->{'port'}/;
|
s/CHOOSE_PORT_MGM/$cluster->{'port'}/;
|
||||||
|
if ( $mysql_version_id < 50000 )
|
||||||
|
{
|
||||||
|
my $base_port= $cluster->{'port'} + 1;
|
||||||
|
s/CHOOSE_PORT_TRANSPORTER/$base_port/;
|
||||||
|
}
|
||||||
s/CHOOSE_DiskPageBufferMemory/$ndb_pbmem/;
|
s/CHOOSE_DiskPageBufferMemory/$ndb_pbmem/;
|
||||||
|
|
||||||
print OUT "$_ \n";
|
print OUT "$_ \n";
|
||||||
@ -2070,7 +2108,10 @@ sub ndbd_start ($$$) {
|
|||||||
mtr_add_arg($args, "--no-defaults");
|
mtr_add_arg($args, "--no-defaults");
|
||||||
mtr_add_arg($args, "--core");
|
mtr_add_arg($args, "--core");
|
||||||
mtr_add_arg($args, "--ndb-connectstring=%s", "$cluster->{'connect_string'}");
|
mtr_add_arg($args, "--ndb-connectstring=%s", "$cluster->{'connect_string'}");
|
||||||
mtr_add_arg($args, "--character-sets-dir=%s", "$path_charsetsdir");
|
if ( $mysql_version_id >= 50000)
|
||||||
|
{
|
||||||
|
mtr_add_arg($args, "--character-sets-dir=%s", "$path_charsetsdir");
|
||||||
|
}
|
||||||
mtr_add_arg($args, "--nodaemon");
|
mtr_add_arg($args, "--nodaemon");
|
||||||
mtr_add_arg($args, "$extra_args");
|
mtr_add_arg($args, "$extra_args");
|
||||||
|
|
||||||
@ -2247,8 +2288,6 @@ sub run_suite () {
|
|||||||
|
|
||||||
mtr_report_stats($tests);
|
mtr_report_stats($tests);
|
||||||
|
|
||||||
# Look for testname.warning files if --do-test=
|
|
||||||
|
|
||||||
mtr_timer_stop($glob_timers,"suite");
|
mtr_timer_stop($glob_timers,"suite");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2298,7 +2337,8 @@ sub mysql_install_db () {
|
|||||||
my $cluster_started_ok= 1; # Assume it can be started
|
my $cluster_started_ok= 1; # Assume it can be started
|
||||||
|
|
||||||
if (ndbcluster_start_install($clusters->[0]) ||
|
if (ndbcluster_start_install($clusters->[0]) ||
|
||||||
$max_slave_num && ndbcluster_start_install($clusters->[1]))
|
($max_slave_num && !$opt_skip_ndbcluster_slave &&
|
||||||
|
ndbcluster_start_install($clusters->[1])))
|
||||||
{
|
{
|
||||||
mtr_warning("Failed to start install of cluster");
|
mtr_warning("Failed to start install of cluster");
|
||||||
$cluster_started_ok= 0;
|
$cluster_started_ok= 0;
|
||||||
@ -2986,7 +3026,10 @@ sub mysqld_arguments ($$$$$) {
|
|||||||
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,
|
||||||
$cluster->{'connect_string'});
|
$cluster->{'connect_string'});
|
||||||
mtr_add_arg($args, "%s--ndb-extra-logging", $prefix);
|
if ( $mysql_version_id >= 50000 )
|
||||||
|
{
|
||||||
|
mtr_add_arg($args, "%s--ndb-extra-logging", $prefix);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3061,7 +3104,10 @@ sub mysqld_arguments ($$$$$) {
|
|||||||
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,
|
||||||
$clusters->[$slave->[$idx]->{'cluster'}]->{'connect_string'});
|
$clusters->[$slave->[$idx]->{'cluster'}]->{'connect_string'});
|
||||||
mtr_add_arg($args, "%s--ndb-extra-logging", $prefix);
|
if ( $mysql_version_id >= 50000 )
|
||||||
|
{
|
||||||
|
mtr_add_arg($args, "%s--ndb-extra-logging", $prefix);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} # end slave
|
} # end slave
|
||||||
|
|
||||||
@ -3646,16 +3692,21 @@ sub run_testcase_start_servers($) {
|
|||||||
{
|
{
|
||||||
# Test needs cluster, start an extra mysqld connected to cluster
|
# Test needs cluster, start an extra mysqld connected to cluster
|
||||||
|
|
||||||
# First wait for first mysql server to have created ndb system tables ok
|
if ( $mysql_version_id >= 50100 )
|
||||||
# FIXME This is a workaround so that only one mysqld creates the tables
|
|
||||||
if ( ! sleep_until_file_created(
|
|
||||||
"$master->[0]->{'path_myddir'}/cluster/apply_status.ndb",
|
|
||||||
$master->[0]->{'start_timeout'},
|
|
||||||
$master->[0]->{'pid'}))
|
|
||||||
{
|
{
|
||||||
mtr_report("Failed to create 'cluster/apply_status' table");
|
# First wait for first mysql server to have created ndb system
|
||||||
report_failure_and_restart($tinfo);
|
# tables ok FIXME This is a workaround so that only one mysqld
|
||||||
return;
|
# create the tables
|
||||||
|
if ( ! sleep_until_file_created(
|
||||||
|
"$master->[0]->{'path_myddir'}/cluster/apply_status.ndb",
|
||||||
|
$master->[0]->{'start_timeout'},
|
||||||
|
$master->[0]->{'pid'}))
|
||||||
|
{
|
||||||
|
mtr_report_test_name($tinfo);
|
||||||
|
mtr_report("Failed to create 'cluster/apply_status' table");
|
||||||
|
report_failure_and_restart($tinfo);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
mtr_tofile($master->[1]->{'path_myerr'},"CURRENT_TEST: $tname\n");
|
mtr_tofile($master->[1]->{'path_myerr'},"CURRENT_TEST: $tname\n");
|
||||||
|
|
||||||
@ -3679,6 +3730,7 @@ sub run_testcase_start_servers($) {
|
|||||||
|
|
||||||
unless ( mtr_im_start($instance_manager, $tinfo->{im_opts}) )
|
unless ( mtr_im_start($instance_manager, $tinfo->{im_opts}) )
|
||||||
{
|
{
|
||||||
|
mtr_report_test_name($tinfo);
|
||||||
report_failure_and_restart($tinfo);
|
report_failure_and_restart($tinfo);
|
||||||
mtr_report("Failed to start Instance Manager. " .
|
mtr_report("Failed to start Instance Manager. " .
|
||||||
"The test '$tname' is marked as failed.");
|
"The test '$tname' is marked as failed.");
|
||||||
|
Reference in New Issue
Block a user