summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <tomas@poseidon.ndb.mysql.com>2004-09-28 17:44:40 +0000
committerunknown <tomas@poseidon.ndb.mysql.com>2004-09-28 17:44:40 +0000
commit1ddc28a471dbf33e446d20fd4fcfcbb0e49eea62 (patch)
treea70d938207d3ff17b7ad86ce1bd22291f3fe0757
parente44be2922e5005487b1bdd8dcfad2d27e9ad8a43 (diff)
parentfa450407b1b90b706fa9a430c897723bf778edb4 (diff)
downloadmariadb-git-1ddc28a471dbf33e446d20fd4fcfcbb0e49eea62.tar.gz
Merge tulin@bk-internal.mysql.com:/home/bk/mysql-4.1
into poseidon.ndb.mysql.com:/home/tomas/mysql-4.1-ndb
-rw-r--r--client/mysqltest.c19
-rw-r--r--mysql-test/mysql-test-run.sh11
-rw-r--r--mysql-test/t/client_test.test2
-rw-r--r--tests/client_test.c68
4 files changed, 63 insertions, 37 deletions
diff --git a/client/mysqltest.c b/client/mysqltest.c
index b9eda208136..7f2b6e16947 100644
--- a/client/mysqltest.c
+++ b/client/mysqltest.c
@@ -861,10 +861,10 @@ int do_source(struct st_query* q)
1 error
*/
-int do_exec(struct st_query* q)
+static void do_exec(struct st_query* q)
{
- int error= 0;
- DYNAMIC_STRING *ds;
+ int error;
+ DYNAMIC_STRING *ds= NULL; /* Assign just to avoid warning */
DYNAMIC_STRING ds_tmp;
char buf[1024];
FILE *res_file;
@@ -901,7 +901,15 @@ int do_exec(struct st_query* q)
while (fgets(buf, sizeof(buf), res_file))
replace_dynstr_append_mem(ds, buf, strlen(buf));
+ }
+
+ error= pclose(res_file);
+
+ if (error != 0)
+ die("command \"%s\" failed", cmd);
+ if (!disable_result_log)
+ {
if (glob_replace)
free_replace();
@@ -919,9 +927,6 @@ int do_exec(struct st_query* q)
if (ds == &ds_tmp)
dynstr_free(&ds_tmp);
}
- pclose(res_file);
-
- DBUG_RETURN(error);
}
@@ -2846,7 +2851,7 @@ int main(int argc, char **argv)
(void) mysql_ping(&cur_con->mysql);
break;
case Q_EXEC:
- (void) do_exec(q);
+ do_exec(q);
break;
case Q_START_TIMER:
/* Overwrite possible earlier start of timer */
diff --git a/mysql-test/mysql-test-run.sh b/mysql-test/mysql-test-run.sh
index 9b891d44a0b..f79a79256f8 100644
--- a/mysql-test/mysql-test-run.sh
+++ b/mysql-test/mysql-test-run.sh
@@ -208,6 +208,7 @@ MYSQL_MANAGER_LOG=$MYSQL_TEST_DIR/var/log/manager.log
MYSQL_MANAGER_USER=root
NO_SLAVE=0
USER_TEST=
+FAILED_CASES=
EXTRA_MASTER_OPT=""
EXTRA_MYSQL_TEST_OPT=""
@@ -1475,7 +1476,7 @@ run_testcase ()
fi
exit 1
fi
-
+ FAILED_CASES="$FAILED_CASES $tname"
if [ -z "$DO_GDB" ] && [ -z "$USE_RUNNING_SERVER" ] && \
[ -z "$DO_DDD" ] && [ -z "$USE_EMBEDDED_SERVER" ]
then
@@ -1673,4 +1674,10 @@ $ECHO
[ "$DO_GCOV" ] && gcov_collect # collect coverage information
[ "$DO_GPROF" ] && gprof_collect # collect coverage information
-exit 0
+if [ $TOT_FAIL -ne 0 ]; then
+ $ECHO "mysql-test-run: *** Failing the test(s):$FAILED_CASES"
+ $ECHO
+ exit 1
+else
+ exit 0
+fi
diff --git a/mysql-test/t/client_test.test b/mysql-test/t/client_test.test
new file mode 100644
index 00000000000..eb053b6c902
--- /dev/null
+++ b/mysql-test/t/client_test.test
@@ -0,0 +1,2 @@
+-- disable_result_log
+--exec ../tests/client_test --testcase --user=root --socket=var/tmp/master.sock --port=$MYSQL_TCP_PORT
diff --git a/tests/client_test.c b/tests/client_test.c
index a2b0791baa2..06a655cd3fb 100644
--- a/tests/client_test.c
+++ b/tests/client_test.c
@@ -27,11 +27,19 @@
#include <my_getopt.h>
#include <m_string.h>
#include <assert.h>
+#ifdef HAVE_SYS_PARAM_H
+/* Include to get MAXPATHLEN */
+#include <sys/param.h>
+#endif
+#ifndef MAXPATHLEN
+#define MAXPATHLEN 256
+#endif
#define MAX_TEST_QUERY_LENGTH 300 /* MAX QUERY BUFFER LENGTH */
/* set default options */
+static int opt_testcase = 0;
static char *opt_db= 0;
static char *opt_user= 0;
static char *opt_password= 0;
@@ -183,7 +191,7 @@ static void client_connect()
if (!(mysql= mysql_init(NULL)))
{
myerror("mysql_init() failed");
- exit(0);
+ exit(1);
}
if (!(mysql_real_connect(mysql, opt_host, opt_user,
@@ -193,7 +201,7 @@ static void client_connect()
myerror("connection failed");
mysql_close(mysql);
fprintf(stdout, "\n Check the connection options using --help or -?\n");
- exit(0);
+ exit(1);
}
fprintf(stdout, " OK");
@@ -4071,14 +4079,14 @@ static void test_stmt_close()
if (!(lmysql= mysql_init(NULL)))
{
myerror("mysql_init() failed");
- exit(0);
+ exit(1);
}
if (!(mysql_real_connect(lmysql, opt_host, opt_user,
opt_password, current_db, opt_port,
opt_unix_socket, 0)))
{
myerror("connection failed");
- exit(0);
+ exit(1);
}
fprintf(stdout, " OK");
@@ -4688,7 +4696,7 @@ static void test_manual_sample()
{
fprintf(stderr, "\n drop table failed");
fprintf(stderr, "\n %s", mysql_error(mysql));
- exit(0);
+ exit(1);
}
if (mysql_query(mysql, "CREATE TABLE test_table(col1 int, col2 varchar(50), \
col3 smallint, \
@@ -4696,7 +4704,7 @@ static void test_manual_sample()
{
fprintf(stderr, "\n create table failed");
fprintf(stderr, "\n %s", mysql_error(mysql));
- exit(0);
+ exit(1);
}
/* Prepare a insert query with 3 parameters */
@@ -4705,7 +4713,7 @@ static void test_manual_sample()
{
fprintf(stderr, "\n prepare, insert failed");
fprintf(stderr, "\n %s", mysql_error(mysql));
- exit(0);
+ exit(1);
}
fprintf(stdout, "\n prepare, insert successful");
@@ -4716,7 +4724,7 @@ static void test_manual_sample()
if (param_count != 3) /* validate parameter count */
{
fprintf(stderr, "\n invalid parameter count returned by MySQL");
- exit(0);
+ exit(1);
}
/* Bind the data for the parameters */
@@ -4747,7 +4755,7 @@ static void test_manual_sample()
{
fprintf(stderr, "\n param bind failed");
fprintf(stderr, "\n %s", mysql_stmt_error(stmt));
- exit(0);
+ exit(1);
}
/* Specify the data */
@@ -4762,7 +4770,7 @@ static void test_manual_sample()
{
fprintf(stderr, "\n execute 1 failed");
fprintf(stderr, "\n %s", mysql_stmt_error(stmt));
- exit(0);
+ exit(1);
}
/* Get the total rows affected */
@@ -4772,7 +4780,7 @@ static void test_manual_sample()
if (affected_rows != 1) /* validate affected rows */
{
fprintf(stderr, "\n invalid affected rows by MySQL");
- exit(0);
+ exit(1);
}
/* Re-execute the insert, by changing the values */
@@ -4786,7 +4794,7 @@ static void test_manual_sample()
{
fprintf(stderr, "\n execute 2 failed");
fprintf(stderr, "\n %s", mysql_stmt_error(stmt));
- exit(0);
+ exit(1);
}
/* Get the total rows affected */
@@ -4796,7 +4804,7 @@ static void test_manual_sample()
if (affected_rows != 1) /* validate affected rows */
{
fprintf(stderr, "\n invalid affected rows by MySQL");
- exit(0);
+ exit(1);
}
/* Close the statement */
@@ -4804,7 +4812,7 @@ static void test_manual_sample()
{
fprintf(stderr, "\n failed while closing the statement");
fprintf(stderr, "\n %s", mysql_stmt_error(stmt));
- exit(0);
+ exit(1);
}
assert(2 == my_stmt_result("SELECT * FROM test_table"));
@@ -4813,7 +4821,7 @@ static void test_manual_sample()
{
fprintf(stderr, "\n drop table failed");
fprintf(stderr, "\n %s", mysql_error(mysql));
- exit(0);
+ exit(1);
}
fprintf(stdout, "Success !!!");
}
@@ -4865,7 +4873,7 @@ static void test_prepare_alter()
check_execute(stmt, rc);
if (thread_query((char *)"ALTER TABLE test_prep_alter change id id_new varchar(20)"))
- exit(0);
+ exit(1);
is_null= 1;
rc= mysql_stmt_execute(stmt);
@@ -6486,7 +6494,7 @@ static void test_prepare_grant()
ER_UNKNOWN_COM_ERROR= 1047
*/
if (mysql_errno(mysql) != 1047)
- exit(0);
+ exit(1);
}
else
{
@@ -6497,7 +6505,7 @@ static void test_prepare_grant()
if (!(lmysql= mysql_init(NULL)))
{
myerror("mysql_init() failed");
- exit(0);
+ exit(1);
}
if (!(mysql_real_connect(lmysql, opt_host, "test_grant",
"", current_db, opt_port,
@@ -6505,7 +6513,7 @@ static void test_prepare_grant()
{
myerror("connection failed");
mysql_close(lmysql);
- exit(0);
+ exit(1);
}
fprintf(stdout, " OK");
@@ -6559,8 +6567,8 @@ static void test_frm_bug()
MYSQL_RES *result;
MYSQL_ROW row;
FILE *test_file;
- char data_dir[NAME_LEN];
- char test_frm[255];
+ char data_dir[MAXPATHLEN];
+ char test_frm[MAXPATHLEN];
int rc;
myheader("test_frm_bug");
@@ -6581,7 +6589,7 @@ static void test_frm_bug()
bind[0].buffer_type= MYSQL_TYPE_STRING;
bind[0].buffer= data_dir;
- bind[0].buffer_length= NAME_LEN;
+ bind[0].buffer_length= MAXPATHLEN;
bind[0].is_null= 0;
bind[0].length= 0;
bind[1]= bind[0];
@@ -6605,7 +6613,7 @@ static void test_frm_bug()
{
fprintf(stdout, "\n ERROR: my_fopen failed for '%s'", test_frm);
fprintf(stdout, "\n test cancelled");
- return;
+ exit(1);
}
fprintf(test_file, "this is a junk file for test");
@@ -6894,7 +6902,7 @@ static void test_drop_temp()
ER_UNKNOWN_COM_ERROR= 1047
*/
if (mysql_errno(mysql) != 1047)
- exit(0);
+ exit(1);
}
else
{
@@ -6904,7 +6912,7 @@ static void test_drop_temp()
if (!(lmysql= mysql_init(NULL)))
{
myerror("mysql_init() failed");
- exit(0);
+ exit(1);
}
rc= mysql_query(mysql, "flush privileges");
@@ -6917,7 +6925,7 @@ static void test_drop_temp()
mysql= lmysql;
myerror("connection failed");
mysql_close(lmysql);
- exit(0);
+ exit(1);
}
fprintf(stdout, " OK");
@@ -10447,6 +10455,8 @@ static struct my_option client_test_long_options[] =
(char **) &opt_port, 0, GET_UINT, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"socket", 'S', "Socket file to use for connection", (char **) &opt_unix_socket,
(char **) &opt_unix_socket, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"testcase", 'c', "May disable some code when runs as mysql-test-run testcase.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"count", 't', "Number of times test to be executed", (char **) &opt_count,
(char **) &opt_count, 0, GET_UINT, REQUIRED_ARG, 1, 0, 0, 0, 0, 0},
{ 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
@@ -10490,6 +10500,9 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
case '#':
DBUG_PUSH(argument ? argument : default_dbug_option);
break;
+ case 'c':
+ opt_testcase = 1;
+ break;
case 'p':
if (argument)
{
@@ -10740,6 +10753,5 @@ int main(int argc, char **argv)
print_test_output();
my_end(0);
- return(0);
+ exit(0);
}
-