#include #include #include #include #include #include #include #include "mysql.h" #include "tap.h" #include "command_line.h" #include "utils.h" /* this test uses a lot of code from test_ssl_fast_forward-t.cpp */ char * username = (char *)"user1459"; char * password = (char *)"pass1459"; std::vector queries_set1 = { "SET mysql-have_ssl='false'", "LOAD MYSQL VARIABLES TO RUNTIME", "DELETE FROM mysql_servers WHERE hostgroup_id = 1459", "INSERT INTO mysql_servers (hostgroup_id, hostname, port, use_ssl) VALUES (1459, '127.0.0.1', 6030, 0)", "LOAD MYSQL SERVERS TO RUNTIME", "DELETE FROM mysql_users WHERE username = 'user1459'", "INSERT INTO mysql_users (username,password,fast_forward,default_hostgroup) VALUES ('" + std::string(username) + "','" + std::string(password) + "',1,1459)", "LOAD MYSQL USERS TO RUNTIME", }; std::vector queries_set2 = { "SET mysql-have_ssl='true'", "LOAD MYSQL VARIABLES TO RUNTIME", }; std::vector queries_set3 = { "SET mysql-have_ssl='false'", "LOAD MYSQL VARIABLES TO RUNTIME", "UPDATE mysql_servers SET use_ssl=1 WHERE hostgroup_id = 1459", "LOAD MYSQL SERVERS TO RUNTIME", }; std::vector queries_set4 = { "SET mysql-have_ssl='true'", "LOAD MYSQL VARIABLES TO RUNTIME", "UPDATE mysql_servers SET use_ssl=1 WHERE hostgroup_id = 1459", "LOAD MYSQL SERVERS TO RUNTIME", }; std::vector queries_SQL3 = { "DROP TABLE IF EXISTS tbl1459v", "CREATE TABLE tbl1459v (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , t1 VARCHAR)", }; std::vector queries_SQL4 = { "DROP TABLE IF EXISTS tbl1459v", "VACUUM", }; int run_queries_sets(std::vector& queries, MYSQL *my, const std::string& message_prefix) { for (std::vector::iterator it = queries.begin(); it != queries.end(); it++) { std::string q = *it; diag("%s: %s", message_prefix.c_str(), q.c_str()); MYSQL_QUERY(my, q.c_str()); } return 0; } #define ITER1 1 #define LL 16000 // lower limit #define UL 96000 // upper limit int main(int argc, char** argv) { CommandLine cl; if(cl.getEnv()) return exit_status(); unsigned int p = 0; p += 5*ITER1; //p += (5-3)*ITER2*queries_limits.size(); // only on encrypted backend connections p += ((UL-LL)/1000*2); plan(p); diag("Testing SSL and fast_forward"); MYSQL* mysqladmin = mysql_init(NULL); if (!mysqladmin) return exit_status(); if (!mysql_real_connect(mysqladmin, cl.host, cl.admin_username, cl.admin_password, NULL, cl.admin_port, NULL, 0)) { fprintf(stderr, "File %s, line %d, Error: %s\n", __FILE__, __LINE__, mysql_error(mysqladmin)); return exit_status(); } MYSQL * mysqls[5]; for (int i = 0 ; i<5 ; i++) { mysqls[i] = NULL; } // We will loop ITER1 times. // On each iteration we create 5 connections with different configuration and run a simple SELECT 1 for (int it = 0 ; itthread_id); } // We now sends long INSERTs. This code is similar of test_ssl_large_query-t.cpp // We now populate a table named tbl1459v if (run_queries_sets(queries_SQL3, mysqls[0], "Running on SQLite3")) return exit_status(); std::string s0 = "0"; //for (int i=16001; i<=48000; i++) { for (int i=LL; i