diff options
author | Elena Stepanova <elenst@montyprogram.com> | 2017-11-05 01:30:40 +0200 |
---|---|---|
committer | Elena Stepanova <elenst@montyprogram.com> | 2017-11-05 01:30:40 +0200 |
commit | d78273d1e53308c8fe78b9e067a88c43bd05e540 (patch) | |
tree | 1bfb3927c51945d70a785829b6d8c4f4b14e668d | |
parent | 737a4da94ae9b25a7ebe828c5b35a1ce4acf03d6 (diff) | |
download | mariadb-git-bb-10.0-elenst.tar.gz |
MDEV-14288 Add MTR option to run tests with real server defaultsbb-10.0-elenst
-rw-r--r-- | mysql-test/include/hard_default_my.cnf | 43 | ||||
-rw-r--r-- | mysql-test/lib/My/ConfigFactory.pm | 4 | ||||
-rw-r--r-- | mysql-test/lib/mtr_cases.pm | 5 | ||||
-rwxr-xr-x | mysql-test/mysql-test-run.pl | 26 |
4 files changed, 69 insertions, 9 deletions
diff --git a/mysql-test/include/hard_default_my.cnf b/mysql-test/include/hard_default_my.cnf new file mode 100644 index 00000000000..b89b69e97e0 --- /dev/null +++ b/mysql-test/include/hard_default_my.cnf @@ -0,0 +1,43 @@ +# Copyright (c) 2017 MariaDB Corporation +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +# Use real default settings for mysqld processes + +[mysqld] +open-files-limit= 1024 +log-basename=mysqld + +loose-ssl-ca=@ENV.MYSQL_TEST_DIR/std_data/cacert.pem +loose-ssl-cert=@ENV.MYSQL_TEST_DIR/std_data/server-cert.pem +loose-ssl-key=@ENV.MYSQL_TEST_DIR/std_data/server-key.pem + +[embedded] +local-infile + +[client] +plugin-dir=@mysqld.1.plugin-dir + +[mysqltest] +loose-ssl-ca=@ENV.MYSQL_TEST_DIR/std_data/cacert.pem +loose-ssl-cert=@ENV.MYSQL_TEST_DIR/std_data/client-cert.pem +loose-ssl-key=@ENV.MYSQL_TEST_DIR/std_data/client-key.pem + +[mysqld.1] + +#!run-master-sh + +[ENV] +MASTER_MYPORT= @mysqld.1.port +MASTER_MYSOCK= @mysqld.1.socket diff --git a/mysql-test/lib/My/ConfigFactory.pm b/mysql-test/lib/My/ConfigFactory.pm index b8ce038f23e..dcdb534f97c 100644 --- a/mysql-test/lib/My/ConfigFactory.pm +++ b/mysql-test/lib/My/ConfigFactory.pm @@ -37,7 +37,9 @@ sub add_opt_values { # add auto-options $config->insert('OPT', 'port' => sub { fix_port($self, $config) }); - $config->insert('mysqld', "loose-skip-plugin-$_" => undef) for (@::optional_plugins); + if (!$::opt_default_server_options) { + $config->insert('mysqld', "loose-skip-plugin-$_" => undef) for (@::optional_plugins); + } } my @pre_rules= diff --git a/mysql-test/lib/mtr_cases.pm b/mysql-test/lib/mtr_cases.pm index 38c52b705f6..26a4edda3b2 100644 --- a/mysql-test/lib/mtr_cases.pm +++ b/mysql-test/lib/mtr_cases.pm @@ -876,7 +876,10 @@ sub collect_one_test_case { if (not $config) { # Suite has no config, autodetect which one to use - if ($tinfo->{rpl_test}) { + if ($::opt_default_server_options) { + $config= "include/hard_default_my.cnf"; + } + elsif ($tinfo->{rpl_test}) { $config= "suite/rpl/my.cnf"; } else { $config= "include/default_my.cnf"; diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 33d9c7b4ee5..997fb82af9b 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -131,6 +131,7 @@ our $plugindir; my $path_vardir_trace; # unix formatted opt_vardir for trace files my $opt_tmpdir; # Path to use for tmp/ dir my $opt_tmpdir_pid; +our $opt_default_server_options; my $opt_start; my $opt_start_dirty; @@ -1106,6 +1107,9 @@ sub command_line_setup { # Extra config file to append to all generated configs 'defaults-extra-file=s' => \&collect_option, + # Use hard defaults instead of heavily modified MTR configuration + 'default-server-options' => \$opt_default_server_options, + # Control what test suites or cases to run 'force+' => \$opt_force, 'with-ndbcluster-only' => \&collect_option, @@ -3473,11 +3477,15 @@ sub sql_to_bootstrap { sub default_mysqld { # Generate new config file from template environment_setup(); + my $config_template= ($opt_default_server_options + ? 'include/hard_default_my.cnf' + : 'include/default_my.cnf' + ); my $config= My::ConfigFactory->new_config ( { basedir => $basedir, testdir => $glob_mysql_test_dir, - template_path => "include/default_my.cnf", + template_path => $config_template, vardir => $opt_vardir, tmpdir => $opt_tmpdir, baseport => 0, @@ -3509,12 +3517,14 @@ sub mysql_install_db { mtr_add_arg($args, "--basedir=%s", $install_basedir); mtr_add_arg($args, "--datadir=%s", $install_datadir); mtr_add_arg($args, "--plugin-dir=%s", $plugindir); - mtr_add_arg($args, "--default-storage-engine=myisam"); - mtr_add_arg($args, "--loose-skip-plugin-$_") for @optional_plugins; - # starting from 10.0 bootstrap scripts require InnoDB - mtr_add_arg($args, "--loose-innodb"); - mtr_add_arg($args, "--loose-innodb-log-file-size=5M"); - mtr_add_arg($args, "--disable-sync-frm"); + if (!$opt_default_server_options) { + mtr_add_arg($args, "--default-storage-engine=myisam"); + mtr_add_arg($args, "--loose-skip-plugin-$_") for @optional_plugins; + # starting from 10.0 bootstrap scripts require InnoDB + mtr_add_arg($args, "--loose-innodb"); + mtr_add_arg($args, "--loose-innodb-log-file-size=5M"); + mtr_add_arg($args, "--disable-sync-frm"); + } mtr_add_arg($args, "--tmpdir=%s", "$opt_vardir/tmp/"); mtr_add_arg($args, "--core-file"); mtr_add_arg($args, "--console"); @@ -6438,6 +6448,8 @@ Options to control what engine/variation to run: tests defaults-extra-file=<config template> Extra config template to add to all generated configs + default-server-options Use hard server defaults instead of the usual + heavily adjusted defaults-file combination=<opt> Use at least twice to run tests with specified options to mysqld dry-run Don't run any tests, print the list of tests |