Loading mysql-test/lib/mtr_cases.pl +42 −39 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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); Loading @@ -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 ) { Loading Loading @@ -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"; Loading Loading @@ -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; } } } } Loading @@ -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], ); Loading mysql-test/lib/mtr_process.pl +0 −2 Original line number Diff line number Diff line Loading @@ -8,7 +8,6 @@ use Socket; use Errno; use strict; #use POSIX ":sys_wait_h"; use POSIX 'WNOHANG'; sub mtr_run ($$$$$$;$); Loading Loading @@ -1088,7 +1087,6 @@ sub mtr_kill_processes ($) { sub mtr_exit ($) { my $code= shift; # cluck("Called mtr_exit()"); mtr_timer_stop_all($::glob_timers); local $SIG{HUP} = 'IGNORE'; # ToDo: Signalling -$$ will only work if we are the process group Loading mysql-test/lib/mtr_report.pl +4 −8 Original line number Diff line number Diff line Loading @@ -130,16 +130,11 @@ sub mtr_report_test_failed ($) { my $tinfo= shift; $tinfo->{'result'}= 'MTR_RES_FAILED'; if ( $tinfo->{'timeout'} ) if ( defined $tinfo->{'timeout'} ) { print "[ fail ] timeout\n"; return; } elsif ( $tinfo->{'ndb_test'} and $::cluster->[0]->{'installed_ok'} eq "NO") { print "[ fail ] ndbcluster start failure\n"; return; } else { print "[ fail ]\n"; Loading Loading @@ -208,8 +203,9 @@ sub mtr_report_stats ($) { else { my $ratio= $tot_passed * 100 / $tot_tests; printf "Failed $tot_failed/$tot_tests tests, " . "%.2f\% were successful.\n\n", $ratio; print "Failed $tot_failed/$tot_tests tests, "; printf("%.2f", $ratio); print "\% were successful.\n\n"; print "The log files in var/log may give you some hint\n", "of what went wrong.\n", Loading mysql-test/lib/mtr_timer.pl +15 −14 Original line number Diff line number Diff line Loading @@ -4,23 +4,19 @@ # and is part of the translation of the Bourne shell script with the # same name. use Carp qw(cluck); use Socket; use Errno; use strict; #use POSIX ":sys_wait_h"; use POSIX 'WNOHANG'; sub mtr_init_timers (); sub mtr_timer_start($$$); sub mtr_timer_stop($$); sub mtr_timer_stop_all($); sub mtr_timer_waitpid($$$); ############################################################################## # # Initiate a structure shared by all timers # Initiate the structure shared by all timers # ############################################################################## Loading @@ -35,17 +31,19 @@ sub mtr_init_timers () { # Start, stop and poll a timer # # As alarm() isn't portable to Windows, we use separate processes to # implement timers. That is why there is a mtr_timer_waitpid(), as this # is where we catch a timeout. # implement timers. # ############################################################################## sub mtr_timer_start($$$) { my ($timers,$name,$duration)= @_; mtr_verbose("mtr_timer_start: $name, $duration"); if ( exists $timers->{'timers'}->{$name} ) { # We have an old running timer, kill it mtr_verbose("There is an old timer running"); mtr_timer_stop($timers,$name); } Loading @@ -57,7 +55,7 @@ sub mtr_timer_start($$$) { { if ( $! == $!{EAGAIN} ) # See "perldoc Errno" { mtr_debug("Got EAGAIN from fork(), sleep 1 second and redo"); mtr_warning("Got EAGAIN from fork(), sleep 1 second and redo"); sleep(1); redo FORK; } Loading @@ -70,6 +68,7 @@ sub mtr_timer_start($$$) { if ( $tpid ) { # Parent, record the information mtr_verbose("timer parent, record info($name, $tpid, $duration)"); $timers->{'timers'}->{$name}->{'pid'}= $tpid; $timers->{'timers'}->{$name}->{'duration'}= $duration; $timers->{'pids'}->{$tpid}= $name; Loading @@ -85,6 +84,7 @@ sub mtr_timer_start($$$) { $SIG{INT}= 'DEFAULT'; $0= "mtr_timer(timers,$name,$duration)"; mtr_verbose("timer child $name, sleep $duration"); sleep($duration); exit(0); } Loading @@ -95,9 +95,12 @@ sub mtr_timer_start($$$) { sub mtr_timer_stop ($$) { my ($timers,$name)= @_; mtr_verbose("mtr_timer_stop: $name"); if ( exists $timers->{'timers'}->{$name} ) { my $tpid= $timers->{'timers'}->{$name}->{'pid'}; mtr_verbose("Stopping timer with pid $tpid"); # FIXME as Cygwin reuses pids fast, maybe check that is # the expected process somehow?! Loading @@ -114,7 +117,7 @@ sub mtr_timer_stop ($$) { } else { mtr_debug("Asked to stop timer \"$name\" not started"); mtr_error("Asked to stop timer \"$name\" not started"); return 0; } } Loading @@ -136,10 +139,8 @@ sub mtr_timer_timeout ($$) { return "" unless exists $timers->{'pids'}->{$pid}; # We got a timeout my $name= $timers->{'pids'}->{$pid}; mtr_timer_stop($timers, $timers->{'timers'}->{$name}); return $name; # We got a timeout, return the name ot the timer return $timers->{'pids'}->{$pid}; } 1; mysql-test/mysql-test-run.pl +43 −35 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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; Loading Loading @@ -391,6 +392,8 @@ sub main () { my ($need_ndbcluster,$need_im); foreach my $test (@$tests) { next if $test->{skip}; $need_ndbcluster||= $test->{ndb_test}; $need_im||= $test->{component_id} eq 'im'; Loading Loading @@ -570,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' Loading Loading @@ -844,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 ) Loading Loading @@ -1483,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"); } Loading Loading @@ -1868,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 { Loading Loading @@ -2040,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 ) Loading @@ -2057,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'}); Loading Loading @@ -2475,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) { # 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 cluster"); mtr_warning("Failed to start install of $clusters->[1]->{name}"); $cluster_started_ok= 0; } Loading Loading @@ -2512,9 +2525,6 @@ sub mysql_install_db () { } } # Stop clusters... stop_all_servers(); return 0; } Loading Loading @@ -2753,10 +2763,9 @@ sub run_testcase_check_skip_test($) # If test needs this cluster, check it was installed ok if ( !$cluster->{'installed_ok'} ) { mtr_tofile($path_timefile, "Test marked as failed because $cluster->{'name'} " . "was not installed ok!"); mtr_report_test_name($tinfo); $tinfo->{comment}= "Cluster $cluster->{'name'} was not installed ok"; mtr_report_test_failed($tinfo); return 1; } Loading Loading @@ -2879,10 +2888,8 @@ sub run_testcase ($) { # Can't restart a running server that may be in use if ( $glob_use_running_server ) { $tinfo->{'skip'}= 1; $tinfo->{'comment'}= "Can't restart a running server"; mtr_report_test_name($tinfo); $tinfo->{comment}= "Can't restart a running server"; mtr_report_test_skipped($tinfo); return; } Loading @@ -2906,6 +2913,7 @@ sub run_testcase ($) { # ---------------------------------------------------------------------- if ( $opt_start_and_exit or $opt_start_dirty ) { mtr_timer_stop_all($glob_timers); mtr_report("\nServers started, exiting"); exit(0); } Loading @@ -2932,16 +2940,16 @@ sub run_testcase ($) { $tinfo->{'timeout'}= 1; # Mark as timeout report_failure_and_restart($tinfo); } else { # Test case failed, if in control mysqltest returns 1 if ( $res != 1 ) elsif ( $res == 1 ) { mtr_tofile($path_timefile, "mysqltest returned unexpected code $res, " . "it has probably crashed"); # Test case failure reported by mysqltest report_failure_and_restart($tinfo); } else { # mysqltest failed, probably crashed $tinfo->{comment}= "mysqltest returned unexpected code $res, it has probably crashed"; report_failure_and_restart($tinfo); } Loading Loading @@ -3593,14 +3601,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 Loading Loading @@ -4456,6 +4464,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 Loading @@ -4472,7 +4481,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 Loading
mysql-test/lib/mtr_cases.pl +42 −39 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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); Loading @@ -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 ) { Loading Loading @@ -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"; Loading Loading @@ -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; } } } } Loading @@ -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], ); Loading
mysql-test/lib/mtr_process.pl +0 −2 Original line number Diff line number Diff line Loading @@ -8,7 +8,6 @@ use Socket; use Errno; use strict; #use POSIX ":sys_wait_h"; use POSIX 'WNOHANG'; sub mtr_run ($$$$$$;$); Loading Loading @@ -1088,7 +1087,6 @@ sub mtr_kill_processes ($) { sub mtr_exit ($) { my $code= shift; # cluck("Called mtr_exit()"); mtr_timer_stop_all($::glob_timers); local $SIG{HUP} = 'IGNORE'; # ToDo: Signalling -$$ will only work if we are the process group Loading
mysql-test/lib/mtr_report.pl +4 −8 Original line number Diff line number Diff line Loading @@ -130,16 +130,11 @@ sub mtr_report_test_failed ($) { my $tinfo= shift; $tinfo->{'result'}= 'MTR_RES_FAILED'; if ( $tinfo->{'timeout'} ) if ( defined $tinfo->{'timeout'} ) { print "[ fail ] timeout\n"; return; } elsif ( $tinfo->{'ndb_test'} and $::cluster->[0]->{'installed_ok'} eq "NO") { print "[ fail ] ndbcluster start failure\n"; return; } else { print "[ fail ]\n"; Loading Loading @@ -208,8 +203,9 @@ sub mtr_report_stats ($) { else { my $ratio= $tot_passed * 100 / $tot_tests; printf "Failed $tot_failed/$tot_tests tests, " . "%.2f\% were successful.\n\n", $ratio; print "Failed $tot_failed/$tot_tests tests, "; printf("%.2f", $ratio); print "\% were successful.\n\n"; print "The log files in var/log may give you some hint\n", "of what went wrong.\n", Loading
mysql-test/lib/mtr_timer.pl +15 −14 Original line number Diff line number Diff line Loading @@ -4,23 +4,19 @@ # and is part of the translation of the Bourne shell script with the # same name. use Carp qw(cluck); use Socket; use Errno; use strict; #use POSIX ":sys_wait_h"; use POSIX 'WNOHANG'; sub mtr_init_timers (); sub mtr_timer_start($$$); sub mtr_timer_stop($$); sub mtr_timer_stop_all($); sub mtr_timer_waitpid($$$); ############################################################################## # # Initiate a structure shared by all timers # Initiate the structure shared by all timers # ############################################################################## Loading @@ -35,17 +31,19 @@ sub mtr_init_timers () { # Start, stop and poll a timer # # As alarm() isn't portable to Windows, we use separate processes to # implement timers. That is why there is a mtr_timer_waitpid(), as this # is where we catch a timeout. # implement timers. # ############################################################################## sub mtr_timer_start($$$) { my ($timers,$name,$duration)= @_; mtr_verbose("mtr_timer_start: $name, $duration"); if ( exists $timers->{'timers'}->{$name} ) { # We have an old running timer, kill it mtr_verbose("There is an old timer running"); mtr_timer_stop($timers,$name); } Loading @@ -57,7 +55,7 @@ sub mtr_timer_start($$$) { { if ( $! == $!{EAGAIN} ) # See "perldoc Errno" { mtr_debug("Got EAGAIN from fork(), sleep 1 second and redo"); mtr_warning("Got EAGAIN from fork(), sleep 1 second and redo"); sleep(1); redo FORK; } Loading @@ -70,6 +68,7 @@ sub mtr_timer_start($$$) { if ( $tpid ) { # Parent, record the information mtr_verbose("timer parent, record info($name, $tpid, $duration)"); $timers->{'timers'}->{$name}->{'pid'}= $tpid; $timers->{'timers'}->{$name}->{'duration'}= $duration; $timers->{'pids'}->{$tpid}= $name; Loading @@ -85,6 +84,7 @@ sub mtr_timer_start($$$) { $SIG{INT}= 'DEFAULT'; $0= "mtr_timer(timers,$name,$duration)"; mtr_verbose("timer child $name, sleep $duration"); sleep($duration); exit(0); } Loading @@ -95,9 +95,12 @@ sub mtr_timer_start($$$) { sub mtr_timer_stop ($$) { my ($timers,$name)= @_; mtr_verbose("mtr_timer_stop: $name"); if ( exists $timers->{'timers'}->{$name} ) { my $tpid= $timers->{'timers'}->{$name}->{'pid'}; mtr_verbose("Stopping timer with pid $tpid"); # FIXME as Cygwin reuses pids fast, maybe check that is # the expected process somehow?! Loading @@ -114,7 +117,7 @@ sub mtr_timer_stop ($$) { } else { mtr_debug("Asked to stop timer \"$name\" not started"); mtr_error("Asked to stop timer \"$name\" not started"); return 0; } } Loading @@ -136,10 +139,8 @@ sub mtr_timer_timeout ($$) { return "" unless exists $timers->{'pids'}->{$pid}; # We got a timeout my $name= $timers->{'pids'}->{$pid}; mtr_timer_stop($timers, $timers->{'timers'}->{$name}); return $name; # We got a timeout, return the name ot the timer return $timers->{'pids'}->{$pid}; } 1;
mysql-test/mysql-test-run.pl +43 −35 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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; Loading Loading @@ -391,6 +392,8 @@ sub main () { my ($need_ndbcluster,$need_im); foreach my $test (@$tests) { next if $test->{skip}; $need_ndbcluster||= $test->{ndb_test}; $need_im||= $test->{component_id} eq 'im'; Loading Loading @@ -570,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' Loading Loading @@ -844,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 ) Loading Loading @@ -1483,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"); } Loading Loading @@ -1868,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 { Loading Loading @@ -2040,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 ) Loading @@ -2057,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'}); Loading Loading @@ -2475,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) { # 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 cluster"); mtr_warning("Failed to start install of $clusters->[1]->{name}"); $cluster_started_ok= 0; } Loading Loading @@ -2512,9 +2525,6 @@ sub mysql_install_db () { } } # Stop clusters... stop_all_servers(); return 0; } Loading Loading @@ -2753,10 +2763,9 @@ sub run_testcase_check_skip_test($) # If test needs this cluster, check it was installed ok if ( !$cluster->{'installed_ok'} ) { mtr_tofile($path_timefile, "Test marked as failed because $cluster->{'name'} " . "was not installed ok!"); mtr_report_test_name($tinfo); $tinfo->{comment}= "Cluster $cluster->{'name'} was not installed ok"; mtr_report_test_failed($tinfo); return 1; } Loading Loading @@ -2879,10 +2888,8 @@ sub run_testcase ($) { # Can't restart a running server that may be in use if ( $glob_use_running_server ) { $tinfo->{'skip'}= 1; $tinfo->{'comment'}= "Can't restart a running server"; mtr_report_test_name($tinfo); $tinfo->{comment}= "Can't restart a running server"; mtr_report_test_skipped($tinfo); return; } Loading @@ -2906,6 +2913,7 @@ sub run_testcase ($) { # ---------------------------------------------------------------------- if ( $opt_start_and_exit or $opt_start_dirty ) { mtr_timer_stop_all($glob_timers); mtr_report("\nServers started, exiting"); exit(0); } Loading @@ -2932,16 +2940,16 @@ sub run_testcase ($) { $tinfo->{'timeout'}= 1; # Mark as timeout report_failure_and_restart($tinfo); } else { # Test case failed, if in control mysqltest returns 1 if ( $res != 1 ) elsif ( $res == 1 ) { mtr_tofile($path_timefile, "mysqltest returned unexpected code $res, " . "it has probably crashed"); # Test case failure reported by mysqltest report_failure_and_restart($tinfo); } else { # mysqltest failed, probably crashed $tinfo->{comment}= "mysqltest returned unexpected code $res, it has probably crashed"; report_failure_and_restart($tinfo); } Loading Loading @@ -3593,14 +3601,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 Loading Loading @@ -4456,6 +4464,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 Loading @@ -4472,7 +4481,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