From: Date: September 22 2008 9:34pm Subject: bzr commit into mysql-5.1 branch (patrick.crews:2745) List-Archive: http://lists.mysql.com/commits/54463 Message-Id: <20080922193402.11B631FE35F2@mister-local.local> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit #At file:///Users/pcrews/usr/local/bin/data1/work/binlog/mysql-5.1-bugteam/ 2745 Patrick Crews 2008-09-22 [merge] merge of changes modified: mysql-test/lib/mtr_cases.pl mysql-test/mysql-test-run.pl === modified file 'mysql-test/lib/mtr_cases.pl' --- a/mysql-test/lib/mtr_cases.pl 2008-05-30 10:21:45 +0000 +++ b/mysql-test/lib/mtr_cases.pl 2008-09-22 09:03:00 +0000 @@ -433,41 +433,51 @@ sub optimize_cases { # Skip processing if already marked as skipped next if $tinfo->{skip}; - # Replication test needs an adjustment of binlog format - if (mtr_match_prefix($tinfo->{'name'}, "rpl")) + # ======================================================= + # If a special binlog format was selected with + # --mysqld=--binlog-format=x, skip all test that does not + # support it + # ======================================================= + #print "used_binlog_format: $::used_binlog_format\n"; + if (defined $::used_binlog_format ) { - # ======================================================= - # Get binlog-format used by this test from master_opt + # Fixed --binlog-format=x specified on command line # ======================================================= - my $test_binlog_format; - foreach my $opt ( @{$tinfo->{master_opt}} ) { - $test_binlog_format= $test_binlog_format || - mtr_match_prefix($opt, "--binlog-format="); - } - # print $tinfo->{name}." uses ".$test_binlog_format."\n"; + if ( defined $tinfo->{'binlog_formats'} ) + { + #print "binlog_formats: ". join(", ", @{$tinfo->{binlog_formats}})."\n"; + # The test supports different binlog formats + # check if the selected one is ok + my $supported= + grep { $_ eq $::used_binlog_format } @{$tinfo->{'binlog_formats'}}; + if ( !$supported ) + { + $tinfo->{'skip'}= 1; + $tinfo->{'comment'}= + "Doesn't support --binlog-format='$::used_binlog_format'"; + } + } + } + else + { # ======================================================= - # If a special binlog format was selected with - # --mysqld=--binlog-format=x, skip all test with different - # binlog-format + # Use dynamic switching of binlog format # ======================================================= - if (defined $::used_binlog_format and - $test_binlog_format and - $::used_binlog_format ne $test_binlog_format) - { - $tinfo->{'skip'}= 1; - $tinfo->{'comment'}= "Requires --binlog-format='$test_binlog_format'"; - next; + + # Get binlog-format used by this test from master_opt + my $test_binlog_format; + foreach my $opt ( @{$tinfo->{master_opt}} ) { + $test_binlog_format= + mtr_match_prefix($opt, "--binlog-format=") || $test_binlog_format; } - # ======================================================= - # Check that testcase supports the designated binlog-format - # ======================================================= - if ($test_binlog_format and defined $tinfo->{'sup_binlog_formats'} ) + if (defined $test_binlog_format and + defined $tinfo->{binlog_formats} ) { my $supported= - grep { $_ eq $test_binlog_format } @{$tinfo->{'sup_binlog_formats'}}; + grep { $_ eq $test_binlog_format } @{$tinfo->{'binlog_formats'}}; if ( !$supported ) { $tinfo->{'skip'}= 1; @@ -476,20 +486,8 @@ sub optimize_cases { next; } } - - # ======================================================= - # Use dynamic switching of binlog-format if mtr started - # w/o --mysqld=--binlog-format=xxx and combinations. - # ======================================================= - if (!defined $tinfo->{'combination'} and - !defined $::used_binlog_format) - { - $test_binlog_format= $tinfo->{'sup_binlog_formats'}->[0]; - } - - # Save binlog format for dynamic switching - $tinfo->{binlog_format}= $test_binlog_format; } + } } @@ -879,18 +877,19 @@ sub collect_one_test_case($$$$$$$$$) { # the specified value in "tinfo" our @tags= ( - ["include/have_innodb.inc", "innodb_test", 1], - ["include/have_binlog_format_row.inc", "sup_binlog_formats", ["row"]], - ["include/have_log_bin.inc", "need_binlog", 1], - ["include/have_binlog_format_statement.inc", - "sup_binlog_formats", ["statement"]], - ["include/have_binlog_format_mixed.inc", "sup_binlog_formats", ["mixed"]], + + ["include/have_binlog_format_row.inc", "binlog_formats", ["row"]], + ["include/have_binlog_format_statement.inc", "binlog_formats", ["statement"]], + ["include/have_binlog_format_mixed.inc", "binlog_formats", ["mixed"]], ["include/have_binlog_format_mixed_or_row.inc", - "sup_binlog_formats", ["mixed","row"]], + "binlog_formats", ["mixed", "row"]], ["include/have_binlog_format_mixed_or_statement.inc", - "sup_binlog_formats", ["mixed","statement"]], + "binlog_formats", ["mixed", "statement"]], ["include/have_binlog_format_row_or_statement.inc", - "sup_binlog_formats", ["row","statement"]], + "binlog_formats", ["row", "statement"]], + + ["include/have_innodb.inc", "innodb_test", 1], + ["include/have_log_bin.inc", "need_binlog", 1], ["include/big_test.inc", "big_test", 1], ["include/have_debug.inc", "need_debug", 1], ["include/have_ndb.inc", "ndb_test", 1], === modified file 'mysql-test/mysql-test-run.pl' --- a/mysql-test/mysql-test-run.pl 2008-07-15 16:43:25 +0000 +++ b/mysql-test/mysql-test-run.pl 2008-09-22 09:03:00 +0000 @@ -4357,19 +4357,10 @@ sub run_testcase_need_master_restart($) elsif (! mtr_same_opts($master->[0]->{'start_opts'}, $tinfo->{'master_opt'}) ) { - # 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'}}) . "' != '" . + $do_restart= 1; + mtr_verbose("Restart master: running with different options '" . + join(" ", @{$tinfo->{'master_opt'}}) . "' != '" . join(" ", @{$master->[0]->{'start_opts'}}) . "'" ); - } } elsif( ! $master->[0]->{'pid'} ) {