Add command "exit" to mysqltest, it will stop processing any more

commands and go directly to result file processing
parent f59ac964
......@@ -264,7 +264,7 @@ enum enum_commands {
Q_IF,
Q_DISABLE_PARSING, Q_ENABLE_PARSING,
Q_REPLACE_REGEX, Q_REMOVE_FILE, Q_FILE_EXIST,
Q_WRITE_FILE, Q_COPY_FILE, Q_PERL, Q_DIE,
Q_WRITE_FILE, Q_COPY_FILE, Q_PERL, Q_DIE, Q_EXIT,
Q_UNKNOWN, /* Unknown command. */
Q_COMMENT, /* Comments, ignored. */
......@@ -345,6 +345,8 @@ const char *command_names[]=
"copy_file",
"perl",
"die",
/* Don't execute any more commands, compare result */
"exit",
0
};
......@@ -5429,7 +5431,7 @@ void mark_progress(struct st_command* command __attribute__((unused)),
int main(int argc, char **argv)
{
struct st_command *command;
my_bool q_send_flag= 0;
my_bool q_send_flag= 0, abort_flag= 0;
uint command_executed= 0, last_command_executed= 0;
char save_file[FN_REFLEN];
MY_STAT res_info;
......@@ -5549,7 +5551,7 @@ int main(int argc, char **argv)
open_file(opt_include);
}
while (!read_command(&command))
while (!read_command(&command) && !abort_flag)
{
int current_line_inc = 1, processed = 0;
if (command->type == Q_UNKNOWN || command->type == Q_COMMENT_WITH_COMMAND)
......@@ -5777,8 +5779,13 @@ int main(int argc, char **argv)
die("Parsing is already enabled");
break;
case Q_DIE:
/* Abort test with error code and error message */
die("%s", command->first_argument);
break;
case Q_EXIT:
/* Stop processing any more commands */
abort_flag= 1;
break;
case Q_RESULT:
die("result, deprecated command");
......
......@@ -518,4 +518,6 @@ hello
mysqltest: At line 1: Max delimiter length(16) exceeded
hello
hello
mysqltest: At line 1: test of die
Some output
End of tests
......@@ -1548,5 +1548,19 @@ perl;
print "hello\n";
EOF
# ----------------------------------------------------------------------------
# test for die
# ----------------------------------------------------------------------------
--error 1
--exec echo "die test of die;" | $MYSQL_TEST 2>&1
# ----------------------------------------------------------------------------
# test for exit
# ----------------------------------------------------------------------------
--exec echo "echo Some output; exit; echo Not this;" | $MYSQL_TEST 2>&1
--echo End of tests
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment