From 940d55c7010c62b58a93a6d2f59037f0f059dd50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Jaramago=20Fern=C3=A1ndez?= Date: Tue, 29 Nov 2022 15:56:42 +0100 Subject: [PATCH] Remove multiple unused old test files and moved others for potential refactor --- test/ChangeUser/.gitignore | 6 - test/ChangeUser/Makefile | 79 ------- test/ChangeUser/client1.cpp | 70 ------ test/encrypt/.gitignore | 6 - test/encrypt/Makefile | 79 ------- test/encrypt/client1.cpp | 135 ----------- test/fast_rand.c | 43 ---- test/{ => legacy_python_tests}/Vagrantfile | 0 test/{ => legacy_python_tests}/__init__.py | 0 .../admin_tables_test.py | 0 test/{ => legacy_python_tests}/admin_test.py | 0 .../authentication_test.py | 0 .../{ => legacy_python_tests}/check_result.py | 0 .../config_file_parsing_test.py | 0 .../{ => legacy_python_tests}/docker_fleet.py | 0 test/{ => legacy_python_tests}/how_to.md | 0 .../one_backend_test.py | 0 .../proxysql_base_test.py | 0 .../proxysql_ping_thread.py | 0 .../proxysql_tests_config.py | 0 .../replication_topology_awareness_test.py | 0 .../sysbench_test.py | 0 test/main | Bin 9937 -> 0 bytes test/main.cpp | 55 ----- test/monot | Bin 7364 -> 0 bytes test/monot.cpp | 26 --- test/regextest/.gitignore | 6 - test/regextest/Makefile | 79 ------- test/regextest/client1.cpp | 34 --- test/set_parser_test/.gitignore | 1 - test/set_parser_test/Makefile | 62 ----- test/set_parser_test/setparsertest.cpp | 211 ------------------ test/sqlite_server/Makefile | 0 33 files changed, 892 deletions(-) delete mode 100644 test/ChangeUser/.gitignore delete mode 100644 test/ChangeUser/Makefile delete mode 100644 test/ChangeUser/client1.cpp delete mode 100644 test/encrypt/.gitignore delete mode 100644 test/encrypt/Makefile delete mode 100644 test/encrypt/client1.cpp delete mode 100644 test/fast_rand.c rename test/{ => legacy_python_tests}/Vagrantfile (100%) rename test/{ => legacy_python_tests}/__init__.py (100%) rename test/{ => legacy_python_tests}/admin_tables_test.py (100%) rename test/{ => legacy_python_tests}/admin_test.py (100%) rename test/{ => legacy_python_tests}/authentication_test.py (100%) rename test/{ => legacy_python_tests}/check_result.py (100%) rename test/{ => legacy_python_tests}/config_file_parsing_test.py (100%) rename test/{ => legacy_python_tests}/docker_fleet.py (100%) rename test/{ => legacy_python_tests}/how_to.md (100%) rename test/{ => legacy_python_tests}/one_backend_test.py (100%) rename test/{ => legacy_python_tests}/proxysql_base_test.py (100%) rename test/{ => legacy_python_tests}/proxysql_ping_thread.py (100%) rename test/{ => legacy_python_tests}/proxysql_tests_config.py (100%) rename test/{ => legacy_python_tests}/replication_topology_awareness_test.py (100%) rename test/{ => legacy_python_tests}/sysbench_test.py (100%) delete mode 100755 test/main delete mode 100644 test/main.cpp delete mode 100755 test/monot delete mode 100644 test/monot.cpp delete mode 100644 test/regextest/.gitignore delete mode 100644 test/regextest/Makefile delete mode 100644 test/regextest/client1.cpp delete mode 100644 test/set_parser_test/.gitignore delete mode 100644 test/set_parser_test/Makefile delete mode 100644 test/set_parser_test/setparsertest.cpp delete mode 100644 test/sqlite_server/Makefile diff --git a/test/ChangeUser/.gitignore b/test/ChangeUser/.gitignore deleted file mode 100644 index 290524341..000000000 --- a/test/ChangeUser/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -client1 -client2 -client3 -client4 -client5 -client6 diff --git a/test/ChangeUser/Makefile b/test/ChangeUser/Makefile deleted file mode 100644 index 9f1a8eca8..000000000 --- a/test/ChangeUser/Makefile +++ /dev/null @@ -1,79 +0,0 @@ - - - - -DEPS_PATH=../../deps - -MARIADB_PATH=$(DEPS_PATH)/mariadb-client-library/mariadb_client -MARIADB_IDIR=$(MARIADB_PATH)/include -MARIADB_LDIR=$(MARIADB_PATH)/libmariadb - - -DAEMONPATH=$(DEPS_PATH)/libdaemon/libdaemon -DAEMONPATH_IDIR=$(DAEMONPATH) -DAEMONPATH_LDIR=$(DAEMONPATH)/libdaemon/.libs - -JEMALLOC_PATH=$(DEPS_PATH)/jemalloc/jemalloc -JEMALLOC_IDIR=$(JEMALLOC_PATH)/include/jemalloc -JEMALLOC_LDIR=$(JEMALLOC_PATH)/lib - -LIBCONFIG_PATH=$(DEPS_PATH)/libconfig/libconfig-1.4.9 -LIBCONFIG_IDIR=-I$(LIBCONFIG_PATH)/lib -LIBCONFIG_LDIR=-L$(LIBCONFIG_PATH)/lib/.libs - -LIBEVENT_PATH=$(DEPS_PATH)/libevent/libevent -LIBEVENT_IDIR=$(LIBEVENT_PATH)/include -LIBEVENT_LDIR=$(LIBEVENT_PATH)/.libs - -RE2_PATH=$(DEPS_PATH)/re2/re2 -RE2_IDIR=$(RE2_PATH) - -SQLITE3_DIR=$(DEPS_PATH)/sqlite3/sqlite3 - -IDIR=../../include -LDIR=../../lib -IDIRS=-I$(IDIR) -I$(JEMALLOC_IDIR) -I$(MARIADB_IDIR) $(LIBCONFIG_IDIR) -I$(DAEMONPATH_IDIR) -I$(SQLITE3_DIR) -I$(RE2_IDIR) -LDIRS=-L$(LDIR) -L$(JEMALLOC_LDIR) $(LIBCONFIG_LDIR) -L$(RE2_PATH)/obj -L$(LIBEVENT_LDIR) -L$(MARIADB_LDIR) -L$(DAEMONPATH_LDIR) - - -MYCPPFLAGS=-std=c++11 $(IDIRS) $(OPTZ) $(DEBUG) -ggdb -LDFLAGS+= -MYLIBS=-Wl,--export-dynamic -Wl,-Bstatic -lconfig -lproxysql -ldaemon -ljemalloc -lconfig++ -lre2 -levent -lmariadbclient -Wl,-Bdynamic -lpthread -lm -lz -lrt -lcrypto -lssl $(EXTRALINK) - -UNAME_S := $(shell uname -s) -ifeq ($(UNAME_S),Linux) - MYLIBS+= -ldl -endif -ifeq ($(UNAME_S),FreeBSD) - MYLIBS+= -lexecinfo -endif - -LIBPROXYSQLAR=$(LDIR)/libproxysql.a - -.PHONY: default -default: client1 - -client1: client1.cpp - $(CXX) -o $@ $@.cpp $(LIBPROXYSQLAR) $(MYCPPFLAGS) $(CPPFLAGS) $(LDIRS) $(LIBS) $(LDFLAGS) $(MYLIBS) - -client2: client2.cpp - $(CXX) -o $@ $@.cpp $(LIBPROXYSQLAR) $(MYCPPFLAGS) $(CPPFLAGS) $(LDIRS) $(LIBS) $(LDFLAGS) $(MYLIBS) - -client3: client3.cpp - $(CXX) -o $@ $@.cpp $(LIBPROXYSQLAR) $(MYCPPFLAGS) $(CPPFLAGS) $(LDIRS) $(LIBS) $(LDFLAGS) $(MYLIBS) - -client4: client4.cpp - $(CXX) -o $@ $@.cpp $(LIBPROXYSQLAR) $(MYCPPFLAGS) $(CPPFLAGS) $(LDIRS) $(LIBS) $(LDFLAGS) $(MYLIBS) - -client5: client5.cpp - $(CXX) -o $@ $@.cpp $(LIBPROXYSQLAR) $(MYCPPFLAGS) $(CPPFLAGS) $(LDIRS) $(LIBS) $(LDFLAGS) $(MYLIBS) - -client6: client6.cpp - $(CXX) -o $@ $@.cpp $(LIBPROXYSQLAR) $(MYCPPFLAGS) $(CPPFLAGS) $(LDIRS) $(LIBS) $(LDFLAGS) $(MYLIBS) - - -default: $(EXECUTABLE) - -clean: - rm -f *~ core $(default) - diff --git a/test/ChangeUser/client1.cpp b/test/ChangeUser/client1.cpp deleted file mode 100644 index 903a85ec1..000000000 --- a/test/ChangeUser/client1.cpp +++ /dev/null @@ -1,70 +0,0 @@ -#include "proxysql.h" -#include "cpp.h" - - -static int wait_for_mysql(MYSQL *mysql, int status) { - struct pollfd pfd; - int timeout, res; - - pfd.fd = mysql_get_socket(mysql); - pfd.events = - (status & MYSQL_WAIT_READ ? POLLIN : 0) | - (status & MYSQL_WAIT_WRITE ? POLLOUT : 0) | - (status & MYSQL_WAIT_EXCEPT ? POLLPRI : 0); -// if (status & MYSQL_WAIT_TIMEOUT) -// timeout = 1000*mysql_get_timeout_value(mysql); -// else - timeout = -1; - res = poll(&pfd, 1, timeout); - if (res == 0) - return MYSQL_WAIT_TIMEOUT; - else if (res < 0) - return MYSQL_WAIT_TIMEOUT; - else { - int status = 0; - if (pfd.revents & POLLIN) status |= MYSQL_WAIT_READ; - if (pfd.revents & POLLOUT) status |= MYSQL_WAIT_WRITE; - if (pfd.revents & POLLPRI) status |= MYSQL_WAIT_EXCEPT; - return status; - } -} - - - -int main() { - // initialize mysql - mysql_library_init(0,NULL,NULL); - - MYSQL *mysql=mysql_init(NULL); - mysql_options(mysql, MYSQL_OPT_NONBLOCK, 0); - MYSQL *ret_mysql=NULL; - int async_exit_status=0; - my_bool ret_bool; - async_exit_status=mysql_real_connect_start(&ret_mysql,mysql,"127.0.0.1","msandbox","msandbox","information_schema",21891,NULL,0); - while (async_exit_status) { - async_exit_status=wait_for_mysql(mysql, async_exit_status); - async_exit_status=mysql_real_connect_cont(&ret_mysql, mysql, async_exit_status); - } - if (ret_mysql==NULL) { - fprintf(stderr, "Failed to connect, error: %s\n", mysql_error(mysql)); - exit(EXIT_FAILURE); - } - async_exit_status=mysql_change_user_start(&ret_bool, mysql,"msandbox2","msandbox2","information_schema"); - while (async_exit_status) { - async_exit_status=wait_for_mysql(mysql, async_exit_status); - async_exit_status=mysql_change_user_cont(&ret_bool, mysql, async_exit_status); - } - if (ret_bool==TRUE) { - fprintf(stderr, "Failed to change user, error: %s\n", mysql_error(mysql)); - exit(EXIT_FAILURE); - } -// if (!mysql_real_connect(mysql,"127.0.0.1","msandbox","msandbox","information_schema",21891,NULL,0)) { -// fprintf(stderr, "Failed to connect, error: %s\n", mysql_error(mysql)); -// exit(EXIT_FAILURE); -// } -// if (mysql_change_user(mysql,"msandbox2","msandbox2","information_schema")) { -// fprintf(stderr, "Failed to change user, error: %s\n", mysql_error(mysql)); -// exit(EXIT_FAILURE); -// } - return 0; -} diff --git a/test/encrypt/.gitignore b/test/encrypt/.gitignore deleted file mode 100644 index 290524341..000000000 --- a/test/encrypt/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -client1 -client2 -client3 -client4 -client5 -client6 diff --git a/test/encrypt/Makefile b/test/encrypt/Makefile deleted file mode 100644 index ebc960976..000000000 --- a/test/encrypt/Makefile +++ /dev/null @@ -1,79 +0,0 @@ - - - - -DEPS_PATH=../../deps - -MARIADB_PATH=$(DEPS_PATH)/mariadb-client-library/mariadb_client -MARIADB_IDIR=$(MARIADB_PATH)/include -MARIADB_LDIR=$(MARIADB_PATH)/libmariadb - - -DAEMONPATH=$(DEPS_PATH)/libdaemon/libdaemon -DAEMONPATH_IDIR=$(DAEMONPATH) -DAEMONPATH_LDIR=$(DAEMONPATH)/libdaemon/.libs - -JEMALLOC_PATH=$(DEPS_PATH)/jemalloc/jemalloc -JEMALLOC_IDIR=$(JEMALLOC_PATH)/include/jemalloc -JEMALLOC_LDIR=$(JEMALLOC_PATH)/lib - -LIBCONFIG_PATH=$(DEPS_PATH)/libconfig/libconfig-1.4.9 -LIBCONFIG_IDIR=-I$(LIBCONFIG_PATH)/lib -LIBCONFIG_LDIR=-L$(LIBCONFIG_PATH)/lib/.libs - -LIBEVENT_PATH=$(DEPS_PATH)/libevent/libevent -LIBEVENT_IDIR=$(LIBEVENT_PATH)/include -LIBEVENT_LDIR=$(LIBEVENT_PATH)/.libs - -RE2_PATH=$(DEPS_PATH)/re2/re2 -RE2_IDIR=$(RE2_PATH) - -SQLITE3_DIR=$(DEPS_PATH)/sqlite3/sqlite3 - -IDIR=../../include -LDIR=../../lib -IDIRS=-I$(IDIR) -I$(JEMALLOC_IDIR) -I$(MARIADB_IDIR) $(LIBCONFIG_IDIR) -I$(DAEMONPATH_IDIR) -I$(SQLITE3_DIR) -LDIRS=-L$(LDIR) -L$(JEMALLOC_LDIR) $(LIBCONFIG_LDIR) -L$(RE2_PATH)/obj -L$(LIBEVENT_LDIR) -L$(MARIADB_LDIR) -L$(DAEMONPATH_LDIR) - - -MYCPPFLAGS=-std=c++11 $(IDIRS) $(OPTZ) $(DEBUG) -ggdb -LDFLAGS+= -MYLIBS=-Wl,--export-dynamic -Wl,-Bstatic -lconfig -lproxysql -ldaemon -ljemalloc -lconfig++ -lre2 -levent -lmariadbclient -Wl,-Bdynamic -lpthread -lm -lz -lrt -lcrypto -lssl $(EXTRALINK) - -UNAME_S := $(shell uname -s) -ifeq ($(UNAME_S),Linux) - MYLIBS+= -ldl -endif -ifeq ($(UNAME_S),FreeBSD) - MYLIBS+= -lexecinfo -endif - -LIBPROXYSQLAR=$(LDIR)/libproxysql.a - -.PHONY: default -default: client1 - -client1: client1.cpp - $(CXX) -o $@ $@.cpp $(LIBPROXYSQLAR) $(MYCPPFLAGS) $(CPPFLAGS) $(LDIRS) $(LIBS) $(LDFLAGS) $(MYLIBS) - -client2: client2.cpp - $(CXX) -o $@ $@.cpp $(LIBPROXYSQLAR) $(MYCPPFLAGS) $(CPPFLAGS) $(LDIRS) $(LIBS) $(LDFLAGS) $(MYLIBS) - -client3: client3.cpp - $(CXX) -o $@ $@.cpp $(LIBPROXYSQLAR) $(MYCPPFLAGS) $(CPPFLAGS) $(LDIRS) $(LIBS) $(LDFLAGS) $(MYLIBS) - -client4: client4.cpp - $(CXX) -o $@ $@.cpp $(LIBPROXYSQLAR) $(MYCPPFLAGS) $(CPPFLAGS) $(LDIRS) $(LIBS) $(LDFLAGS) $(MYLIBS) - -client5: client5.cpp - $(CXX) -o $@ $@.cpp $(LIBPROXYSQLAR) $(MYCPPFLAGS) $(CPPFLAGS) $(LDIRS) $(LIBS) $(LDFLAGS) $(MYLIBS) - -client6: client6.cpp - $(CXX) -o $@ $@.cpp $(LIBPROXYSQLAR) $(MYCPPFLAGS) $(CPPFLAGS) $(LDIRS) $(LIBS) $(LDFLAGS) $(MYLIBS) - - -default: $(EXECUTABLE) - -clean: - rm -f *~ core $(default) - diff --git a/test/encrypt/client1.cpp b/test/encrypt/client1.cpp deleted file mode 100644 index 3ed32bde7..000000000 --- a/test/encrypt/client1.cpp +++ /dev/null @@ -1,135 +0,0 @@ -#include "proxysql.h" -#include "cpp.h" - -#include -#include - -#define QUERY1 "SELECT ?" -#define NUMPREP 100000 -#define NUMPRO 1000 -#define NTHREADS 8 - -int shutdown_test=0; - -typedef struct _thread_data_t { - std::thread *thread; - MYSQL *mysql; - MYSQL_STMT **stmt; -} thread_data_t; - - -thread_data_t **GloThrData; - -void * mysql_thread(int tid) { - std::thread::id this_id = std::this_thread::get_id(); - std::hash hasher; - std::mt19937 mt_rand(time(0)*hasher(this_id)); - MYSQL *mysql=mysql_init(NULL); - if (!mysql_real_connect(mysql,"127.0.0.1","admin","admin","main",6032,NULL,0)) { - fprintf(stderr, "Failed to connect: Error: %s\n", mysql_error(mysql)); - exit(EXIT_FAILURE); - } - char *query=NULL; - while (__sync_fetch_and_add(&shutdown_test,0)==0) { - if ((uint32_t)mt_rand()%10) { // reconnect - mysql_close(mysql); - mysql=mysql_init(NULL); - if (!mysql_real_connect(mysql,"127.0.0.1","msandbox","msandbox",NULL,6033,NULL,0)) { - fprintf(stderr, "Failed to connect: Error: %s\n", mysql_error(mysql)); - exit(EXIT_FAILURE); - } - } - query=(char *)"SELECT 1"; - if (mysql_query(mysql,query)) { - fprintf(stderr, "Failed to run query: \"%s\" . Error: %s\n", query, mysql_error(mysql)); - exit(EXIT_FAILURE); - } - MYSQL_RES *result = mysql_store_result(mysql); - mysql_free_result(result); - } - return NULL; -} - -void * setup_admin() { - std::thread::id this_id = std::this_thread::get_id(); - std::hash hasher; - std::mt19937 mt_rand(time(0)*hasher(this_id)); - bool multiplex[2] = {false,false}; - bool hashed[2] = {false,false}; - MYSQL *mysql=mysql_init(NULL); - if (!mysql_real_connect(mysql,"127.0.0.1","admin","admin","main",6032,NULL,0)) { - fprintf(stderr, "Failed to connect to admin : Error: %s\n", mysql_error(mysql)); - exit(EXIT_FAILURE); - } - char *query=NULL; - while (__sync_fetch_and_add(&shutdown_test,0)==0) { - usleep(1000000); - multiplex[0]=multiplex[1]; - if ((uint32_t)mt_rand()%2) { - query=(char *)"SET mysql-multiplexing='true'"; - multiplex[1]=true; - } else { - query=(char *)"SET mysql-multiplexing='false'"; - multiplex[1]=false; - } - if (multiplex[0]!=multiplex[1]) { - if (mysql_query(mysql,query)) { - fprintf(stderr, "Failed to run query to admin : \"%s\" . Error: %s\n", query, mysql_error(mysql)); - exit(EXIT_FAILURE); - } - query=(char *)"LOAD MYSQL VARIABLES TO RUNTIME"; - if (mysql_query(mysql,query)) { - fprintf(stderr, "Failed to run query to admin : \"%s\" . Error: %s\n", query, mysql_error(mysql)); - exit(EXIT_FAILURE); - } - } - usleep(100000); - hashed[0]=hashed[1]; - if ((uint32_t)mt_rand()%2) { - query=(char *)"UPDATE mysql_users SET password='msandbox' WHERE username='msandbox'"; - hashed[1]=false; - } else { - query=(char *)"UPDATE mysql_users SET password='*6c387fc3893dba1e3ba155e74754da6682d04747' WHERE username='msandbox'"; - hashed[1]=true; - } - if (hashed[0]!=hashed[1]) { - if (mysql_query(mysql,query)) { - fprintf(stderr, "Failed to run query to admin : \"%s\" . Error: %s\n", query, mysql_error(mysql)); - exit(EXIT_FAILURE); - } - query=(char *)"LOAD MYSQL USERS TO RUNTIME"; - if (mysql_query(mysql,query)) { - fprintf(stderr, "Failed to run query to admin : \"%s\" . Error: %s\n", query, mysql_error(mysql)); - exit(EXIT_FAILURE); - } - } - } - return NULL; -} - -int main() { - // initialize mysql - mysql_library_init(0,NULL,NULL); - - // create a new MySQL_STMT_Manager() - //GloMyStmt=new MySQL_STMT_Manager(); - - std::thread *admin_thread=new std::thread(&setup_admin); - - GloThrData = (thread_data_t **)malloc(sizeof(thread_data_t *)*NTHREADS); - // starts N threads - int i; - - for (i=0; ithread = new std::thread(&mysql_thread,i); - } - sleep(30); - __sync_fetch_and_add(&shutdown_test,1); - admin_thread->join(); - // wait for the threads to complete - for (i=0; ithread->join(); - } - return 0; -} diff --git a/test/fast_rand.c b/test/fast_rand.c deleted file mode 100644 index 9f28ffe46..000000000 --- a/test/fast_rand.c +++ /dev/null @@ -1,43 +0,0 @@ -static unsigned int g_seed; - - -inline void fast_srand( int seed ) { -g_seed = seed; -} -inline int fastrand() { - g_seed = (214013*g_seed+2531011); - return (g_seed>>16)&0x7FFF; -} - -static char _s[128]; - -void gen_random_stdstring(string *s, const int len) { - //char *_s=(char *)alloca(len+1); - static const char alphanum[] = - "0123456789" - "ABCDEFGHIJKLMNOPQRSTUVWXYZ" - "abcdefghijklmnopqrstuvwxyz"; - for (int i = 0; i < len; ++i) { - _s[i] = alphanum[fastrand() % (sizeof(alphanum) - 1)]; - } - _s[len] = '\0'; - *s=string(_s); - //return s; -} - - - -char * gen_random_string(const int len) { - char *s=(char *)malloc(len+1); - static const char alphanum[] = - "0123456789" - "ABCDEFGHIJKLMNOPQRSTUVWXYZ" - "abcdefghijklmnopqrstuvwxyz"; - - for (int i = 0; i < len; ++i) { - s[i] = alphanum[fastrand() % (sizeof(alphanum) - 1)]; - } - - s[len] = 0; - return s; -} diff --git a/test/Vagrantfile b/test/legacy_python_tests/Vagrantfile similarity index 100% rename from test/Vagrantfile rename to test/legacy_python_tests/Vagrantfile diff --git a/test/__init__.py b/test/legacy_python_tests/__init__.py similarity index 100% rename from test/__init__.py rename to test/legacy_python_tests/__init__.py diff --git a/test/admin_tables_test.py b/test/legacy_python_tests/admin_tables_test.py similarity index 100% rename from test/admin_tables_test.py rename to test/legacy_python_tests/admin_tables_test.py diff --git a/test/admin_test.py b/test/legacy_python_tests/admin_test.py similarity index 100% rename from test/admin_test.py rename to test/legacy_python_tests/admin_test.py diff --git a/test/authentication_test.py b/test/legacy_python_tests/authentication_test.py similarity index 100% rename from test/authentication_test.py rename to test/legacy_python_tests/authentication_test.py diff --git a/test/check_result.py b/test/legacy_python_tests/check_result.py similarity index 100% rename from test/check_result.py rename to test/legacy_python_tests/check_result.py diff --git a/test/config_file_parsing_test.py b/test/legacy_python_tests/config_file_parsing_test.py similarity index 100% rename from test/config_file_parsing_test.py rename to test/legacy_python_tests/config_file_parsing_test.py diff --git a/test/docker_fleet.py b/test/legacy_python_tests/docker_fleet.py similarity index 100% rename from test/docker_fleet.py rename to test/legacy_python_tests/docker_fleet.py diff --git a/test/how_to.md b/test/legacy_python_tests/how_to.md similarity index 100% rename from test/how_to.md rename to test/legacy_python_tests/how_to.md diff --git a/test/one_backend_test.py b/test/legacy_python_tests/one_backend_test.py similarity index 100% rename from test/one_backend_test.py rename to test/legacy_python_tests/one_backend_test.py diff --git a/test/proxysql_base_test.py b/test/legacy_python_tests/proxysql_base_test.py similarity index 100% rename from test/proxysql_base_test.py rename to test/legacy_python_tests/proxysql_base_test.py diff --git a/test/proxysql_ping_thread.py b/test/legacy_python_tests/proxysql_ping_thread.py similarity index 100% rename from test/proxysql_ping_thread.py rename to test/legacy_python_tests/proxysql_ping_thread.py diff --git a/test/proxysql_tests_config.py b/test/legacy_python_tests/proxysql_tests_config.py similarity index 100% rename from test/proxysql_tests_config.py rename to test/legacy_python_tests/proxysql_tests_config.py diff --git a/test/replication_topology_awareness_test.py b/test/legacy_python_tests/replication_topology_awareness_test.py similarity index 100% rename from test/replication_topology_awareness_test.py rename to test/legacy_python_tests/replication_topology_awareness_test.py diff --git a/test/sysbench_test.py b/test/legacy_python_tests/sysbench_test.py similarity index 100% rename from test/sysbench_test.py rename to test/legacy_python_tests/sysbench_test.py diff --git a/test/main b/test/main deleted file mode 100755 index 15d6f4cd4c483eadab9cef10902155b3e3ea3bda..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9937 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 -#include - -class Query_Cache; - -int main() { - using std::cout; - using std::cerr; - - // load the triangle library -/* - void* QC = dlopen("../lib/Shared_Query_Cache.so", RTLD_LAZY); - if (!QC) { - cerr << "Cannot load library: " << dlerror() << " " << errno << '\n'; - return 1; - } -*/ - void* triangle = dlopen("./triangle.so", RTLD_LAZY); - if (!triangle) { - cerr << "Cannot load library: " << dlerror() << '\n'; - return 1; - } - - // reset errors - dlerror(); - - // load the symbols - create_t* create_triangle = (create_t*) dlsym(triangle, "create"); - const char* dlsym_error = dlerror(); - if (dlsym_error) { - cerr << "Cannot load symbol create: " << dlsym_error << '\n'; - return 1; - } - - destroy_t* destroy_triangle = (destroy_t*) dlsym(triangle, "destroy"); - dlsym_error = dlerror(); - if (dlsym_error) { - cerr << "Cannot load symbol destroy: " << dlsym_error << '\n'; - return 1; - } - - // create an instance of the class - polygon* poly = create_triangle(); - - // use the class - poly->set_side_length(7); - cout << "The area is: " << poly->area() << '\n'; - - // destroy the class - destroy_triangle(poly); - - // unload the triangle library - dlclose(triangle); -} diff --git a/test/monot b/test/monot deleted file mode 100755 index 56b9c1888f8a093e222cdfeef9b9a5b7ac393a21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7364 zcmeHMYiv}<6`p+nOJf^joZ=~D3KrXO9NGlc>lcFBK+Hnapm4h{dpGRE-Mvd} zgc`{5h~-+cDuk#S(N?W0exy><0$qMFrA4l(|7JP!MwPfZIb_0+~b|iY0-;iQ7YZ69!4FFDjLOvOl5nbG5LcKndrLwXuIlGZ;1J;cu> zZNCe8d;7}Zi^Te1Vr?=JUYm@rNhZ?yK7TIbuU9%WUFtV%-Y#vkAGBEmV%=&GV@Lh1 z<9$PitE;{j?tb|X3vT@Qb#T35=Qf4B}7So(14;av1lJqqExz z*F9sz?mSTZ+j1cW3)7`i>ClKdZ|rL*Eu8V}EKdSVLJN-L*17Adc!RoRm94^gYM zlGfwYjbD&5y~NqH@e#;%H+BvDt8isvYp^Tci&)16{+`(pfBm4_GxjF{CWmLG(@Rl( zO*Q@sQ}bVR-YlM`SG4Vu?E@bbuGgG%`=~5kc&9i#WIifRQFhj~Io`Qh>>mEvG$ttAKcw4n z|4cimK|99#QDxl3A2bN9Z>Vj;a>i#ccJ+3tG}tzgxYX3VNDOvPzVX-2aOJ@H|6U#a z-~55|qf;ve-di;~aNcpLaK^Xu`6A6Tvc~#=y!B8*y>w1u-XSV9%LKnu5|Rbgci;^zHvK$xo~Fr&Rxdy z#cSoWp5M*l;Bp^a+s9arj;%q(`R~9A=UC=?Y8~=iA5NkfLGX)+R3G>Q@bW5n9Q;l2 zOW;%Be+OqMxQ;M6_I3%!K96HrncMve%DpJVa26e~*90yqJna=_n-<+?y8Fbp9(?NS z^}dI_C~g7;;j0Z?1S&j-oXzF)S_`gy#lYJzC2d5Z$^)~>j&Zh2J==W{^b6=iGx|V9 z*%4QuqVljiP*Gi&x4EL$xv8QW1x0Ai!p*rrh5Kzzj1kZ!)a860&@|Vi@;n2<|6Q=BhZAswHL&S*cQzYzZv+=RE=+6d{Br!Y{ee{=Qk+7mALo7 zR!vMn=01w@C$~$P*YJ(W@3GY{do_My zF9l7bKJ$~{{QhDC`Q1#8txx6@%CW`EuJC0?N7s=;$~K9 z_QbNeL?%5;FrdrElEkY_Z_*V0L^^?gGuDUyZU|6iq9HRR{IR&voeia8Mm&m|T2eKP zP&OOtS2cA0g$Q6U9!e!5aGZfb{Q0F9Wigz~34bJ$O2yKq4)YgsjyaA`K5u!J0)gW} zC+e6U0WAO#C(k^f@FK61-ZR&sK;vG)809yCPlLcUt`+%P);QzXe$BEc&m1fqv7130 z-}K8d|1NOfMV@m2S!s`BpXUx7_r!6ItVV`&LnmUHc7gQx=GZ<79Ot9<%lf3n=AKpMw6I1L=CvEQ(3fLUly9nGx;KnovT;u+TJdW$+GnQv|5VVeP zo&PiPJhnqOiQ>#-M&^p8<~g~`iZti5 zk~wqLyHm-0^Q!r&WUf${f7biWC1{MQdT2Up2|s? zJCr-gg&m6hxw*xEN?gOVe+PCPtnq6r9!^m%{E$Di$pOfEe?h)AO%^+yAtg; zA#)v;^|A8pwc#s)KLS}NFEYmi?Y#`S#;Q;M zS0M9!0kza$gUt1wGmGc+A49gc_cmmnC-bb1_FT3(?nT*B$QsY~Jpwrie4B-T(uQaI zw%TOYe}VO9+JpHP$(lJc-`(wx;BWLja)RJO7)|P zO)|Lun+3&%26kn8hS+Q|lqaPO~MsLJ0Mu-!_=nin!B!OjA$-n#6#&Q41CcYOjFaHs~1~)*+Y0tquW*w zyL*lJi|7J2xK@$8!nxOdkYS(?I;79lHOO#h(h2k#7esqz-xu9!K)s5D9wxKmAVV(x E52^3@l>h($ diff --git a/test/monot.cpp b/test/monot.cpp deleted file mode 100644 index 850651858..000000000 --- a/test/monot.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include -#include - -long monotonic_time() { - struct timespec ts; - clock_gettime(CLOCK_MONOTONIC, &ts); - return (((long) ts.tv_sec) * 1000000) + (ts.tv_nsec / 1000); -} - - -#define LOOPS 10000000 - -int main() { - volatile int i; - volatile long l; - struct timespec req; - req.tv_sec=0; - req.tv_nsec=1; - for (i=0;i -#include - -struct __RE2_objects_t { - re2::RE2::Options *opt; - RE2 *re; -}; - -typedef struct __RE2_objects_t re2_t; - -int main() { - re2_t *r=(re2_t *)malloc(sizeof(re2_t)); - r->opt=new re2::RE2::Options(RE2::Quiet); - r->opt->set_case_sensitive(false); - //char *myq=(char *)" sEt NAmEs 'utf8' "; - char *myq=(char *)"sEt NAmEs 'utf8' "; - r->re=new RE2(" *SET *NAMES *.* *", *r->opt); - bool rc; - for (int i=0;i<100000;i++) { - string *new_query=new std::string(myq); - rc=RE2::PartialMatch(myq,*r->re); - //RE2::Replace(new_query,(char *)" *(\\w+) *(.*) *(.*) *",(char *)"\1 \2 \3 a"); - RE2::Replace(new_query,(char *)" *(\\w+)\\s+(\\w+)\\s+(\\w+)\\s*",(char *)"\\1 \\2 \\3"); - //std::cout << new_query->c_str() << std::endl; - delete new_query; - } - printf("%d\n",rc); - return 0; -} diff --git a/test/set_parser_test/.gitignore b/test/set_parser_test/.gitignore deleted file mode 100644 index dd78bc8eb..000000000 --- a/test/set_parser_test/.gitignore +++ /dev/null @@ -1 +0,0 @@ -setparsertest diff --git a/test/set_parser_test/Makefile b/test/set_parser_test/Makefile deleted file mode 100644 index c7d3c3562..000000000 --- a/test/set_parser_test/Makefile +++ /dev/null @@ -1,62 +0,0 @@ - - - - -DEPS_PATH=../../deps - -RE2_PATH=$(DEPS_PATH)/re2/re2 -RE2_IDIR=$(RE2_PATH) - -MARIADB_PATH=$(DEPS_PATH)/mariadb-client-library/mariadb_client -MARIADB_IDIR=$(MARIADB_PATH)/include -MARIADB_LDIR=$(MARIADB_PATH)/libmariadb - -DAEMONPATH=$(DEPS_PATH)/libdaemon/libdaemon -DAEMONPATH_IDIR=$(DAEMONPATH) -DAEMONPATH_LDIR=$(DAEMONPATH)/libdaemon/.libs - -JEMALLOC_PATH=$(DEPS_PATH)/jemalloc/jemalloc -JEMALLOC_IDIR=$(JEMALLOC_PATH)/include/jemalloc -JEMALLOC_LDIR=$(JEMALLOC_PATH)/lib - -LIBCONFIG_PATH=$(DEPS_PATH)/libconfig/libconfig-1.4.9 -LIBCONFIG_IDIR=-I$(LIBCONFIG_PATH)/lib -LIBCONFIG_LDIR=-L$(LIBCONFIG_PATH)/lib/.libs - -SQLITE3_DIR=$(DEPS_PATH)/sqlite3/sqlite3 - -IDIR=../../include -LDIR=../../lib -IDIRS=-I$(IDIR) -I$(RE2_IDIR) -I$(JEMALLOC_IDIR) -I$(MARIADB_IDIR) $(LIBCONFIG_IDIR) -I$(DAEMONPATH_IDIR) -I$(SQLITE3_DIR) -LDIRS=-L$(LDIR) -L$(JEMALLOC_LDIR) $(LIBCONFIG_LDIR) -L$(RE2_PATH)/obj -L$(MARIADB_LDIR) -L$(DAEMONPATH_LDIR) - -UNAME_S := $(shell uname -s) -ifeq ($(UNAME_S),Darwin) - IDIRS+= -I/usr/local/opt/openssl/include -endif - -LIBPROXYSQLAR=$(LDIR)/libproxysql.a - -MYCPPFLAGS=-std=c++11 $(IDIRS) $(OPTZ) $(DEBUG) -ggdb -LDFLAGS+= -MYLIBS=-Wl,--export-dynamic -Wl,-Bstatic -lproxysql -ldaemon -ljemalloc -lre2 -lmariadbclient -Wl,-Bdynamic -lpthread -lm -lz -lrt -lcrypto -lssl $(EXTRALINK) - -ifeq ($(UNAME_S),Darwin) - MYLIBS=-lre2 -lpthread -lm -lz -liconv -endif -ifeq ($(UNAME_S),Linux) - MYLIBS+= -ldl -endif -ifeq ($(UNAME_S),FreeBSD) - MYLIBS+= -lexecinfo -endif - -.PHONY: default -default: setparsertest - -setparsertest: setparsertest.cpp $(RE2_PATH)/util/test.cc $(LDIR)/set_parser.cpp $(LIBPROXYSQLAR) - $(CXX) -o $@ $@.cpp $(RE2_PATH)/util/test.cc $(LIBPROXYSQLAR) $(MYCPPFLAGS) $(CPPFLAGS) $(LDIRS) $(LIBS) $(LDFLAGS) $(MYLIBS) - -clean: - rm -f *~ core $(default) - diff --git a/test/set_parser_test/setparsertest.cpp b/test/set_parser_test/setparsertest.cpp deleted file mode 100644 index 482cbf364..000000000 --- a/test/set_parser_test/setparsertest.cpp +++ /dev/null @@ -1,211 +0,0 @@ -#include "re2/re2.h" -#include "re2/regexp.h" -#include "util/test.h" -#include "set_parser.h" -#include -#include -#include -#include - -int remove_spaces(const char *s) { - char *inp = (char *)s, *outp = (char *)s; - bool prev_space = false; - bool fns = false; - while (*inp) { - if (isspace(*inp)) { - if (fns) { - if (!prev_space) { - *outp++ = ' '; - prev_space = true; - } - } - } else { - *outp++ = *inp; - prev_space = false; - if (!fns) fns=true; - } - ++inp; - } - if (outp>s) { - if (prev_space) { - outp--; - } - } - *outp = '\0'; - return strlen(s); -} - -bool iequals(const string& a, const string& b) -{ - unsigned int sz = a.size(); - if (b.size() != sz) - return false; - for (unsigned int i = 0; i < sz; ++i) - if (tolower(a[i]) != tolower(b[i])) - return false; - return true; -} - -void printMap(const char* prefix, const std::map>& dict) -{ - std::cout << prefix << ": "; - for(auto mapIt = begin(dict); mapIt != end(dict); ++mapIt) - { - std::cout << mapIt->first << " : "; - - for(auto c : mapIt->second) - { - std::cout << c << " "; - } - - std::cout << std::endl; - } -} - -struct Expected { - const char* var; - std::vector values; - Expected(const char* var, std::vector values): var(var), values(values){}; -}; - -struct Test { - const char* query; - std::vector results; -}; - -static Test sql_mode[] = { - { "SET @@sql_mode = 'TRADITIONAL'", { Expected("sql_mode", {"TRADITIONAL"}) } }, - { "SET SESSION sql_mode = 'TRADITIONAL'", { Expected("sql_mode", {"TRADITIONAL"}) } }, - { "SET @@session.sql_mode = 'TRADITIONAL'", { Expected("sql_mode", {"TRADITIONAL"}) } }, - { "SET sql_mode = 'TRADITIONAL'", { Expected("sql_mode", {"TRADITIONAL"}) } }, - { "SET SQL_MODE ='TRADITIONAL'", { Expected("sql_mode", {"TRADITIONAL"}) } }, - { "SET SQL_MODE = \"TRADITIONAL\"", { Expected("sql_mode", {"TRADITIONAL"}) } }, - { "SET SQL_MODE = TRADITIONAL", { Expected("sql_mode", {"TRADITIONAL"}) } }, - { "set sql_mode = IFNULL(NULL,\"STRICT_TRANS_TABLES\")", { Expected("sql_mode", {"IFNULL(NULL,\"STRICT_TRANS_TABLES\")"}) } }, - { "set sql_mode = IFNULL(NULL,'STRICT_TRANS_TABLES')", { Expected("sql_mode", {"IFNULL(NULL,'STRICT_TRANS_TABLES')"}) } }, - { "SET @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ', STRICT_ALL_TABLES'), ', NO_AUTO_VALUE_ON_ZERO')", { Expected("sql_mode", {"CONCAT(CONCAT(@@sql_mode, ', STRICT_ALL_TABLES'), ', NO_AUTO_VALUE_ON_ZERO')"}) } }, - { "set session sql_mode = 'ONLY_FULL_GROUP_BY'" , { Expected("sql_mode", {"ONLY_FULL_GROUP_BY"}) } }, - { "SET sql_mode = 'NO_ZERO_DATE,STRICT_ALL_TABLES,ONLY_FULL_GROUP_BY'" , { Expected("sql_mode", {"NO_ZERO_DATE,STRICT_ALL_TABLES,ONLY_FULL_GROUP_BY"}) } }, - { "SET @@sql_mode = CONCAT(@@sql_mode, ',', 'ONLY_FULL_GROUP_BY')" , { Expected("sql_mode", {"CONCAT(@@sql_mode, ',', 'ONLY_FULL_GROUP_BY')"}) } }, - { "SET @@sql_mode = REPLACE(REPLACE(REPLACE(@@sql_mode, 'ONLY_FULL_GROUP_BY,', ''),',ONLY_FULL_GROUP_BY', ''),'ONLY_FULL_GROUP_BY', '')" , { Expected("sql_mode", {"REPLACE(REPLACE(REPLACE(@@sql_mode, 'ONLY_FULL_GROUP_BY,', ''),',ONLY_FULL_GROUP_BY', ''),'ONLY_FULL_GROUP_BY', '')"}) } }, - { "SET @@sql_mode = REPLACE( REPLACE( REPLACE( @@sql_mode, 'ONLY_FULL_GROUP_BY,', ''),',ONLY_FULL_GROUP_BY', ''),'ONLY_FULL_GROUP_BY', '')" , { Expected("sql_mode", {"REPLACE( REPLACE( REPLACE( @@sql_mode, 'ONLY_FULL_GROUP_BY,', ''),',ONLY_FULL_GROUP_BY', ''),'ONLY_FULL_GROUP_BY', '')"}) } }, -// { "SET @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ', STRICT_ALL_TABLES'), ', NO_AUTO_VALUE_ON_ZERO')", { Expected("sql_mode", {"CONCAT(CONCAT(@@sql_mode, ', STRICT_ALL_TABLES'), ', NO_AUTO_VALUE_ON_ZERO')"}) } }, - { "SET SQL_MODE=IFNULL(@@sql_mode,'')", { Expected("sql_mode", { "IFNULL(@@sql_mode,'')" } ) } }, - { "SET SQL_MODE=IFNULL(@old_sql_mode,'')", { Expected("sql_mode", { "IFNULL(@old_sql_mode,'')" } ) } }, - { "SET SQL_MODE=IFNULL(@OLD_SQL_MODE,'')", { Expected("sql_mode", { "IFNULL(@OLD_SQL_MODE,'')" } ) } }, -}; - -void TestParse(const Test* tests, int ntests, const string& title) { - for (int i = 0; i < ntests; i++) { - std::map> data; - for(auto it = std::begin(tests[i].results); it != std::end(tests[i].results); ++it) { - data[it->var] = it->values; - } - - SetParser parser(tests[i].query); - std::map> result = parser.parse1(); - - // printMap("result", result); - // printMap("expected", data); - - CHECK_EQ(result.size(), data.size()); - CHECK(std::equal(std::begin(result), std::end(result), std::begin(data))); - } -} - - -TEST(TestParse, SET_SQL_MODE) { - TestParse(sql_mode, arraysize(sql_mode), "sql_mode"); -} - -static Test time_zone[] = { - { "SET @@time_zone = 'Europe/Paris'", { Expected("time_zone", {"Europe/Paris"}) } }, - { "SET @@time_zone = '+00:00'", { Expected("time_zone", {"+00:00"}) } }, - { "SET @@time_zone = \"Europe/Paris\"", { Expected("time_zone", {"Europe/Paris"}) } }, - { "SET @@time_zone = \"+00:00\"", { Expected("time_zone", {"+00:00"}) } }, - { "SET @@time_zone = @OLD_TIME_ZONE", { Expected("time_zone", {"@OLD_TIME_ZONE"}) } }, - { "SET @@TIME_ZONE = @OLD_TIME_ZONE", { Expected("time_zone", {"@OLD_TIME_ZONE"}) } }, -}; - -TEST(TestParse, SET_TIME_ZONE) { - TestParse(time_zone, arraysize(time_zone), "time_zone"); -} - -static Test session_track_gtids[] = { - { "SET @@session_track_gtids = OFF", { Expected("session_track_gtids", {"OFF"}) } }, - { "SET @@session_track_gtids = OWN_GTID", { Expected("session_track_gtids", {"OWN_GTID"}) } }, - { "SET @@SESSION.session_track_gtids = OWN_GTID", { Expected("session_track_gtids", {"OWN_GTID"}) } }, - { "SET SESSION session_track_gtids = OWN_GTID", { Expected("session_track_gtids", {"OWN_GTID"}) } }, - { "SET @@session_track_gtids = ALL_GTIDS", { Expected("session_track_gtids", {"ALL_GTIDS"}) } }, - { "SET @@SESSION.session_track_gtids = ALL_GTIDS", { Expected("session_track_gtids", {"ALL_GTIDS"}) } }, - { "SET SESSION session_track_gtids = ALL_GTIDS", { Expected("session_track_gtids", {"ALL_GTIDS"}) } }, -}; - -TEST(TestParse, SET_SESSION_TRACK_GTIDS) { - TestParse(session_track_gtids, arraysize(session_track_gtids), "session_track_gtids"); -} - -static Test character_set_results[] = { - { "SET @@character_set_results = utf8", { Expected("character_set_results", {"utf8"}) } }, - { "SET @@character_set_results = NULL", { Expected("character_set_results", {"NULL"}) } }, - { "SET character_set_results = NULL", { Expected("character_set_results", {"NULL"}) } }, - { "SET @@session.character_set_results = NULL", { Expected("character_set_results", {"NULL"}) } }, - { "SET session character_set_results = NULL", { Expected("character_set_results", {"NULL"}) } }, -}; - -TEST(TestParse, SET_CHARACTER_SET_RESULTS) { - TestParse(character_set_results, arraysize(character_set_results), "character_set_results"); -} - -static Test names[] = { - { "SET NAMES utf8", { Expected("names", {"utf8"}) } }, - { "SET NAMES 'utf8'", { Expected("names", {"utf8"}) } }, - { "SET NAMES \"utf8\"", { Expected("names", {"utf8"}) } }, - { "SET NAMES utf8 COLLATE unicode_ci", { Expected("names", {"utf8", "unicode_ci"}) } }, -}; - -TEST(TestParse, SET_NAMES) { - TestParse(names, arraysize(names), "names"); -} -static Test various[] = { - { "SET @@SESSION.SQL_SELECT_LIMIT= DEFAULT", { Expected("sql_select_limit", {"DEFAULT"}) } }, - { "SET @@SQL_SELECT_LIMIT= DEFAULT", { Expected("sql_select_limit", {"DEFAULT"}) } }, - { "SET SESSION SQL_SELECT_LIMIT = DEFAULT", { Expected("sql_select_limit", {"DEFAULT"}) } }, - { "SET @@SESSION.SQL_SELECT_LIMIT= 1234", { Expected("sql_select_limit", {"1234"}) } }, - { "SET @@SQL_SELECT_LIMIT= 1234", { Expected("sql_select_limit", {"1234"}) } }, - { "SET SESSION SQL_SELECT_LIMIT = 1234", { Expected("sql_select_limit", {"1234"}) } }, - { "SET @@SESSION.SQL_SELECT_LIMIT= 1234", { Expected("sql_select_limit", {"1234"}) } }, - { "SET @@SESSION.SQL_SELECT_LIMIT= @old_sql_select_limit", { Expected("sql_select_limit", {"@old_sql_select_limit"}) } }, - { "SET SQL_SELECT_LIMIT= @old_sql_select_limit", { Expected("sql_select_limit", {"@old_sql_select_limit"}) } }, - { "SET @@SESSION.sql_auto_is_null = 0", { Expected("sql_auto_is_null", {"0"}) } }, - { "SET SESSION sql_auto_is_null = 1", { Expected("sql_auto_is_null", {"1"}) } }, - { "SET sql_auto_is_null = OFF", { Expected("sql_auto_is_null", {"OFF"}) } }, - { "SET @@sql_auto_is_null = ON", { Expected("sql_auto_is_null", {"ON"}) } }, - { "SET @@SESSION.sql_safe_updates = 0", { Expected("sql_safe_updates", {"0"}) } }, - { "SET SESSION sql_safe_updates = 1", { Expected("sql_safe_updates", {"1"}) } }, - { "SET SQL_SAFE_UPDATES = OFF", { Expected("sql_safe_updates", {"OFF"}) } }, - { "SET @@sql_safe_updates = ON", { Expected("sql_safe_updates", {"ON"}) } }, -}; - -TEST(TestParse, SET_VARIOUS) { - TestParse(various, arraysize(various), "various"); -} - -static Test multiple[] = { - { "SET time_zone = 'Europe/Paris', sql_mode = 'TRADITIONAL'", { Expected("time_zone", {"Europe/Paris"}), Expected("sql_mode", {"TRADITIONAL"}) } }, - { "SET time_zone = 'Europe/Paris', sql_mode = IFNULL(NULL,\"STRICT_TRANS_TABLES\")", { Expected("time_zone", {"Europe/Paris"}), Expected("sql_mode", {"IFNULL(NULL,\"STRICT_TRANS_TABLES\")"}) } }, - { "SET sql_mode = 'TRADITIONAL', NAMES 'utf8 COLLATE 'unicode_ci'", { Expected("sql_mode", {"TRADITIONAL"}), Expected("names", {"utf8", "unicode_ci"}) } }, - { "SET @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483", - { Expected("sql_mode", {"CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO')"}), Expected("sql_auto_is_null", {"0"}), - Expected("wait_timeout", {"2147483"}) } }, - { "set autocommit=1, sql_mode = concat(@@sql_mode,',STRICT_TRANS_TABLES')", { Expected("autocommit", {"1"}), Expected("sql_mode", {"concat(@@sql_mode,',STRICT_TRANS_TABLES')"}) } }, - { "SET NAMES utf8, @@SESSION.sql_mode = CONCAT(REPLACE(REPLACE(REPLACE(@@sql_mode, 'STRICT_TRANS_TABLES', ''), 'STRICT_ALL_TABLES', ''), 'TRADITIONAL', ''), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 3600", - { Expected("names", {"utf8"}), Expected("sql_mode", {"CONCAT(REPLACE(REPLACE(REPLACE(@@sql_mode, 'STRICT_TRANS_TABLES', ''), 'STRICT_ALL_TABLES', ''), 'TRADITIONAL', ''), ',NO_AUTO_VALUE_ON_ZERO')"}), Expected("sql_auto_is_null", {"0"}), - Expected("wait_timeout", {"3600"}) } }, - { "set autocommit=1, session_track_schema=1, sql_mode = concat(@@sql_mode,',STRICT_TRANS_TABLES'), @@SESSION.net_write_timeout=7200", { Expected("autocommit", {"1"}), Expected("session_track_schema", {"1"}), Expected("sql_mode", {"concat(@@sql_mode,',STRICT_TRANS_TABLES')"}), - Expected("net_write_timeout", {"7200"}) } }, -}; - -TEST(TestParse, MULTIPLE) { - TestParse(multiple, arraysize(multiple), "multiple"); -} diff --git a/test/sqlite_server/Makefile b/test/sqlite_server/Makefile deleted file mode 100644 index e69de29bb..000000000