Commit 38fb6c55 authored by Sergei Golubchik's avatar Sergei Golubchik

allow suite.pm to skip combinations that originate from test/include files.

storage/innobase/handler/handler0alter.cc:
  for NEWDATE key_type says unsigned, thus col->prtype says unsigned,
  but field->flags says signed. Use the same flag for value retrieval
  that was used for value storage.
parent 7db72512
......@@ -52,7 +52,7 @@ It can also return a string - in this case all tests in the suite
will be skipped, with this string being printed as a reason.
A suite class can define config_files(), servers(), list_cases(),
and start_test() methods.
start_test() methods, and skip_combinations() methods.
A config_files() method returns a list of additional config files (besides
my.cnf), that this suite needs to be created. For every file it specifies
......@@ -89,6 +89,16 @@ to do it.
A start_test() method starts one test process, by default it will be mysqltest.
See unit suite for an example of list_cases() and start_test() methods.
A skip_combinations() method returns a hash that maps file names
(where combinations are defined) to a list of combinations that should
be skipped. For example
sub skip_combinations { (
'combinations' => [ 'mix', 'rpl' ],
'inc/many.combinations' => [ 'a', 'bb', 'c' ]
) }
==========================
A suite can have my.cnf template file in the suitedir.
A my.cnf template uses a normal my.cnf syntax - groups, options,
......@@ -152,14 +162,5 @@ merged to a my.cnf, but will be added to the command line. Example:
Such a file will cause every test from the suite to be run twice - once
with mysqld using --opt1=val1 and the other one with mysqld using
--opt1=val2 --opt2=$HAVE_SOMETHING
One can limit mtr run to a subset of combinations by setting environment
variable SUITENAME_COMBINATIONS to the ':'-separated set of combination
names. E.g.
RPL_COMBINATIONS=mix:row ./mtr --suite rpl
See innodb suite for an example of how suite.pm may set this variable
to exclude unsupported configurations.
==========================
--loose-innodb
--plugin-load=$HA_XTRADB_SO
--source include/have_innodb.inc
#
# Bug #24200: Provide backwards compatibility mode for 4.x "rollback on
# transaction timeout"
......
......@@ -5,6 +5,7 @@ package My::Suite;
sub config_files { () }
sub servers { () }
sub skip_combinations { () }
sub list_cases {
my ($self, $testdir) = @_;
......
......@@ -212,11 +212,43 @@ sub split_testname {
mtr_error("Illegal format of test name: $test_name");
}
my %suite_combinations;
my %skip_combinations;
my %file_combinations;
sub load_suite_object {
my ($suite, $suitedir) = @_;
unless ($suites{$suite}) {
if (-f "$suitedir/suite.pm") {
$suites{$suite} = do "$suitedir/suite.pm";
return unless ref $suites{$suite};
} else {
$suites{$suite} = $default_suite_object;
}
my %suite_skiplist = $suites{$suite}->skip_combinations();
while (my ($file, $skiplist) = each %suite_skiplist) {
$skip_combinations{"$suitedir/$file => $_"} = 1 for (@$skiplist);
}
}
}
# returns a pair of (suite, suitedir)
sub find_suite_of_file($) {
my ($file) = @_;
return ($2, $1)
if $file =~ m@^(.*/(?:storage|plugin)/\w+/mysql-test/(\w+))/@;
return ($2, $1) if $file =~ m@^(.*/mysql-test/suite/(\w+))/@;
return ('main', $1) if $file =~ m@^(.*/mysql-test)/@;
mtr_error("Cannot determine suite for $file");
}
sub combinations_from_file($)
{
my ($filename) = @_;
return () if @::opt_combinations or not -f $filename;
load_suite_object(find_suite_of_file($filename));
# Read combinations file in my.cnf format
mtr_verbose("Read combinations file");
my $config= My::Config->new($filename);
......@@ -224,6 +256,7 @@ sub combinations_from_file($)
foreach my $group ($config->groups()) {
next if $group->auto();
my $comb= { name => $group->name() };
next if $skip_combinations{"$filename => $comb->{name}"};
foreach my $option ( $group->options() ) {
push(@{$comb->{comb_opt}}, $option->option());
}
......@@ -232,9 +265,6 @@ sub combinations_from_file($)
@combs;
}
my $suite_combinations = { };
my $file_combinations = { };
sub collect_one_suite
{
my $suite= shift; # Test suite name
......@@ -300,16 +330,7 @@ sub collect_one_suite
mtr_verbose("testdir: $testdir");
mtr_verbose("resdir: $resdir");
#
# Load the Suite object
#
unless ($suites{$suite}) {
if (-f "$suitedir/suite.pm") {
$suites{$suite} = do "$suitedir/suite.pm";
} else {
$suites{$suite} = $default_suite_object;
}
}
load_suite_object($suite, $suitedir);
# ----------------------------------------------------------------------
# Build a hash of disabled testcases for this suite
......@@ -369,15 +390,13 @@ sub collect_one_suite
my $comb= {};
$comb->{name}= $combination;
push(@{$comb->{comb_opt}}, $combination);
push @{$suite_combinations->{$suite}}, $comb;
push @{$suite_combinations{$suite}}, $comb;
}
}
else
{
my @combs = combinations_from_file("$suitedir/combinations");
my %env_filter = map { $_ => 1 } split /:/, $ENV{"\U${suite}_COMBINATIONS"};
@combs = grep $env_filter{$_->{name}}, @combs if %env_filter;
$suite_combinations->{$suite} = [ @combs ];
$suite_combinations{$suite} = [ @combs ];
}
}
......@@ -851,8 +870,8 @@ sub collect_one_test_case {
process_opts($tinfo, 'slave_opt');
my @cases = ($tinfo);
for my $comb ($suite_combinations->{$suitename},
@{$file_combinations->{$filename}})
for my $comb ($suite_combinations{$suitename},
@{$file_combinations{$filename}})
{
@cases = map make_combinations($_, @{$comb}), @cases;
}
......@@ -961,7 +980,7 @@ sub get_tags_from_file($$) {
push @$tags, get_tags_from_file($sourced_file, $suitedir);
push @$master_opts, @{$file_to_master_opts->{$sourced_file}};
push @$slave_opts, @{$file_to_slave_opts->{$sourced_file}};
push @combinations, @{$file_combinations->{$sourced_file}};
push @combinations, @{$file_combinations{$sourced_file}};
last;
}
}
......@@ -983,7 +1002,7 @@ sub get_tags_from_file($$) {
$file_to_tags->{$file}= $tags;
$file_to_master_opts->{$file}= $master_opts;
$file_to_slave_opts->{$file}= $slave_opts;
$file_combinations->{$file}= [ uniq(@combinations) ];
$file_combinations{$file}= [ uniq(@combinations) ];
return @{$tags};
}
......
......@@ -3715,6 +3715,7 @@ sub do_before_run_mysqltest($)
{
my $tinfo= shift;
my $resfile= $tinfo->{result_file};
return unless defined $resfile;
# Remove old files produced by mysqltest
die "unsupported result file name $resfile, stoping" unless
......
--- r/innodb_bug878769.result 2011-11-22 18:50:25.000000000 +0100
+++ r/innodb_bug878769.reject 2012-02-07 12:45:07.000000000 +0100
@@ -39,7 +39,7 @@
GROUP BY 1,2;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 index col_int_key col_int_key 5 NULL 12 Using where; Using index; Using temporary; Using filesort
-1 SIMPLE t1 ref col_int_key col_int_key 5 test.t2.col_int_key 1 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
+1 SIMPLE t1 ref col_int_key col_int_key 5 test.t2.col_int_key 1
SELECT t1.col_time_key, t1.col_varchar_key
FROM t2 STRAIGHT_JOIN t1 ON t1.col_int_key = t2.col_int_key
GROUP BY 1,2;
--- r/innodb_icp.result 2012-01-09 16:13:21.000000000 +0100
+++ r/innodb_icp.reject 2012-02-07 12:45:59.000000000 +0100
@@ -167,7 +167,7 @@
ORDER BY ts DESC
LIMIT 2;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 4 Using index condition
+1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 4 Using where
DROP TABLE t1;
#
@@ -213,7 +213,7 @@
EXPLAIN
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w' and i1 > 2;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t3 range c1 c1 12 NULL 2 Using index condition; Using where
+1 SIMPLE t3 range c1 c1 12 NULL 2 Using where
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w' and i1 > 2;
c1
EXPLAIN
@@ -431,7 +431,7 @@
WHERE pk IN (SELECT it.pk FROM t2 JOIN t2 AS it ON it.i=it.i WHERE it.pk-t1.i<10);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 Using where
-2 DEPENDENT SUBQUERY it eq_ref PRIMARY PRIMARY 4 func 1 Using index condition
+2 DEPENDENT SUBQUERY it eq_ref PRIMARY PRIMARY 4 func 1 Using where
2 DEPENDENT SUBQUERY t2 index NULL PRIMARY 4 NULL 3 Using where; Using index; Using join buffer (flat, BNL join)
SELECT * FROM t1
WHERE pk IN (SELECT it.pk FROM t2 JOIN t2 AS it ON it.i=it.i WHERE it.pk-t1.i<10);
@@ -452,7 +452,7 @@
INSERT INTO t1 VALUES (1,9),(2,7),(3,6),(4,3),(5,1);
EXPLAIN SELECT pk, c1 FROM t1 WHERE pk <> 3;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 4 Using index condition
+1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 4 Using where
SET SESSION optimizer_switch='index_condition_pushdown=off';
SELECT pk, c1 FROM t1 WHERE pk <> 3;
pk c1
@@ -507,8 +507,8 @@
WHERE (t2.pk <= 4 AND t1.pk IN (2,1)) OR
(t1.pk > 1 AND t2.pk BETWEEN 6 AND 6);
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Using where
-1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 2 Using index condition; Using where; Using join buffer (flat, BNL join)
+1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 1 Using where
+1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 2 Using where; Using join buffer (flat, BNL join)
SELECT c2 FROM t1 JOIN t2 ON t1.c1 = t2.c1
WHERE (t2.pk <= 4 AND t1.pk IN (2,1)) OR
(t1.pk > 1 AND t2.pk BETWEEN 6 AND 6);
@@ -637,7 +637,7 @@
WHERE NOT(b = 'Texas') AND b BETWEEN 'wy' AND 'y' OR b = 'Pennsylvania'
ORDER BY a;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range b b 13 NULL 2 Using where; Rowid-ordered scan; Using filesort
+1 SIMPLE t1 range b b 13 NULL 2 Using where; Using filesort
SELECT * FROM t1
WHERE NOT(b = 'Texas') AND b BETWEEN 'wy' AND 'y' OR b = 'Pennsylvania'
ORDER BY a;
@@ -649,7 +649,7 @@
WHERE NOT(b = 'Texas') AND b BETWEEN 'wy' AND 'y' OR b = 'Pennsylvania'
ORDER BY a;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range b b 13 NULL 2 Using index condition; Using where; Rowid-ordered scan; Using filesort
+1 SIMPLE t1 range b b 13 NULL 2 Using where; Using filesort
SELECT * FROM t1
WHERE NOT(b = 'Texas') AND b BETWEEN 'wy' AND 'y' OR b = 'Pennsylvania'
ORDER BY a;
@@ -680,7 +680,7 @@
SELECT t1.b, t1.c FROM t1, t2 WHERE t1.a = t2.a AND t1.b != 0
HAVING t1.c != 5 ORDER BY t1.c;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using index condition; Using where; Using filesort
+1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using where; Using filesort
1 SIMPLE t2 ref a a 515 test.t1.a 1 Using where
SELECT t1.b, t1.c FROM t1, t2 WHERE t1.a = t2.a AND t1.b != 0
HAVING t1.c != 5 ORDER BY t1.c;
@@ -793,7 +793,7 @@
1 PRIMARY t ALL PRIMARY,c NULL NULL NULL 64 Using where
1 PRIMARY t2 ref g g 5 test.t.c 9 Using where
2 DEPENDENT SUBQUERY t1 index PRIMARY d 3 NULL 64 Using where; Using index
-2 DEPENDENT SUBQUERY t2 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using index condition; Using where
+2 DEPENDENT SUBQUERY t2 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using where
SELECT COUNT(*) FROM t1 AS t, t2
WHERE c = g
AND (EXISTS (SELECT * FROM t1, t2 WHERE a = f AND h <= t.e AND a > t.b)
--- r/innodb_mrr_cpk.result 2011-10-21 23:35:26.000000000 +0200
+++ r/innodb_mrr_cpk.reject 2012-02-07 12:47:49.000000000 +0100
@@ -27,13 +27,13 @@
explain select * from t1, t2 where t1.a=t2.a;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
-1 SIMPLE t1 eq_ref PRIMARY PRIMARY 8 test.t2.a 1 Using join buffer (flat, BKA join); Key-ordered scan
+1 SIMPLE t1 eq_ref PRIMARY PRIMARY 8 test.t2.a 1
This output must be sorted by value of t1.a:
select * from t1, t2 where t1.a=t2.a;
a b filler a
a-1010=A b-1010=B filler a-1010=A
-a-1020=A b-1020=B filler a-1020=A
a-1030=A b-1030=B filler a-1030=A
+a-1020=A b-1020=B filler a-1020=A
drop table t1, t2;
create table t1(
a char(8) character set utf8, b int, filler char(100),
@@ -49,24 +49,24 @@
explain select * from t1, t2 where t1.a=t2.a and t1.b=t2.b;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
-1 SIMPLE t1 eq_ref PRIMARY PRIMARY 28 test.t2.a,test.t2.b 1 Using join buffer (flat, BKA join); Key-ordered scan
+1 SIMPLE t1 eq_ref PRIMARY PRIMARY 28 test.t2.a,test.t2.b 1
select * from t1, t2 where t1.a=t2.a and t1.b=t2.b;
a b filler a b
a-1010=A 1010 filler a-1010=A 1010
-a-1020=A 1020 filler a-1020=A 1020
a-1030=A 1030 filler a-1030=A 1030
+a-1020=A 1020 filler a-1020=A 1020
insert into t2 values ('a-1030=A', 1030), ('a-1020=A', 1020);
explain select * from t1, t2 where t1.a=t2.a and t1.b=t2.b;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 ALL NULL NULL NULL NULL 5 Using where
-1 SIMPLE t1 eq_ref PRIMARY PRIMARY 28 test.t2.a,test.t2.b 1 Using join buffer (flat, BKA join); Key-ordered scan
+1 SIMPLE t1 eq_ref PRIMARY PRIMARY 28 test.t2.a,test.t2.b 1
select * from t1, t2 where t1.a=t2.a and t1.b=t2.b;
a b filler a b
a-1010=A 1010 filler a-1010=A 1010
-a-1020=A 1020 filler a-1020=A 1020
-a-1020=A 1020 filler a-1020=A 1020
a-1030=A 1030 filler a-1030=A 1030
+a-1020=A 1020 filler a-1020=A 1020
a-1030=A 1030 filler a-1030=A 1030
+a-1020=A 1020 filler a-1020=A 1020
drop table t1, t2;
create table t1(
a varchar(8) character set utf8, b int, filler char(100),
@@ -82,21 +82,21 @@
explain select * from t1, t2 where t1.a=t2.a and t1.b=t2.b;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
-1 SIMPLE t1 eq_ref PRIMARY PRIMARY 30 test.t2.a,test.t2.b 1 Using index condition(BKA); Using join buffer (flat, BKA join); Key-ordered scan
+1 SIMPLE t1 eq_ref PRIMARY PRIMARY 30 test.t2.a,test.t2.b 1 Using where
select * from t1, t2 where t1.a=t2.a and t1.b=t2.b;
a b filler a b
a-1010=A 1010 filler a-1010=A 1010
-a-1020=A 1020 filler a-1020=A 1020
a-1030=A 1030 filler a-1030=A 1030
+a-1020=A 1020 filler a-1020=A 1020
explain select * from t1, t2 where t1.a=t2.a;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
-1 SIMPLE t1 ref PRIMARY PRIMARY 26 test.t2.a 1 Using index condition(BKA); Using join buffer (flat, BKA join); Key-ordered scan
+1 SIMPLE t1 ref PRIMARY PRIMARY 26 test.t2.a 1 Using where
select * from t1, t2 where t1.a=t2.a;
a b filler a b
a-1010=A 1010 filler a-1010=A 1010
-a-1020=A 1020 filler a-1020=A 1020
a-1030=A 1030 filler a-1030=A 1030
+a-1020=A 1020 filler a-1020=A 1020
drop table t1, t2;
create table t1 (a int, b int, c int, filler char(100), primary key(a,b,c));
insert into t1 select A.a, B.a, C.a, 'filler' from t0 A, t0 B, t0 C;
@@ -111,15 +111,15 @@
explain select * from t1, t2 where t1.a=t2.a and t1.b=t2.b;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
-1 SIMPLE t1 ref PRIMARY PRIMARY 8 test.t2.a,test.t2.b 1 Using join buffer (flat, BKA join); Key-ordered scan
+1 SIMPLE t1 ref PRIMARY PRIMARY 8 test.t2.a,test.t2.b 1
select * from t1, t2 where t1.a=t2.a and t1.b=t2.b;
a b c filler a b
+11 33 124 filler 11 33
+11 33 125 filler 11 33
+11 22 1234 filler 11 22
11 11 11 filler 11 11
11 11 12 filler 11 11
11 11 13 filler 11 11
-11 22 1234 filler 11 22
-11 33 124 filler 11 33
-11 33 125 filler 11 33
set join_cache_level=0;
select * from t1, t2 where t1.a=t2.a and t1.b=t2.b;
a b c filler a b
@@ -133,14 +133,14 @@
explain select * from t1, t2 where t1.a=t2.a and t2.b + t1.b > 100;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
-1 SIMPLE t1 ref PRIMARY PRIMARY 4 test.t2.a 1 Using index condition(BKA); Using join buffer (flat, BKA join); Key-ordered scan
+1 SIMPLE t1 ref PRIMARY PRIMARY 4 test.t2.a 1 Using where
select * from t1, t2 where t1.a=t2.a and t2.b + t1.b > 100;
a b c filler a b
set optimizer_switch='index_condition_pushdown=off';
explain select * from t1, t2 where t1.a=t2.a and t2.b + t1.b > 100;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
-1 SIMPLE t1 ref PRIMARY PRIMARY 4 test.t2.a 1 Using where; Using join buffer (flat, BKA join); Key-ordered scan
+1 SIMPLE t1 ref PRIMARY PRIMARY 4 test.t2.a 1 Using where
select * from t1, t2 where t1.a=t2.a and t2.b + t1.b > 100;
a b c filler a b
set optimizer_switch='index_condition_pushdown=on';
--- r/subselect_sj2_jcl6.result 2012-01-11 18:05:14.000000000 +0100
+++ r/subselect_sj2_jcl6.reject 2012-02-07 12:52:32.000000000 +0100
@@ -81,7 +81,7 @@
explain select * from t3 where b in (select a from t1);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY <subquery2> ALL distinct_key NULL NULL NULL 3
-1 PRIMARY t3 ref b b 5 test.t1.a 1 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
+1 PRIMARY t3 ref b b 5 test.t1.a 1
2 MATERIALIZED t1 ALL NULL NULL NULL NULL 3 Using where
select * from t3 where b in (select a from t1);
a b pk1 pk2 pk3
@@ -107,7 +107,7 @@
explain select * from t3 where b in (select a from t0);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY <subquery2> ALL distinct_key NULL NULL NULL 10
-1 PRIMARY t3 ref b b 5 test.t0.a 1 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
+1 PRIMARY t3 ref b b 5 test.t0.a 1
2 MATERIALIZED t0 ALL NULL NULL NULL NULL 10 Using where
select * from t3 where b in (select A.a+B.a from t0 A, t0 B where B.a<5);
a b pk1 pk2
......@@ -233,7 +233,7 @@ a+0 b+0
127 403
explain select a+0, b+0 from t1 where a > 40 and b > 200 order by 1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 range a a 2 NULL 27 Using where; Using index; Using filesort
1 SIMPLE t1 range a a 2 NULL # Using where; Using index; Using filesort
select a+0, b+0 from t1 where a > 40 and b > 200 order by 1;
a+0 b+0
44 307
......
package My::Suite::Main;
@ISA = qw(My::Suite);
sub skip_combinations {
my @combinations;
push @combinations, 'innodb_plugin' unless $ENV{HA_INNODB_SO};
push @combinations, 'xtradb_plugin' unless $ENV{HA_XTRADB_SO};
push @combinations, 'xtradb' unless $::mysqld_variables{'innodb'} eq "ON";
( 'include/have_innodb.combinations' => [ @combinations ] )
}
bless { };
......@@ -2,18 +2,17 @@ package My::Suite::Federated;
@ISA = qw(My::Suite);
############# initialization ######################
my @combinations;
sub skip_combinations {
my @combinations;
push @combinations, 'old'
if $ENV{HA_FEDERATED_SO} and not $::mysqld_variables{'federated'};
push @combinations, 'X'
if $ENV{HA_FEDERATEDX_SO} or $::mysqld_variables{'federated'};
push @combinations, 'old'
unless $ENV{HA_FEDERATED_SO} and not $::mysqld_variables{'federated'};
push @combinations, 'X'
unless $ENV{HA_FEDERATEDX_SO} or $::mysqld_variables{'federated'};
return "Neither Federated nor FederatedX are available" unless @combinations;
( 'combinations' => [ @combinations ] )
}
$ENV{FEDERATED_COMBINATIONS}=join ':', @combinations
unless $ENV{FEDERATED_COMBINATIONS};
############# return an object ######################
bless { };
......
--- suite/funcs_1/r/is_engines_innodb.result 2011-10-21 23:35:26.000000000 +0200
+++ suite/funcs_1/r/is_engines_innodb.reject 2012-02-07 12:44:19.000000000 +0100
@@ -2,7 +2,7 @@
WHERE ENGINE = 'InnoDB';
ENGINE InnoDB
SUPPORT YES
-COMMENT Percona-XtraDB, Supports transactions, row-level locking, and foreign keys
+COMMENT Supports transactions, row-level locking, and foreign keys
TRANSACTIONS YES
XA YES
SAVEPOINTS YES
package My::Suite::InnoDB;
@ISA = qw(My::Suite);
############# initialization ######################
my @combinations;
push @combinations, 'innodb_plugin' if $ENV{HA_INNODB_SO};
push @combinations, 'xtradb_plugin' if $ENV{HA_XTRADB_SO} and not $::opt_embedded_server;
push @combinations, 'xtradb' if $::mysqld_variables{'innodb'} eq "ON";
return "Neither innodb_plugin nor xtradb are available" unless @combinations;
$ENV{INNODB_COMBINATIONS}=join ':', @combinations
unless $ENV{INNODB_COMBINATIONS};
############# return an object ######################
bless { };
--source include/have_innodb.inc
--source include/have_log_bin.inc
--source include/have_binlog_format_mixed_or_statement.inc
......
--source include/have_innodb.inc
--source include/have_debug_sync.inc
--source include/have_log_bin.inc
......
--source include/have_innodb.inc
--source include/have_debug_sync.inc
--source include/have_log_bin.inc
--source include/have_binlog_format_mixed_or_statement.inc
......
--source include/have_innodb.inc
--source include/have_debug_sync.inc
--source include/have_log_bin.inc
--source include/have_binlog_format_mixed_or_statement.inc
......
--source include/have_innodb.inc
# Testing group commit by crashing a few times.
# Test adapted from the Facebook patch: lp:mysqlatfacebook
--source include/not_embedded.inc
......
--source include/have_innodb.inc
# Testing group commit by crashing a few times.
# Test adapted from the Facebook patch: lp:mysqlatfacebook
--source include/not_embedded.inc
......
--source include/have_innodb.inc
--source include/have_debug_sync.inc
--source include/have_log_bin.inc
......
--source include/have_innodb.inc
#
# Test that mysqld does not crash when running ANALYZE TABLE with
# different values of the parameter innodb_stats_sample_pages.
......
--source include/have_innodb.inc
# embedded server ignores 'delayed', so skip this
-- source include/not_embedded.inc
......
--source include/have_innodb.inc
# embedded server ignores 'delayed', so skip this
-- source include/not_embedded.inc
......
--source include/have_innodb.inc
##
# Bug #56228: dropping tables from within an active statement crashes server
#
......
--source include/have_innodb.inc
# embedded server ignores 'delayed', so skip this
-- source include/not_embedded.inc
......
--source include/have_innodb.inc
# embedded server ignores 'delayed', so skip this
-- source include/not_embedded.inc
......
--source include/have_innodb.inc
-- source include/not_embedded.inc
--disable_warnings
......
--source include/have_innodb.inc
# Tests for various combinations of ROW_FORMAT and KEY_BLOCK_SIZE
# Related bugs;
# Bug#54679: ALTER TABLE causes compressed row_format to revert to compact
......
-- source include/have_innodb.inc
let $MYSQLD_DATADIR= `select @@datadir`;
......
-- source include/have_innodb.inc
-- source include/have_ucs2.inc
-- let charset = ucs2
......
--source include/have_innodb.inc
if (`select plugin_auth_version <= "1.1.8-20.1" from information_schema.plugins where plugin_name='innodb'`)
{
--skip Not supported by XtraDB 1.1.8-20.1 or earlier
......
-- source include/have_innodb.inc
# embedded server ignores 'delayed', so skip this
-- source include/not_embedded.inc
......
-- source include/not_embedded.inc
-- source include/have_innodb.inc
--disable_warnings
drop table if exists t1,t2;
......
--source include/have_innodb.inc
let $initial_timeout=`select @@innodb_lock_wait_timeout`;
set global innodb_lock_wait_timeout=42;
......
--source include/have_innodb.inc
--echo #
--echo # TRUNCATE TABLE
--echo #
......
--source include/have_innodb.inc
-- source include/have_ucs2.inc
--disable_warnings
......
-- source include/have_innodb.inc
let $per_table=`select @@innodb_file_per_table`;
let $format=`select @@innodb_file_format`;
......
--source include/have_innodb.inc
# This test runs with old-style locking, as:
# --innodb-autoinc-lock-mode=0
......
--source include/have_innodb.inc
--echo #
--echo # Bug#21704: Renaming column does not update FK definition.
--echo #
......
--source include/have_innodb.inc
# Test for Bug #30423, InnoDBs treatment of NULL in index stats causes
# bad "rows examined" estimates.
# Implemented InnoDB system variable "innodb_stats_method" with
......
--source include/have_innodb.inc
--source include/have_partition.inc
--vertical_results
let $engine_type= 'innodb';
......
......@@ -3,6 +3,7 @@
#
-- source include/not_embedded.inc
-- source include/have_innodb.inc
SET storage_engine=InnoDB;
......
--source include/have_innodb.inc
#
# Bug#34300 Tinyblob & tinytext fields currupted after export/import and alter in 5.1
# http://bugs.mysql.com/34300
......
--source include/have_innodb.inc
#
# Bug#35220 ALTER TABLE too picky on reserved word "foreign"
# http://bugs.mysql.com/35220
......
--source include/have_innodb.inc
#
# Bug#36169 create innodb compressed table with too large row size crashed
# http://bugs.mysql.com/36169
......
--source include/have_innodb.inc
#
# Test case for bug 36172
#
......
--source include/have_innodb.inc
#
# Bug#38231 Innodb crash in lock_reset_all_on_table() on TRUNCATE + LOCK / UNLOCK
# http://bugs.mysql.com/38231
......
--source include/have_innodb.inc
#
# Bug#39438 Testcase for Bug#39436 crashes on 5.1 in fil_space_get_latch
# http://bugs.mysql.com/39438
......
--source include/have_innodb.inc
#
# Make sure http://bugs.mysql.com/40360 remains fixed.
#
......
--source include/have_innodb.inc
# Bug #40565 Update Query Results in "1 Row Affected" But Should Be "Zero Rows"
create table bug40565(value decimal(4,2)) engine=innodb;
......
--source include/have_innodb.inc
#
# Make sure http://bugs.mysql.com/41904 remains fixed.
#
......
--source include/have_innodb.inc
#
# Bug#42101 Race condition in innodb_commit_concurrency
# http://bugs.mysql.com/42101
......
--source include/have_innodb.inc
#
# Bug#42101 Race condition in innodb_commit_concurrency
# http://bugs.mysql.com/42101
......
--source include/have_innodb.inc
#
# Testcase for InnoDB
# Bug#42419 Server crash with "Pure virtual method called" on two concurrent connections
......
--source include/have_innodb.inc
# Bug44032 no update-in-place of UTF-8 columns in ROW_FORMAT=REDUNDANT
# (btr_cur_update_in_place not invoked when updating from/to NULL;
# the update is performed by delete and insert instead)
......
--source include/have_innodb.inc
# This is the test for bug 44369. We should
# block table creation with columns match
# some innodb internal reserved key words,
......
--source include/have_innodb.inc
#
# Bug#44571 InnoDB Plugin crashes on ADD INDEX
# http://bugs.mysql.com/44571
......
--source include/have_innodb.inc
set session transaction isolation level read committed;
......
--source include/have_innodb.inc
# This is the test for bug 46000. We shall
# block any index creation with the name of
# "GEN_CLUST_INDEX", which is the reserved
......
--source include/have_innodb.inc
# This is the test for bug 46676: mysqld got exception 0xc0000005
# It is reproducible with InnoDB plugin 1.0.4 + MySQL 5.1.37.
# But no longer reproducible after MySQL 5.1.38 (with plugin 1.0.5).
......
--source include/have_innodb.inc
# This is the unit test for bug #47167.
# It tests setting the global variable "innodb_file_format_max" (
# originally "innodb_file_format_check") with a user-Defined Variable.
......
--source include/have_innodb.inc
# This is the test for bug #47621, column rename operation should
# not result in column definition inconsistency between MySQL and
# InnoDB
......
--source include/have_innodb.inc
# This is the test for bug 47622. There could be index
# metadata sequence mismatch between MySQL and Innodb
# after creating index through FIC interfaces.
......
--source include/have_innodb.inc
# This is the test for bug 47777. GEOMETRY
# data is treated as BLOB data in innodb.
# Consequently, its key value generation/storing
......
# Bug #48024 Innodb doesn't work with multi-statements
--source include/have_innodb.inc
CREATE TABLE bug48024(a int PRIMARY KEY,b int NOT NULL,KEY(b)) ENGINE=InnoDB;
CREATE TABLE bug48024_b(b int PRIMARY KEY) ENGINE=InnoDB;
......
--source include/have_innodb.inc
# Bug #49164 READ-COMMITTED reports "matched: 0" on compound PK
# a duplicate of
......
--source include/have_innodb.inc
# This is the test for bug 51378. Unique index created
# through "create index" and "alter table add unique index"
# interfaces should not be treated as primary index if indexed
......
--source include/have_innodb.inc
#
# Bug #51920: InnoDB connections in lock wait ignore KILL until timeout
#
......
--source include/have_innodb.inc
let collation=utf32_bin;
--source include/have_collation.inc
......
--source include/have_innodb.inc
set session transaction isolation level read committed;
......
--source include/have_innodb.inc
let $file_format=`select @@innodb_file_format`;
let $file_per_table=`select @@innodb_file_per_table`;
......
--source include/have_innodb.inc
#
# http://bugs.mysql.com/53046
# dict_update_statistics_low can still be run concurrently on same table
......
-- source include/have_innodb.inc
create table bug53290 (x bigint) engine=innodb;
......
--source include/have_innodb.inc
let $file_format=`select @@innodb_file_format`;
let $file_per_table=`select @@innodb_file_per_table`;
......
--source include/have_innodb.inc
# Testcase for Bug #53592 - "crash replacing duplicates into
# table after fast alter table added unique key". The fix is to make
# sure index number lookup should go through "index translation table".
......
-- source include/have_log_bin.inc
-- source include/have_innodb.inc
create table bug53674(a int)engine=innodb;
insert into bug53674 values (1),(2);
......
--source include/have_innodb.inc
# This is the test case for bug #53756. Alter table operation could
# leave a deleted record for the temp table (later renamed to the altered
# table) in the SYS_TABLES secondary index, we should ignore this row and
......
--source include/have_innodb.inc
# This is the test for bug #54044. Special handle MYSQL_TYPE_NULL type
# during create table, so it will not trigger assertion failure.
......
--source include/have_innodb.inc
#
# Bug#56143 too many foreign keys causes output of show create table to become invalid
# http://bugs.mysql.com/56143
......
--source include/have_innodb.inc
#
# Bug #56680 InnoDB may return wrong results from a case-insensitive index
#
......
--source include/have_innodb.inc
#
# Bug #56716 InnoDB locks a record gap without locking the table
#
......
--source include/have_innodb.inc
#
# Bug #56947 valgrind reports a memory leak in innodb-plugin.innodb-index
#
......
--source include/have_innodb.inc
#
# Bug#57252 disabling innobase_stats_on_metadata disables ANALYZE
# http://bugs.mysql.com/57252
......
--source include/have_innodb.inc
# Test Bug #57255. Cascade deletes that affect different rows should not
# result in DB_FOREIGN_EXCEED_MAX_CASCADE error
......
--source include/have_innodb.inc
#
# Bug #57904 Missing constraint from information schema REFERENTIAL_CONSTRAINTS table
#
......
#
# Bug#59410 read uncommitted: unlock row could not find a 3 mode lock on the record
#
-- source include/have_innodb.inc
# only interested that the following do not produce something like
# InnoDB: Error: unlock row could not find a 2 mode lock on the record
# in the error log
......
--source include/have_innodb.inc
# Bug #59641 Prepared XA transaction causes shutdown hang after a crash
-- source include/not_embedded.inc
......
--source include/have_innodb.inc
# Bug #60049 Verify that purge leaves no garbage in unique secondary indexes
# This test requires a fresh server start-up and a slow shutdown.
# This was a suspected bug (not a bug).
......
--source include/have_innodb.inc
# Bug#60196 - Setting lowercase_table_names to 2 on Windows causing
# Foreign Key problems after an engine is restarted.
......
--source include/have_innodb.inc
if (`select plugin_auth_version <= "1.1.8-20.1" from information_schema.plugins where plugin_name='innodb'`)
{
--skip Not supported by XtraDB 1.1.8-20.1 or earlier
......
--source include/have_innodb.inc
--source suite/innodb/include/restart_and_reinit.inc
let $innodb_file_format_orig=`select @@innodb_file_format`;
......
--source include/have_innodb.inc
SET storage_engine=innodb;
--source include/gis_generic.inc
--source include/gis_keys.inc
......
--source include/have_innodb.inc
# Testcase for worklog #5743: Lift the limit of index key prefixes
let $innodb_file_format_orig=`select @@innodb_file_format`;
......
......@@ -3,6 +3,7 @@
# INFORMATION_SCHEMA.innodb_locks.lock_data
#
-- source include/have_innodb.inc
-- disable_query_log
-- disable_result_log
......
--source include/have_innodb.inc
--echo #
--echo # Bug #40113: Embedded SELECT inside UPDATE or DELETE can timeout
......
--source include/have_innodb.inc
#
# Test multi update with different join methods
......
......@@ -7,6 +7,7 @@
# Slow test, don't run during staging part
-- source include/not_staging.inc
-- source include/have_innodb.inc
-- source include/have_query_cache.inc
let $engine_type= InnoDB;
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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