summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Vojtovich <svoj@sun.com>2009-06-24 22:18:58 +0500
committerSergey Vojtovich <svoj@sun.com>2009-06-24 22:18:58 +0500
commitb4ac7f8c15bbd87df7229f95424d93788e7937c7 (patch)
tree71852f16e3cdbbb0e17ec196d4647a8b62cb4f0d
parent0fa4924fe544b44739961117e6ccd0cb99cdbe40 (diff)
downloadmariadb-git-b4ac7f8c15bbd87df7229f95424d93788e7937c7.tar.gz
This patch implements testing InnoDB plugin milestone.
mysql-test/lib/mtr_cases.pm: Expand test cases list with test cases to test InnoDB plugin. mysql-test/mysql-test-run.pl: Added "innodb" suite to default list of suites. mysql-test/suite/innodb/include/have_innodb_plugin.inc: This file determines if innodb plugin is available. mysql-test/suite/innodb/my.cnf: Removed temporary my.cnf, which was added for testing. Not needed anymore - options are substituted by mtr. mysql-test/suite/innodb/t/innodb-analyze.test: This test can only be run with InnoDB plugin. mysql-test/suite/innodb/t/innodb-timeout.test: This test can only be run with InnoDB plugin. mysql-test/suite/innodb/t/innodb-use-sys-malloc-master.opt: Use "loose" prefix with mysqld options. This makes this test skipped properly when no innodb is available. mysql-test/suite/innodb/t/innodb-use-sys-malloc.test: This test can only be run with InnoDB plugin. mysql-test/suite/innodb/t/innodb-zip.test: This test can only be run with InnoDB plugin. mysql-test/suite/innodb/t/innodb_bug36169.test: This test can only be run with InnoDB plugin. mysql-test/suite/innodb/t/innodb_bug36172.test: This test can only be run with InnoDB plugin. mysql-test/suite/innodb/t/innodb_information_schema.test: This test can only be run with InnoDB plugin.
-rw-r--r--mysql-test/lib/mtr_cases.pm60
-rwxr-xr-xmysql-test/mysql-test-run.pl2
-rw-r--r--mysql-test/suite/innodb/include/have_innodb_plugin.inc4
-rw-r--r--mysql-test/suite/innodb/my.cnf6
-rw-r--r--mysql-test/suite/innodb/t/innodb-analyze.test1
-rw-r--r--mysql-test/suite/innodb/t/innodb-timeout.test1
-rw-r--r--mysql-test/suite/innodb/t/innodb-use-sys-malloc-master.opt4
-rw-r--r--mysql-test/suite/innodb/t/innodb-use-sys-malloc.test1
-rw-r--r--mysql-test/suite/innodb/t/innodb-zip.test1
-rw-r--r--mysql-test/suite/innodb/t/innodb_bug36169.test1
-rw-r--r--mysql-test/suite/innodb/t/innodb_bug36172.test1
-rw-r--r--mysql-test/suite/innodb/t/innodb_information_schema.test1
12 files changed, 74 insertions, 9 deletions
diff --git a/mysql-test/lib/mtr_cases.pm b/mysql-test/lib/mtr_cases.pm
index 2a7b07debd0..681f886fdf1 100644
--- a/mysql-test/lib/mtr_cases.pm
+++ b/mysql-test/lib/mtr_cases.pm
@@ -475,6 +475,66 @@ sub collect_one_suite($)
#print_testcases(@cases);
}
}
+
+ # ----------------------------------------------------------------------
+ # Testing InnoDB plugin.
+ # ----------------------------------------------------------------------
+ my $lib_innodb_plugin=
+ mtr_file_exists(::vs_config_dirs('storage/innodb_plugin', 'ha_innodb_plugin.dll'),
+ "$::basedir/storage/innodb_plugin/.libs/ha_innodb_plugin.so");
+ if ($::mysql_version_id >= 50100 && !(IS_WINDOWS && $::opt_embedded_server) &&
+ $lib_innodb_plugin)
+ {
+ my @new_cases;
+
+ foreach my $test (@cases)
+ {
+ next if ($test->{'skip'} || !$test->{'innodb_test'});
+ # Exceptions
+ next if ($test->{'name'} eq 'main.innodb'); # Failed with wrong errno (fk)
+ next if ($test->{'name'} eq 'main.innodb_mysql'); # Diff in show (fk)
+ next if ($test->{'name'} eq 'main.index_merge_innodb'); # Explain diff
+ # innodb_file_per_table is rw with innodb_plugin
+ next if ($test->{'name'} eq 'sys_vars.innodb_file_per_table_basic');
+ # innodb_lock_wait_timeout is rw with innodb_plugin
+ next if ($test->{'name'} eq 'sys_vars.innodb_lock_wait_timeout_basic');
+ # Diff around innodb_thread_concurrency variable
+ next if ($test->{'name'} eq 'sys_vars.innodb_thread_concurrency_basic');
+ # Copy test options
+ my $new_test= My::Test->new();
+ while (my ($key, $value) = each(%$test))
+ {
+ if (ref $value eq "ARRAY")
+ {
+ push(@{$new_test->{$key}}, @$value);
+ }
+ else
+ {
+ $new_test->{$key}= $value;
+ }
+ }
+ my $plugin_filename= basename($lib_innodb_plugin);
+ push(@{$new_test->{master_opt}}, '--ignore-builtin-innodb');
+ push(@{$new_test->{master_opt}}, '--plugin-dir=' . dirname($lib_innodb_plugin));
+ push(@{$new_test->{master_opt}}, "--plugin_load=innodb=$plugin_filename;innodb_locks=$plugin_filename");
+ push(@{$new_test->{slave_opt}}, '--ignore-builtin-innodb');
+ push(@{$new_test->{slave_opt}}, '--plugin-dir=' . dirname($lib_innodb_plugin));
+ push(@{$new_test->{slave_opt}}, "--plugin_load=innodb=$plugin_filename;innodb_locks=$plugin_filename");
+ if ($new_test->{combination})
+ {
+ $new_test->{combination}.= ' + InnoDB plugin';
+ }
+ else
+ {
+ $new_test->{combination}= 'InnoDB plugin';
+ }
+ push(@new_cases, $new_test);
+ }
+ push(@cases, @new_cases);
+ }
+ # ----------------------------------------------------------------------
+ # End of testing InnoDB plugin.
+ # ----------------------------------------------------------------------
optimize_cases(\@cases);
#print_testcases(@cases);
diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl
index 374fcb6c8ef..9e168463e99 100755
--- a/mysql-test/mysql-test-run.pl
+++ b/mysql-test/mysql-test-run.pl
@@ -126,7 +126,7 @@ my $path_config_file; # The generated config file, var/my.cnf
# executables will be used by the test suite.
our $opt_vs_config = $ENV{'MTR_VS_CONFIG'};
-my $DEFAULT_SUITES= "main,binlog,federated,rpl,rpl_ndb,ndb";
+my $DEFAULT_SUITES= "main,binlog,federated,rpl,rpl_ndb,ndb,innodb";
my $opt_suites;
our $opt_verbose= 0; # Verbose output, enable with --verbose
diff --git a/mysql-test/suite/innodb/include/have_innodb_plugin.inc b/mysql-test/suite/innodb/include/have_innodb_plugin.inc
new file mode 100644
index 00000000000..24af3274ada
--- /dev/null
+++ b/mysql-test/suite/innodb/include/have_innodb_plugin.inc
@@ -0,0 +1,4 @@
+disable_query_log;
+--require r/true.require
+select (PLUGIN_LIBRARY LIKE 'ha_innodb_plugin%') as `TRUE` from information_schema.plugins where PLUGIN_NAME='InnoDB';
+enable_query_log;
diff --git a/mysql-test/suite/innodb/my.cnf b/mysql-test/suite/innodb/my.cnf
deleted file mode 100644
index 9104afba7b2..00000000000
--- a/mysql-test/suite/innodb/my.cnf
+++ /dev/null
@@ -1,6 +0,0 @@
-!include include/default_my.cnf
-
-[mysqld]
-ignore-builtin-innodb
-plugin-dir=../storage/innodb_plugin/.libs/
-plugin_load=innodb=ha_innodb_plugin.so:innodb_locks=ha_innodb_plugin.so
diff --git a/mysql-test/suite/innodb/t/innodb-analyze.test b/mysql-test/suite/innodb/t/innodb-analyze.test
index 32eef7e742c..870e6434797 100644
--- a/mysql-test/suite/innodb/t/innodb-analyze.test
+++ b/mysql-test/suite/innodb/t/innodb-analyze.test
@@ -4,6 +4,7 @@
#
-- source include/have_innodb.inc
+-- source suite/innodb/include/have_innodb_plugin.inc
# we care only that the following SQL commands do not produce errors
# and do not crash the server
diff --git a/mysql-test/suite/innodb/t/innodb-timeout.test b/mysql-test/suite/innodb/t/innodb-timeout.test
index f23fe3cff2d..1ee1ad63180 100644
--- a/mysql-test/suite/innodb/t/innodb-timeout.test
+++ b/mysql-test/suite/innodb/t/innodb-timeout.test
@@ -1,4 +1,5 @@
-- source include/have_innodb.inc
+-- source suite/innodb/include/have_innodb_plugin.inc
let $timeout=`select @@innodb_lock_wait_timeout`;
set global innodb_lock_wait_timeout=42;
diff --git a/mysql-test/suite/innodb/t/innodb-use-sys-malloc-master.opt b/mysql-test/suite/innodb/t/innodb-use-sys-malloc-master.opt
index 889834add01..8ec086387f8 100644
--- a/mysql-test/suite/innodb/t/innodb-use-sys-malloc-master.opt
+++ b/mysql-test/suite/innodb/t/innodb-use-sys-malloc-master.opt
@@ -1,2 +1,2 @@
---innodb-use-sys-malloc=true
---innodb-use-sys-malloc=true
+--loose-innodb-use-sys-malloc=true
+--loose-innodb-use-sys-malloc=true
diff --git a/mysql-test/suite/innodb/t/innodb-use-sys-malloc.test b/mysql-test/suite/innodb/t/innodb-use-sys-malloc.test
index 325dd19d086..4df3ca9d27c 100644
--- a/mysql-test/suite/innodb/t/innodb-use-sys-malloc.test
+++ b/mysql-test/suite/innodb/t/innodb-use-sys-malloc.test
@@ -1,4 +1,5 @@
--source include/have_innodb.inc
+-- source suite/innodb/include/have_innodb_plugin.inc
#display current value of innodb_use_sys_malloc
SELECT @@GLOBAL.innodb_use_sys_malloc;
diff --git a/mysql-test/suite/innodb/t/innodb-zip.test b/mysql-test/suite/innodb/t/innodb-zip.test
index ddc39d44487..3ee278b7c5a 100644
--- a/mysql-test/suite/innodb/t/innodb-zip.test
+++ b/mysql-test/suite/innodb/t/innodb-zip.test
@@ -1,4 +1,5 @@
-- source include/have_innodb.inc
+-- source suite/innodb/include/have_innodb_plugin.inc
let $per_table=`select @@innodb_file_per_table`;
let $format=`select @@innodb_file_format`;
diff --git a/mysql-test/suite/innodb/t/innodb_bug36169.test b/mysql-test/suite/innodb/t/innodb_bug36169.test
index f3869a31513..da852b816f4 100644
--- a/mysql-test/suite/innodb/t/innodb_bug36169.test
+++ b/mysql-test/suite/innodb/t/innodb_bug36169.test
@@ -4,6 +4,7 @@
#
-- source include/have_innodb.inc
+-- source suite/innodb/include/have_innodb_plugin.inc
SET GLOBAL innodb_file_format='Barracuda';
SET GLOBAL innodb_file_per_table=ON;
diff --git a/mysql-test/suite/innodb/t/innodb_bug36172.test b/mysql-test/suite/innodb/t/innodb_bug36172.test
index 9d437b7d8cd..9e1308d5fc3 100644
--- a/mysql-test/suite/innodb/t/innodb_bug36172.test
+++ b/mysql-test/suite/innodb/t/innodb_bug36172.test
@@ -4,6 +4,7 @@
-- source include/not_embedded.inc
-- source include/have_innodb.inc
+-- source suite/innodb/include/have_innodb_plugin.inc
SET storage_engine=InnoDB;
diff --git a/mysql-test/suite/innodb/t/innodb_information_schema.test b/mysql-test/suite/innodb/t/innodb_information_schema.test
index eaed653854a..df65139448c 100644
--- a/mysql-test/suite/innodb/t/innodb_information_schema.test
+++ b/mysql-test/suite/innodb/t/innodb_information_schema.test
@@ -4,6 +4,7 @@
#
-- source include/have_innodb.inc
+-- source suite/innodb/include/have_innodb_plugin.inc
-- disable_query_log
-- disable_result_log