Commit f7893fcc authored by unknown's avatar unknown

Merge mysql.com:/home/jonas/src/mysql-4.1

into mysql.com:/home/jonas/src/mysql-5.0

parents 5002b603 aea5775c
...@@ -35,13 +35,72 @@ sub mtr_get_opts_from_file ($) { ...@@ -35,13 +35,72 @@ sub mtr_get_opts_from_file ($) {
while ( <FILE> ) while ( <FILE> )
{ {
chomp; chomp;
s/\$MYSQL_TEST_DIR/$::glob_mysql_test_dir/g;
push(@args, split(' ', $_)); # --set-variable=init_connect=set @a='a\\0c'
s/^\s+//; # Remove leading space
s/\s+$//; # Remove ending space
# This is strange, but we need to fill whitespace inside
# quotes with something, to remove later. We do this to
# be able to split on space. Else, we have trouble with
# options like
#
# --someopt="--insideopt1 --insideopt2"
#
# But still with this, we are not 100% sure it is right,
# we need a shell to do it right.
# print STDERR "\n";
# print STDERR "AAA: $_\n";
s/\'([^\'\"]*)\'/unspace($1,"\x0a")/ge;
s/\"([^\'\"]*)\"/unspace($1,"\x0b")/ge;
s/\'([^\'\"]*)\'/unspace($1,"\x0a")/ge;
s/\"([^\'\"]*)\"/unspace($1,"\x0b")/ge;
# print STDERR "BBB: $_\n";
# foreach my $arg (/(--?\w.*?)(?=\s+--?\w|$)/)
# FIXME ENV vars should be expanded!!!!
foreach my $arg (split(/[ \t]+/))
{
$arg =~ tr/\x11\x0a\x0b/ \'\"/; # Put back real chars
# The outermost quotes has to go
$arg =~ s/^([^\'\"]*)\'(.*)\'([^\'\"]*)$/$1$2$3/
or $arg =~ s/^([^\'\"]*)\"(.*)\"([^\'\"]*)$/$1$2$3/;
$arg =~ s/\\\\/\\/g;
$arg =~ s/\$\{(\w+)\}/envsubst($1)/ge;
$arg =~ s/\$(\w+)/envsubst($1)/ge;
# print STDERR "ARG: $arg\n";
push(@args, $arg);
}
} }
close FILE; close FILE;
return \@args; return \@args;
} }
sub envsubst {
my $string= shift;
if ( ! defined $ENV{$string} )
{
mtr_error("opt file referense \$$string that is unknown");
}
return $ENV{$string};
}
sub unspace {
my $string= shift;
my $quote= shift;
$string =~ s/[ \t]/\x11/g;
return "$quote$string$quote";
}
sub mtr_fromfile ($) { sub mtr_fromfile ($) {
my $file= shift; my $file= shift;
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
# and is part of the translation of the Bourne shell script with the # and is part of the translation of the Bourne shell script with the
# same name. # same name.
use Carp qw(cluck); #use Carp qw(cluck);
use strict; use strict;
use POSIX ":sys_wait_h"; use POSIX ":sys_wait_h";
...@@ -64,18 +64,6 @@ sub spawn_impl ($$$$$$$) { ...@@ -64,18 +64,6 @@ sub spawn_impl ($$$$$$$) {
my $error= shift; my $error= shift;
my $pid_file= shift; # FIXME my $pid_file= shift; # FIXME
# FIXME really needing a PATH???
# $ENV{'PATH'}= "/bin:/usr/bin:/usr/local/bin:/usr/bsd:/usr/X11R6/bin:/usr/openwin/bin:/usr/bin/X11:$ENV{'PATH'}";
$ENV{'TZ'}= "GMT-3"; # for UNIX_TIMESTAMP tests to work
$ENV{'LC_COLLATE'}= "C";
$ENV{'MYSQL_TEST_DIR'}= $::glob_mysql_test_dir;
$ENV{'MASTER_MYPORT'}= $::opt_master_myport;
$ENV{'SLAVE_MYPORT'}= $::opt_slave_myport;
# $ENV{'MYSQL_TCP_PORT'}= '@MYSQL_TCP_PORT@'; # FIXME
$ENV{'MYSQL_TCP_PORT'}= 3306;
$ENV{'MASTER_MYSOCK'}= $::master->[0]->{'path_mysock'};
if ( $::opt_script_debug ) if ( $::opt_script_debug )
{ {
print STDERR "\n"; print STDERR "\n";
...@@ -85,17 +73,21 @@ sub spawn_impl ($$$$$$$) { ...@@ -85,17 +73,21 @@ sub spawn_impl ($$$$$$$) {
print STDERR "#### ", "STDERR $error\n" if $error; print STDERR "#### ", "STDERR $error\n" if $error;
if ( $join ) if ( $join )
{ {
print STDERR "#### ", "run"; print STDERR "#### ", "RUN ";
} }
else else
{ {
print STDERR "#### ", "spawn"; print STDERR "#### ", "SPAWN ";
} }
print STDERR "$path ", join(" ",@$arg_list_t), "\n"; print STDERR "$path ", join(" ",@$arg_list_t), "\n";
print STDERR "#### ", "-" x 78, "\n"; print STDERR "#### ", "-" x 78, "\n";
} }
my $pid= fork(); my $pid= fork();
if ( ! defined $pid )
{
mtr_error("$path ($pid) can't be forked");
}
if ( $pid ) if ( $pid )
{ {
...@@ -104,17 +96,22 @@ sub spawn_impl ($$$$$$$) { ...@@ -104,17 +96,22 @@ sub spawn_impl ($$$$$$$) {
{ {
# We run a command and wait for the result # We run a command and wait for the result
# FIXME this need to be improved # FIXME this need to be improved
waitpid($pid,0); my $res= waitpid($pid,0);
if ( $res == -1 )
{
mtr_error("$path ($pid) got lost somehow");
}
my $exit_value= $? >> 8; my $exit_value= $? >> 8;
my $signal_num= $? & 127; my $signal_num= $? & 127;
my $dumped_core= $? & 128; my $dumped_core= $? & 128;
if ( $signal_num ) if ( $signal_num )
{ {
mtr_error("spawn got signal $signal_num"); mtr_error("$path ($pid) got signal $signal_num");
} }
if ( $dumped_core ) if ( $dumped_core )
{ {
mtr_error("spawn dumped core"); mtr_error("$path ($pid) dumped core");
} }
return $exit_value; return $exit_value;
} }
...@@ -326,7 +323,8 @@ sub mtr_stop_mysqld_servers ($$) { ...@@ -326,7 +323,8 @@ sub mtr_stop_mysqld_servers ($$) {
mtr_init_args(\$args); mtr_init_args(\$args);
mtr_add_arg($args, "--no-defaults"); mtr_add_arg($args, "--no-defaults");
mtr_add_arg($args, "-uroot"); mtr_add_arg($args, "--user=%s", $::opt_user);
mtr_add_arg($args, "--password=");
if ( -e $srv->{'sockfile'} ) if ( -e $srv->{'sockfile'} )
{ {
mtr_add_arg($args, "--socket=%s", $srv->{'sockfile'}); mtr_add_arg($args, "--socket=%s", $srv->{'sockfile'});
...@@ -336,7 +334,8 @@ sub mtr_stop_mysqld_servers ($$) { ...@@ -336,7 +334,8 @@ sub mtr_stop_mysqld_servers ($$) {
mtr_add_arg($args, "--port=%s", $srv->{'port'}); mtr_add_arg($args, "--port=%s", $srv->{'port'});
} }
mtr_add_arg($args, "--connect_timeout=5"); mtr_add_arg($args, "--connect_timeout=5");
mtr_add_arg($args, "--shutdown_timeout=70"); mtr_add_arg($args, "--shutdown_timeout=20");
mtr_add_arg($args, "--protocol=tcp"); # FIXME new thing, will it help?!
mtr_add_arg($args, "shutdown"); mtr_add_arg($args, "shutdown");
# We don't wait for termination of mysqladmin # We don't wait for termination of mysqladmin
mtr_spawn($::exe_mysqladmin, $args, mtr_spawn($::exe_mysqladmin, $args,
...@@ -361,6 +360,10 @@ sub mtr_stop_mysqld_servers ($$) { ...@@ -361,6 +360,10 @@ sub mtr_stop_mysqld_servers ($$) {
{ {
last PIDSOCKFILEREMOVED; last PIDSOCKFILEREMOVED;
} }
if ( $loop % 20 == 1 )
{
mtr_warning("Still processes alive after 10 seconds, retrying for $loop seconds...");
}
mtr_debug("Sleep for 1 second waiting for pid and socket file removal"); mtr_debug("Sleep for 1 second waiting for pid and socket file removal");
sleep(1); # One second sleep(1); # One second
} }
...@@ -464,4 +467,40 @@ sub stop_reap_all { ...@@ -464,4 +467,40 @@ sub stop_reap_all {
$SIG{CHLD}= 'DEFAULT'; $SIG{CHLD}= 'DEFAULT';
} }
##############################################################################
#
# Wait for a file to be created
#
##############################################################################
sub sleep_until_file_created ($$) {
my $pidfile= shift;
my $timeout= shift;
my $loop= $timeout;
while ( $loop-- )
{
if ( -r $pidfile )
{
return;
}
mtr_debug("Sleep for 1 second waiting for creation of $pidfile");
if ( $loop % 20 == 1 )
{
mtr_warning("Waiting for $pidfile to be created, still trying for $loop seconds...");
}
sleep(1);
}
if ( ! -r $pidfile )
{
mtr_error("No $pidfile was created");
}
}
1; 1;
...@@ -232,6 +232,8 @@ our $opt_local_master; ...@@ -232,6 +232,8 @@ our $opt_local_master;
our $master; # Will be struct in C our $master; # Will be struct in C
our $slave; our $slave;
our $opt_master_myport;
our $opt_slave_myport;
our $opt_ndbcluster_port; our $opt_ndbcluster_port;
our $opt_ndbconnectstring; our $opt_ndbconnectstring;
...@@ -248,16 +250,10 @@ our $opt_skip_rpl; ...@@ -248,16 +250,10 @@ our $opt_skip_rpl;
our $opt_skip_test; our $opt_skip_test;
our $opt_sleep; our $opt_sleep;
our $opt_ps_protocol; our $opt_ps_protocol;
# FIXME all of the sleep time handling needs cleanup
our $opt_sleep_time_after_restart= 1; our $opt_sleep_time_after_restart= 1;
our $opt_sleep_time_for_delete= 10; our $opt_sleep_time_for_delete= 10;
our $opt_sleep_time_for_first_master= 400; # enough time create innodb tables
our $opt_sleep_time_for_second_master= 400;
our $opt_sleep_time_for_first_slave= 400;
our $opt_sleep_time_for_second_slave= 30;
our $opt_socket; our $opt_socket;
...@@ -270,7 +266,7 @@ our $opt_strace_client; ...@@ -270,7 +266,7 @@ our $opt_strace_client;
our $opt_timer; our $opt_timer;
our $opt_user;
our $opt_user_test; our $opt_user_test;
our $opt_valgrind; our $opt_valgrind;
...@@ -299,6 +295,7 @@ sub main (); ...@@ -299,6 +295,7 @@ sub main ();
sub initial_setup (); sub initial_setup ();
sub command_line_setup (); sub command_line_setup ();
sub executable_setup (); sub executable_setup ();
sub environment_setup ();
sub kill_and_cleanup (); sub kill_and_cleanup ();
sub collect_test_cases ($); sub collect_test_cases ($);
sub sleep_until_file_created ($$); sub sleep_until_file_created ($$);
...@@ -332,6 +329,7 @@ sub main () { ...@@ -332,6 +329,7 @@ sub main () {
initial_setup(); initial_setup();
command_line_setup(); command_line_setup();
executable_setup(); executable_setup();
environment_setup();
signal_setup(); signal_setup();
if ( $opt_gcov ) if ( $opt_gcov )
...@@ -449,12 +447,9 @@ sub command_line_setup () { ...@@ -449,12 +447,9 @@ sub command_line_setup () {
$path_manager_log= "$glob_mysql_test_dir/var/log/manager.log"; $path_manager_log= "$glob_mysql_test_dir/var/log/manager.log";
$opt_current_test= "$glob_mysql_test_dir/var/log/current_test"; $opt_current_test= "$glob_mysql_test_dir/var/log/current_test";
my $opt_master_myport= 9306; $opt_master_myport= 9306;
my $opt_slave_myport= 9308; $opt_slave_myport= 9308;
$opt_ndbcluster_port= 9350; $opt_ndbcluster_port= 9350;
$opt_sleep_time_for_delete= 10;
my $opt_user;
# Read the command line # Read the command line
# Note: Keep list, and the order, in sync with usage at end of this file # Note: Keep list, and the order, in sync with usage at end of this file
...@@ -545,6 +540,7 @@ sub command_line_setup () { ...@@ -545,6 +540,7 @@ sub command_line_setup () {
$master->[0]->{'path_mypid'}= "$glob_mysql_test_dir/var/run/master.pid"; $master->[0]->{'path_mypid'}= "$glob_mysql_test_dir/var/run/master.pid";
$master->[0]->{'path_mysock'}= "$opt_tmpdir/master.sock"; $master->[0]->{'path_mysock'}= "$opt_tmpdir/master.sock";
$master->[0]->{'path_myport'}= $opt_master_myport; $master->[0]->{'path_myport'}= $opt_master_myport;
$master->[0]->{'start_timeout'}= 400; # enough time create innodb tables
$master->[1]->{'path_myddir'}= "$glob_mysql_test_dir/var/master1-data"; $master->[1]->{'path_myddir'}= "$glob_mysql_test_dir/var/master1-data";
$master->[1]->{'path_myerr'}= "$glob_mysql_test_dir/var/log/master1.err"; $master->[1]->{'path_myerr'}= "$glob_mysql_test_dir/var/log/master1.err";
...@@ -552,6 +548,7 @@ sub command_line_setup () { ...@@ -552,6 +548,7 @@ sub command_line_setup () {
$master->[1]->{'path_mypid'}= "$glob_mysql_test_dir/var/run/master1.pid"; $master->[1]->{'path_mypid'}= "$glob_mysql_test_dir/var/run/master1.pid";
$master->[1]->{'path_mysock'}= "$opt_tmpdir/master1.sock"; $master->[1]->{'path_mysock'}= "$opt_tmpdir/master1.sock";
$master->[1]->{'path_myport'}= $opt_master_myport + 1; $master->[1]->{'path_myport'}= $opt_master_myport + 1;
$master->[1]->{'start_timeout'}= 400; # enough time create innodb tables
$slave->[0]->{'path_myddir'}= "$glob_mysql_test_dir/var/slave-data"; $slave->[0]->{'path_myddir'}= "$glob_mysql_test_dir/var/slave-data";
$slave->[0]->{'path_myerr'}= "$glob_mysql_test_dir/var/log/slave.err"; $slave->[0]->{'path_myerr'}= "$glob_mysql_test_dir/var/log/slave.err";
...@@ -559,6 +556,7 @@ sub command_line_setup () { ...@@ -559,6 +556,7 @@ sub command_line_setup () {
$slave->[0]->{'path_mypid'}= "$glob_mysql_test_dir/var/run/slave.pid"; $slave->[0]->{'path_mypid'}= "$glob_mysql_test_dir/var/run/slave.pid";
$slave->[0]->{'path_mysock'}= "$opt_tmpdir/slave.sock"; $slave->[0]->{'path_mysock'}= "$opt_tmpdir/slave.sock";
$slave->[0]->{'path_myport'}= $opt_slave_myport; $slave->[0]->{'path_myport'}= $opt_slave_myport;
$slave->[0]->{'start_timeout'}= 400;
$slave->[1]->{'path_myddir'}= "$glob_mysql_test_dir/var/slave1-data"; $slave->[1]->{'path_myddir'}= "$glob_mysql_test_dir/var/slave1-data";
$slave->[1]->{'path_myerr'}= "$glob_mysql_test_dir/var/log/slave1.err"; $slave->[1]->{'path_myerr'}= "$glob_mysql_test_dir/var/log/slave1.err";
...@@ -566,6 +564,7 @@ sub command_line_setup () { ...@@ -566,6 +564,7 @@ sub command_line_setup () {
$slave->[1]->{'path_mypid'}= "$glob_mysql_test_dir/var/run/slave1.pid"; $slave->[1]->{'path_mypid'}= "$glob_mysql_test_dir/var/run/slave1.pid";
$slave->[1]->{'path_mysock'}= "$opt_tmpdir/slave1.sock"; $slave->[1]->{'path_mysock'}= "$opt_tmpdir/slave1.sock";
$slave->[1]->{'path_myport'}= $opt_slave_myport + 1; $slave->[1]->{'path_myport'}= $opt_slave_myport + 1;
$slave->[1]->{'start_timeout'}= 30;
$slave->[2]->{'path_myddir'}= "$glob_mysql_test_dir/var/slave2-data"; $slave->[2]->{'path_myddir'}= "$glob_mysql_test_dir/var/slave2-data";
$slave->[2]->{'path_myerr'}= "$glob_mysql_test_dir/var/log/slave2.err"; $slave->[2]->{'path_myerr'}= "$glob_mysql_test_dir/var/log/slave2.err";
...@@ -573,6 +572,7 @@ sub command_line_setup () { ...@@ -573,6 +572,7 @@ sub command_line_setup () {
$slave->[2]->{'path_mypid'}= "$glob_mysql_test_dir/var/run/slave2.pid"; $slave->[2]->{'path_mypid'}= "$glob_mysql_test_dir/var/run/slave2.pid";
$slave->[2]->{'path_mysock'}= "$opt_tmpdir/slave2.sock"; $slave->[2]->{'path_mysock'}= "$opt_tmpdir/slave2.sock";
$slave->[2]->{'path_myport'}= $opt_slave_myport + 2; $slave->[2]->{'path_myport'}= $opt_slave_myport + 2;
$slave->[2]->{'start_timeout'}= 30;
# Do sanity checks of command line arguments # Do sanity checks of command line arguments
...@@ -594,16 +594,6 @@ sub command_line_setup () { ...@@ -594,16 +594,6 @@ sub command_line_setup () {
$master->[0]->{'path_mysock'}= $opt_socket; $master->[0]->{'path_mysock'}= $opt_socket;
} }
# --------------------------------------------------------------------------
# Set LD_LIBRARY_PATH if we are using shared libraries
# --------------------------------------------------------------------------
$ENV{'LD_LIBRARY_PATH'}=
"$glob_basedir/lib:$glob_basedir/libmysql/.libs" .
($ENV{'LD_LIBRARY_PATH'} ? ":$ENV{'LD_LIBRARY_PATH'}" : "");
$ENV{'DYLD_LIBRARY_PATH'}=
"$glob_basedir/lib:$glob_basedir/libmysql/.libs" .
($ENV{'DYLD_LIBRARY_PATH'} ? ":$ENV{'DYLD_LIBRARY_PATH'}" : "");
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
# Look at the command line options and set script flags # Look at the command line options and set script flags
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
...@@ -741,7 +731,7 @@ sub executable_setup () { ...@@ -741,7 +731,7 @@ sub executable_setup () {
} }
else else
{ {
mtr_error("Cannot find embedded server 'mysqltest'"); mtr_error("Can't find embedded server 'mysqltest'");
} }
$path_tests_bindir= "$glob_basedir/libmysqld/examples"; $path_tests_bindir= "$glob_basedir/libmysqld/examples";
} }
...@@ -831,6 +821,41 @@ sub executable_setup () { ...@@ -831,6 +821,41 @@ sub executable_setup () {
} }
##############################################################################
#
# Set environment to be used by childs of this process
#
##############################################################################
# Note that some env is setup in spawn/run, in "mtr_process.pl"
sub environment_setup () {
# --------------------------------------------------------------------------
# Set LD_LIBRARY_PATH if we are using shared libraries
# --------------------------------------------------------------------------
$ENV{'LD_LIBRARY_PATH'}=
"$glob_basedir/lib:$glob_basedir/libmysql/.libs" .
($ENV{'LD_LIBRARY_PATH'} ? ":$ENV{'LD_LIBRARY_PATH'}" : "");
$ENV{'DYLD_LIBRARY_PATH'}=
"$glob_basedir/lib:$glob_basedir/libmysql/.libs" .
($ENV{'DYLD_LIBRARY_PATH'} ? ":$ENV{'DYLD_LIBRARY_PATH'}" : "");
# --------------------------------------------------------------------------
# Also command lines in .opt files may contain env vars
# --------------------------------------------------------------------------
$ENV{'LC_COLLATE'}= "C";
$ENV{'MYSQL_TEST_DIR'}= $glob_mysql_test_dir;
$ENV{'MASTER_MYPORT'}= $opt_master_myport;
$ENV{'SLAVE_MYPORT'}= $opt_slave_myport;
# $ENV{'MYSQL_TCP_PORT'}= '@MYSQL_TCP_PORT@'; # FIXME
$ENV{'MYSQL_TCP_PORT'}= 3306;
$ENV{'MASTER_MYSOCK'}= $master->[0]->{'path_mysock'};
}
############################################################################## ##############################################################################
# #
# If we get a ^C, we try to clean up before termination # If we get a ^C, we try to clean up before termination
...@@ -922,6 +947,7 @@ sub collect_test_cases ($) { ...@@ -922,6 +947,7 @@ sub collect_test_cases ($) {
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
$tinfo->{'path'}= $path; $tinfo->{'path'}= $path;
$tinfo->{'timezone'}= "GMT-3"; # for UNIX_TIMESTAMP tests to work
if ( defined mtr_match_prefix($tname,"rpl") ) if ( defined mtr_match_prefix($tname,"rpl") )
{ {
...@@ -967,7 +993,7 @@ sub collect_test_cases ($) { ...@@ -967,7 +993,7 @@ sub collect_test_cases ($) {
if ( defined $value ) if ( defined $value )
{ {
$ENV{'TZ'}= $value; # FIXME pass this on somehow.... $tinfo->{'timezone'}= $value;
$extra_master_opt= []; $extra_master_opt= [];
$tinfo->{'master_restart'}= 0; $tinfo->{'master_restart'}= 0;
last; last;
...@@ -1071,6 +1097,7 @@ sub kill_and_cleanup () { ...@@ -1071,6 +1097,7 @@ sub kill_and_cleanup () {
# leftovers from previous runs. # leftovers from previous runs.
mtr_report("Killing Possible Leftover Processes"); mtr_report("Killing Possible Leftover Processes");
mkpath("$glob_mysql_test_dir/var/log"); # Needed for mysqladmin log
mtr_kill_leftovers(); mtr_kill_leftovers();
} }
...@@ -1092,52 +1119,28 @@ sub kill_and_cleanup () { ...@@ -1092,52 +1119,28 @@ sub kill_and_cleanup () {
mkpath("$glob_mysql_test_dir/var/tmp"); mkpath("$glob_mysql_test_dir/var/tmp");
mkpath($opt_tmpdir); mkpath($opt_tmpdir);
# FIXME do we really need to create these all, or are they
# created for us when tables are created?
rmtree("$master->[0]->{'path_myddir'}"); rmtree("$master->[0]->{'path_myddir'}");
mkpath("$master->[0]->{'path_myddir'}/mysql"); # Need to create subdir?! mkpath("$master->[0]->{'path_myddir'}/mysql");
mkpath("$master->[0]->{'path_myddir'}/test"); mkpath("$master->[0]->{'path_myddir'}/test");
rmtree("$master->[1]->{'path_myddir'}"); rmtree("$master->[1]->{'path_myddir'}");
mkpath("$master->[1]->{'path_myddir'}/mysql"); # Need to create subdir?! mkpath("$master->[1]->{'path_myddir'}/mysql");
mkpath("$master->[1]->{'path_myddir'}/test"); mkpath("$master->[1]->{'path_myddir'}/test");
rmtree("$slave->[0]->{'path_myddir'}"); rmtree("$slave->[0]->{'path_myddir'}");
mkpath("$slave->[0]->{'path_myddir'}/mysql"); # Need to create subdir?! mkpath("$slave->[0]->{'path_myddir'}/mysql");
mkpath("$slave->[0]->{'path_myddir'}/test"); mkpath("$slave->[0]->{'path_myddir'}/test");
rmtree("$slave->[1]->{'path_myddir'}"); rmtree("$slave->[1]->{'path_myddir'}");
mkpath("$slave->[1]->{'path_myddir'}/mysql"); # Need to create subdir?! mkpath("$slave->[1]->{'path_myddir'}/mysql");
mkpath("$slave->[1]->{'path_myddir'}/test"); mkpath("$slave->[1]->{'path_myddir'}/test");
rmtree("$slave->[2]->{'path_myddir'}"); rmtree("$slave->[2]->{'path_myddir'}");
mkpath("$slave->[2]->{'path_myddir'}/mysql"); # Need to create subdir?! mkpath("$slave->[2]->{'path_myddir'}/mysql");
mkpath("$slave->[2]->{'path_myddir'}/test"); mkpath("$slave->[2]->{'path_myddir'}/test");
$opt_wait_for_master= $opt_sleep_time_for_first_master;
$opt_wait_for_slave= $opt_sleep_time_for_first_slave;
}
# FIXME
sub sleep_until_file_created ($$) {
my $pidfile= shift;
my $timeout= shift;
my $loop= $timeout * 2;
while ( $loop-- )
{
if ( -r $pidfile )
{
return;
}
mtr_debug("Sleep for 1 second waiting for creation of $pidfile");
sleep(1);
}
if ( ! -r $pidfile )
{
mtr_error("No $pidfile was created");
}
} }
...@@ -1251,11 +1254,11 @@ sub run_suite () { ...@@ -1251,11 +1254,11 @@ sub run_suite () {
mtr_print_thick_line(); mtr_print_thick_line();
mtr_report("Finding Tests in $suite suite"); mtr_report("Finding Tests in the '$suite' suite");
my $tests= collect_test_cases($suite); my $tests= collect_test_cases($suite);
mtr_report("Starting Tests in $suite suite"); mtr_report("Starting Tests in the '$suite' suite");
mtr_print_header(); mtr_print_header();
...@@ -1412,6 +1415,8 @@ sub run_testcase ($) { ...@@ -1412,6 +1415,8 @@ sub run_testcase ($) {
# the preparation. # the preparation.
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
$ENV{'TZ'}= $tinfo->{'timezone'};
mtr_report_test_name($tinfo); mtr_report_test_name($tinfo);
mtr_tofile($master->[0]->{'path_myerr'},"CURRENT_TEST: $tname\n"); mtr_tofile($master->[0]->{'path_myerr'},"CURRENT_TEST: $tname\n");
...@@ -1778,6 +1783,7 @@ sub mysqld_arguments ($$$$$) { ...@@ -1778,6 +1783,7 @@ sub mysqld_arguments ($$$$$) {
} }
# FIXME strange,..... # FIXME strange,.....
# FIXME MYSQL_MYPORT is not set anythere?!
if ( $opt_local_master ) if ( $opt_local_master )
{ {
mtr_add_arg($args, "%s--host=127.0.0.1", $prefix); mtr_add_arg($args, "%s--host=127.0.0.1", $prefix);
...@@ -1888,8 +1894,7 @@ sub mysqld_start ($$$$) { ...@@ -1888,8 +1894,7 @@ sub mysqld_start ($$$$) {
$master->[$idx]->{'path_myerr'}, "") ) $master->[$idx]->{'path_myerr'}, "") )
{ {
sleep_until_file_created($master->[$idx]->{'path_mypid'}, sleep_until_file_created($master->[$idx]->{'path_mypid'},
$opt_wait_for_master); $master->[$idx]->{'start_timeout'});
$opt_wait_for_master= $opt_sleep_time_for_second_master;
return $pid; return $pid;
} }
} }
...@@ -1901,8 +1906,7 @@ sub mysqld_start ($$$$) { ...@@ -1901,8 +1906,7 @@ sub mysqld_start ($$$$) {
$slave->[$idx]->{'path_myerr'}, "") ) $slave->[$idx]->{'path_myerr'}, "") )
{ {
sleep_until_file_created($slave->[$idx]->{'path_mypid'}, sleep_until_file_created($slave->[$idx]->{'path_mypid'},
$opt_wait_for_slave); $master->[$idx]->{'start_timeout'});
$opt_wait_for_slave= $opt_sleep_time_for_second_slave;
return $pid; return $pid;
} }
} }
...@@ -1970,7 +1974,6 @@ sub run_mysqltest ($$) { ...@@ -1970,7 +1974,6 @@ sub run_mysqltest ($$) {
my $tinfo= shift; my $tinfo= shift;
my $master_opts= shift; my $master_opts= shift;
# FIXME set where????
my $cmdline_mysqldump= "$exe_mysqldump --no-defaults -uroot " . my $cmdline_mysqldump= "$exe_mysqldump --no-defaults -uroot " .
"--socket=$master->[0]->{'path_mysock'} --password="; "--socket=$master->[0]->{'path_mysock'} --password=";
if ( $opt_debug ) if ( $opt_debug )
...@@ -1992,6 +1995,9 @@ sub run_mysqltest ($$) { ...@@ -1992,6 +1995,9 @@ sub run_mysqltest ($$) {
"$exe_mysql --host=localhost --port=$master->[0]->{'path_myport'} " . "$exe_mysql --host=localhost --port=$master->[0]->{'path_myport'} " .
"--socket=$master->[0]->{'path_mysock'} --user=root --password="; "--socket=$master->[0]->{'path_mysock'} --user=root --password=";
# FIXME really needing a PATH???
# $ENV{'PATH'}= "/bin:/usr/bin:/usr/local/bin:/usr/bsd:/usr/X11R6/bin:/usr/openwin/bin:/usr/bin/X11:$ENV{'PATH'}";
$ENV{'MYSQL'}= $exe_mysql; $ENV{'MYSQL'}= $exe_mysql;
$ENV{'MYSQL_DUMP'}= $cmdline_mysqldump; $ENV{'MYSQL_DUMP'}= $cmdline_mysqldump;
$ENV{'MYSQL_BINLOG'}= $exe_mysqlbinlog; $ENV{'MYSQL_BINLOG'}= $exe_mysqlbinlog;
......
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