summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authorunknown <monty@hundin.mysql.fi>2001-11-04 15:43:41 +0200
committerunknown <monty@hundin.mysql.fi>2001-11-04 15:43:41 +0200
commit9f90ff3f12f1fc2bcb70cde74dbd6f27e33e230c (patch)
tree36ac40ee6dc1616d29e89871c562b99442723e17 /client
parent29bae7b7b7c2aec02fe5789f3fc6a0fb918c0814 (diff)
downloadmariadb-git-9f90ff3f12f1fc2bcb70cde74dbd6f27e33e230c.tar.gz
Fix error messages
mysqltest now also writes failed error messages to log Docs/manual.texi: Applied changes missed in last merge client/mysqltest.c: Write failed error messages to log. Remove space from start of line when doing 'eval' mysql-test/include/master-slave.inc: Fixed after adding output of error messages to mysqltest mysql-test/r/alter_table.result: Removed wrong space mysql-test/r/rpl000001.result: Removed wrong space mysql-test/r/rpl000003.result: Fixed after adding output of error messages to mysqltest mysql-test/r/rpl000015.result: Removed wrong space mysql-test/r/rpl000016.result: Removed wrong space mysql-test/t/drop.test: Change error numbers mysql-test/t/union.test: Change error numbers sql/share/czech/errmsg.txt: Fix error messages sql/share/danish/errmsg.txt: Fix error messages sql/share/english/errmsg.txt: Fix error messages sql/share/french/errmsg.txt: Fix error messages sql/share/german/errmsg.txt: Fix error messages sql/share/greek/errmsg.txt: Fix error messages sql/share/hungarian/errmsg.txt: Fix error messages sql/share/italian/errmsg.txt: Fix error messages sql/share/japanese/errmsg.txt: Fix error messages sql/share/korean/errmsg.txt: Fix error messages sql/share/norwegian-ny/errmsg.txt: Fix error messages sql/share/norwegian/errmsg.txt: Fix error messages sql/share/polish/errmsg.txt: Fix error messages sql/share/portuguese/errmsg.txt: Fix error messages sql/share/romanian/errmsg.txt: Fix error messages sql/share/slovak/errmsg.txt: Fix error messages sql/share/spanish/errmsg.txt: Fix error messages sql/share/swedish/errmsg.txt: Fix error messages sql/share/ukrainian/errmsg.txt: Fix error messages
Diffstat (limited to 'client')
-rw-r--r--client/mysqltest.c28
1 files changed, 20 insertions, 8 deletions
diff --git a/client/mysqltest.c b/client/mysqltest.c
index d1d25a499ce..10c9c75a119 100644
--- a/client/mysqltest.c
+++ b/client/mysqltest.c
@@ -113,7 +113,7 @@ static int block_stack[BLOCK_STACK_DEPTH];
static int block_ok_stack[BLOCK_STACK_DEPTH];
-static uint global_expected_errno[MAX_EXPECTED_ERRORS];
+static uint global_expected_errno[MAX_EXPECTED_ERRORS], global_expected_errors;
DYNAMIC_ARRAY q_lines;
@@ -194,6 +194,7 @@ struct st_query
int first_word_len;
my_bool abort_on_error, require_file;
uint expected_errno[MAX_EXPECTED_ERRORS];
+ uint expected_errors;
char record_file[FN_REFLEN];
enum enum_commands type;
};
@@ -1011,10 +1012,11 @@ static void get_file_name(char *filename, struct st_query* q)
}
-static void get_ints(uint *to,struct st_query* q)
+static uint get_ints(uint *to,struct st_query* q)
{
char* p=q->first_argument;
long val;
+ uint count=0;
DBUG_ENTER("get_ints");
if (!*p)
@@ -1022,12 +1024,13 @@ static void get_ints(uint *to,struct st_query* q)
for (; (p=str2int(p,10,(long) INT_MIN, (long) INT_MAX, &val)) ; p++)
{
+ count++;
*to++= (uint) val;
if (*p != ',')
break;
}
*to++=0; /* End of data */
- DBUG_VOID_RETURN;
+ DBUG_RETURN(count);
}
/*
@@ -1583,8 +1586,11 @@ int read_query(struct st_query** q_ptr)
q->first_word_len = 0;
memcpy((gptr) q->expected_errno, (gptr) global_expected_errno,
sizeof(global_expected_errno));
+ q->expected_errors=global_expected_errors;
q->abort_on_error = global_expected_errno[0] == 0;
bzero((gptr) global_expected_errno,sizeof(global_expected_errno));
+ global_expected_errors=0;
+
q->type = Q_UNKNOWN;
q->query_buf=q->query=0;
if (read_line(read_query_buf, sizeof(read_query_buf)))
@@ -1613,6 +1619,7 @@ int read_query(struct st_query** q_ptr)
expected_errno = expected_errno * 10 + *p - '0';
q->expected_errno[0] = expected_errno;
q->expected_errno[1] = 0;
+ q->expected_errors=1;
}
}
@@ -1962,28 +1969,33 @@ int run_query(MYSQL* mysql, struct st_query* q, int flags)
mysql_errno(mysql), mysql_error(mysql));
else
{
- for (i=0 ; q->expected_errno[i] ; i++)
+ for (i=0 ; (uint) i < q->expected_errors ; i++)
{
if ((q->expected_errno[i] == mysql_errno(mysql)))
{
- if (i == 0 && q->expected_errno[1] == 0)
+ if (i == 0 && q->expected_errors == 1)
{
/* Only log error if there is one possible error */
dynstr_append(ds,mysql_error(mysql));
dynstr_append_mem(ds,"\n",1);
}
- else
+ /* Don't log error if we may not get an error */
+ else if (q->expected_errno[0] != 0)
dynstr_append(ds,"Got one of the listed errors\n");
goto end; /* Ok */
}
}
if (i)
{
+ dynstr_append(ds,mysql_error(mysql));
+ dynstr_append_mem(ds,"\n",1);
verbose_msg("query '%s' failed with wrong errno %d instead of %d...",
q->query, mysql_errno(mysql), q->expected_errno[0]);
error=1;
goto end;
}
+ dynstr_append(ds,mysql_error(mysql));
+ dynstr_append_mem(ds,"\n",1);
verbose_msg("query '%s' failed: %d: %s", q->query, mysql_errno(mysql),
mysql_error(mysql));
/*
@@ -2262,7 +2274,7 @@ int main(int argc, char** argv)
case Q_EVAL_RESULT: eval_result = 1; break;
case Q_EVAL:
if (q->query == q->query_buf)
- q->query += q->first_word_len;
+ q->query= q->first_argument;
/* fall through */
case Q_QUERY:
case Q_REAP:
@@ -2308,7 +2320,7 @@ int main(int argc, char** argv)
require_file=0;
break;
case Q_ERROR:
- get_ints(global_expected_errno,q);
+ global_expected_errors=get_ints(global_expected_errno,q);
break;
case Q_REQUIRE:
get_file_name(save_file,q);