From: Andrei Elkin Date: October 27 2010 3:05pm Subject: bzr commit into mysql-next-mr branch (andrei.elkin:3187) List-Archive: http://lists.mysql.com/commits/122123 Message-Id: <201010271506.o9RF61t3005567@mysql1000.dsl.inet.fi> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0434831372==" --===============0434831372== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/andrei/MySQL/BZR/2a-23May/WL/mysql-next-mr-wl2540/ based on revid:andrei.elkin@stripped 3187 Andrei Elkin 2010-10-27 [merge] merge wl2540 repo to a local tree added: mysql-test/suite/rpl/extension/README.checksum mysql-test/suite/rpl/extension/checksum.pl modified: mysql-test/collections/mysql-next-mr.push === modified file 'mysql-test/collections/mysql-next-mr.push' --- a/mysql-test/collections/mysql-next-mr.push 2010-06-23 10:58:24 +0000 +++ b/mysql-test/collections/mysql-next-mr.push 2010-10-27 10:47:25 +0000 @@ -3,3 +3,4 @@ perl mysql-test-run.pl --timer --force - perl mysql-test-run.pl --timer --force --parallel=auto --experimental=collections/default.experimental --comment=embedded --vardir=var-emebbed --embedded --suite=main,binlog,innodb,federated,rpl,sys_vars,perfschema perl mysql-test-run.pl --timer --force --parallel=auto --experimental=collections/default.experimental --comment=rpl_binlog_row --vardir=var-rpl_binlog_row --mysqld=--binlog-format=row --suite=rpl,binlog --skip-test-list=collections/disabled-per-push.list perl mysql-test-run.pl --timer --force --parallel=auto --experimental=collections/default.experimental --comment=funcs_1 --vardir=var-funcs_1 --suite=funcs_1 +perl suite/rpl/extension/checksum.pl --timer --force --parallel=auto --experimental=collections/default.experimental --comment=rpl_binlog_checksum --vardir=var-rpl_binlog_checksum --suite=rpl,binlog === added file 'mysql-test/suite/rpl/extension/README.checksum' --- a/mysql-test/suite/rpl/extension/README.checksum 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/rpl/extension/README.checksum 2010-10-27 10:47:25 +0000 @@ -0,0 +1,23 @@ +Binlog checksum testing +======================= + +1. How it works. +The script copies a to directory _checksum, +collects test case names for t/ directory (except tests from +disabled def), randomly choose 90% of tests and add them +to disabled.def. +It means that mtr will run only 10% of random tests from each +suite. +At end the script run mtr: +./mysql-test-run.pl --suite=aaa_checksum,bbb_checksum \ + --mysqld=--binlog-checksum=CRC32 arg1 ... argN + +aaa,bbb - suite names from --suite option +arg1,argN - other command-line arguments of checksum.pl + +2. The options: + +--suite=suite1,suite2. Mandatory option. The list of suites for + binlog checksum testing. + +--percent=N, where N is 1..99. Percent of running tests. === added file 'mysql-test/suite/rpl/extension/checksum.pl' --- a/mysql-test/suite/rpl/extension/checksum.pl 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/rpl/extension/checksum.pl 2010-10-27 10:47:25 +0000 @@ -0,0 +1,164 @@ +#!/usr/bin/perl + +# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +use File::Basename; +use File::Copy qw(copy); +use File::Spec qw(catdir); +use File::Path; +use IO::File; +use strict; + +# Constants and variables with default values +my $suites; +my $suffix = "_checksum"; +my $percent_random_test = 10; +my $mtr_script; +my @mtr_argv; +my @mtr_suites; + +# Check some arguments +foreach my $arg ( @ARGV ) +{ + if ($arg =~ m/\-\-suite\=(.+)/i) + { + $suites = $1; + } + elsif ($arg =~ m/\-\-percent\=(\d{1,2})/i) + { + $percent_random_test= $1; + } + else + { + push(@mtr_argv, $arg); + } + +} +if (! defined( $suites ) ) +{ + die("The script requires --suite argument"); +} + +print "#################################################################\n"; +print "# Binlog checksum testing\n"; +print "# Run randomly $percent_random_test\% of tests from following suites: $suites\n"; +print "#################################################################\n"; + +# Set extension directory +my $ext_dir= dirname(File::Spec->rel2abs($0)); +# Set mysql-test directory +my $mysql_test_dir= $ext_dir; +$mysql_test_dir =~ s/(\/|\\)suite(\/|\\)rpl(\/|\\)extension$//; + +# Main loop +foreach my $src_suite (split(",", $suites)) +{ + $src_suite=~ s/ //g; + my $dest_suite= $src_suite . $suffix; + push( @mtr_suites, $dest_suite); + print "Creating suite $dest_suite\n"; + # *** Set platform-independent pathes *** + # Set source directory of suite + my $src_suite_dir = File::Spec->catdir($mysql_test_dir, "suite", $src_suite); + # Set destination directory of suite + my $dest_suite_dir = File::Spec->catdir($mysql_test_dir, "suite", $dest_suite); + print "Copying files\n\tfrom '$src_suite_dir'\n\tto '$dest_suite_dir'\n"; + dircopy($src_suite_dir, $dest_suite_dir); + my $test_case_dir= File::Spec->catdir($dest_suite_dir, "t"); + # Read disabled.def + my %disabled = (); + print "Read disabled.def\n"; + my $fh = new IO::File File::Spec->catdir($test_case_dir, "disabled.def"), "r"; + if ( defined $fh ) + { + my @lines = <$fh>; + undef $fh; + foreach my $line ( @lines ) + { + if ($line =~ m/^([a-zA-Z0-9_]+).+\:.+/i) + { + $disabled{$1}= 1; + } + } + } + # Read test case list + my %tests = (); + print "Generate test case list\n"; + opendir my ($dh), $test_case_dir or die "Could not open dir '$test_case_dir': $!"; + for my $entry (readdir $dh) + { + if ( $entry =~ m/^([a-zA-Z0-9_]+)\.test$/i ) + { + my $test= $1; + if ( ! defined( $disabled{$test}) ) + { + $tests{$test}= 1; + } + } + } + closedir($dh); + # + my @excluded = (); + my $excluded_test= int((((100 - $percent_random_test)/100) * scalar( keys %tests ))); + while ( $excluded_test > 0 ) + { + my @cases = keys %tests; + my $test = $cases[int(rand(scalar(@cases)))]; + push ( @excluded, $test . "\t\t: Excluded for $dest_suite\n" ); + delete $tests{$test}; + $excluded_test--; + } + my $fh = new IO::File File::Spec->catdir($test_case_dir, "disabled.def"), O_WRONLY|O_APPEND; + if (defined $fh) { + print $fh join ("", sort @excluded); + undef $fh; + } + print "\t" . join("\n\t", sort keys %tests) . "\n"; + +} + +# Set path to mtr with arguments +my $mtr_script = "perl " . File::Spec->catdir($mysql_test_dir, "mysql-test-run.pl") . + " --suite=" . join(",", @mtr_suites) . " " . + " --mysqld=--binlog-checksum=CRC32 " . + join (" ", @mtr_argv); + +print "Run $mtr_script\n"; +system( $mtr_script ); + +sub dircopy +{ + my ($from_dir, $to_dir)= @_; + mkdir $to_dir if (! -e $to_dir); + opendir my($dh), $from_dir or die "Could not open dir '$from_dir': $!"; + for my $entry (readdir $dh) + { + next if $entry =~ /^(\.|\.\.)$/; + my $source = File::Spec->catdir($from_dir, $entry); + my $destination = File::Spec->catdir($to_dir, $entry); + if (-d $source) + { + mkdir $destination or die "mkdir '$destination' failed: $!" if not -e $destination; + dircopy($source, $destination); + } + else + { + copy($source, $destination) or die "copy '$source' to '$destination' failed: $!"; + } + } + closedir $dh; + return; +} --===============0434831372== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/andrei.elkin@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: andrei.elkin@stripped # target_branch: file:///home/andrei/MySQL/BZR/2a-23May/WL/mysql-next-\ # mr-wl2540/ # testament_sha1: ddc393c3d2effcfb62ec628a1c945a29e7547bec # timestamp: 2010-10-27 18:06:01 +0300 # source_branch: file:///home/andrei/MySQL/BZR/2a-23May/WL/5.6.99-\ # next-rm-wl2540-checksum/ # base_revision_id: andrei.elkin@stripped\ # jfr65w6fy7srvz83 # # Begin bundle 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 --===============0434831372==--