Commit f4c1a0d4 authored by paul@snake-hub.snake.net's avatar paul@snake-hub.snake.net

Merge paul@bk-internal.mysql.com:/home/bk/mysql-5.1-new

into  snake-hub.snake.net:/src/extern/MySQL/bk/mysql-5.1
parents 8e881441 591db498
...@@ -115,8 +115,8 @@ enum {OPT_MANAGER_USER=256,OPT_MANAGER_HOST,OPT_MANAGER_PASSWD, ...@@ -115,8 +115,8 @@ enum {OPT_MANAGER_USER=256,OPT_MANAGER_HOST,OPT_MANAGER_PASSWD,
The list of error codes to --error are stored in an internal array of The list of error codes to --error are stored in an internal array of
structs. This struct can hold numeric SQL error codes or SQLSTATE codes structs. This struct can hold numeric SQL error codes or SQLSTATE codes
as strings. The element next to the last active element in the list is as strings. The element next to the last active element in the list is
set to type ERR_EMPTY. When an SQL statement return an error we use set to type ERR_EMPTY. When an SQL statement returns an error, we use
this list to check if this is an expected error. this list to check if this is an expected error.
*/ */
enum match_err_type enum match_err_type
...@@ -380,13 +380,6 @@ const char *command_names[]= ...@@ -380,13 +380,6 @@ const char *command_names[]=
"connection", "connection",
"query", "query",
"connect", "connect",
/* the difference between sleep and real_sleep is that sleep will use
the delay from command line (--sleep) if there is one.
real_sleep always uses delay from mysqltest's command line argument.
the logic is that sometimes delays are cpu-dependent (and --sleep
can be used to set this delay. real_sleep is used for cpu-independent
delays
*/
"sleep", "sleep",
"real_sleep", "real_sleep",
"inc", "inc",
...@@ -1105,8 +1098,8 @@ int do_source(struct st_query *query) ...@@ -1105,8 +1098,8 @@ int do_source(struct st_query *query)
*p++= 0; *p++= 0;
query->last_argument= p; query->last_argument= p;
/* /*
If this file has already been sourced, dont source it again. If this file has already been sourced, don't source it again.
It's already available in the q_lines cache It's already available in the q_lines cache.
*/ */
if (parser.current_line < (parser.read_lines - 1)) if (parser.current_line < (parser.read_lines - 1))
return 0; return 0;
...@@ -1430,7 +1423,7 @@ int do_modify_var(struct st_query *query, const char *name, ...@@ -1430,7 +1423,7 @@ int do_modify_var(struct st_query *query, const char *name,
system <command> system <command>
Eval the query to expand any $variables in the command. Eval the query to expand any $variables in the command.
Execute the command withe the "system" command. Execute the command with the "system" command.
NOTE NOTE
If mysqltest is executed from cygwin shell, the command will be If mysqltest is executed from cygwin shell, the command will be
...@@ -1781,11 +1774,19 @@ int do_disable_rpl_parse(struct st_query *query __attribute__((unused))) ...@@ -1781,11 +1774,19 @@ int do_disable_rpl_parse(struct st_query *query __attribute__((unused)))
do_sleep() do_sleep()
q called command q called command
real_sleep use the value from opt_sleep as number of seconds to sleep real_sleep use the value from opt_sleep as number of seconds to sleep
if real_sleep is false
DESCRIPTION DESCRIPTION
sleep <seconds> sleep <seconds>
real_sleep real_sleep <seconds>
The difference between the sleep and real_sleep commands is that sleep
uses the delay from the --sleep command-line option if there is one.
(If the --sleep option is not given, the sleep command uses the delay
specified by its argument.) The real_sleep command always uses the
delay specified by its argument. The logic is that sometimes delays are
cpu-dependent, and --sleep can be used to set this delay. real_sleep is
used for cpu-independent delays.
*/ */
int do_sleep(struct st_query *query, my_bool real_sleep) int do_sleep(struct st_query *query, my_bool real_sleep)
...@@ -1794,18 +1795,19 @@ int do_sleep(struct st_query *query, my_bool real_sleep) ...@@ -1794,18 +1795,19 @@ int do_sleep(struct st_query *query, my_bool real_sleep)
char *p= query->first_argument; char *p= query->first_argument;
char *sleep_start, *sleep_end= query->end; char *sleep_start, *sleep_end= query->end;
double sleep_val; double sleep_val;
char *cmd = (real_sleep ? "real_sleep" : "sleep");
while (my_isspace(charset_info, *p)) while (my_isspace(charset_info, *p))
p++; p++;
if (!*p) if (!*p)
die("Missing argument to sleep"); die("Missing argument to %s", cmd);
sleep_start= p; sleep_start= p;
/* Check that arg starts with a digit, not handled by my_strtod */ /* Check that arg starts with a digit, not handled by my_strtod */
if (!my_isdigit(charset_info, *sleep_start)) if (!my_isdigit(charset_info, *sleep_start))
die("Invalid argument to sleep \"%s\"", query->first_argument); die("Invalid argument to %s \"%s\"", cmd, query->first_argument);
sleep_val= my_strtod(sleep_start, &sleep_end, &error); sleep_val= my_strtod(sleep_start, &sleep_end, &error);
if (error) if (error)
die("Invalid argument to sleep \"%s\"", query->first_argument); die("Invalid argument to %s \"%s\"", cmd, query->first_argument);
/* Fixed sleep time selected by --sleep option */ /* Fixed sleep time selected by --sleep option */
if (opt_sleep && !real_sleep) if (opt_sleep && !real_sleep)
...@@ -2457,7 +2459,7 @@ int safe_connect(MYSQL* mysql, const char *host, const char *user, ...@@ -2457,7 +2459,7 @@ int safe_connect(MYSQL* mysql, const char *host, const char *user,
/* /*
Connect to a server and handle connection errors in case when they occur. Connect to a server and handle connection errors in case they occur.
SYNOPSIS SYNOPSIS
connect_n_handle_errors() connect_n_handle_errors()
...@@ -2893,7 +2895,7 @@ my_bool end_of_query(int c) ...@@ -2893,7 +2895,7 @@ my_bool end_of_query(int c)
Normally that means it will read lines until it reaches the Normally that means it will read lines until it reaches the
"delimiter" that marks end of query. Default delimiter is ';' "delimiter" that marks end of query. Default delimiter is ';'
The function should be smart enough not to detect delimiter's The function should be smart enough not to detect delimiter's
found inside strings sorrounded with '"' and '\'' escaped strings. found inside strings surrounded with '"' and '\'' escaped strings.
If the first line in a query starts with '#' or '-' this line is treated If the first line in a query starts with '#' or '-' this line is treated
as a comment. A comment is always terminated when end of line '\n' is as a comment. A comment is always terminated when end of line '\n' is
...@@ -3178,7 +3180,7 @@ static struct my_option my_long_options[] = ...@@ -3178,7 +3180,7 @@ static struct my_option my_long_options[] =
{"compress", 'C', "Use the compressed server/client protocol.", {"compress", 'C', "Use the compressed server/client protocol.",
(gptr*) &opt_compress, (gptr*) &opt_compress, 0, GET_BOOL, NO_ARG, 0, 0, 0, (gptr*) &opt_compress, (gptr*) &opt_compress, 0, GET_BOOL, NO_ARG, 0, 0, 0,
0, 0, 0}, 0, 0, 0},
{"cursor-protocol", OPT_CURSOR_PROTOCOL, "Use cursors for prepared statment", {"cursor-protocol", OPT_CURSOR_PROTOCOL, "Use cursors for prepared statements.",
(gptr*) &cursor_protocol, (gptr*) &cursor_protocol, 0, (gptr*) &cursor_protocol, (gptr*) &cursor_protocol, 0,
GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
{"database", 'D', "Database to use.", (gptr*) &db, (gptr*) &db, 0, {"database", 'D', "Database to use.", (gptr*) &db, (gptr*) &db, 0,
...@@ -3222,7 +3224,7 @@ static struct my_option my_long_options[] = ...@@ -3222,7 +3224,7 @@ static struct my_option my_long_options[] =
{"result-file", 'R', "Read/Store result from/in this file.", {"result-file", 'R', "Read/Store result from/in this file.",
(gptr*) &result_file, (gptr*) &result_file, 0, GET_STR, REQUIRED_ARG, (gptr*) &result_file, (gptr*) &result_file, 0, GET_STR, REQUIRED_ARG,
0, 0, 0, 0, 0, 0}, 0, 0, 0, 0, 0, 0},
{"server-arg", 'A', "Send enbedded server this as a paramenter.", {"server-arg", 'A', "Send option value to embedded server as a parameter.",
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"server-file", 'F', "Read embedded server arguments from file.", {"server-file", 'F', "Read embedded server arguments from file.",
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
...@@ -4896,7 +4898,7 @@ void get_query_type(struct st_query* q) ...@@ -4896,7 +4898,7 @@ void get_query_type(struct st_query* q)
q->type=(enum enum_commands) type; /* Found command */ q->type=(enum enum_commands) type; /* Found command */
/* /*
If queries are disabled, only recognize If queries are disabled, only recognize
--enable-queries and --disable-queries --enable_parsing and --disable_parsing
*/ */
if (parsing_disabled && q->type != Q_ENABLE_PARSING && if (parsing_disabled && q->type != Q_ENABLE_PARSING &&
q->type != Q_DISABLE_PARSING) q->type != Q_DISABLE_PARSING)
...@@ -5406,8 +5408,8 @@ int main(int argc, char **argv) ...@@ -5406,8 +5408,8 @@ int main(int argc, char **argv)
/* /*
my_stat() successful on result file. Check if we have not run a my_stat() successful on result file. Check if we have not run a
single query, but we do have a result file that contains data. single query, but we do have a result file that contains data.
Note that we don't care, if my_stat() fails. For example for Note that we don't care, if my_stat() fails. For example, for a
non-existing or non-readable file we assume it's fine to have non-existing or non-readable file, we assume it's fine to have
no query output from the test file, e.g. regarded as no error. no query output from the test file, e.g. regarded as no error.
*/ */
die("No queries executed but result file found!"); die("No queries executed but result file found!");
......
...@@ -21,7 +21,7 @@ conflict with it. ...@@ -21,7 +21,7 @@ conflict with it.
All tests must pass. If one or more of them fail on your system, please All tests must pass. If one or more of them fail on your system, please
read the following manual section of how to report the problem: read the following manual section of how to report the problem:
http://dev.mysql.com/doc/mysql/en/MySQL_test_suite.html http://dev.mysql.com/doc/mysql/en/mysql-test-suite.html
You can create your own test cases. To create a test case: You can create your own test cases. To create a test case:
......
...@@ -962,7 +962,7 @@ show_failed_diff () ...@@ -962,7 +962,7 @@ show_failed_diff ()
$DIFF -c $result_file $reject_file $DIFF -c $result_file $reject_file
echo "-------------------------------------------------------" echo "-------------------------------------------------------"
echo "Please follow the instructions outlined at" echo "Please follow the instructions outlined at"
echo "http://www.mysql.com/doc/en/Reporting_mysqltest_bugs.html" echo "http://dev.mysql.com/doc/mysql/en/reporting-mysqltest-bugs.html"
echo "to find the reason to this problem and how to report this." echo "to find the reason to this problem and how to report this."
echo "" echo ""
fi fi
...@@ -1062,7 +1062,7 @@ report_stats () { ...@@ -1062,7 +1062,7 @@ report_stats () {
$ECHO "The log files in $MY_LOG_DIR may give you some hint" $ECHO "The log files in $MY_LOG_DIR may give you some hint"
$ECHO "of what went wrong." $ECHO "of what went wrong."
$ECHO "If you want to report this error, please read first the documentation at" $ECHO "If you want to report this error, please read first the documentation at"
$ECHO "http://www.mysql.com/doc/en/MySQL_test_suite.html" $ECHO "http://dev.mysql.com/doc/mysql/en/mysql-test-suite.html"
fi fi
if [ $USE_RUNNING_SERVER -eq 0 ] if [ $USE_RUNNING_SERVER -eq 0 ]
......
...@@ -296,7 +296,9 @@ here is the sourced script ...@@ -296,7 +296,9 @@ here is the sourced script
In loop In loop
here is the sourced script here is the sourced script
mysqltest: At line 1: Missing argument to sleep mysqltest: At line 1: Missing argument to sleep
mysqltest: At line 1: Missing argument to real_sleep
mysqltest: At line 1: Invalid argument to sleep "abc" mysqltest: At line 1: Invalid argument to sleep "abc"
mysqltest: At line 1: Invalid argument to real_sleep "abc"
1 1
2 2
101 101
......
...@@ -664,10 +664,14 @@ real_sleep 1; ...@@ -664,10 +664,14 @@ real_sleep 1;
# Missing parameter # Missing parameter
--error 1 --error 1
--exec echo "sleep ;" | $MYSQL_TEST 2>&1 --exec echo "sleep ;" | $MYSQL_TEST 2>&1
--error 1
--exec echo "real_sleep ;" | $MYSQL_TEST 2>&1
# Illegal parameter # Illegal parameter
--error 1 --error 1
--exec echo "sleep abc;" | $MYSQL_TEST 2>&1 --exec echo "sleep abc;" | $MYSQL_TEST 2>&1
--error 1
--exec echo "real_sleep abc;" | $MYSQL_TEST 2>&1
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
# Test inc # Test inc
......
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