diff --git a/mysql-test/lib/mtr_cases.pl b/mysql-test/lib/mtr_cases.pl index cfd07abb9e0..09f28682345 100644 --- a/mysql-test/lib/mtr_cases.pl +++ b/mysql-test/lib/mtr_cases.pl @@ -503,6 +503,13 @@ sub collect_one_test_case($$$$$$$) { $tinfo->{'skip'}= 1; $tinfo->{'comment'}= "Test need debug binaries"; } + + if ( $tinfo->{'innodb_test'} && ! $::glob_innodb_supported ) + { + $tinfo->{'skip'}= 1; + $tinfo->{'comment'}= "Test need innodb"; + } + } # We can't restart a running server that may be in use diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 9f1ce3b9b01..00f87af01f1 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -333,6 +333,7 @@ our @data_dir_lst; our $used_binlog_format; our $debug_compiled_binaries; our $glob_tot_real_time= 0; +our $glob_innodb_supported; ###################################################################### # @@ -351,6 +352,7 @@ sub cleanup_stale_files (); sub check_ssl_support (); sub check_running_as_root(); sub check_ndbcluster_support (); +sub check_innodb_support (); sub rm_ndbcluster_tables ($); sub ndbcluster_start_install ($); sub ndbcluster_start ($$); @@ -391,6 +393,7 @@ sub main () { executable_setup(); check_ndbcluster_support(); + check_innodb_support(); check_ssl_support(); check_debug_support(); @@ -1832,6 +1835,25 @@ sub check_debug_support () { $debug_compiled_binaries= 1; } +sub check_innodb_support () { + + # check innodb support by testing using a switch + # that is only available in that case + if ( mtr_run($exe_mysqld, + ["--no-defaults", + "--innodb-data-file-path", + "--help"], + "", "/dev/null", "/dev/null", "") != 0 ) + { + # mtr_report("Binaries does not support innodb"); + $glob_innodb_supported= 0; + + return; + } + mtr_report("Using innodb when necessary"); + $glob_innodb_supported= 1; +} + ############################################################################## # # Start the ndb cluster