mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Improved testing of ssl and compression
- Added show status variable "compression" for checking that compression is turned on. - Updated show status variable "have_openssl" to be set to DISABLED if server supports ssl but it's not turned on to accept incoming ssl connections. - Setup server to accept ssl connections from clients ig that is supported by server - New tests - ssl - Run with ssl turned on - ssl_compress - Run with ssl and compression turned on - compress - Run with compression turned in - Updated test - openssl_1, rpl_openssl1 - Changed to run if server supports ssl
This commit is contained in:
@ -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);
|
||||
|
Reference in New Issue
Block a user