diff options
author | Sergey Vojtovich <svoj@sun.com> | 2009-06-24 22:18:58 +0500 |
---|---|---|
committer | Sergey Vojtovich <svoj@sun.com> | 2009-06-24 22:18:58 +0500 |
commit | b4ac7f8c15bbd87df7229f95424d93788e7937c7 (patch) | |
tree | 71852f16e3cdbbb0e17ec196d4647a8b62cb4f0d | |
parent | 0fa4924fe544b44739961117e6ccd0cb99cdbe40 (diff) | |
download | mariadb-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.pm | 60 | ||||
-rwxr-xr-x | mysql-test/mysql-test-run.pl | 2 | ||||
-rw-r--r-- | mysql-test/suite/innodb/include/have_innodb_plugin.inc | 4 | ||||
-rw-r--r-- | mysql-test/suite/innodb/my.cnf | 6 | ||||
-rw-r--r-- | mysql-test/suite/innodb/t/innodb-analyze.test | 1 | ||||
-rw-r--r-- | mysql-test/suite/innodb/t/innodb-timeout.test | 1 | ||||
-rw-r--r-- | mysql-test/suite/innodb/t/innodb-use-sys-malloc-master.opt | 4 | ||||
-rw-r--r-- | mysql-test/suite/innodb/t/innodb-use-sys-malloc.test | 1 | ||||
-rw-r--r-- | mysql-test/suite/innodb/t/innodb-zip.test | 1 | ||||
-rw-r--r-- | mysql-test/suite/innodb/t/innodb_bug36169.test | 1 | ||||
-rw-r--r-- | mysql-test/suite/innodb/t/innodb_bug36172.test | 1 | ||||
-rw-r--r-- | mysql-test/suite/innodb/t/innodb_information_schema.test | 1 |
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 |