Commit be6f7a3f authored by msvensson@neptunus.(none)'s avatar msvensson@neptunus.(none)

Merge neptunus.(none):/home/msvensson/mysql/ssl_test/my50-ssl_test

into  neptunus.(none):/home/msvensson/mysql/mysql-5.0
parents 74b8b449 22c0d648
...@@ -77,7 +77,6 @@ ...@@ -77,7 +77,6 @@
#define PAD_SIZE 128 #define PAD_SIZE 128
#define MAX_CONS 128 #define MAX_CONS 128
#define MAX_INCLUDE_DEPTH 16 #define MAX_INCLUDE_DEPTH 16
#define LAZY_GUESS_BUF_SIZE 8192
#define INIT_Q_LINES 1024 #define INIT_Q_LINES 1024
#define MIN_VAR_ALLOC 32 #define MIN_VAR_ALLOC 32
#define BLOCK_STACK_DEPTH 32 #define BLOCK_STACK_DEPTH 32
...@@ -1837,23 +1836,28 @@ void free_replace() ...@@ -1837,23 +1836,28 @@ void free_replace()
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
} }
struct connection * find_connection_by_name(const char *name)
int select_connection_name(const char *name)
{ {
struct connection *con; struct connection *con;
DBUG_ENTER("select_connection2");
DBUG_PRINT("enter",("name: '%s'", name));
for (con= cons; con < next_con; con++) for (con= cons; con < next_con; con++)
{ {
if (!strcmp(con->name, name)) if (!strcmp(con->name, name))
{ {
cur_con= con; return con;
DBUG_RETURN(0);
} }
} }
return 0; /* Connection not found */
}
int select_connection_name(const char *name)
{
DBUG_ENTER("select_connection2");
DBUG_PRINT("enter",("name: '%s'", name));
if (!(cur_con= find_connection_by_name(name)))
die("connection '%s' not found in connection pool", name); die("connection '%s' not found in connection pool", name);
DBUG_RETURN(1); /* Never reached */ DBUG_RETURN(0);
} }
...@@ -1883,7 +1887,7 @@ int close_connection(struct st_query *q) ...@@ -1883,7 +1887,7 @@ int close_connection(struct st_query *q)
DBUG_PRINT("enter",("name: '%s'",p)); DBUG_PRINT("enter",("name: '%s'",p));
if (!*p) if (!*p)
die("Missing connection name in connect"); die("Missing connection name in disconnect");
name= p; name= p;
while (*p && !my_isspace(charset_info,*p)) while (*p && !my_isspace(charset_info,*p))
p++; p++;
...@@ -1906,6 +1910,14 @@ int close_connection(struct st_query *q) ...@@ -1906,6 +1910,14 @@ int close_connection(struct st_query *q)
} }
#endif #endif
mysql_close(&con->mysql); mysql_close(&con->mysql);
my_free(con->name, MYF(0));
/*
When the connection is closed set name to "closed_connection"
to make it possible to reuse the connection name.
The connection slot will not be reused
*/
if (!(con->name = my_strdup("closed_connection", MYF(MY_WME))))
die("Out of memory");
DBUG_RETURN(0); DBUG_RETURN(0);
} }
} }
...@@ -1919,20 +1931,35 @@ int close_connection(struct st_query *q) ...@@ -1919,20 +1931,35 @@ int close_connection(struct st_query *q)
future to handle quotes. For now we assume that anything that is not future to handle quotes. For now we assume that anything that is not
a comma, a space or ) belongs to the argument. space is a chopper, comma or a comma, a space or ) belongs to the argument. space is a chopper, comma or
) are delimiters/terminators ) are delimiters/terminators
SYNOPSIS
safe_get_param
str - string to get param from
arg - pointer to string where result will be stored
msg - Message to display if param is not found
if msg is 0 this param is not required and param may be empty
RETURNS
pointer to str after param
*/ */
char* safe_get_param(char *str, char** arg, const char *msg) char* safe_get_param(char *str, char** arg, const char *msg)
{ {
DBUG_ENTER("safe_get_param"); DBUG_ENTER("safe_get_param");
if(!*str)
{
if (msg)
die(msg);
*arg= str;
DBUG_RETURN(str);
}
while (*str && my_isspace(charset_info,*str)) while (*str && my_isspace(charset_info,*str))
str++; str++;
*arg= str; *arg= str;
for (; *str && *str != ',' && *str != ')' ; str++) while (*str && *str != ',' && *str != ')')
{ str++;
if (my_isspace(charset_info,*str)) if (msg && !*arg)
*str= 0;
}
if (!*str)
die(msg); die(msg);
*str++= 0; *str++= 0;
...@@ -2117,13 +2144,39 @@ err: ...@@ -2117,13 +2144,39 @@ err:
} }
/*
Open a new connection to MySQL Server with the parameters
specified
SYNOPSIS
do_connect()
q called command
DESCRIPTION
connect(<name>,<host>,<user>,<pass>,<db>,[<port>,<sock>[<opts>]]);
<name> - name of the new connection
<host> - hostname of server
<user> - user to connect as
<pass> - password used when connecting
<db> - initial db when connected
<port> - server port
<sock> - server socket
<opts> - options to use for the connection
SSL - use SSL if available
COMPRESS - use compression if available
*/
int do_connect(struct st_query *q) int do_connect(struct st_query *q)
{ {
char *con_name, *con_user,*con_pass, *con_host, *con_port_str, char *con_name, *con_user,*con_pass, *con_host, *con_port_str,
*con_db, *con_sock; *con_db, *con_sock, *con_options;
char *p= q->first_argument; char *con_buf, *p;
char buff[FN_REFLEN]; char buff[FN_REFLEN];
int con_port; int con_port;
bool con_ssl= 0;
bool con_compress= 0;
int free_con_sock= 0; int free_con_sock= 0;
int error= 0; int error= 0;
int create_conn= 1; int create_conn= 1;
...@@ -2131,23 +2184,25 @@ int do_connect(struct st_query *q) ...@@ -2131,23 +2184,25 @@ int do_connect(struct st_query *q)
DBUG_ENTER("do_connect"); DBUG_ENTER("do_connect");
DBUG_PRINT("enter",("connect: %s",p)); DBUG_PRINT("enter",("connect: %s",p));
/* Make a copy of query before parsing, safe_get_param will modify */
if (!(con_buf= my_strdup(q->first_argument, MYF(MY_WME))))
die("Could not allocate con_buf");
p= con_buf;
if (*p != '(') if (*p != '(')
die("Syntax error in connect - expected '(' found '%c'", *p); die("Syntax error in connect - expected '(' found '%c'", *p);
p++; p++;
p= safe_get_param(p, &con_name, "missing connection name"); p= safe_get_param(p, &con_name, "Missing connection name");
p= safe_get_param(p, &con_host, "missing connection host"); p= safe_get_param(p, &con_host, "Missing connection host");
p= safe_get_param(p, &con_user, "missing connection user"); p= safe_get_param(p, &con_user, "Missing connection user");
p= safe_get_param(p, &con_pass, "missing connection password"); p= safe_get_param(p, &con_pass, "Missing connection password");
p= safe_get_param(p, &con_db, "missing connection db"); p= safe_get_param(p, &con_db, "Missing connection db");
if (!*p || *p == ';') /* Default port and sock */
{ /* Port */
con_port= port; VAR* var_port;
con_sock= (char*) unix_sock; p= safe_get_param(p, &con_port_str, 0);
} if (*con_port_str)
else
{ {
VAR* var_port, *var_sock;
p= safe_get_param(p, &con_port_str, "missing connection port");
if (*con_port_str == '$') if (*con_port_str == '$')
{ {
if (!(var_port= var_get(con_port_str, 0, 0, 0))) if (!(var_port= var_get(con_port_str, 0, 0, 0)))
...@@ -2155,8 +2210,22 @@ int do_connect(struct st_query *q) ...@@ -2155,8 +2210,22 @@ int do_connect(struct st_query *q)
con_port= var_port->int_val; con_port= var_port->int_val;
} }
else else
{
con_port= atoi(con_port_str); con_port= atoi(con_port_str);
p= safe_get_param(p, &con_sock, "missing connection socket"); if (con_port == 0)
die("Illegal argument for port: '%s'", con_port_str);
}
}
else
{
con_port= port;
}
/* Sock */
VAR *var_sock;
p= safe_get_param(p, &con_sock, 0);
if (*con_sock)
{
if (*con_sock == '$') if (*con_sock == '$')
{ {
if (!(var_sock= var_get(con_sock, 0, 0, 0))) if (!(var_sock= var_get(con_sock, 0, 0, 0)))
...@@ -2168,20 +2237,44 @@ int do_connect(struct st_query *q) ...@@ -2168,20 +2237,44 @@ int do_connect(struct st_query *q)
con_sock[var_sock->str_val_len]= 0; con_sock[var_sock->str_val_len]= 0;
} }
} }
else
{
con_sock= (char*) unix_sock;
}
/* Options */
p= safe_get_param(p, &con_options, 0);
while (*con_options)
{
char* str= con_options;
while (*str && !my_isspace(charset_info, *str))
str++;
*str++= 0;
if (!strcmp(con_options, "SSL"))
con_ssl= 1;
else if (!strcmp(con_options, "COMPRESS"))
con_compress= 1;
else
die("Illegal option to connect: %s", con_options);
con_options= str;
}
q->last_argument= p; q->last_argument= p;
if (next_con == cons_end) if (next_con == cons_end)
die("Connection limit exhausted - increase MAX_CONS in mysqltest.c"); die("Connection limit exhausted - increase MAX_CONS in mysqltest.c");
if (find_connection_by_name(con_name))
die("Connection %s already exists", con_name);
if (!mysql_init(&next_con->mysql)) if (!mysql_init(&next_con->mysql))
die("Failed on mysql_init()"); die("Failed on mysql_init()");
if (opt_compress) if (opt_compress || con_compress)
mysql_options(&next_con->mysql,MYSQL_OPT_COMPRESS,NullS); mysql_options(&next_con->mysql,MYSQL_OPT_COMPRESS,NullS);
mysql_options(&next_con->mysql, MYSQL_OPT_LOCAL_INFILE, 0); mysql_options(&next_con->mysql, MYSQL_OPT_LOCAL_INFILE, 0);
mysql_options(&next_con->mysql, MYSQL_SET_CHARSET_NAME, charset_name); mysql_options(&next_con->mysql, MYSQL_SET_CHARSET_NAME, charset_name);
#ifdef HAVE_OPENSSL #ifdef HAVE_OPENSSL
if (opt_use_ssl) if (opt_use_ssl || con_ssl)
mysql_ssl_set(&next_con->mysql, opt_ssl_key, opt_ssl_cert, opt_ssl_ca, mysql_ssl_set(&next_con->mysql, opt_ssl_key, opt_ssl_cert, opt_ssl_ca,
opt_ssl_capath, opt_ssl_cipher); opt_ssl_capath, opt_ssl_cipher);
#endif #endif
...@@ -2212,6 +2305,7 @@ int do_connect(struct st_query *q) ...@@ -2212,6 +2305,7 @@ int do_connect(struct st_query *q)
} }
if (free_con_sock) if (free_con_sock)
my_free(con_sock, MYF(MY_WME)); my_free(con_sock, MYF(MY_WME));
my_free(con_buf, MYF(MY_WME));
DBUG_RETURN(error); DBUG_RETURN(error);
} }
......
This source diff could not be displayed because it is too large. You can view the blob instead.
-- require r/have_openssl_1.require
disable_query_log;
SHOW STATUS LIKE 'Ssl_cipher';
enable_query_log;
...@@ -187,6 +187,11 @@ our $opt_big_test= 0; # Send --big-test to mysqltest ...@@ -187,6 +187,11 @@ our $opt_big_test= 0; # Send --big-test to mysqltest
our @opt_extra_mysqld_opt; our @opt_extra_mysqld_opt;
our $opt_compress; our $opt_compress;
our $opt_ssl;
our $opt_skip_ssl;
our $opt_ssl_supported;
our $opt_ps_protocol;
our $opt_current_test; our $opt_current_test;
our $opt_ddd; our $opt_ddd;
our $opt_debug; our $opt_debug;
...@@ -237,7 +242,6 @@ our $opt_skip_test; ...@@ -237,7 +242,6 @@ our $opt_skip_test;
our $opt_skip_im; our $opt_skip_im;
our $opt_sleep; our $opt_sleep;
our $opt_ps_protocol;
our $opt_sleep_time_after_restart= 1; our $opt_sleep_time_after_restart= 1;
our $opt_sleep_time_for_delete= 10; our $opt_sleep_time_for_delete= 10;
...@@ -278,7 +282,6 @@ our $opt_udiff; ...@@ -278,7 +282,6 @@ our $opt_udiff;
our $opt_skip_ndbcluster; our $opt_skip_ndbcluster;
our $opt_with_ndbcluster; our $opt_with_ndbcluster;
our $opt_with_openssl;
our $exe_ndb_mgm; our $exe_ndb_mgm;
our $path_ndb_tools_dir; our $path_ndb_tools_dir;
...@@ -299,7 +302,8 @@ sub executable_setup (); ...@@ -299,7 +302,8 @@ sub executable_setup ();
sub environment_setup (); sub environment_setup ();
sub kill_running_server (); sub kill_running_server ();
sub kill_and_cleanup (); sub kill_and_cleanup ();
sub ndbcluster_support (); sub check_ssl_support ();
sub check_ndbcluster_support ();
sub ndbcluster_install (); sub ndbcluster_install ();
sub ndbcluster_start (); sub ndbcluster_start ();
sub ndbcluster_stop (); sub ndbcluster_stop ();
...@@ -335,10 +339,8 @@ sub main () { ...@@ -335,10 +339,8 @@ sub main () {
command_line_setup(); command_line_setup();
executable_setup(); executable_setup();
if (! $opt_skip_ndbcluster and ! $opt_with_ndbcluster) check_ndbcluster_support();
{ check_ssl_support();
$opt_with_ndbcluster= ndbcluster_support();
}
environment_setup(); environment_setup();
signal_setup(); signal_setup();
...@@ -488,6 +490,9 @@ sub command_line_setup () { ...@@ -488,6 +490,9 @@ sub command_line_setup () {
# Control what engine/variation to run # Control what engine/variation to run
'embedded-server' => \$opt_embedded_server, 'embedded-server' => \$opt_embedded_server,
'ps-protocol' => \$opt_ps_protocol, 'ps-protocol' => \$opt_ps_protocol,
'ssl|with-openssl' => \$opt_ssl,
'skip-ssl' => \$opt_skip_ssl,
'compress' => \$opt_compress,
'bench' => \$opt_bench, 'bench' => \$opt_bench,
'small-bench' => \$opt_small_bench, 'small-bench' => \$opt_small_bench,
'no-manager' => \$opt_no_manager, # Currently not used 'no-manager' => \$opt_no_manager, # Currently not used
...@@ -540,7 +545,6 @@ sub command_line_setup () { ...@@ -540,7 +545,6 @@ sub command_line_setup () {
# Misc # Misc
'big-test' => \$opt_big_test, 'big-test' => \$opt_big_test,
'compress' => \$opt_compress,
'debug' => \$opt_debug, 'debug' => \$opt_debug,
'fast' => \$opt_fast, 'fast' => \$opt_fast,
'local' => \$opt_local, 'local' => \$opt_local,
...@@ -565,7 +569,6 @@ sub command_line_setup () { ...@@ -565,7 +569,6 @@ sub command_line_setup () {
'testcase-timeout=i' => \$opt_testcase_timeout, 'testcase-timeout=i' => \$opt_testcase_timeout,
'suite-timeout=i' => \$opt_suite_timeout, 'suite-timeout=i' => \$opt_suite_timeout,
'warnings|log-warnings' => \$opt_warnings, 'warnings|log-warnings' => \$opt_warnings,
'with-openssl' => \$opt_with_openssl,
'help|h' => \$opt_usage, 'help|h' => \$opt_usage,
) or usage("Can't read options"); ) or usage("Can't read options");
...@@ -1170,13 +1173,59 @@ sub kill_and_cleanup () { ...@@ -1170,13 +1173,59 @@ sub kill_and_cleanup () {
} }
sub check_ssl_support () {
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 not compiled with SSL");
$opt_ssl_supported= 0;
$opt_ssl= 0;
return;
}
mtr_report("Setting mysqld to support SSL connections");
$opt_ssl_supported= 1;
}
############################################################################## ##############################################################################
# #
# Start the ndb cluster # 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 # check ndbcluster support by testing using a switch
# that is only available in that case # that is only available in that case
...@@ -1186,11 +1235,13 @@ sub ndbcluster_support () { ...@@ -1186,11 +1235,13 @@ sub ndbcluster_support () {
"--help"], "--help"],
"", "/dev/null", "/dev/null", "") != 0 ) "", "/dev/null", "/dev/null", "") != 0 )
{ {
mtr_report("No ndbcluster support"); mtr_report("Skipping ndbcluster, mysqld not compiled with ndbcluster");
return 0; $opt_with_ndbcluster= 0;
return;
} }
mtr_report("Has ndbcluster support"); mtr_report("Using ndbcluster, mysqld supports it");
return 1; $opt_with_ndbcluster= 1;
return;
} }
# FIXME why is there a different start below?! # FIXME why is there a different start below?!
...@@ -2075,7 +2126,7 @@ sub mysqld_arguments ($$$$$) { ...@@ -2075,7 +2126,7 @@ sub mysqld_arguments ($$$$$) {
mtr_add_arg($args, "%s--max_heap_table_size=1M", $prefix); mtr_add_arg($args, "%s--max_heap_table_size=1M", $prefix);
mtr_add_arg($args, "%s--log-bin-trust-routine-creators", $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, mtr_add_arg($args, "%s--ssl-ca=%s/std_data/cacert.pem", $prefix,
$glob_mysql_test_dir); $glob_mysql_test_dir);
...@@ -2536,7 +2587,7 @@ sub run_mysqltest ($) { ...@@ -2536,7 +2587,7 @@ sub run_mysqltest ($) {
mtr_add_arg($args, "--debug=d:t:A,%s/log/mysqltest.trace", $opt_vardir); 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", mtr_add_arg($args, "--ssl-ca=%s/std_data/cacert.pem",
$glob_mysql_test_dir); $glob_mysql_test_dir);
...@@ -2546,6 +2597,18 @@ sub run_mysqltest ($) { ...@@ -2546,6 +2597,18 @@ sub run_mysqltest ($) {
$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);
}
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
# If embedded server, we create server args to give mysqltest to pass on # If embedded server, we create server args to give mysqltest to pass on
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
...@@ -2622,6 +2685,9 @@ Options to control what engine/variation to run ...@@ -2622,6 +2685,9 @@ Options to control what engine/variation to run
embedded-server Use the embedded server, i.e. no mysqld daemons embedded-server Use the embedded server, i.e. no mysqld daemons
ps-protocol Use the binary protocol between client and server 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 bench Run the benchmark suite FIXME
small-bench FIXME small-bench FIXME
...@@ -2629,6 +2695,7 @@ Options to control what test suites or cases to run ...@@ -2629,6 +2695,7 @@ Options to control what test suites or cases to run
force Continue to run the suite after failure force Continue to run the suite after failure
with-ndbcluster Use cluster, and enable test cases that requres it with-ndbcluster Use cluster, and enable test cases that requres it
skip-ndb[cluster] Skip the ndb test cases, don't start cluster
do-test=PREFIX Run test cases which name are prefixed with PREFIX do-test=PREFIX Run test cases which name are prefixed with PREFIX
start-from=PREFIX Run test cases starting from test 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" suite=NAME Run the test suite named NAME. The default is "main"
...@@ -2681,7 +2748,6 @@ Misc options ...@@ -2681,7 +2748,6 @@ Misc options
verbose Verbose output from this script verbose Verbose output from this script
script-debug Debug this script itself script-debug Debug this script itself
compress Use the compressed protocol between client and server
timer Show test case execution time timer Show test case execution time
start-and-exit Only initiate and start the "mysqld" servers, use the startup start-and-exit Only initiate and start the "mysqld" servers, use the startup
settings for the specified test case if any settings for the specified test case if any
...@@ -2694,6 +2760,9 @@ Misc options ...@@ -2694,6 +2760,9 @@ Misc options
testcase-timeout=MINUTES Max test case run time (default 5) testcase-timeout=MINUTES Max test case run time (default 5)
suite-timeout=MINUTES Max test suite run time (default 120) 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 Options not yet described, or that I want to look into more
...@@ -2710,7 +2779,6 @@ Options not yet described, or that I want to look into more ...@@ -2710,7 +2779,6 @@ Options not yet described, or that I want to look into more
wait-timeout=SECONDS wait-timeout=SECONDS
warnings warnings
log-warnings log-warnings
with-openssl
HERE HERE
mtr_exit(1); mtr_exit(1);
......
This diff is collapsed.
...@@ -20,6 +20,10 @@ time_zone_transition_type ...@@ -20,6 +20,10 @@ time_zone_transition_type
user user
show tables; show tables;
Tables_in_test Tables_in_test
connect(localhost,root,z,test2,9306,MYSQL_TEST_DIR/var/tmp/master.sock);
ERROR 28000: Access denied for user 'root'@'localhost' (using password: YES)
connect(localhost,root,z,test,9306,MYSQL_TEST_DIR/var/tmp/master.sock);
ERROR 28000: Access denied for user 'root'@'localhost' (using password: YES)
grant ALL on *.* to test@localhost identified by "gambling"; grant ALL on *.* to test@localhost identified by "gambling";
grant ALL on *.* to test@127.0.0.1 identified by "gambling"; grant ALL on *.* to test@127.0.0.1 identified by "gambling";
show tables; show tables;
...@@ -43,6 +47,14 @@ time_zone_transition_type ...@@ -43,6 +47,14 @@ time_zone_transition_type
user user
show tables; show tables;
Tables_in_test Tables_in_test
connect(localhost,test,,test2,9306,MYSQL_TEST_DIR/var/tmp/master.sock);
ERROR 28000: Access denied for user 'test'@'localhost' (using password: NO)
connect(localhost,test,,"",9306,MYSQL_TEST_DIR/var/tmp/master.sock);
ERROR 28000: Access denied for user 'test'@'localhost' (using password: NO)
connect(localhost,test,zorro,test2,9306,MYSQL_TEST_DIR/var/tmp/master.sock);
ERROR 28000: Access denied for user 'test'@'localhost' (using password: YES)
connect(localhost,test,zorro,test,9306,MYSQL_TEST_DIR/var/tmp/master.sock);
ERROR 28000: Access denied for user 'test'@'localhost' (using password: YES)
update mysql.user set password=old_password("gambling2") where user=_binary"test"; update mysql.user set password=old_password("gambling2") where user=_binary"test";
flush privileges; flush privileges;
set password=""; set password="";
...@@ -70,6 +82,14 @@ time_zone_transition_type ...@@ -70,6 +82,14 @@ time_zone_transition_type
user user
show tables; show tables;
Tables_in_test Tables_in_test
connect(localhost,test,,test2,9306,MYSQL_TEST_DIR/var/tmp/master.sock);
ERROR 28000: Access denied for user 'test'@'localhost' (using password: NO)
connect(localhost,test,,test,9306,MYSQL_TEST_DIR/var/tmp/master.sock);
ERROR 28000: Access denied for user 'test'@'localhost' (using password: NO)
connect(localhost,test,zorro,test2,9306,MYSQL_TEST_DIR/var/tmp/master.sock);
ERROR 28000: Access denied for user 'test'@'localhost' (using password: YES)
connect(localhost,test,zorro,test,9306,MYSQL_TEST_DIR/var/tmp/master.sock);
ERROR 28000: Access denied for user 'test'@'localhost' (using password: YES)
delete from mysql.user where user=_binary"test"; delete from mysql.user where user=_binary"test";
flush privileges; flush privileges;
create table t1 (id integer not null auto_increment primary key); create table t1 (id integer not null auto_increment primary key);
......
Variable_name Value
Ssl_cipher DHE-RSA-AES256-SHA
...@@ -344,6 +344,18 @@ mysqltest: At line 1: Wrong column number to replace_column in 'replace_column 1 ...@@ -344,6 +344,18 @@ mysqltest: At line 1: Wrong column number to replace_column in 'replace_column 1
mysqltest: At line 1: Invalid integer argument "10!" mysqltest: At line 1: Invalid integer argument "10!"
mysqltest: At line 1: End of line junk detected: "!" mysqltest: At line 1: End of line junk detected: "!"
mysqltest: At line 1: Invalid integer argument "a" mysqltest: At line 1: Invalid integer argument "a"
mysqltest: At line 1: Syntax error in connect - expected '(' found 'mysqltest: At line 1: Missing connection host
mysqltest: At line 1: Missing connection host
mysqltest: At line 1: Missing connection user
mysqltest: At line 1: Missing connection user
mysqltest: At line 1: Missing connection password
mysqltest: At line 1: Missing connection db
mysqltest: At line 1: Could not open connection 'con2': Unknown database 'illegal_db'
mysqltest: At line 1: Illegal argument for port: 'illegal_port'
mysqltest: At line 1: Illegal option to connect: SMTP
mysqltest: In included file "./var/tmp/con.sql": At line 7: Connection limit exhausted - increase MAX_CONS in mysqltest.c
mysqltest: In included file "./var/tmp/con.sql": At line 3: connection 'test_con1' not found in connection pool
mysqltest: In included file "./var/tmp/con.sql": At line 2: Connection test_con1 already exists
Output from mysqltest-x.inc Output from mysqltest-x.inc
Output from mysqltest-x.inc Output from mysqltest-x.inc
Output from mysqltest-x.inc Output from mysqltest-x.inc
......
...@@ -6,21 +6,33 @@ grant select on test.* to ssl_user2@localhost require cipher "DHE-RSA-AES256-SHA ...@@ -6,21 +6,33 @@ grant select on test.* to ssl_user2@localhost require cipher "DHE-RSA-AES256-SHA
grant select on test.* to ssl_user3@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/L=Uppsala/O=MySQL AB/CN=MySQL Client/Email=abstract.mysql.developer@mysql.com"; grant select on test.* to ssl_user3@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/L=Uppsala/O=MySQL AB/CN=MySQL Client/Email=abstract.mysql.developer@mysql.com";
grant select on test.* to ssl_user4@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/L=Uppsala/O=MySQL AB/CN=MySQL Client/Email=abstract.mysql.developer@mysql.com" ISSUER "/C=SE/L=Uppsala/O=MySQL AB/CN=Abstract MySQL Developer/Email=abstract.mysql.developer@mysql.com"; grant select on test.* to ssl_user4@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/L=Uppsala/O=MySQL AB/CN=MySQL Client/Email=abstract.mysql.developer@mysql.com" ISSUER "/C=SE/L=Uppsala/O=MySQL AB/CN=Abstract MySQL Developer/Email=abstract.mysql.developer@mysql.com";
flush privileges; flush privileges;
SHOW STATUS LIKE 'Ssl_cipher';
Variable_name Value
Ssl_cipher DHE-RSA-AES256-SHA
select * from t1; select * from t1;
f1 f1
5 5
delete from t1; delete from t1;
ERROR 42000: DELETE command denied to user 'ssl_user1'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'ssl_user1'@'localhost' for table 't1'
SHOW STATUS LIKE 'Ssl_cipher';
Variable_name Value
Ssl_cipher DHE-RSA-AES256-SHA
select * from t1; select * from t1;
f1 f1
5 5
delete from t1; delete from t1;
ERROR 42000: DELETE command denied to user 'ssl_user2'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'ssl_user2'@'localhost' for table 't1'
SHOW STATUS LIKE 'Ssl_cipher';
Variable_name Value
Ssl_cipher DHE-RSA-AES256-SHA
select * from t1; select * from t1;
f1 f1
5 5
delete from t1; delete from t1;
ERROR 42000: DELETE command denied to user 'ssl_user3'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'ssl_user3'@'localhost' for table 't1'
SHOW STATUS LIKE 'Ssl_cipher';
Variable_name Value
Ssl_cipher DHE-RSA-AES256-SHA
select * from t1; select * from t1;
f1 f1
5 5
......
This diff is collapsed.
This diff is collapsed.
# Turn on compression between the client and server
# and run a number of tests
-- source include/have_compress.inc
connect (comp_con,localhost,root,,,,,COMPRESS);
# Check compression turned on
SHOW STATUS LIKE 'Compression';
# Source select test case
-- source include/common-tests.inc
# Check compression turned on
SHOW STATUS LIKE 'Compression';
This diff is collapsed.
...@@ -499,8 +499,8 @@ drop table t1; ...@@ -499,8 +499,8 @@ drop table t1;
# #
grant select on test.* to mysqltest_4@localhost; grant select on test.* to mysqltest_4@localhost;
connect (user4,localhost,mysqltest_4,,); connect (user10261,localhost,mysqltest_4,,);
connection user4; connection user10261;
SELECT TABLE_NAME, COLUMN_NAME, PRIVILEGES FROM INFORMATION_SCHEMA.COLUMNS SELECT TABLE_NAME, COLUMN_NAME, PRIVILEGES FROM INFORMATION_SCHEMA.COLUMNS
where COLUMN_NAME='TABLE_NAME'; where COLUMN_NAME='TABLE_NAME';
connection default; connection default;
......
...@@ -722,6 +722,7 @@ insert into t1 values (10),(11),(12); ...@@ -722,6 +722,7 @@ insert into t1 values (10),(11),(12);
select * from t1; select * from t1;
check table t1; check table t1;
drop table t1; drop table t1;
disconnect con1;
# Same test with dynamic record length # Same test with dynamic record length
create table t1 (a int, b varchar(30) default "hello"); create table t1 (a int, b varchar(30) default "hello");
...@@ -746,8 +747,10 @@ insert into t1 (a) values (10),(11),(12); ...@@ -746,8 +747,10 @@ insert into t1 (a) values (10),(11),(12);
select a from t1; select a from t1;
check table t1; check table t1;
drop table t1; drop table t1;
disconnect con1;
set global concurrent_insert=@save_concurrent_insert; set global concurrent_insert=@save_concurrent_insert;
# BUG#9622 - ANALYZE TABLE and ALTER TABLE .. ENABLE INDEX produce # BUG#9622 - ANALYZE TABLE and ALTER TABLE .. ENABLE INDEX produce
# different statistics on the same table with NULL values. # different statistics on the same table with NULL values.
create table t1 (a int, key(a)); create table t1 (a int, key(a));
......
This diff is collapsed.
# We test openssl. Result set is optimized to be compiled with --with-openssl. # We test openssl. Result set is optimized to be compiled with --with-openssl.
# Use mysql-test-run with --with-openssl option. # Use mysql-test-run with --with-openssl option.
-- source include/have_openssl_1.inc -- source include/have_openssl.inc
--disable_warnings --disable_warnings
drop table if exists t1; drop table if exists t1;
...@@ -13,27 +13,36 @@ grant select on test.* to ssl_user2@localhost require cipher "DHE-RSA-AES256-SHA ...@@ -13,27 +13,36 @@ grant select on test.* to ssl_user2@localhost require cipher "DHE-RSA-AES256-SHA
grant select on test.* to ssl_user3@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/L=Uppsala/O=MySQL AB/CN=MySQL Client/Email=abstract.mysql.developer@mysql.com"; grant select on test.* to ssl_user3@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/L=Uppsala/O=MySQL AB/CN=MySQL Client/Email=abstract.mysql.developer@mysql.com";
grant select on test.* to ssl_user4@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/L=Uppsala/O=MySQL AB/CN=MySQL Client/Email=abstract.mysql.developer@mysql.com" ISSUER "/C=SE/L=Uppsala/O=MySQL AB/CN=Abstract MySQL Developer/Email=abstract.mysql.developer@mysql.com"; grant select on test.* to ssl_user4@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/L=Uppsala/O=MySQL AB/CN=MySQL Client/Email=abstract.mysql.developer@mysql.com" ISSUER "/C=SE/L=Uppsala/O=MySQL AB/CN=Abstract MySQL Developer/Email=abstract.mysql.developer@mysql.com";
flush privileges; flush privileges;
connect (con1,localhost,ssl_user1,,);
connect (con2,localhost,ssl_user2,,); connect (con1,localhost,ssl_user1,,,,,SSL);
connect (con3,localhost,ssl_user3,,); connect (con2,localhost,ssl_user2,,,,,SSL);
connect (con4,localhost,ssl_user4,,); connect (con3,localhost,ssl_user3,,,,,SSL);
connect (con4,localhost,ssl_user4,,,,,SSL);
connection con1; connection con1;
# Check ssl turned on
SHOW STATUS LIKE 'Ssl_cipher';
select * from t1; select * from t1;
--error 1142 --error 1142
delete from t1; delete from t1;
connection con2; connection con2;
# Check ssl turned on
SHOW STATUS LIKE 'Ssl_cipher';
select * from t1; select * from t1;
--error 1142 --error 1142
delete from t1; delete from t1;
connection con3; connection con3;
# Check ssl turned on
SHOW STATUS LIKE 'Ssl_cipher';
select * from t1; select * from t1;
--error 1142 --error 1142
delete from t1; delete from t1;
connection con4; connection con4;
# Check ssl turned on
SHOW STATUS LIKE 'Ssl_cipher';
select * from t1; select * from t1;
--error 1142 --error 1142
delete from t1; delete from t1;
......
source include/have_openssl_1.inc; source include/have_openssl.inc;
source include/master-slave.inc; source include/master-slave.inc;
# We don't test all types of ssl auth params here since it's a bit hard # We don't test all types of ssl auth params here since it's a bit hard
......
...@@ -336,6 +336,7 @@ connection user1; ...@@ -336,6 +336,7 @@ connection user1;
do 1; do 1;
use test; use test;
disconnect user1;
connection root; connection root;
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1@localhost; REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1@localhost;
drop function bug_9503; drop function bug_9503;
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment