diff options
Diffstat (limited to 'mysql-test/mysql-test-run.pl')
-rwxr-xr-x | mysql-test/mysql-test-run.pl | 123 |
1 files changed, 100 insertions, 23 deletions
diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 651aa37fc7e..833b7515c59 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -188,6 +188,12 @@ our $opt_big_test= 0; # Send --big-test to mysqltest our @opt_extra_mysqld_opt; our $opt_compress; +our $opt_ssl; +our $opt_skip_ssl; +our $opt_ssl_supported; +our $opt_with_openssl; # Deprecated flag +our $opt_ps_protocol; + our $opt_current_test; our $opt_ddd; our $opt_debug; @@ -237,7 +243,6 @@ our $opt_skip_rpl; our $opt_skip_test; our $opt_sleep; -our $opt_ps_protocol; our $opt_sleep_time_after_restart= 1; our $opt_sleep_time_for_delete= 10; @@ -275,7 +280,6 @@ our $opt_udiff; our $opt_skip_ndbcluster; our $opt_with_ndbcluster; -our $opt_with_openssl; our $exe_ndb_mgm; our $path_ndb_tools_dir; @@ -296,7 +300,8 @@ sub executable_setup (); sub environment_setup (); sub kill_running_server (); sub kill_and_cleanup (); -sub ndbcluster_support (); +sub check_ssl_support (); +sub check_ndbcluster_support (); sub ndbcluster_install (); sub ndbcluster_start (); sub ndbcluster_stop (); @@ -331,11 +336,9 @@ sub main () { initial_setup(); command_line_setup(); executable_setup(); - - if (! $opt_skip_ndbcluster and ! $opt_with_ndbcluster) - { - $opt_with_ndbcluster= ndbcluster_support(); - } + + check_ndbcluster_support(); + check_ssl_support(); environment_setup(); signal_setup(); @@ -477,6 +480,10 @@ sub command_line_setup () { # Control what engine/variation to run 'embedded-server' => \$opt_embedded_server, 'ps-protocol' => \$opt_ps_protocol, + 'with-openssl' => \$opt_with_openssl, + 'ssl' => \$opt_ssl, + 'skip-ssl' => \$opt_skip_ssl, + 'compress' => \$opt_compress, 'bench' => \$opt_bench, 'small-bench' => \$opt_small_bench, 'no-manager' => \$opt_no_manager, # Currently not used @@ -527,7 +534,6 @@ sub command_line_setup () { # Misc 'big-test' => \$opt_big_test, - 'compress' => \$opt_compress, 'debug' => \$opt_debug, 'fast' => \$opt_fast, 'local' => \$opt_local, @@ -552,7 +558,6 @@ sub command_line_setup () { 'testcase-timeout=i' => \$opt_testcase_timeout, 'suite-timeout=i' => \$opt_suite_timeout, 'warnings|log-warnings' => \$opt_warnings, - 'with-openssl' => \$opt_with_openssl, 'help|h' => \$opt_usage, ) or usage("Can't read options"); @@ -1094,13 +1099,66 @@ sub kill_and_cleanup () { } +sub check_ssl_support () { + + + # Convert deprecated --with-openssl to --ssl + if ( $opt_with_openssl ) + { + $opt_ssl= 1; + } + + if ($opt_skip_ssl) + { + mtr_report("Skipping SSL"); + $opt_ssl_supported= 0; + $opt_ssl= 0; + return; + } + + # check ssl support by testing using a switch + # that is only available in that case + if ( mtr_run($exe_mysqld, + ["--no-defaults", + "--ssl", + "--help"], + "", "/dev/null", "/dev/null", "") != 0 ) + { + if ( $opt_ssl) + { + mtr_error("Couldn't find support for SSL"); + return; + } + mtr_report("Skipping SSL, mysqld does not support it"); + $opt_ssl_supported= 0; + $opt_ssl= 0; + return; + } + mtr_report("Setting mysqld to support SSL connections"); + $opt_ssl_supported= 1; +} + + ############################################################################## # # Start the ndb cluster # ############################################################################## -sub ndbcluster_support () { +sub check_ndbcluster_support () { + + if ($opt_skip_ndbcluster) + { + mtr_report("Skipping ndbcluster"); + $opt_with_ndbcluster= 0; + return; + } + + if ($opt_with_ndbcluster) + { + mtr_report("Using ndbcluster"); + return; + } # check ndbcluster support by testing using a switch # that is only available in that case @@ -1110,11 +1168,13 @@ sub ndbcluster_support () { "--help"], "", "/dev/null", "/dev/null", "") != 0 ) { - mtr_report("No ndbcluster support"); - return 0; + mtr_report("Skipping ndbcluster, mysqld does not support it"); + $opt_with_ndbcluster= 0; + return; } - mtr_report("Has ndbcluster support"); - return 1; + mtr_report("Using ndbcluster, mysqld supports it"); + $opt_with_ndbcluster= 1; + return; } # FIXME why is there a different start below?! @@ -2003,7 +2063,7 @@ sub mysqld_arguments ($$$$$) { mtr_add_arg($args, "%s--max_heap_table_size=1M", $prefix); mtr_add_arg($args, "%s--log-bin-trust-routine-creators", $prefix); - if ( $opt_with_openssl ) + if ( $opt_ssl_supported ) { mtr_add_arg($args, "%s--ssl-ca=%s/std_data/cacert.pem", $prefix, $glob_mysql_test_dir); @@ -2468,14 +2528,26 @@ sub run_mysqltest ($) { mtr_add_arg($args, "--debug=d:t:A,%s/log/mysqltest.trace", $opt_vardir); } - if ( $opt_with_openssl ) + if ( $opt_ssl_supported ) { mtr_add_arg($args, "--ssl-ca=%s/std_data/cacert.pem", - $glob_mysql_test_dir); + $glob_mysql_test_dir); mtr_add_arg($args, "--ssl-cert=%s/std_data/client-cert.pem", - $glob_mysql_test_dir); + $glob_mysql_test_dir); mtr_add_arg($args, "--ssl-key=%s/std_data/client-key.pem", - $glob_mysql_test_dir); + $glob_mysql_test_dir); + } + + # Turn on SSL for all test cases + if ( $opt_ssl ) + { + mtr_add_arg($args, "--ssl", + $glob_mysql_test_dir); + } + elsif ( $opt_ssl_supported ) + { + mtr_add_arg($args, "--skip-ssl", + $glob_mysql_test_dir); } mtr_add_arg($args, "-R"); @@ -2515,6 +2587,9 @@ Options to control what engine/variation to run embedded-server Use the embedded server, i.e. no mysqld daemons ps-protocol Use the binary protocol between client and server + compress Use the compressed protocol between client and server + ssl Use ssl protocol between client and server + skip-ssl Dont start sterver with support for ssl connections bench Run the benchmark suite FIXME small-bench FIXME @@ -2522,6 +2597,7 @@ Options to control what test suites or cases to run force Continue to run the suite after failure with-ndbcluster Use cluster, and enable test cases that requres it + skip-ndb[cluster] Use cluster, and enable test cases that requres it do-test=PREFIX Run test cases which name are prefixed with PREFIX start-from=PREFIX Run test cases starting from test prefixed with PREFIX suite=NAME Run the test suite named NAME. The default is "main" @@ -2545,7 +2621,7 @@ Options that pass on options Options to run test on running server extern Use running server for tests FIXME DANGEROUS - ndbconnectstring=STR Use running cluster, and connect using STR + ndbconnectstring=STR Use running cluster, and connect using STR user=USER User for connect to server Options for debugging the product @@ -2570,7 +2646,6 @@ Misc options verbose Verbose output from this script script-debug Debug this script itself - compress Use the compressed protocol between client and server timer Show test case execution time start-and-exit Only initiate and start the "mysqld" servers, use the startup settings for the specified test case if any @@ -2583,6 +2658,9 @@ Misc options testcase-timeout=MINUTES Max test case run time (default 5) suite-timeout=MINUTES Max test suite run time (default 120) +Deprecated options + with-openssl Deprecated option for ssl + Options not yet described, or that I want to look into more @@ -2599,7 +2677,6 @@ Options not yet described, or that I want to look into more wait-timeout=SECONDS warnings log-warnings - with-openssl HERE mtr_exit(1); |