diff options
author | unknown <mkindahl@dl145h.mysql.com> | 2007-12-19 18:51:46 +0100 |
---|---|---|
committer | unknown <mkindahl@dl145h.mysql.com> | 2007-12-19 18:51:46 +0100 |
commit | 047ec78f2c0cddb8761641a54aea73a79253fb2d (patch) | |
tree | b4347d5d5af8e563fdef89ebf94232b92415803c /mysql-test/mysql-test-run.pl | |
parent | 7213ca204dc3d10f751ca2507321eede1238d6cb (diff) | |
parent | 267b00d6820504f9db735593e144b274bfc073a4 (diff) | |
download | mariadb-git-047ec78f2c0cddb8761641a54aea73a79253fb2d.tar.gz |
Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
into dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge
mysql-test/include/have_multi_ndb.inc:
Auto merged
mysql-test/lib/mtr_cases.pl:
Auto merged
mysql-test/lib/mtr_report.pl:
Auto merged
mysql-test/suite/binlog/r/binlog_stm_blackhole.result:
Auto merged
mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result:
Auto merged
mysql-test/suite/rpl_ndb/t/disabled.def:
Auto merged
sql/ha_ndbcluster_binlog.cc:
Auto merged
sql/log.cc:
Auto merged
sql/log_event_old.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/rpl_rli.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/set_var.h:
Auto merged
sql/slave.cc:
Auto merged
sql/sql_binlog.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_string.cc:
Auto merged
mysql-test/Makefile.am:
SCCS merged
mysql-test/mysql-test-run.pl:
Manual merge.
mysql-test/suite/binlog/t/disabled.def:
Manual merge.
mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result:
Manual merge.
mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result:
Manual merge.
sql/log_event.cc:
Manual merge.
,
Diffstat (limited to 'mysql-test/mysql-test-run.pl')
-rwxr-xr-x | mysql-test/mysql-test-run.pl | 83 |
1 files changed, 68 insertions, 15 deletions
diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 18633d095b0..2f87f24d64b 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -52,6 +52,9 @@ # "perl -d:Trace mysql-test-run.pl" # + +use lib "lib/"; + $Devel::Trace::TRACE= 0; # Don't trace boring init stuff #require 5.6.1; @@ -172,7 +175,8 @@ our $opt_bench= 0; our $opt_small_bench= 0; our $opt_big_test= 0; -our @opt_combination; +our @opt_combinations; +our $opt_skip_combination; our @opt_extra_mysqld_opt; @@ -575,7 +579,8 @@ sub command_line_setup () { 'skip-im' => \$opt_skip_im, 'skip-test=s' => \$opt_skip_test, 'big-test' => \$opt_big_test, - 'combination=s' => \@opt_combination, + 'combination=s' => \@opt_combinations, + 'skip-combination' => \$opt_skip_combination, # Specify ports 'master_port=i' => \$opt_master_myport, @@ -850,20 +855,23 @@ sub command_line_setup () { # -------------------------------------------------------------------------- # Find out type of logging that are being used # -------------------------------------------------------------------------- - # NOTE if the default binlog format is changed, this has to be changed - $used_binlog_format= "statement"; if (!$opt_extern && $mysql_version_id >= 50100 ) { - $used_binlog_format= "mixed"; # Default value for binlog format - foreach my $arg ( @opt_extra_mysqld_opt ) { if ( $arg =~ /binlog[-_]format=(\S+)/ ) { - $used_binlog_format= $1; + $used_binlog_format= $1; } } - mtr_report("Using binlog format '$used_binlog_format'"); + if (defined $used_binlog_format) + { + mtr_report("Using binlog format '$used_binlog_format'"); + } + else + { + mtr_report("Using dynamic switching of binlog format"); + } } @@ -981,6 +989,10 @@ sub command_line_setup () { mtr_error("Will not run in record mode without a specific test case"); } + if ( $opt_record ) + { + $opt_skip_combination = 1; + } # -------------------------------------------------------------------------- # ps protcol flag @@ -3379,6 +3391,7 @@ sub run_testcase_check_skip_test($) sub do_before_run_mysqltest($) { my $tinfo= shift; + my $args; # Remove old files produced by mysqltest my $base_file= mtr_match_extension($tinfo->{'result_file'}, @@ -3399,6 +3412,28 @@ sub do_before_run_mysqltest($) # if script decided to run mysqltest cluster _is_ installed ok $ENV{'NDB_STATUS_OK'} = "YES"; } + if (defined $tinfo->{binlog_format} and $mysql_version_id > 50100 ) + { + # Dynamically switch binlog format of + # master, slave is always restarted + foreach my $server ( @$master ) + { + next unless ($server->{'pid'}); + + mtr_init_args(\$args); + mtr_add_arg($args, "--no-defaults"); + mtr_add_arg($args, "--user=root"); + mtr_add_arg($args, "--port=$server->{'port'}"); + mtr_add_arg($args, "--socket=$server->{'path_sock'}"); + + my $sql= "include/set_binlog_format_".$tinfo->{binlog_format}.".sql"; + mtr_verbose("Setting binlog format:", $tinfo->{binlog_format}); + if (mtr_run($exe_mysql, $args, $sql, "", "", "") != 0) + { + mtr_error("Failed to switch binlog format"); + } + } + } } } @@ -3839,6 +3874,14 @@ sub mysqld_arguments ($$$$) { mtr_add_arg($args, "%s--user=root"); } + # When mysqld is run by a root user(euid is 0), it will fail + # to start unless we specify what user to run as, see BUG#30630 + my $euid= $>; + if (!$glob_win32 and $euid == 0 and + (grep(/^--user/, @$extra_opt, @opt_extra_mysqld_opt)) == 0) { + mtr_add_arg($args, "%s--user=root", $prefix); + } + if ( $opt_valgrind_mysqld ) { mtr_add_arg($args, "%s--skip-safemalloc", $prefix); @@ -3943,7 +3986,7 @@ sub mysqld_arguments ($$$$) { my $slave_load_path= "../tmp"; mtr_add_arg($args, "%s--slave-load-tmpdir=%s", $prefix, $slave_load_path); - mtr_add_arg($args, "%s--set-variable=slave_net_timeout=10", $prefix); + mtr_add_arg($args, "%s--set-variable=slave_net_timeout=120", $prefix); if ( @$slave_master_info ) { @@ -4296,10 +4339,19 @@ sub run_testcase_need_master_restart($) elsif (! mtr_same_opts($master->[0]->{'start_opts'}, $tinfo->{'master_opt'}) ) { - $do_restart= 1; - mtr_verbose("Restart master: running with different options '" . - join(" ", @{$tinfo->{'master_opt'}}) . "' != '" . - join(" ", @{$master->[0]->{'start_opts'}}) . "'" ); + # Chech that diff is binlog format only + my $diff_opts= mtr_diff_opts($master->[0]->{'start_opts'},$tinfo->{'master_opt'}); + if (scalar(@$diff_opts) eq 2) + { + $do_restart= 1 unless ($diff_opts->[0] =~/^--binlog-format=/ and $diff_opts->[1] =~/^--binlog-format=/); + } + else + { + $do_restart= 1; + mtr_verbose("Restart master: running with different options '" . + join(" ", @{$tinfo->{'master_opt'}}) . "' != '" . + join(" ", @{$master->[0]->{'start_opts'}}) . "'" ); + } } elsif( ! $master->[0]->{'pid'} ) { @@ -5222,8 +5274,9 @@ Options to control what test suites or cases to run skip-im Don't start IM, and skip the IM test cases big-test Set the environment variable BIG_TEST, which can be checked from test cases. - combination="ARG1 .. ARG2" Specify a set of "mysqld" arguments for one - combination. + combination="ARG1 .. ARG2" Specify a set of "mysqld" arguments for one + combination. + skip-combination Skip any combination options and combinations files Options that specify ports |