diff options
author | unknown <monty@hundin.mysql.fi> | 2001-11-04 15:43:41 +0200 |
---|---|---|
committer | unknown <monty@hundin.mysql.fi> | 2001-11-04 15:43:41 +0200 |
commit | 9f90ff3f12f1fc2bcb70cde74dbd6f27e33e230c (patch) | |
tree | 36ac40ee6dc1616d29e89871c562b99442723e17 /client | |
parent | 29bae7b7b7c2aec02fe5789f3fc6a0fb918c0814 (diff) | |
download | mariadb-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.c | 28 |
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); |