mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
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.
This commit is contained in:
@ -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);
|
||||
|
||||
|
Reference in New Issue
Block a user