summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authorBjorn Munch <Bjorn.Munch@sun.com>2010-03-22 11:28:57 +0100
committerBjorn Munch <Bjorn.Munch@sun.com>2010-03-22 11:28:57 +0100
commitd7f2f034412cee6c568d4c52fd0376b40cd381a7 (patch)
tree7ead65a9694b76434fc37afc0221ff02510fd4af /client
parenta707e0f5c31efd3884c71c0fd467dfef30b9490d (diff)
downloadmariadb-git-d7f2f034412cee6c568d4c52fd0376b40cd381a7.tar.gz
Bug #43603 mysqltest command disable_abort_on_error does not affect all built-in commands
After disable_abort_on_error, behaved as if --error was in effect Add condition before die, as after queries
Diffstat (limited to 'client')
-rw-r--r--client/mysqltest.cc20
1 files changed, 12 insertions, 8 deletions
diff --git a/client/mysqltest.cc b/client/mysqltest.cc
index 18af4088e68..e184061d4d3 100644
--- a/client/mysqltest.cc
+++ b/client/mysqltest.cc
@@ -1081,8 +1081,9 @@ void handle_command_error(struct st_command *command, uint error)
command->first_word_len, command->query, error));
DBUG_VOID_RETURN;
}
- die("command \"%.*s\" failed with wrong error: %d",
- command->first_word_len, command->query, error);
+ if (command->expected_errors.count > 0)
+ die("command \"%.*s\" failed with wrong error: %d",
+ command->first_word_len, command->query, error);
}
else if (command->expected_errors.err[0].type == ERR_ERRNO &&
command->expected_errors.err[0].code.errnum != 0)
@@ -1352,14 +1353,14 @@ void log_msg(const char *fmt, ...)
*/
-void cat_file(DYNAMIC_STRING* ds, const char* filename)
+int cat_file(DYNAMIC_STRING* ds, const char* filename)
{
int fd;
size_t len;
char buff[512];
if ((fd= my_open(filename, O_RDONLY, MYF(0))) < 0)
- die("Failed to open file '%s'", filename);
+ return 1;
while((len= my_read(fd, (uchar*)&buff,
sizeof(buff), MYF(0))) > 0)
{
@@ -1383,6 +1384,7 @@ void cat_file(DYNAMIC_STRING* ds, const char* filename)
dynstr_append_mem(ds, start, p-start);
}
my_close(fd, MYF(0));
+ return 0;
}
@@ -2722,8 +2724,9 @@ void do_exec(struct st_command *command)
else
{
dynstr_free(&ds_cmd);
- die("command \"%s\" failed with wrong error: %d",
- command->first_argument, status);
+ if (command->expected_errors.count > 0)
+ die("command \"%s\" failed with wrong error: %d",
+ command->first_argument, status);
}
}
else if (command->expected_errors.err[0].type == ERR_ERRNO &&
@@ -3498,6 +3501,7 @@ void do_append_file(struct st_command *command)
void do_cat_file(struct st_command *command)
{
+ int error;
static DYNAMIC_STRING ds_filename;
const struct command_arg cat_file_args[] = {
{ "filename", ARG_STRING, TRUE, &ds_filename, "File to read from" }
@@ -3512,8 +3516,8 @@ void do_cat_file(struct st_command *command)
DBUG_PRINT("info", ("Reading from, file: %s", ds_filename.str));
- cat_file(&ds_res, ds_filename.str);
-
+ error= cat_file(&ds_res, ds_filename.str);
+ handle_command_error(command, error);
dynstr_free(&ds_filename);
DBUG_VOID_RETURN;
}