1
0
mirror of https://github.com/mariadb-corporation/mariadb-connector-c.git synced 2025-08-07 02:42:49 +03:00

Instead of mysql_real_connect in tests we call now my_test_connect to apply global options like tls usage

This commit is contained in:
Georg Richter
2016-09-08 07:59:34 +02:00
parent 9f88e25fd6
commit b0506f63e9
8 changed files with 79 additions and 41 deletions

View File

@@ -40,7 +40,7 @@ static int test_conc75(MYSQL *my)
mysql= mysql_init(NULL); mysql= mysql_init(NULL);
mysql_options(mysql, MYSQL_OPT_RECONNECT, &reconnect); mysql_options(mysql, MYSQL_OPT_RECONNECT, &reconnect);
mysql_real_connect(mysql, hostname, username, password, schema, port, socketname, 0| CLIENT_MULTI_RESULTS | CLIENT_REMEMBER_OPTIONS); my_test_connect(mysql, hostname, username, password, schema, port, socketname, 0| CLIENT_MULTI_RESULTS | CLIENT_REMEMBER_OPTIONS);
rc= mysql_query(mysql, "DROP TABLE IF EXISTS a"); rc= mysql_query(mysql, "DROP TABLE IF EXISTS a");
check_mysql_rc(rc, mysql); check_mysql_rc(rc, mysql);
@@ -80,7 +80,7 @@ static int test_conc74(MYSQL *unused __attribute__((unused)))
mysql= mysql_init(NULL); mysql= mysql_init(NULL);
if (!mysql_real_connect(mysql, hostname, username, password, schema, port, socketname, 0| CLIENT_MULTI_RESULTS | CLIENT_REMEMBER_OPTIONS)) if (!my_test_connect(mysql, hostname, username, password, schema, port, socketname, 0| CLIENT_MULTI_RESULTS | CLIENT_REMEMBER_OPTIONS))
{ {
diag("Error: %s", mysql_error(mysql)); diag("Error: %s", mysql_error(mysql));
mysql_close(mysql); mysql_close(mysql);
@@ -119,7 +119,7 @@ static int test_conc71(MYSQL *my)
mysql_options(mysql, MYSQL_INIT_COMMAND, "/*!40101 SET SQL_MODE='' */"); mysql_options(mysql, MYSQL_INIT_COMMAND, "/*!40101 SET SQL_MODE='' */");
mysql_options(mysql, MYSQL_INIT_COMMAND, "/*!40101 set @@session.wait_timeout=28800 */"); mysql_options(mysql, MYSQL_INIT_COMMAND, "/*!40101 set @@session.wait_timeout=28800 */");
FAIL_IF(!mysql_real_connect(mysql, hostname, username, password, schema, FAIL_IF(!my_test_connect(mysql, hostname, username, password, schema,
port, socketname, 0), mysql_error(my)); port, socketname, 0), mysql_error(my));
diag("kill server"); diag("kill server");
@@ -149,7 +149,7 @@ static int test_conc70(MYSQL *my)
mysql_query(my, "SET global max_allowed_packet=1024*1024*22"); mysql_query(my, "SET global max_allowed_packet=1024*1024*22");
mysql_options(mysql, MYSQL_OPT_COMPRESS, (void *)1); mysql_options(mysql, MYSQL_OPT_COMPRESS, (void *)1);
FAIL_IF(!mysql_real_connect(mysql, hostname, username, password, schema, FAIL_IF(!my_test_connect(mysql, hostname, username, password, schema,
port, socketname, 0), mysql_error(my)); port, socketname, 0), mysql_error(my));
rc= mysql_query(mysql, "DROP TABLE IF EXISTS t1"); rc= mysql_query(mysql, "DROP TABLE IF EXISTS t1");
@@ -207,7 +207,7 @@ static int test_conc68(MYSQL *my)
mysql_query(my, "SET global max_allowed_packet=1024*1024*22"); mysql_query(my, "SET global max_allowed_packet=1024*1024*22");
FAIL_IF(!mysql_real_connect(mysql, hostname, username, password, schema, FAIL_IF(!my_test_connect(mysql, hostname, username, password, schema,
port, socketname, 0), mysql_error(my)); port, socketname, 0), mysql_error(my));
rc= mysql_query(mysql, "DROP TABLE IF EXISTS t1"); rc= mysql_query(mysql, "DROP TABLE IF EXISTS t1");
@@ -257,7 +257,7 @@ static int basic_connect(MYSQL *unused __attribute__((unused)))
MYSQL *my= mysql_init(NULL); MYSQL *my= mysql_init(NULL);
FAIL_IF(!my, "mysql_init() failed"); FAIL_IF(!my, "mysql_init() failed");
FAIL_IF(!mysql_real_connect(my, hostname, username, password, schema, FAIL_IF(!my_test_connect(my, hostname, username, password, schema,
port, socketname, 0), mysql_error(my)); port, socketname, 0), mysql_error(my));
rc= mysql_query(my, "SELECT @@version"); rc= mysql_query(my, "SELECT @@version");
@@ -647,7 +647,7 @@ static int test_status(MYSQL *mysql)
static int bug_conc1(MYSQL *mysql) static int bug_conc1(MYSQL *mysql)
{ {
mysql_real_connect(mysql, hostname, username, password, schema, my_test_connect(mysql, hostname, username, password, schema,
port, socketname, 0); port, socketname, 0);
diag("errno: %d", mysql_errno(mysql)); diag("errno: %d", mysql_errno(mysql));
FAIL_IF(mysql_errno(mysql) != CR_ALREADY_CONNECTED, FAIL_IF(mysql_errno(mysql) != CR_ALREADY_CONNECTED,
@@ -663,7 +663,7 @@ static int test_options_initcmd(MYSQL *unused __attribute__((unused)))
mysql_options(mysql, MYSQL_INIT_COMMAND, "DROP TABLE IF EXISTS t1; CREATE TABLE t1 (a int)"); mysql_options(mysql, MYSQL_INIT_COMMAND, "DROP TABLE IF EXISTS t1; CREATE TABLE t1 (a int)");
mysql_options(mysql, MYSQL_INIT_COMMAND, "INSERT INTO t1 VALUES (1),(2),(3)"); mysql_options(mysql, MYSQL_INIT_COMMAND, "INSERT INTO t1 VALUES (1),(2),(3)");
FAIL_IF(!mysql_real_connect(mysql, hostname, username, password, schema, FAIL_IF(!my_test_connect(mysql, hostname, username, password, schema,
port, socketname, port, socketname,
CLIENT_MULTI_STATEMENTS | CLIENT_MULTI_RESULTS), mysql_error(mysql)); CLIENT_MULTI_STATEMENTS | CLIENT_MULTI_RESULTS), mysql_error(mysql));
@@ -708,7 +708,7 @@ static int test_reconnect_maxpackage(MYSQL *unused __attribute__((unused)))
SKIP_CONNECTION_HANDLER; SKIP_CONNECTION_HANDLER;
mysql= mysql_init(NULL); mysql= mysql_init(NULL);
FAIL_IF(!mysql_real_connect(mysql, hostname, username, password, schema, FAIL_IF(!my_test_connect(mysql, hostname, username, password, schema,
port, socketname, port, socketname,
CLIENT_MULTI_STATEMENTS | CLIENT_MULTI_RESULTS), mysql_error(mysql)); CLIENT_MULTI_STATEMENTS | CLIENT_MULTI_RESULTS), mysql_error(mysql));
mysql_options(mysql, MYSQL_OPT_RECONNECT, &reconnect); mysql_options(mysql, MYSQL_OPT_RECONNECT, &reconnect);
@@ -760,7 +760,7 @@ static int test_compressed(MYSQL *unused __attribute__((unused)))
my_bool reconnect= 1; my_bool reconnect= 1;
mysql_options(mysql, MYSQL_OPT_COMPRESS, (void *)1); mysql_options(mysql, MYSQL_OPT_COMPRESS, (void *)1);
FAIL_IF(!mysql_real_connect(mysql, hostname, username, password, schema, FAIL_IF(!my_test_connect(mysql, hostname, username, password, schema,
port, socketname, port, socketname,
CLIENT_MULTI_STATEMENTS | CLIENT_MULTI_RESULTS), mysql_error(mysql)); CLIENT_MULTI_STATEMENTS | CLIENT_MULTI_RESULTS), mysql_error(mysql));
mysql_options(mysql, MYSQL_OPT_RECONNECT, &reconnect); mysql_options(mysql, MYSQL_OPT_RECONNECT, &reconnect);

View File

@@ -737,7 +737,7 @@ static int charset_auto(MYSQL *my __attribute__((unused)))
mysql_options(mysql, MYSQL_SET_CHARSET_NAME, "auto"); mysql_options(mysql, MYSQL_SET_CHARSET_NAME, "auto");
FAIL_IF(!mysql_real_connect(mysql, hostname, username, FAIL_IF(!my_test_connect(mysql, hostname, username,
password, schema, port, socketname, 0), password, schema, port, socketname, 0),
mysql_error(mysql)); mysql_error(mysql));

View File

@@ -57,7 +57,7 @@ static int test_conc66(MYSQL *my)
check_mysql_rc(rc, my); check_mysql_rc(rc, my);
rc= mysql_query(my, "FLUSH PRIVILEGES"); rc= mysql_query(my, "FLUSH PRIVILEGES");
check_mysql_rc(rc, my); check_mysql_rc(rc, my);
if (!mysql_real_connect(mysql, hostname, NULL, if (!my_test_connect(mysql, hostname, NULL,
NULL, schema, port, socketname, 0)) NULL, schema, port, socketname, 0))
{ {
diag("Error: %s", mysql_error(mysql)); diag("Error: %s", mysql_error(mysql));
@@ -441,13 +441,13 @@ static int test_bug31669(MYSQL *mysql)
} }
/** /**
Bug# 33831 mysql_real_connect() should fail if Bug# 33831 my_test_connect() should fail if
given an already connected MYSQL handle. given an already connected MYSQL handle.
*/ */
static int test_bug33831(MYSQL *mysql) static int test_bug33831(MYSQL *mysql)
{ {
FAIL_IF(mysql_real_connect(mysql, hostname, username, FAIL_IF(my_test_connect(mysql, hostname, username,
password, schema, port, socketname, 0), password, schema, port, socketname, 0),
"Error expected"); "Error expected");
@@ -476,7 +476,7 @@ static int test_opt_reconnect(MYSQL *mysql)
mysql_get_option(mysql, MYSQL_OPT_RECONNECT, &reconnect); mysql_get_option(mysql, MYSQL_OPT_RECONNECT, &reconnect);
FAIL_UNLESS(reconnect == 1, "reconnect != 1"); FAIL_UNLESS(reconnect == 1, "reconnect != 1");
if (!(mysql_real_connect(mysql, hostname, username, if (!(my_test_connect(mysql, hostname, username,
password, schema, port, password, schema, port,
socketname, 0))) socketname, 0)))
{ {
@@ -496,7 +496,7 @@ static int test_opt_reconnect(MYSQL *mysql)
mysql_get_option(mysql, MYSQL_OPT_RECONNECT, &reconnect); mysql_get_option(mysql, MYSQL_OPT_RECONNECT, &reconnect);
FAIL_UNLESS(reconnect == 0, "reconnect != 0"); FAIL_UNLESS(reconnect == 0, "reconnect != 0");
if (!(mysql_real_connect(mysql, hostname, username, if (!(my_test_connect(mysql, hostname, username,
password, schema, port, password, schema, port,
socketname, 0))) socketname, 0)))
{ {
@@ -527,7 +527,7 @@ static int test_compress(MYSQL *mysql)
if (!(mysql_real_connect(mysql, hostname, username, if (!(my_test_connect(mysql, hostname, username,
password, schema, port, password, schema, port,
socketname, 0))) socketname, 0)))
{ {
@@ -565,7 +565,7 @@ static int test_reconnect(MYSQL *mysql)
mysql_get_option(mysql1, MYSQL_OPT_RECONNECT, &reconnect); mysql_get_option(mysql1, MYSQL_OPT_RECONNECT, &reconnect);
FAIL_UNLESS(reconnect == 1, "reconnect != 1"); FAIL_UNLESS(reconnect == 1, "reconnect != 1");
if (!(mysql_real_connect(mysql1, hostname, username, if (!(my_test_connect(mysql1, hostname, username,
password, schema, port, password, schema, port,
socketname, 0))) socketname, 0)))
{ {
@@ -626,7 +626,7 @@ int test_conc26(MYSQL *unused __attribute__((unused)))
MYSQL *mysql= mysql_init(NULL); MYSQL *mysql= mysql_init(NULL);
mysql_options(mysql, MYSQL_SET_CHARSET_NAME, "utf8"); mysql_options(mysql, MYSQL_SET_CHARSET_NAME, "utf8");
FAIL_IF(mysql_real_connect(mysql, hostname, "notexistinguser", "password", schema, port, NULL, CLIENT_REMEMBER_OPTIONS), FAIL_IF(my_test_connect(mysql, hostname, "notexistinguser", "password", schema, port, NULL, CLIENT_REMEMBER_OPTIONS),
"Error expected"); "Error expected");
FAIL_IF(!mysql->options.charset_name || strcmp(mysql->options.charset_name, "utf8") != 0, FAIL_IF(!mysql->options.charset_name || strcmp(mysql->options.charset_name, "utf8") != 0,
@@ -634,7 +634,7 @@ int test_conc26(MYSQL *unused __attribute__((unused)))
mysql_close(mysql); mysql_close(mysql);
mysql= mysql_init(NULL); mysql= mysql_init(NULL);
FAIL_IF(mysql_real_connect(mysql, hostname, "notexistinguser", "password", schema, port, NULL, 0), FAIL_IF(my_test_connect(mysql, hostname, "notexistinguser", "password", schema, port, NULL, 0),
"Error expected"); "Error expected");
FAIL_IF(mysql->options.charset_name, "Error: options not freed"); FAIL_IF(mysql->options.charset_name, "Error: options not freed");
mysql_close(mysql); mysql_close(mysql);
@@ -649,7 +649,7 @@ int test_connection_timeout(MYSQL *unused __attribute__((unused)))
MYSQL *mysql= mysql_init(NULL); MYSQL *mysql= mysql_init(NULL);
mysql_options(mysql, MYSQL_OPT_CONNECT_TIMEOUT, (unsigned int *)&timeout); mysql_options(mysql, MYSQL_OPT_CONNECT_TIMEOUT, (unsigned int *)&timeout);
start= time(NULL); start= time(NULL);
if (mysql_real_connect(mysql, "192.168.1.101", "notexistinguser", "password", schema, port, NULL, CLIENT_REMEMBER_OPTIONS)) if (my_test_connect(mysql, "192.168.1.101", "notexistinguser", "password", schema, port, NULL, CLIENT_REMEMBER_OPTIONS))
{ {
diag("Error expected - maybe you have to change hostname"); diag("Error expected - maybe you have to change hostname");
return FAIL; return FAIL;
@@ -669,7 +669,7 @@ int test_connection_timeout2(MYSQL *unused __attribute__((unused)))
mysql_options(mysql, MYSQL_OPT_CONNECT_TIMEOUT, (unsigned int *)&timeout); mysql_options(mysql, MYSQL_OPT_CONNECT_TIMEOUT, (unsigned int *)&timeout);
mysql_options(mysql, MYSQL_INIT_COMMAND, "set @a:=SLEEP(6)"); mysql_options(mysql, MYSQL_INIT_COMMAND, "set @a:=SLEEP(6)");
start= time(NULL); start= time(NULL);
if (mysql_real_connect(mysql, hostname, username, password, schema, port, NULL, CLIENT_REMEMBER_OPTIONS)) if (my_test_connect(mysql, hostname, username, password, schema, port, NULL, CLIENT_REMEMBER_OPTIONS))
{ {
diag("timeout error expected"); diag("timeout error expected");
return FAIL; return FAIL;
@@ -693,7 +693,7 @@ int test_connection_timeout3(MYSQL *unused __attribute__((unused)))
mysql_options(mysql, MYSQL_OPT_WRITE_TIMEOUT, (unsigned int *)&read_write_timeout); mysql_options(mysql, MYSQL_OPT_WRITE_TIMEOUT, (unsigned int *)&read_write_timeout);
mysql_options(mysql, MYSQL_INIT_COMMAND, "set @a:=SLEEP(6)"); mysql_options(mysql, MYSQL_INIT_COMMAND, "set @a:=SLEEP(6)");
start= time(NULL); start= time(NULL);
if (mysql_real_connect(mysql, hostname, username, password, schema, port, NULL, CLIENT_REMEMBER_OPTIONS)) if (my_test_connect(mysql, hostname, username, password, schema, port, NULL, CLIENT_REMEMBER_OPTIONS))
{ {
diag("timeout error expected"); diag("timeout error expected");
elapsed= time(NULL) - start; elapsed= time(NULL) - start;
@@ -710,7 +710,7 @@ int test_connection_timeout3(MYSQL *unused __attribute__((unused)))
mysql_options(mysql, MYSQL_OPT_READ_TIMEOUT, (unsigned int *)&read_write_timeout); mysql_options(mysql, MYSQL_OPT_READ_TIMEOUT, (unsigned int *)&read_write_timeout);
mysql_options(mysql, MYSQL_OPT_WRITE_TIMEOUT, (unsigned int *)&read_write_timeout); mysql_options(mysql, MYSQL_OPT_WRITE_TIMEOUT, (unsigned int *)&read_write_timeout);
if (!mysql_real_connect(mysql, hostname, username, password, schema, port, NULL, CLIENT_REMEMBER_OPTIONS)) if (!my_test_connect(mysql, hostname, username, password, schema, port, NULL, CLIENT_REMEMBER_OPTIONS))
{ {
diag("Error: %s", mysql_error(mysql)); diag("Error: %s", mysql_error(mysql));
return FAIL; return FAIL;
@@ -770,7 +770,7 @@ static int test_wrong_bind_address(MYSQL *unused __attribute__((unused)))
mysql= mysql_init(NULL); mysql= mysql_init(NULL);
mysql_options(mysql, MYSQL_OPT_BIND, bind_addr); mysql_options(mysql, MYSQL_OPT_BIND, bind_addr);
if (mysql_real_connect(mysql, hostname, username, if (my_test_connect(mysql, hostname, username,
password, schema, port, socketname, 0)) password, schema, port, socketname, 0))
{ {
diag("Error expected"); diag("Error expected");
@@ -815,7 +815,7 @@ static int test_bind_address(MYSQL *my)
mysql= mysql_init(NULL); mysql= mysql_init(NULL);
mysql_options(mysql, MYSQL_OPT_BIND, bind_addr); mysql_options(mysql, MYSQL_OPT_BIND, bind_addr);
if (!mysql_real_connect(mysql, bind_addr, username, if (!my_test_connect(mysql, bind_addr, username,
password, schema, port, socketname, 0)) password, schema, port, socketname, 0))
{ {
diag("Error: %s\n", mysql_error(mysql)); diag("Error: %s\n", mysql_error(mysql));
@@ -942,14 +942,15 @@ static int test_sess_track_db(MYSQL *mysql)
"session_track_get_first failed"); "session_track_get_first failed");
FAIL_IF(strncmp(data, "testc", len), "Expected new schema 'testc'"); FAIL_IF(strncmp(data, "testc", len), "Expected new schema 'testc'");
diag("charset: %s", mysql->charset->csname);
rc= mysql_query(mysql, "SET NAMES utf8"); rc= mysql_query(mysql, "SET NAMES utf8");
check_mysql_rc(rc, mysql); check_mysql_rc(rc, mysql);
diag("charset: %s", mysql->charset->csname);
FAIL_IF(strcmp(mysql->charset->csname, "utf8"), "Expected charset 'utf8'");
if (!mysql_session_track_get_first(mysql, SESSION_TRACK_SYSTEM_VARIABLES, &data, &len)) if (!mysql_session_track_get_first(mysql, SESSION_TRACK_SYSTEM_VARIABLES, &data, &len))
do { do {
printf("# SESSION_TRACK_VARIABLES: %*.*s\n", (int)len, (int)len, data); printf("# SESSION_TRACK_VARIABLES: %*.*s\n", (int)len, (int)len, data);
} while (!mysql_session_track_get_next(mysql, SESSION_TRACK_SYSTEM_VARIABLES, &data, &len)); } while (!mysql_session_track_get_next(mysql, SESSION_TRACK_SYSTEM_VARIABLES, &data, &len));
diag("charset: %s", mysql->charset->csname);
FAIL_IF(strcmp(mysql->charset->csname, "utf8"), "Expected charset 'utf8'");
rc= mysql_query(mysql, "SET NAMES latin1"); rc= mysql_query(mysql, "SET NAMES latin1");
check_mysql_rc(rc, mysql); check_mysql_rc(rc, mysql);

View File

@@ -910,7 +910,7 @@ static int test_connect_attrs(MYSQL *my)
mysql_options4(mysql, MYSQL_OPT_CONNECT_ATTR_ADD, "foo1", "bar1"); mysql_options4(mysql, MYSQL_OPT_CONNECT_ATTR_ADD, "foo1", "bar1");
mysql_options4(mysql, MYSQL_OPT_CONNECT_ATTR_ADD, "foo2", "bar2"); mysql_options4(mysql, MYSQL_OPT_CONNECT_ATTR_ADD, "foo2", "bar2");
FAIL_IF(!mysql_real_connect(mysql, hostname, username, password, schema, FAIL_IF(!my_test_connect(mysql, hostname, username, password, schema,
port, socketname, 0), mysql_error(my)); port, socketname, 0), mysql_error(my));
if (!(mysql->server_capabilities & CLIENT_CONNECT_ATTRS)) if (!(mysql->server_capabilities & CLIENT_CONNECT_ATTRS))
@@ -959,7 +959,7 @@ static int test_conc117(MYSQL *unused __attribute__((unused)))
{ {
my_bool reconnect= 1; my_bool reconnect= 1;
MYSQL *my= mysql_init(NULL); MYSQL *my= mysql_init(NULL);
FAIL_IF(!mysql_real_connect(my, hostname, username, password, schema, FAIL_IF(!my_test_connect(my, hostname, username, password, schema,
port, socketname, 0), mysql_error(my)); port, socketname, 0), mysql_error(my));
mysql_kill(my, mysql_thread_id(my)); mysql_kill(my, mysql_thread_id(my));
@@ -978,7 +978,7 @@ static int test_read_timeout(MYSQL *unused __attribute__((unused)))
int timeout= 5, rc; int timeout= 5, rc;
MYSQL *my= mysql_init(NULL); MYSQL *my= mysql_init(NULL);
mysql_options(my, MYSQL_OPT_READ_TIMEOUT, &timeout); mysql_options(my, MYSQL_OPT_READ_TIMEOUT, &timeout);
FAIL_IF(!mysql_real_connect(my, hostname, username, password, schema, FAIL_IF(!my_test_connect(my, hostname, username, password, schema,
port, socketname, 0), mysql_error(my)); port, socketname, 0), mysql_error(my));
rc= mysql_query(my, "SELECT SLEEP(50)"); rc= mysql_query(my, "SELECT SLEEP(50)");
@@ -1034,7 +1034,7 @@ static int test_remote2(MYSQL *my)
mysql_options(mysql, MYSQL_READ_DEFAULT_FILE, "http://localhost/test.cnf"); mysql_options(mysql, MYSQL_READ_DEFAULT_FILE, "http://localhost/test.cnf");
mysql_options(mysql, MYSQL_READ_DEFAULT_GROUP, "test"); mysql_options(mysql, MYSQL_READ_DEFAULT_GROUP, "test");
mysql_real_connect(mysql, hostname, username, password, schema, my_test_connect(mysql, hostname, username, password, schema,
0, socketname, 0), mysql_error(my); 0, socketname, 0), mysql_error(my);
diag("port: %d", mysql->port); diag("port: %d", mysql->port);
mysql_close(mysql); mysql_close(mysql);

View File

@@ -116,12 +116,22 @@ struct my_tests_st
const char *skipmsg; const char *skipmsg;
}; };
MYSQL *my_test_connect(MYSQL *mysql,
const char *host,
const char *user,
const char *passwd,
const char *db,
unsigned int port,
const char *unix_socket,
unsigned long clientflag);
static const char *schema = 0; static const char *schema = 0;
static char *hostname = 0; static char *hostname = 0;
static char *password = 0; static char *password = 0;
static unsigned int port = 0; static unsigned int port = 0;
static char *socketname = 0; static char *socketname = 0;
static char *username = 0; static char *username = 0;
static int force_tls= 0;
/* /*
static struct my_option test_options[] = static struct my_option test_options[] =
{ {
@@ -313,6 +323,7 @@ static void usage()
printf("-p password\n"); printf("-p password\n");
printf("-d database\n"); printf("-d database\n");
printf("-S socketname\n"); printf("-S socketname\n");
printf("-t force use of TLS\n");
printf("-P port number\n"); printf("-P port number\n");
printf("? displays this help and exits\n"); printf("? displays this help and exits\n");
} }
@@ -321,7 +332,7 @@ void get_options(int argc, char **argv)
{ {
int c= 0; int c= 0;
while ((c=getopt(argc,argv, "h:u:p:d:w:P:S:?")) >= 0) while ((c=getopt(argc,argv, "h:u:p:d:w:P:S:t:?")) >= 0)
{ {
switch(c) { switch(c) {
case 'h': case 'h':
@@ -342,6 +353,9 @@ void get_options(int argc, char **argv)
case 'S': case 'S':
socketname= optarg; socketname= optarg;
break; break;
case 't':
force_tls= 1;
break;
case '?': case '?':
usage(); usage();
exit(0); exit(0);
@@ -408,7 +422,7 @@ MYSQL *test_connect(struct my_tests_st *test)
i++; i++;
} }
} }
if (!(mysql_real_connect(mysql, hostname, username, password, if (!(my_test_connect(mysql, hostname, username, password,
schema, port, socketname, (test) ? test->connect_flags:0))) schema, port, socketname, (test) ? test->connect_flags:0)))
{ {
diag("Couldn't establish connection to server %s. Error (%d): %s", diag("Couldn't establish connection to server %s. Error (%d): %s",
@@ -450,10 +464,33 @@ void get_envvars() {
schema= "testc"; schema= "testc";
if (!port && (envvar= getenv("MYSQL_TEST_PORT"))) if (!port && (envvar= getenv("MYSQL_TEST_PORT")))
port= atoi(envvar); port= atoi(envvar);
if (!force_tls && (envvar= getenv("MYSQL_TEST_TLS")))
force_tls= atoi(envvar);
if (!socketname && (envvar= getenv("MYSQL_TEST_SOCKET"))) if (!socketname && (envvar= getenv("MYSQL_TEST_SOCKET")))
socketname= envvar; socketname= envvar;
} }
MYSQL *my_test_connect(MYSQL *mysql,
const char *host,
const char *user,
const char *passwd,
const char *db,
unsigned int port,
const char *unix_socket,
unsigned long clientflag)
{
if (force_tls)
mysql_options(mysql, MYSQL_OPT_SSL_ENFORCE, &force_tls);
mysql= mysql_real_connect(mysql, host, user, passwd, db, port, unix_socket, clientflag);
if (mysql && force_tls && !mysql_get_ssl_cipher(mysql))
{
diag("Error: TLS connection not established");
return NULL;
}
return mysql;
}
void run_tests(struct my_tests_st *test) { void run_tests(struct my_tests_st *test) {
int i, rc, total=0; int i, rc, total=0;
MYSQL *mysql, *mysql_default= NULL; /* default connection */ MYSQL *mysql, *mysql_default= NULL; /* default connection */

View File

@@ -59,8 +59,8 @@ static int test_conc83(MYSQL *unused __attribute__((unused)))
stmt= mysql_stmt_init(mysql); stmt= mysql_stmt_init(mysql);
mysql_options(mysql, MYSQL_OPT_RECONNECT, &reconnect); mysql_options(mysql, MYSQL_OPT_RECONNECT, &reconnect);
FAIL_IF(!(mysql_real_connect(mysql, hostname, username, password, FAIL_IF(!(my_test_connect(mysql, hostname, username, password,
schema, port, socketname, 0)), "mysql_real_connect failed"); schema, port, socketname, 0)), "my_test_connect failed");
/* 1. Status is inited, so prepare should work */ /* 1. Status is inited, so prepare should work */
@@ -825,8 +825,8 @@ static int test_prepare_alter(MYSQL *mysql)
mysql_new= mysql_init(NULL); mysql_new= mysql_init(NULL);
FAIL_IF(!mysql_new, "mysql_init failed"); FAIL_IF(!mysql_new, "mysql_init failed");
FAIL_IF(!(mysql_real_connect(mysql_new, hostname, username, password, FAIL_IF(!(my_test_connect(mysql_new, hostname, username, password,
schema, port, socketname, 0)), "mysql_real_connect failed"); schema, port, socketname, 0)), "my_test_connect failed");
rc= mysql_query(mysql_new, "ALTER TABLE test_prep_alter change id id_new varchar(20)"); rc= mysql_query(mysql_new, "ALTER TABLE test_prep_alter change id id_new varchar(20)");
diag("Error: %d %s", mysql_errno(mysql_new), mysql_error(mysql_new)); diag("Error: %d %s", mysql_errno(mysql_new), mysql_error(mysql_new));
check_mysql_rc(rc, mysql_new); check_mysql_rc(rc, mysql_new);

View File

@@ -14,7 +14,7 @@ static int basic_connect(MYSQL *unused __attribute__((unused)))
MYSQL *my= mysql_init(NULL); MYSQL *my= mysql_init(NULL);
FAIL_IF(!my, "mysql_init() failed"); FAIL_IF(!my, "mysql_init() failed");
FAIL_IF(!mysql_real_connect(my, hostname, username, password, schema, FAIL_IF(!my_test_connect(my, hostname, username, password, schema,
port, socketname, 0), mysql_error(my)); port, socketname, 0), mysql_error(my));
rc= mysql_query(my, "SELECT @@version"); rc= mysql_query(my, "SELECT @@version");
@@ -123,7 +123,7 @@ DWORD WINAPI thread_conc27(void)
MYSQL_RES *res; MYSQL_RES *res;
mysql_thread_init(); mysql_thread_init();
mysql= mysql_init(NULL); mysql= mysql_init(NULL);
if(!mysql_real_connect(mysql, hostname, username, password, schema, if(!my_test_connect(mysql, hostname, username, password, schema,
port, socketname, 0)) port, socketname, 0))
{ {
diag(">Error: %s", mysql_error(mysql)); diag(">Error: %s", mysql_error(mysql));