summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authorunknown <monty@narttu.mysql.fi>2003-04-22 22:41:59 +0300
committerunknown <monty@narttu.mysql.fi>2003-04-22 22:41:59 +0300
commitac02f54022f2a64ada230ef4a3f446b26b143275 (patch)
tree5d018897c694206dbaf1995bb7862e5d5ad8a93d /client
parent43f1511a31a8e47682410ca5b02eb0dd4aba16d8 (diff)
downloadmariadb-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.am6
-rw-r--r--client/connect_test.c65
-rw-r--r--client/insert_test.c59
-rw-r--r--client/list_test.c70
-rw-r--r--client/select_test.c73
-rw-r--r--client/showdb_test.c66
-rw-r--r--client/ssl_test.c81
-rw-r--r--client/thimble.cc107
-rw-r--r--client/thread_test.c251
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 */