summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjorn Munch <Bjorn.Munch@sun.com>2009-10-06 14:37:37 +0200
committerBjorn Munch <Bjorn.Munch@sun.com>2009-10-06 14:37:37 +0200
commitf218923948a30a0845143056d55b7d9eafe649ab (patch)
tree7bf0a4f787f25333f4dd280ef63aacfd7b915f9a
parent94faa8571570095b8125060e0377bd2a712bcdcc (diff)
downloadmariadb-git-f218923948a30a0845143056d55b7d9eafe649ab.tar.gz
merge of 47383 from 5.1-mtrmysql-5.1.40clone-5.1.40-build
-rw-r--r--mysql-test/lib/mtr_cases.pm34
1 files changed, 24 insertions, 10 deletions
diff --git a/mysql-test/lib/mtr_cases.pm b/mysql-test/lib/mtr_cases.pm
index 84253ddc5a6..ebb330396be 100644
--- a/mysql-test/lib/mtr_cases.pm
+++ b/mysql-test/lib/mtr_cases.pm
@@ -69,6 +69,10 @@ require "mtr_misc.pl";
my $do_test_reg;
my $skip_test_reg;
+# Related to adding InnoDB plugin combinations
+my $lib_innodb_plugin;
+my $do_innodb_plugin;
+
# If "Quick collect", set to 1 once a test to run has been found.
my $some_test_found;
@@ -103,6 +107,17 @@ sub collect_test_cases ($$) {
$do_test_reg= init_pattern($do_test, "--do-test");
$skip_test_reg= init_pattern($skip_test, "--skip-test");
+ $lib_innodb_plugin=
+ my_find_file($::basedir,
+ ["storage/innodb_plugin", "storage/innodb_plugin/.libs",
+ "lib/mysql/plugin", "lib/plugin"],
+ ["ha_innodb_plugin.dll", "ha_innodb_plugin.so",
+ "ha_innodb_plugin.sl"],
+ NOT_REQUIRED);
+ $do_innodb_plugin= ($::mysql_version_id >= 50100 &&
+ !(IS_WINDOWS && $::opt_embedded_server) &&
+ $lib_innodb_plugin);
+
foreach my $suite (split(",", $suites))
{
push(@$cases, collect_one_suite($suite, $opt_cases));
@@ -484,20 +499,16 @@ sub collect_one_suite($)
# ----------------------------------------------------------------------
# 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",
- "$::basedir/lib/mysql/plugin/ha_innodb_plugin.so",
- "$::basedir/lib/mysql/plugin/ha_innodb_plugin.dll");
- if ($::mysql_version_id >= 50100 && !(IS_WINDOWS && $::opt_embedded_server) &&
- $lib_innodb_plugin)
+ if ($do_innodb_plugin)
{
my @new_cases;
my $sep= (IS_WINDOWS) ? ';' : ':';
foreach my $test (@cases)
{
- next if ($test->{'skip'} || !$test->{'innodb_test'});
+ next if (!$test->{'innodb_test'});
+ # If skipped due to no builtin innodb, we can still run it with plugin
+ next if ($test->{'skip'} && $test->{comment} ne "No innodb support");
# Exceptions
next if ($test->{'name'} eq 'main.innodb'); # Failed with wrong errno (fk)
next if ($test->{'name'} eq 'main.index_merge_innodb'); # Explain diff
@@ -521,7 +532,7 @@ sub collect_one_suite($)
}
else
{
- $new_test->{$key}= $value;
+ $new_test->{$key}= $value unless ($key eq 'skip');
}
}
my $plugin_filename= basename($lib_innodb_plugin);
@@ -981,8 +992,11 @@ sub collect_one_test_case {
{
# innodb is not supported, skip it
$tinfo->{'skip'}= 1;
+ # This comment is checked for running with innodb plugin (see above),
+ # please keep that in mind if changing the text.
$tinfo->{'comment'}= "No innodb support";
- return $tinfo;
+ # But continue processing if we may run it with innodb plugin
+ return $tinfo unless $do_innodb_plugin;
}
}
else