diff options
author | unknown <monty@narttu.mysql.fi> | 2003-04-22 22:41:59 +0300 |
---|---|---|
committer | unknown <monty@narttu.mysql.fi> | 2003-04-22 22:41:59 +0300 |
commit | ac02f54022f2a64ada230ef4a3f446b26b143275 (patch) | |
tree | 5d018897c694206dbaf1995bb7862e5d5ad8a93d /client | |
parent | 43f1511a31a8e47682410ca5b02eb0dd4aba16d8 (diff) | |
download | mariadb-git-ac02f54022f2a64ada230ef4a3f446b26b143275.tar.gz |
Removed some not used files
Remove the 'fs' file systems as this is not maintained.
Moved programs from client to tests
tests/deadlock_test.c:
Rename: div/deadlock_test.c -> tests/deadlock_test.c
BitKeeper/deleted/.del-CorbaFS.idl~719ba9d93c206620:
Delete: fs/CorbaFS.idl
BitKeeper/deleted/.del-Makefile.am~95f21e278745904c:
Delete: fs/Makefile.am
BitKeeper/deleted/.del-RunServer.sh~34ea2653535fbb5c:
Delete: fs/RunServer.sh
BitKeeper/deleted/.del-database.c~af098622e818ce0d:
Delete: fs/database.c
BitKeeper/deleted/.del-dump.sql~68646092f0c5bc96:
Delete: fs/dump.sql
BitKeeper/deleted/.del-korbit-kernel-2.4.1-patch~742e5e67c1132b2e:
Delete: fs/korbit-kernel-2.4.1-patch
BitKeeper/deleted/.del-libmysqlfs.c~70cc07d61deedd16:
Delete: fs/libmysqlfs.c
BitKeeper/deleted/.del-libmysqlfs.h~7b60f308be50370e:
Delete: fs/libmysqlfs.h
BitKeeper/deleted/.del-my.cnf~bbd975fd6377e704:
Delete: fs/my.cnf
BitKeeper/deleted/.del-mysqlcorbafs.c~fc58c116eeea996a:
Delete: fs/mysqlcorbafs.c
BitKeeper/deleted/.del-mysqlcorbafs.h~414821d6836e655a:
Delete: fs/mysqlcorbafs.h
BitKeeper/deleted/.del-mysqlcorbafs_test.c~8bb3afa230542e05:
Delete: fs/mysqlcorbafs_test.c
BitKeeper/deleted/.del-README~b9f437fbd6dce7a5:
Delete: fs/README
BitKeeper/deleted/.del-mysqlfsck~247a2d2b9729b95e:
Delete: fs/mysqlfsck
tests/insert_test.c:
Rename: client/insert_test.c -> tests/insert_test.c
tests/list_test.c:
Rename: client/list_test.c -> tests/list_test.c
tests/select_test.c:
Rename: client/select_test.c -> tests/select_test.c
BitKeeper/deleted/.del-thimble.cc~3fa3754a4c639242:
Delete: client/thimble.cc
tests/thread_test.c:
Rename: client/thread_test.c -> tests/thread_test.c
tests/connect_test.c:
Rename: client/connect_test.c -> tests/connect_test.c
tests/showdb_test.c:
Rename: client/showdb_test.c -> tests/showdb_test.c
tests/ssl_test.c:
Rename: client/ssl_test.c -> tests/ssl_test.c
BitKeeper/deleted/.del-mysql_install.c~8c089740d79a92:
Delete: extra/mysql_install.c
BitKeeper/deleted/.del-cache_manager.cc~c506b365b140d30c:
Delete: sql/cache_manager.cc
BitKeeper/deleted/.del-cache_manager.h~adb8639e510c6f6e:
Delete: sql/cache_manager.h
client/Makefile.am:
Move insert_test, select_test and thread_test under 'tests'
extra/Makefile.am:
Remove not used program mysql_install
sql/item_strfunc.cc:
Simple optimization
sql/item_sum.cc:
Simple code cleanup.
tests/Makefile.am:
Added test programs
Diffstat (limited to 'client')
-rw-r--r-- | client/Makefile.am | 6 | ||||
-rw-r--r-- | client/connect_test.c | 65 | ||||
-rw-r--r-- | client/insert_test.c | 59 | ||||
-rw-r--r-- | client/list_test.c | 70 | ||||
-rw-r--r-- | client/select_test.c | 73 | ||||
-rw-r--r-- | client/showdb_test.c | 66 | ||||
-rw-r--r-- | client/ssl_test.c | 81 | ||||
-rw-r--r-- | client/thimble.cc | 107 | ||||
-rw-r--r-- | client/thread_test.c | 251 |
9 files changed, 0 insertions, 778 deletions
diff --git a/client/Makefile.am b/client/Makefile.am index 92c46519275..2922b1fc6a2 100644 --- a/client/Makefile.am +++ b/client/Makefile.am @@ -22,7 +22,6 @@ LIBS = @CLIENT_LIBS@ LDADD = @CLIENT_EXTRA_LDFLAGS@ ../libmysql/libmysqlclient.la bin_PROGRAMS = mysql mysqladmin mysqlcheck mysqlshow \ mysqldump mysqlimport mysqltest mysqlbinlog mysqlmanagerc mysqlmanager-pwgen -noinst_PROGRAMS = insert_test select_test thread_test noinst_HEADERS = sql_string.h completion_hash.h my_readline.h \ client_priv.h mysql_SOURCES = mysql.cc readline.cc sql_string.cc completion_hash.cc @@ -34,8 +33,6 @@ mysqlcheck_DEPENDENCIES= $(LIBRARIES) $(pkglib_LTLIBRARIES) mysqlshow_DEPENDENCIES= $(LIBRARIES) $(pkglib_LTLIBRARIES) mysqldump_DEPENDENCIES= $(LIBRARIES) $(pkglib_LTLIBRARIES) mysqlimport_DEPENDENCIES= $(LIBRARIES) $(pkglib_LTLIBRARIES) -insert_test_DEPENDENCIES= $(LIBRARIES) $(pkglib_LTLIBRARIES) -select_test_DEPENDENCIES= $(LIBRARIES) $(pkglib_LTLIBRARIES) mysqltest_SOURCES= mysqltest.c mysqltest_DEPENDENCIES= $(LIBRARIES) $(pkglib_LTLIBRARIES) mysqlbinlog_SOURCES = mysqlbinlog.cc @@ -53,8 +50,5 @@ link_sources: @LN_CP_F@ $(top_srcdir)/sql/$$f $(srcdir)/$$f; \ done; -thread_test.o: thread_test.c - $(COMPILE) -c @MT_INCLUDES@ $(INCLUDES) $< - # Don't update the files from bitkeeper %::SCCS/s.% diff --git a/client/connect_test.c b/client/connect_test.c deleted file mode 100644 index fd81ad635ad..00000000000 --- a/client/connect_test.c +++ /dev/null @@ -1,65 +0,0 @@ -/* Copyright (C) 2000 MySQL AB - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - -#include <stdio.h> -#include <stdlib.h> -#include "mysql.h" - -static void change_user(MYSQL *sock,const char *user, const char *password, - const char *db,my_bool warning) -{ - if (mysql_change_user(sock,user,password,db) != warning) - { - fprintf(stderr,"Couldn't change user to: user: '%s', password: '%s', db: '%s': Error: %s\n", - user, password ? password : "", db ? db : "", - mysql_error(sock)); - } -} - - -int main(int argc, char **argv) -{ - MYSQL *sock; - - if (!(sock=mysql_init(0))) - { - fprintf(stderr,"Couldn't initialize mysql struct\n"); - exit(1); - } - mysql_options(sock,MYSQL_READ_DEFAULT_GROUP,"connect"); - if (!mysql_real_connect(sock,NULL,NULL,NULL,NULL,0,NULL,0)) - { - fprintf(stderr,"Couldn't connect to engine!\n%s\n",mysql_error(sock)); - perror(""); - exit(1); - } - - if (mysql_select_db(sock,"test")) - { - fprintf(stderr,"Couldn't select database test: Error: %s\n", - mysql_error(sock)); - } - - change_user(sock,"test_user","test_user","test",0); - change_user(sock,"test",NULL,"test",0); - change_user(sock,"test_user",NULL,"test",1); - change_user(sock,"test_user",NULL,NULL,1); - change_user(sock,"test_user","test_user","mysql",1); - - mysql_close(sock); - exit(0); - return 0; -} diff --git a/client/insert_test.c b/client/insert_test.c deleted file mode 100644 index 052c12bfdf0..00000000000 --- a/client/insert_test.c +++ /dev/null @@ -1,59 +0,0 @@ -/* Copyright (C) 2000 MySQL AB - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - -#include <stdio.h> -#include <stdlib.h> -#include "mysql.h" - -#define INSERT_QUERY "insert into test (name,num) values ('item %d', %d)" - - -int main(int argc, char **argv) -{ - int count,num; - MYSQL *sock,mysql; - char qbuf[160]; - - if (argc != 3) - { - fprintf(stderr,"usage : insert_test <dbname> <Num>\n\n"); - exit(1); - } - - mysql_init(&mysql); - if (!(sock = mysql_real_connect(&mysql,NULL,NULL,NULL,argv[1],0,NULL,0))) - { - fprintf(stderr,"Couldn't connect to engine!\n%s\n",mysql_error(&mysql)); - perror(""); - exit(1); - } - - num = atoi(argv[2]); - count = 0; - while (count < num) - { - sprintf(qbuf,INSERT_QUERY,count,count); - if(mysql_query(sock,qbuf)) - { - fprintf(stderr,"Query failed (%s)\n",mysql_error(sock)); - exit(1); - } - count++; - } - mysql_close(sock); - exit(0); - return 0; -} diff --git a/client/list_test.c b/client/list_test.c deleted file mode 100644 index 06bf16d2751..00000000000 --- a/client/list_test.c +++ /dev/null @@ -1,70 +0,0 @@ -/* Copyright (C) 2000 MySQL AB - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - -#ifdef __WIN__ -#include <windows.h> -#endif -#include <stdio.h> -#include <stdlib.h> -#include "mysql.h" - -#define SELECT_QUERY "select name from test where num = %d" - - -int main(int argc, char **argv) -{ - int count, num; - MYSQL mysql,*sock; - MYSQL_RES *res; - char qbuf[160]; - - if (argc != 2) - { - fprintf(stderr,"usage : select_test <dbname>\n\n"); - exit(1); - } - - if (!(sock = mysql_connect(&mysql,NULL,0,0))) - { - fprintf(stderr,"Couldn't connect to engine!\n%s\n\n",mysql_error(&mysql)); - perror(""); - exit(1); - } - - if (mysql_select_db(sock,argv[1]) < 0) - { - fprintf(stderr,"Couldn't select database %s!\n%s\n",argv[1], - mysql_error(sock)); - exit(1); - } - - if (!(res=mysql_list_dbs(sock,NULL))) - { - fprintf(stderr,"Couldn't list dbs!\n%s\n",mysql_error(sock)); - exit(1); - } - mysql_free_result(res); - if (!(res=mysql_list_tables(sock,NULL))) - { - fprintf(stderr,"Couldn't list tables!\n%s\n",mysql_error(sock)); - exit(1); - } - mysql_free_result(res); - - mysql_close(sock); - exit(0); - return 0; -} diff --git a/client/select_test.c b/client/select_test.c deleted file mode 100644 index ee2a9192865..00000000000 --- a/client/select_test.c +++ /dev/null @@ -1,73 +0,0 @@ -/* Copyright (C) 2000 MySQL AB - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - -#if defined(_WIN32) || defined(_WIN64) -#include <windows.h> -#endif -#include <stdio.h> -#include <stdlib.h> -#include "mysql.h" - -#define SELECT_QUERY "select name from test where num = %d" - - -int main(int argc, char **argv) -{ - int count, num; - MYSQL mysql,*sock; - MYSQL_RES *res; - char qbuf[160]; - - if (argc != 3) - { - fprintf(stderr,"usage : select_test <dbname> <num>\n\n"); - exit(1); - } - - mysql_init(&mysql); - if (!(sock = mysql_real_connect(&mysql,NULL,0,0,argv[1],0,NULL,0))) - { - fprintf(stderr,"Couldn't connect to engine!\n%s\n\n",mysql_error(&mysql)); - perror(""); - exit(1); - } - - count = 0; - num = atoi(argv[2]); - while (count < num) - { - sprintf(qbuf,SELECT_QUERY,count); - if(mysql_query(sock,qbuf)) - { - fprintf(stderr,"Query failed (%s)\n",mysql_error(sock)); - exit(1); - } - if (!(res=mysql_store_result(sock))) - { - fprintf(stderr,"Couldn't get result from %s\n", - mysql_error(sock)); - exit(1); - } -#ifdef TEST - printf("number of fields: %d\n",mysql_num_fields(res)); -#endif - mysql_free_result(res); - count++; - } - mysql_close(sock); - exit(0); - return 0; /* Keep some compilers happy */ -} diff --git a/client/showdb_test.c b/client/showdb_test.c deleted file mode 100644 index df2b3037c00..00000000000 --- a/client/showdb_test.c +++ /dev/null @@ -1,66 +0,0 @@ -/* Copyright (C) 2000 MySQL AB - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - - -#ifdef __WIN__ -#include <windows.h> -#endif -#include <stdio.h> -#include <stdlib.h> -#include "mysql.h" - -#define SELECT_QUERY "select name from test where num = %d" - - -int main(int argc, char **argv) -{ - int count, num; - MYSQL mysql,*sock; - MYSQL_RES *res; - char qbuf[160]; - - if (argc != 3) - { - fprintf(stderr,"usage : select_test <dbname> <num>\n\n"); - exit(1); - } - - mysql_init(&mysql); - if (!(sock = mysql_real_connect(&mysql,NULL,0,0,argv[1],0,NULL,0))) - { - fprintf(stderr,"Couldn't connect to engine!\n%s\n\n",mysql_error(&mysql)); - perror(""); - exit(1); - } - - count = 0; - num = atoi(argv[2]); - while (count < num) - { - sprintf(qbuf,SELECT_QUERY,count); - if(!(res=mysql_list_dbs(sock,NULL))) - { - fprintf(stderr,"Query failed (%s)\n",mysql_error(sock)); - exit(1); - } - printf("number of fields: %d\n",mysql_num_rows(res)); - mysql_free_result(res); - count++; - } - mysql_close(sock); - exit(0); - return 0; /* Keep some compilers happy */ -} diff --git a/client/ssl_test.c b/client/ssl_test.c deleted file mode 100644 index 279c1e95fdc..00000000000 --- a/client/ssl_test.c +++ /dev/null @@ -1,81 +0,0 @@ -/* Copyright (C) 2000 MySQL AB - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - - -#ifdef __WIN__ -#include <windows.h> -#endif -#include <stdio.h> -#include <stdlib.h> -#include "mysql.h" -#include "config.h" -#define SELECT_QUERY "select name from test where num = %d" - - -int main(int argc, char **argv) -{ -#ifdef HAVE_OPENSSL - int count, num; - MYSQL mysql,*sock; - MYSQL_RES *res; - char qbuf[160]; - - if (argc != 3) - { - fprintf(stderr,"usage : ssl_test <dbname> <num>\n\n"); - exit(1); - } - - mysql_init(&mysql); -#ifdef HAVE_OPENSSL - mysql_ssl_set(&mysql,"../SSL/MySQL-client-key.pem","../SSL/MySQL-client-cert.pem","../SSL/MySQL-ca-cert.pem","../SSL/"); -#endif - if (!(sock = mysql_real_connect(&mysql,"127.0.0.1",0,0,argv[1],3306,NULL,0))) - { - fprintf(stderr,"Couldn't connect to engine!\n%s\n\n",mysql_error(&mysql)); - perror(""); - exit(1); - } - printf("Cipher:%s\n",mysql_ssl_cipher(&mysql)); - count = 0; - num = atoi(argv[2]); - while (count < num) - { - sprintf(qbuf,SELECT_QUERY,count); - if(mysql_query(sock,qbuf)) - { - fprintf(stderr,"Query failed (%s)\n",mysql_error(sock)); - exit(1); - } - if (!(res=mysql_store_result(sock))) - { - fprintf(stderr,"Couldn't get result from query failed\n", - mysql_error(sock)); - exit(1); - } -#ifdef TEST - printf("number of fields: %d\n",mysql_num_fields(res)); -#endif - mysql_free_result(res); - count++; - } - mysql_close(sock); -#else /* HAVE_OPENSSL */ - printf("ssl_test: SSL not configured.\n"); -#endif /* HAVE_OPENSSL */ - exit(0); - return 0; /* Keep some compilers happy */ -} diff --git a/client/thimble.cc b/client/thimble.cc deleted file mode 100644 index 94b75d8fb35..00000000000 --- a/client/thimble.cc +++ /dev/null @@ -1,107 +0,0 @@ -/* Copyright (C) 2000 MySQL AB - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include "my_my_global.h" - -static void spawn_stern_thread(pthread_t *t); -static int act_goofy(void); -static void *be_stern(void *); - -static struct { - pthread_mutex_t lock; - pthread_cond_t cond; - int msg; -} comm = { PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER, 0 }; - - -int -main(void) -{ - pthread_t t; - spawn_stern_thread(&t); - - while (act_goofy() != 0) - /* do nothing */; - - pthread_exit(NULL); - - /* notreached */ - return EXIT_SUCCESS; -} - -static void spawn_stern_thread(pthread_t *t) -{ - pthread_attr_t attr; - - pthread_attr_init(&attr); - pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); - - if (pthread_create(t, &attr, be_stern, NULL) != 0) - exit(EXIT_FAILURE); - - pthread_attr_destroy(&attr); -} - -static int act_goofy(void) -{ - int ret; - char buf[30]; - - fputs("Are you ready to act goofy (Y/n)? ", stdout); fflush(stdout); - fgets(buf, sizeof(buf), stdin); - pthread_mutex_lock(&comm.lock); - if (buf[0] == 'y' || buf[0] == '\n') { - fputs("** Waawlwalkwwwaa!!\n", stdout); fflush(stdout); - ++comm.msg; - ret = 1; - } - else { - fputs("OK, I hate you. Let me go.\n", stdout); fflush(stdout); - comm.msg = -1; - ret = 0; - } - pthread_mutex_unlock(&comm.lock); - pthread_cond_signal(&comm.cond); - - return ret; -} - -static void *be_stern(void *v __attribute__((unused))) -{ - int msg; - for (;;) { - pthread_mutex_lock(&comm.lock); - while (comm.msg == 0) - pthread_cond_wait(&comm.cond, &comm.lock); - msg = comm.msg; - comm.msg = 0; - pthread_mutex_unlock(&comm.lock); - - if (msg < 0) - break; /* the goofy one learned a lesson! */ - - fputs("I HAVE TO BE STERN WITH YOU!\n", stderr); - fprintf(stderr, "I should give you %d lashes.\n", msg); - sleep(msg); - } - - fputs("You are NOTHING!\n", stderr); - return NULL; -} diff --git a/client/thread_test.c b/client/thread_test.c deleted file mode 100644 index 2900ab712e2..00000000000 --- a/client/thread_test.c +++ /dev/null @@ -1,251 +0,0 @@ -/* Copyright (C) 2000 MySQL AB - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - -#include <my_global.h> - -#ifndef THREAD - -int main(int argc __attribute__((unused)), char **argv __attribute__((unused))) -{ - printf("This test must be compiled with multithread support to work\n"); - exit(1); -} -#else - -#include <my_sys.h> -#include <my_pthread.h> -#include "mysql.h" -#include <my_getopt.h> - -static my_bool version, verbose, tty_password= 0; -static uint thread_count,number_of_tests=1000,number_of_threads=2; -static pthread_cond_t COND_thread_count; -static pthread_mutex_t LOCK_thread_count; - -static char *database,*host,*user,*password,*unix_socket,*query; -uint tcp_port; - -#ifndef __WIN__ -void *test_thread(void *arg) -#else -unsigned __stdcall test_thread(void *arg) -#endif -{ - MYSQL *mysql; - uint count; - - mysql=mysql_init(NULL); - if (!mysql_real_connect(mysql,host,user,password,database,tcp_port, - unix_socket,0)) - { - fprintf(stderr,"Couldn't connect to engine!\n%s\n\n",mysql_error(mysql)); - perror(""); - goto end; - } - if (verbose) { putchar('*'); fflush(stdout); } - for (count=0 ; count < number_of_tests ; count++) - { - MYSQL_RES *res; - if (mysql_query(mysql,query)) - { - fprintf(stderr,"Query failed (%s)\n",mysql_error(mysql)); - goto end; - } - if (!(res=mysql_store_result(mysql))) - { - fprintf(stderr,"Couldn't get result from %s\n", mysql_error(mysql)); - goto end; - } - mysql_free_result(res); - if (verbose) { putchar('.'); fflush(stdout); } - } -end: - if (verbose) { putchar('#'); fflush(stdout); } - mysql_close(mysql); - pthread_mutex_lock(&LOCK_thread_count); - thread_count--; - VOID(pthread_cond_signal(&COND_thread_count)); /* Tell main we are ready */ - pthread_mutex_unlock(&LOCK_thread_count); - pthread_exit(0); - return 0; -} - - -static struct my_option my_long_options[] = -{ - {"help", '?', "Display this help and exit", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, - 0, 0, 0, 0, 0}, - {"database", 'D', "Database to use", (gptr*) &database, (gptr*) &database, - 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, - {"host", 'h', "Connect to host", (gptr*) &host, (gptr*) &host, 0, GET_STR, - REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, - {"password", 'p', - "Password to use when connecting to server. If password is not given it's asked from the tty.", - 0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0}, - {"user", 'u', "User for login if not current user", (gptr*) &user, - (gptr*) &user, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, - {"version", 'V', "Output version information and exit", - 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, - {"verbose", 'v', "Write some progress indicators", (gptr*) &verbose, - (gptr*) &verbose, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, - {"query", 'Q', "Query to execute in each threads", (gptr*) &query, - (gptr*) &query, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, - {"port", 'P', "Port number to use for connection", (gptr*) &tcp_port, - (gptr*) &tcp_port, 0, GET_UINT, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, - {"socket", 'S', "Socket file to use for connection", (gptr*) &unix_socket, - (gptr*) &unix_socket, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, - {"test-count", 'c', "Run test count times (default %d)", - (gptr*) &number_of_tests, (gptr*) &number_of_tests, 0, GET_UINT, - REQUIRED_ARG, 1000, 0, 0, 0, 0, 0}, - {"thread-count", 't', "Number of threads to start", - (gptr*) &number_of_threads, (gptr*) &number_of_threads, 0, GET_UINT, - REQUIRED_ARG, 2, 0, 0, 0, 0, 0}, - { 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0} -}; - - -static const char *load_default_groups[]= { "client",0 }; - -static void usage() -{ - printf("Connection to a mysql server with multiple threads\n"); - if (version) - return; - puts("This software comes with ABSOLUTELY NO WARRANTY.\n"); - printf("Usage: %s [OPTIONS] [database]\n", my_progname); - - my_print_help(my_long_options); - print_defaults("my",load_default_groups); - my_print_variables(my_long_options); - printf("\nExample usage:\n\n\ -%s -Q 'select * from mysql.user' -c %d -t %d\n", - my_progname, number_of_tests, number_of_threads); -} - - -static my_bool -get_one_option(int optid, const struct my_option *opt __attribute__((unused)), - char *argument) -{ - switch (optid) { - case 'p': - if (argument) - { - my_free(password, MYF(MY_ALLOW_ZERO_PTR)); - password= my_strdup(argument, MYF(MY_FAE)); - while (*argument) *argument++= 'x'; /* Destroy argument */ - } - else - tty_password= 1; - break; - case 'V': - version= 1; - usage(); - exit(0); - break; - case '?': - case 'I': /* Info */ - usage(); - exit(1); - break; - } - return 0; -} - - -static void get_options(int argc, char **argv) -{ - int ho_error; - - load_defaults("my",load_default_groups,&argc,&argv); - - if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) - exit(ho_error); - - free_defaults(argv); - if (tty_password) - password=get_tty_password(NullS); - return; -} - - -int main(int argc, char **argv) -{ - pthread_t tid; - pthread_attr_t thr_attr; - int i,error; - MY_INIT(argv[0]); - get_options(argc,argv); - - if ((error=pthread_cond_init(&COND_thread_count,NULL))) - { - fprintf(stderr,"Got error: %d from pthread_cond_init (errno: %d)", - error,errno); - exit(1); - } - pthread_mutex_init(&LOCK_thread_count,MY_MUTEX_INIT_FAST); - - if ((error=pthread_attr_init(&thr_attr))) - { - fprintf(stderr,"Got error: %d from pthread_attr_init (errno: %d)", - error,errno); - exit(1); - } - if ((error=pthread_attr_setdetachstate(&thr_attr,PTHREAD_CREATE_DETACHED))) - { - fprintf(stderr, - "Got error: %d from pthread_attr_setdetachstate (errno: %d)", - error,errno); - exit(1); - } - - printf("Init ok. Creating %d threads\n",number_of_threads); - for (i=1 ; i <= number_of_threads ; i++) - { - int *param= &i; - - if (verbose) { putchar('+'); fflush(stdout); } - pthread_mutex_lock(&LOCK_thread_count); - if ((error=pthread_create(&tid,&thr_attr,test_thread,(void*) param))) - { - fprintf(stderr,"\nGot error: %d from pthread_create (errno: %d) when creating thread: %i\n", - error,errno,i); - pthread_mutex_unlock(&LOCK_thread_count); - exit(1); - } - thread_count++; - pthread_mutex_unlock(&LOCK_thread_count); - } - - printf("Waiting for threads to finnish\n"); - error=pthread_mutex_lock(&LOCK_thread_count); - while (thread_count) - { - if ((error=pthread_cond_wait(&COND_thread_count,&LOCK_thread_count))) - fprintf(stderr,"\nGot error: %d from pthread_cond_wait\n",error); - } - pthread_mutex_unlock(&LOCK_thread_count); - pthread_attr_destroy(&thr_attr); - printf("\nend\n"); - - my_end(0); - return 0; - - exit(0); - return 0; /* Keep some compilers happy */ -} - -#endif /* THREAD */ |