Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
e688b6c2
Commit
e688b6c2
authored
Oct 04, 2010
by
Bjorn Munch
Browse files
Options
Browse Files
Download
Plain Diff
merge from 5.5-mtr
parents
f5ecd2af
53462869
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
192 additions
and
67 deletions
+192
-67
client/mysqltest.cc
client/mysqltest.cc
+81
-16
mysql-test/lib/mtr_report.pm
mysql-test/lib/mtr_report.pm
+8
-3
mysql-test/mysql-test-run.pl
mysql-test/mysql-test-run.pl
+23
-7
mysql-test/r/mysqltest.result
mysql-test/r/mysqltest.result
+18
-10
mysql-test/suite/rpl/t/rpl_row_tbl_metadata.test
mysql-test/suite/rpl/t/rpl_row_tbl_metadata.test
+2
-2
mysql-test/suite/sys_vars/t/div_precision_increment_func.test
...l-test/suite/sys_vars/t/div_precision_increment_func.test
+1
-1
mysql-test/suite/sys_vars/t/secure_file_priv.test
mysql-test/suite/sys_vars/t/secure_file_priv.test
+1
-1
mysql-test/t/mysqltest.test
mysql-test/t/mysqltest.test
+58
-27
No files found.
client/mysqltest.cc
View file @
e688b6c2
...
@@ -112,6 +112,7 @@ static my_bool parsing_disabled= 0;
...
@@ -112,6 +112,7 @@ static my_bool parsing_disabled= 0;
static
my_bool
display_result_vertically
=
FALSE
,
display_result_lower
=
FALSE
,
static
my_bool
display_result_vertically
=
FALSE
,
display_result_lower
=
FALSE
,
display_metadata
=
FALSE
,
display_result_sorted
=
FALSE
;
display_metadata
=
FALSE
,
display_result_sorted
=
FALSE
;
static
my_bool
disable_query_log
=
0
,
disable_result_log
=
0
;
static
my_bool
disable_query_log
=
0
,
disable_result_log
=
0
;
static
my_bool
disable_connect_log
=
1
;
static
my_bool
disable_warnings
=
0
;
static
my_bool
disable_warnings
=
0
;
static
my_bool
disable_info
=
1
;
static
my_bool
disable_info
=
1
;
static
my_bool
abort_on_error
=
1
;
static
my_bool
abort_on_error
=
1
;
...
@@ -227,8 +228,9 @@ typedef struct
...
@@ -227,8 +228,9 @@ typedef struct
int
str_val_len
;
int
str_val_len
;
int
int_val
;
int
int_val
;
int
alloced_len
;
int
alloced_len
;
int
int_dirty
;
/* do not update string if int is updated until first read */
bool
int_dirty
;
/* do not update string if int is updated until first read */
int
alloced
;
bool
is_int
;
bool
alloced
;
}
VAR
;
}
VAR
;
/*Perl/shell-like variable registers */
/*Perl/shell-like variable registers */
...
@@ -286,6 +288,7 @@ enum enum_commands {
...
@@ -286,6 +288,7 @@ enum enum_commands {
Q_EVAL_RESULT
,
Q_EVAL_RESULT
,
Q_ENABLE_QUERY_LOG
,
Q_DISABLE_QUERY_LOG
,
Q_ENABLE_QUERY_LOG
,
Q_DISABLE_QUERY_LOG
,
Q_ENABLE_RESULT_LOG
,
Q_DISABLE_RESULT_LOG
,
Q_ENABLE_RESULT_LOG
,
Q_DISABLE_RESULT_LOG
,
Q_ENABLE_CONNECT_LOG
,
Q_DISABLE_CONNECT_LOG
,
Q_WAIT_FOR_SLAVE_TO_STOP
,
Q_WAIT_FOR_SLAVE_TO_STOP
,
Q_ENABLE_WARNINGS
,
Q_DISABLE_WARNINGS
,
Q_ENABLE_WARNINGS
,
Q_DISABLE_WARNINGS
,
Q_ENABLE_INFO
,
Q_DISABLE_INFO
,
Q_ENABLE_INFO
,
Q_DISABLE_INFO
,
...
@@ -351,6 +354,8 @@ const char *command_names[]=
...
@@ -351,6 +354,8 @@ const char *command_names[]=
/* Enable/disable that the _result_ from a query is logged to result file */
/* Enable/disable that the _result_ from a query is logged to result file */
"enable_result_log"
,
"enable_result_log"
,
"disable_result_log"
,
"disable_result_log"
,
"enable_connect_log"
,
"disable_connect_log"
,
"wait_for_slave_to_stop"
,
"wait_for_slave_to_stop"
,
"enable_warnings"
,
"enable_warnings"
,
"disable_warnings"
,
"disable_warnings"
,
...
@@ -763,7 +768,6 @@ end_thread:
...
@@ -763,7 +768,6 @@ end_thread:
return
0
;
return
0
;
}
}
static
void
wait_query_thread_done
(
struct
st_connection
*
con
)
static
void
wait_query_thread_done
(
struct
st_connection
*
con
)
{
{
DBUG_ASSERT
(
con
->
tid
);
DBUG_ASSERT
(
con
->
tid
);
...
@@ -805,7 +809,6 @@ static int do_send_query(struct st_connection *cn, const char *q, int q_len)
...
@@ -805,7 +809,6 @@ static int do_send_query(struct st_connection *cn, const char *q, int q_len)
return
0
;
return
0
;
}
}
static
int
do_read_query_result
(
struct
st_connection
*
cn
)
static
int
do_read_query_result
(
struct
st_connection
*
cn
)
{
{
DBUG_ASSERT
(
cn
->
tid
);
DBUG_ASSERT
(
cn
->
tid
);
...
@@ -844,7 +847,6 @@ static void init_connection_thd(struct st_connection *cn)
...
@@ -844,7 +847,6 @@ static void init_connection_thd(struct st_connection *cn)
die
(
"Error in the thread library"
);
die
(
"Error in the thread library"
);
}
}
#else
/*EMBEDDED_LIBRARY*/
#else
/*EMBEDDED_LIBRARY*/
#define do_send_query(cn,q,q_len) mysql_send_query(&cn->mysql, q, q_len)
#define do_send_query(cn,q,q_len) mysql_send_query(&cn->mysql, q, q_len)
...
@@ -2036,6 +2038,21 @@ static void var_free(void *v)
...
@@ -2036,6 +2038,21 @@ static void var_free(void *v)
C_MODE_END
C_MODE_END
void
var_set_int
(
VAR
*
v
,
const
char
*
str
)
{
char
*
endptr
;
/* Initially assume not a number */
v
->
int_val
=
0
;
v
->
is_int
=
false
;
v
->
int_dirty
=
false
;
if
(
!
str
)
return
;
v
->
int_val
=
(
int
)
strtol
(
str
,
&
endptr
,
10
);
/* It is an int if strtol consumed something up to end/space/tab */
if
(
endptr
>
str
&&
(
!*
endptr
||
*
endptr
==
' '
||
*
endptr
==
'\t'
))
v
->
is_int
=
true
;
}
VAR
*
var_init
(
VAR
*
v
,
const
char
*
name
,
int
name_len
,
const
char
*
val
,
VAR
*
var_init
(
VAR
*
v
,
const
char
*
name
,
int
name_len
,
const
char
*
val
,
int
val_len
)
int
val_len
)
...
@@ -2070,11 +2087,10 @@ VAR *var_init(VAR *v, const char *name, int name_len, const char *val,
...
@@ -2070,11 +2087,10 @@ VAR *var_init(VAR *v, const char *name, int name_len, const char *val,
memcpy
(
tmp_var
->
str_val
,
val
,
val_len
);
memcpy
(
tmp_var
->
str_val
,
val
,
val_len
);
tmp_var
->
str_val
[
val_len
]
=
0
;
tmp_var
->
str_val
[
val_len
]
=
0
;
}
}
var_set_int
(
tmp_var
,
val
);
tmp_var
->
name_len
=
name_len
;
tmp_var
->
name_len
=
name_len
;
tmp_var
->
str_val_len
=
val_len
;
tmp_var
->
str_val_len
=
val_len
;
tmp_var
->
alloced_len
=
val_alloc_len
;
tmp_var
->
alloced_len
=
val_alloc_len
;
tmp_var
->
int_val
=
(
val
)
?
atoi
(
val
)
:
0
;
tmp_var
->
int_dirty
=
0
;
return
tmp_var
;
return
tmp_var
;
}
}
...
@@ -2135,7 +2151,7 @@ VAR* var_get(const char *var_name, const char **var_name_end, my_bool raw,
...
@@ -2135,7 +2151,7 @@ VAR* var_get(const char *var_name, const char **var_name_end, my_bool raw,
if
(
!
raw
&&
v
->
int_dirty
)
if
(
!
raw
&&
v
->
int_dirty
)
{
{
sprintf
(
v
->
str_val
,
"%d"
,
v
->
int_val
);
sprintf
(
v
->
str_val
,
"%d"
,
v
->
int_val
);
v
->
int_dirty
=
0
;
v
->
int_dirty
=
false
;
v
->
str_val_len
=
strlen
(
v
->
str_val
);
v
->
str_val_len
=
strlen
(
v
->
str_val
);
}
}
if
(
var_name_end
)
if
(
var_name_end
)
...
@@ -2197,7 +2213,7 @@ void var_set(const char *var_name, const char *var_name_end,
...
@@ -2197,7 +2213,7 @@ void var_set(const char *var_name, const char *var_name_end,
if
(
v
->
int_dirty
)
if
(
v
->
int_dirty
)
{
{
sprintf
(
v
->
str_val
,
"%d"
,
v
->
int_val
);
sprintf
(
v
->
str_val
,
"%d"
,
v
->
int_val
);
v
->
int_dirty
=
0
;
v
->
int_dirty
=
false
;
v
->
str_val_len
=
strlen
(
v
->
str_val
);
v
->
str_val_len
=
strlen
(
v
->
str_val
);
}
}
/* setenv() expects \0-terminated strings */
/* setenv() expects \0-terminated strings */
...
@@ -2267,8 +2283,14 @@ void var_query_set(VAR *var, const char *query, const char** query_end)
...
@@ -2267,8 +2283,14 @@ void var_query_set(VAR *var, const char *query, const char** query_end)
DBUG_ENTER
(
"var_query_set"
);
DBUG_ENTER
(
"var_query_set"
);
LINT_INIT
(
res
);
LINT_INIT
(
res
);
/* Only white space or ) allowed past ending ` */
while
(
end
>
query
&&
*
end
!=
'`'
)
while
(
end
>
query
&&
*
end
!=
'`'
)
{
if
(
*
end
&&
(
*
end
!=
' '
&&
*
end
!=
'\t'
&&
*
end
!=
'\n'
&&
*
end
!=
')'
))
die
(
"Spurious text after `query` expression"
);
--
end
;
--
end
;
}
if
(
query
==
end
)
if
(
query
==
end
)
die
(
"Syntax error in query, missing '`'"
);
die
(
"Syntax error in query, missing '`'"
);
++
query
;
++
query
;
...
@@ -2497,6 +2519,7 @@ void var_set_query_get_value(struct st_command *command, VAR *var)
...
@@ -2497,6 +2519,7 @@ void var_set_query_get_value(struct st_command *command, VAR *var)
void
var_copy
(
VAR
*
dest
,
VAR
*
src
)
void
var_copy
(
VAR
*
dest
,
VAR
*
src
)
{
{
dest
->
int_val
=
src
->
int_val
;
dest
->
int_val
=
src
->
int_val
;
dest
->
is_int
=
src
->
is_int
;
dest
->
int_dirty
=
src
->
int_dirty
;
dest
->
int_dirty
=
src
->
int_dirty
;
/* Alloc/realloc data for str_val in dest */
/* Alloc/realloc data for str_val in dest */
...
@@ -2580,9 +2603,7 @@ void eval_expr(VAR *v, const char *p, const char **p_end)
...
@@ -2580,9 +2603,7 @@ void eval_expr(VAR *v, const char *p, const char **p_end)
v
->
str_val_len
=
new_val_len
;
v
->
str_val_len
=
new_val_len
;
memcpy
(
v
->
str_val
,
p
,
new_val_len
);
memcpy
(
v
->
str_val
,
p
,
new_val_len
);
v
->
str_val
[
new_val_len
]
=
0
;
v
->
str_val
[
new_val_len
]
=
0
;
v
->
int_val
=
atoi
(
p
);
var_set_int
(
v
,
p
);
DBUG_PRINT
(
"info"
,
(
"atoi on '%s', returns: %d"
,
p
,
v
->
int_val
));
v
->
int_dirty
=
0
;
}
}
DBUG_VOID_RETURN
;
DBUG_VOID_RETURN
;
}
}
...
@@ -2929,6 +2950,8 @@ int do_modify_var(struct st_command *command,
...
@@ -2929,6 +2950,8 @@ int do_modify_var(struct st_command *command,
die
(
"The argument to %.*s must be a variable (start with $)"
,
die
(
"The argument to %.*s must be a variable (start with $)"
,
command
->
first_word_len
,
command
->
query
);
command
->
first_word_len
,
command
->
query
);
v
=
var_get
(
p
,
&
p
,
1
,
0
);
v
=
var_get
(
p
,
&
p
,
1
,
0
);
if
(
!
v
->
is_int
)
die
(
"Cannot perform inc/dec on a non-numeric value"
);
switch
(
op
)
{
switch
(
op
)
{
case
DO_DEC
:
case
DO_DEC
:
v
->
int_val
--
;
v
->
int_val
--
;
...
@@ -2940,7 +2963,7 @@ int do_modify_var(struct st_command *command,
...
@@ -2940,7 +2963,7 @@ int do_modify_var(struct st_command *command,
die
(
"Invalid operator to do_modify_var"
);
die
(
"Invalid operator to do_modify_var"
);
break
;
break
;
}
}
v
->
int_dirty
=
1
;
v
->
int_dirty
=
true
;
command
->
last_argument
=
(
char
*
)
++
p
;
command
->
last_argument
=
(
char
*
)
++
p
;
return
0
;
return
0
;
}
}
...
@@ -3984,7 +4007,18 @@ void do_perl(struct st_command *command)
...
@@ -3984,7 +4007,18 @@ void do_perl(struct st_command *command)
if
(
!
error
)
if
(
!
error
)
my_delete
(
temp_file_path
,
MYF
(
0
));
my_delete
(
temp_file_path
,
MYF
(
0
));
handle_command_error
(
command
,
WEXITSTATUS
(
error
));
/* Check for error code that indicates perl could not be started */
int
exstat
=
WEXITSTATUS
(
error
);
#ifdef __WIN__
if
(
exstat
==
1
)
/* Text must begin 'perl not found' as mtr looks for it */
abort_not_supported_test
(
"perl not found in path or did not start"
);
#else
if
(
exstat
==
127
)
abort_not_supported_test
(
"perl not found in path"
);
#endif
else
handle_command_error
(
command
,
exstat
);
}
}
dynstr_free
(
&
ds_delimiter
);
dynstr_free
(
&
ds_delimiter
);
DBUG_VOID_RETURN
;
DBUG_VOID_RETURN
;
...
@@ -4898,6 +4932,16 @@ void select_connection_name(const char *name)
...
@@ -4898,6 +4932,16 @@ void select_connection_name(const char *name)
set_current_connection
(
con
);
set_current_connection
(
con
);
/* Connection logging if enabled */
if
(
!
disable_connect_log
&&
!
disable_query_log
)
{
DYNAMIC_STRING
*
ds
=
&
ds_res
;
dynstr_append_mem
(
ds
,
"connection "
,
11
);
replace_dynstr_append
(
ds
,
name
);
dynstr_append_mem
(
ds
,
";
\n
"
,
2
);
}
DBUG_VOID_RETURN
;
DBUG_VOID_RETURN
;
}
}
...
@@ -4985,6 +5029,16 @@ void do_close_connection(struct st_command *command)
...
@@ -4985,6 +5029,16 @@ void do_close_connection(struct st_command *command)
var_set_string
(
"$CURRENT_CONNECTION"
,
con
->
name
);
var_set_string
(
"$CURRENT_CONNECTION"
,
con
->
name
);
}
}
/* Connection logging if enabled */
if
(
!
disable_connect_log
&&
!
disable_query_log
)
{
DYNAMIC_STRING
*
ds
=
&
ds_res
;
dynstr_append_mem
(
ds
,
"disconnect "
,
11
);
replace_dynstr_append
(
ds
,
ds_connection
.
str
);
dynstr_append_mem
(
ds
,
";
\n
"
,
2
);
}
DBUG_VOID_RETURN
;
DBUG_VOID_RETURN
;
}
}
...
@@ -5119,6 +5173,13 @@ int connect_n_handle_errors(struct st_command *command,
...
@@ -5119,6 +5173,13 @@ int connect_n_handle_errors(struct st_command *command,
dynstr_append_mem
(
ds
,
delimiter
,
delimiter_length
);
dynstr_append_mem
(
ds
,
delimiter
,
delimiter_length
);
dynstr_append_mem
(
ds
,
"
\n
"
,
1
);
dynstr_append_mem
(
ds
,
"
\n
"
,
1
);
}
}
/* Simlified logging if enabled */
if
(
!
disable_connect_log
&&
!
disable_query_log
)
{
replace_dynstr_append
(
ds
,
command
->
query
);
dynstr_append_mem
(
ds
,
";
\n
"
,
2
);
}
while
(
!
mysql_real_connect
(
con
,
host
,
user
,
pass
,
db
,
port
,
sock
?
sock
:
0
,
while
(
!
mysql_real_connect
(
con
,
host
,
user
,
pass
,
db
,
port
,
sock
?
sock
:
0
,
CLIENT_MULTI_STATEMENTS
))
CLIENT_MULTI_STATEMENTS
))
{
{
...
@@ -7436,11 +7497,13 @@ void run_query(struct st_connection *cn, struct st_command *command, int flags)
...
@@ -7436,11 +7497,13 @@ void run_query(struct st_connection *cn, struct st_command *command, int flags)
(
flags
&
QUERY_REAP_FLAG
));
(
flags
&
QUERY_REAP_FLAG
));
DBUG_ENTER
(
"run_query"
);
DBUG_ENTER
(
"run_query"
);
init_dynamic_string
(
&
ds_warnings
,
NULL
,
0
,
256
);
if
(
cn
->
pending
&&
(
flags
&
QUERY_SEND_FLAG
))
if
(
cn
->
pending
&&
(
flags
&
QUERY_SEND_FLAG
))
die
(
"Cannot run query on connection between send and reap"
);
die
(
"Cannot run query on connection between send and reap"
);
if
(
!
(
flags
&
QUERY_SEND_FLAG
)
&&
!
cn
->
pending
)
die
(
"Cannot reap on a connection without pending send"
);
init_dynamic_string
(
&
ds_warnings
,
NULL
,
0
,
256
);
/*
/*
Evaluate query if this is an eval command
Evaluate query if this is an eval command
*/
*/
...
@@ -8185,6 +8248,8 @@ int main(int argc, char **argv)
...
@@ -8185,6 +8248,8 @@ int main(int argc, char **argv)
case
Q_DISABLE_ABORT_ON_ERROR
:
abort_on_error
=
0
;
break
;
case
Q_DISABLE_ABORT_ON_ERROR
:
abort_on_error
=
0
;
break
;
case
Q_ENABLE_RESULT_LOG
:
disable_result_log
=
0
;
break
;
case
Q_ENABLE_RESULT_LOG
:
disable_result_log
=
0
;
break
;
case
Q_DISABLE_RESULT_LOG
:
disable_result_log
=
1
;
break
;
case
Q_DISABLE_RESULT_LOG
:
disable_result_log
=
1
;
break
;
case
Q_ENABLE_CONNECT_LOG
:
disable_connect_log
=
0
;
break
;
case
Q_DISABLE_CONNECT_LOG
:
disable_connect_log
=
1
;
break
;
case
Q_ENABLE_WARNINGS
:
disable_warnings
=
0
;
break
;
case
Q_ENABLE_WARNINGS
:
disable_warnings
=
0
;
break
;
case
Q_DISABLE_WARNINGS
:
disable_warnings
=
1
;
break
;
case
Q_DISABLE_WARNINGS
:
disable_warnings
=
1
;
break
;
case
Q_ENABLE_INFO
:
disable_info
=
0
;
break
;
case
Q_ENABLE_INFO
:
disable_info
=
0
;
break
;
...
...
mysql-test/lib/mtr_report.pm
View file @
e688b6c2
...
@@ -229,7 +229,8 @@ sub mtr_report_stats ($$;$) {
...
@@ -229,7 +229,8 @@ sub mtr_report_stats ($$;$) {
# Find out how we where doing
# Find out how we where doing
# ----------------------------------------------------------------------
# ----------------------------------------------------------------------
my
$tot_skiped
=
0
;
my
$tot_skipped
=
0
;
my
$tot_skipdetect
=
0
;
my
$tot_passed
=
0
;
my
$tot_passed
=
0
;
my
$tot_failed
=
0
;
my
$tot_failed
=
0
;
my
$tot_tests
=
0
;
my
$tot_tests
=
0
;
...
@@ -246,8 +247,9 @@ sub mtr_report_stats ($$;$) {
...
@@ -246,8 +247,9 @@ sub mtr_report_stats ($$;$) {
}
}
elsif
(
$tinfo
->
{'
result
'}
eq
'
MTR_RES_SKIPPED
'
)
elsif
(
$tinfo
->
{'
result
'}
eq
'
MTR_RES_SKIPPED
'
)
{
{
# Test was skipped
# Test was skipped (disabled not counted)
$tot_skiped
++
;
$tot_skipped
++
unless
$tinfo
->
{'
disable
'};
$tot_skipdetect
++
if
$tinfo
->
{'
skip_detected_by_test
'};
}
}
elsif
(
$tinfo
->
{'
result
'}
eq
'
MTR_RES_PASSED
'
)
elsif
(
$tinfo
->
{'
result
'}
eq
'
MTR_RES_PASSED
'
)
{
{
...
@@ -376,6 +378,9 @@ sub mtr_report_stats ($$;$) {
...
@@ -376,6 +378,9 @@ sub mtr_report_stats ($$;$) {
print
"
All
$tot_tests
tests were successful.
\n\n
";
print
"
All
$tot_tests
tests were successful.
\n\n
";
}
}
print
"
$tot_skipped
tests were skipped,
"
.
"
$tot_skipdetect
by the test itself.
\n\n
"
if
$tot_skipped
;
if
(
$tot_failed
!=
0
||
$found_problems
)
if
(
$tot_failed
!=
0
||
$found_problems
)
{
{
mtr_error
("
there were failing test cases
")
unless
$dont_error
;
mtr_error
("
there were failing test cases
")
unless
$dont_error
;
...
...
mysql-test/mysql-test-run.pl
View file @
e688b6c2
...
@@ -126,12 +126,24 @@ my $path_vardir_trace; # unix formatted opt_vardir for trace files
...
@@ -126,12 +126,24 @@ my $path_vardir_trace; # unix formatted opt_vardir for trace files
my
$opt_tmpdir
;
# Path to use for tmp/ dir
my
$opt_tmpdir
;
# Path to use for tmp/ dir
my
$opt_tmpdir_pid
;
my
$opt_tmpdir_pid
;
my
$opt_start
;
my
$opt_start_dirty
;
my
$opt_start_exit
;
my
$start_only
;
END
{
END
{
if
(
defined
$opt_tmpdir_pid
and
$opt_tmpdir_pid
==
$$
)
if
(
defined
$opt_tmpdir_pid
and
$opt_tmpdir_pid
==
$$
)
{
{
# Remove the tempdir this process has created
if
(
!
$opt_start_exit
)
mtr_verbose
("
Removing tmpdir '
$opt_tmpdir
");
{
rmtree
(
$opt_tmpdir
);
# Remove the tempdir this process has created
mtr_verbose
("
Removing tmpdir
$opt_tmpdir
");
rmtree
(
$opt_tmpdir
);
}
else
{
mtr_warning
("
tmpdir
$opt_tmpdir
should be removed after the server has finished
");
}
}
}
}
}
...
@@ -234,10 +246,6 @@ my $opt_start_timeout = $ENV{MTR_START_TIMEOUT} || 180; # seconds
...
@@ -234,10 +246,6 @@ my $opt_start_timeout = $ENV{MTR_START_TIMEOUT} || 180; # seconds
sub
suite_timeout
{
return
$opt_suite_timeout
*
60
;
};
sub
suite_timeout
{
return
$opt_suite_timeout
*
60
;
};
sub
check_timeout
{
return
$opt_testcase_timeout
*
6
;
};
sub
check_timeout
{
return
$opt_testcase_timeout
*
6
;
};
my
$opt_start
;
my
$opt_start_dirty
;
my
$opt_start_exit
;
my
$start_only
;
my
$opt_wait_all
;
my
$opt_wait_all
;
my
$opt_user_args
;
my
$opt_user_args
;
my
$opt_repeat
=
1
;
my
$opt_repeat
=
1
;
...
@@ -2186,6 +2194,11 @@ sub environment_setup {
...
@@ -2186,6 +2194,11 @@ sub environment_setup {
# to detect that valgrind is being used from test cases
# to detect that valgrind is being used from test cases
$ENV
{'
VALGRIND_TEST
'}
=
$opt_valgrind
;
$ENV
{'
VALGRIND_TEST
'}
=
$opt_valgrind
;
# Add dir of this perl to aid mysqltest in finding perl
my
$perldir
=
dirname
(
$^X
);
my
$pathsep
=
"
:
";
$pathsep
=
"
;
"
if
IS_WINDOWS
&&
!
IS_CYGWIN
;
$ENV
{'
PATH
'}
=
"
$ENV
{'PATH'}
"
.
$pathsep
.
$perldir
;
}
}
...
@@ -3658,6 +3671,9 @@ sub run_testcase ($) {
...
@@ -3658,6 +3671,9 @@ sub run_testcase ($) {
# Try to get reason from test log file
# Try to get reason from test log file
find_testcase_skipped_reason
(
$tinfo
);
find_testcase_skipped_reason
(
$tinfo
);
mtr_report_test_skipped
(
$tinfo
);
mtr_report_test_skipped
(
$tinfo
);
# Restart if skipped due to missing perl, it may have had side effects
stop_all_servers
(
$opt_shutdown_timeout
)
if
(
$tinfo
->
{'
comment
'}
=~
/^perl not found/
);
}
}
elsif
(
$res
==
65
)
elsif
(
$res
==
65
)
{
{
...
...
mysql-test/r/mysqltest.result
View file @
e688b6c2
...
@@ -177,6 +177,9 @@ mysqltest: At line 1: End of line junk detected: "disconnect default # comment
...
@@ -177,6 +177,9 @@ mysqltest: At line 1: End of line junk detected: "disconnect default # comment
"
"
mysqltest: At line 1: Extra delimiter ";" found
mysqltest: At line 1: Extra delimiter ";" found
mysqltest: At line 1: Extra delimiter ";" found
mysqltest: At line 1: Extra delimiter ";" found
mysqltest: At line 1: Spurious text after `query` expression
mysqltest: At line 1: Spurious text after `query` expression
mysqltest: At line 2: Spurious text after `query` expression
mysqltest: At line 1: Missing argument(s) to 'error'
mysqltest: At line 1: Missing argument(s) to 'error'
mysqltest: At line 1: Missing argument(s) to 'error'
mysqltest: At line 1: Missing argument(s) to 'error'
mysqltest: At line 1: The sqlstate definition must start with an uppercase S
mysqltest: At line 1: The sqlstate definition must start with an uppercase S
...
@@ -366,23 +369,24 @@ mysqltest: At line 1: Missing required argument 'sleep_delay' to command 'real_s
...
@@ -366,23 +369,24 @@ mysqltest: At line 1: Missing required argument 'sleep_delay' to command 'real_s
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"
mysqltest: At line 1: Invalid argument to real_sleep "abc"
1
1
2
101
101
hej
-99
1
mysqltest: At line 1: Missing argument to inc
mysqltest: At line 1: Missing argument to inc
mysqltest: At line 1: The argument to inc must be a variable (start with $)
mysqltest: At line 1: The argument to inc must be a variable (start with $)
mysqltest: At line 1: Cannot perform inc/dec on a non-numeric value
mysqltest: At line 1: End of line junk detected: "1000"
mysqltest: At line 1: End of line junk detected: "1000"
4
mysqltest: At line 1: Cannot perform inc/dec on a non-numeric value
4
mysqltest: At line 1: Cannot perform inc/dec on a non-numeric value
-96
-96
-1
-1
-2
99
99
hej
-1
mysqltest: At line 1: Missing argument to dec
mysqltest: At line 1: Missing argument to dec
mysqltest: At line 1: The argument to dec must be a variable (start with $)
mysqltest: At line 1: The argument to dec must be a variable (start with $)
mysqltest: At line 1: Cannot perform inc/dec on a non-numeric value
mysqltest: At line 1: End of line junk detected: "1000"
mysqltest: At line 1: End of line junk detected: "1000"
mysqltest: At line 1: Cannot perform inc/dec on a non-numeric value
mysqltest: At line 1: Cannot perform inc/dec on a non-numeric value
mysqltest: At line 1: Missing arguments to system, nothing to do!
mysqltest: At line 1: Missing arguments to system, nothing to do!
mysqltest: At line 1: Missing arguments to system, nothing to do!
mysqltest: At line 1: Missing arguments to system, nothing to do!
system command 'NonExistsinfComamdn 2> /dev/null' failed
system command 'NonExistsinfComamdn 2> /dev/null' failed
...
@@ -449,12 +453,16 @@ mysqltest: At line 1: Missing required argument 'host' to command 'connect'
...
@@ -449,12 +453,16 @@ mysqltest: At line 1: Missing required argument 'host' to command 'connect'
mysqltest: At line 1: query 'connect con2,localhost,root,,illegal_db' failed: 1049: Unknown database 'illegal_db'
mysqltest: At line 1: query 'connect con2,localhost,root,,illegal_db' failed: 1049: Unknown database 'illegal_db'
mysqltest: At line 1: Illegal argument for port: 'illegal_port'
mysqltest: At line 1: Illegal argument for port: 'illegal_port'
mysqltest: At line 1: Illegal option to connect: SMTP
mysqltest: At line 1: Illegal option to connect: SMTP
OK
200 connects succeeded
mysqltest: The test didn't produce any output
mysqltest: In included file "MYSQLTEST_VARDIR/tmp/mysqltest.sql": At line 3: connection 'test_con1' not found in connection pool
mysqltest: In included file "MYSQLTEST_VARDIR/tmp/mysqltest.sql": At line 3: connection 'test_con1' not found in connection pool
mysqltest: In included file "MYSQLTEST_VARDIR/tmp/mysqltest.sql": At line 2: Connection test_con1 already exists
mysqltest: In included file "MYSQLTEST_VARDIR/tmp/mysqltest.sql": At line 2: Connection test_con1 already exists
show tables;
show tables;
ERROR 3D000: No database selected
ERROR 3D000: No database selected
connect con1,localhost,root,,;
connection default;
connection con1;
disconnect con1;
connection default;
Output from mysqltest-x.inc
Output from mysqltest-x.inc
Output from mysqltest-x.inc
Output from mysqltest-x.inc
Output from mysqltest-x.inc
Output from mysqltest-x.inc
...
...
mysql-test/suite/rpl/t/rpl_row_tbl_metadata.test
View file @
e688b6c2
...
@@ -205,7 +205,7 @@ DROP TABLE `t1`;
...
@@ -205,7 +205,7 @@ DROP TABLE `t1`;
--
echo
===
Using
mysqlbinlog
to
detect
failure
.
Before
the
patch
mysqlbinlog
would
find
a
corrupted
event
,
thence
would
fail
.
--
echo
===
Using
mysqlbinlog
to
detect
failure
.
Before
the
patch
mysqlbinlog
would
find
a
corrupted
event
,
thence
would
fail
.
--
let
$MYSQLD_DATADIR
=
`SELECT @@datadir`
;
--
let
$MYSQLD_DATADIR
=
`SELECT @@datadir`
--
exec
$MYSQL_BINLOG
$MYSQLD_DATADIR
/
master
-
bin
.
000001
>
$MYSQLTEST_VARDIR
/
tmp
/
mysqlbinlog_bug42749
.
binlog
--
exec
$MYSQL_BINLOG
$MYSQLD_DATADIR
/
master
-
bin
.
000001
>
$MYSQLTEST_VARDIR
/
tmp
/
mysqlbinlog_bug42749
.
binlog
--
remove_file
$MYSQLTEST_VARDIR
/
tmp
/
mysqlbinlog_bug42749
.
binlog
--
remove_file
$MYSQLTEST_VARDIR
/
tmp
/
mysqlbinlog_bug42749
.
binlog
...
@@ -330,7 +330,7 @@ while($ntables)
...
@@ -330,7 +330,7 @@ while($ntables)
--
echo
### assertion: check that binlog is not corrupt. Using mysqlbinlog to
--
echo
### assertion: check that binlog is not corrupt. Using mysqlbinlog to
--
echo
### detect failure. Before the patch mysqlbinlog would find
--
echo
### detect failure. Before the patch mysqlbinlog would find
--
echo
### a corrupted event, thence would fail.
--
echo
### a corrupted event, thence would fail.
--
let
$MYSQLD_DATADIR
=
`SELECT @@datadir`
;
--
let
$MYSQLD_DATADIR
=
`SELECT @@datadir`
--
exec
$MYSQL_BINLOG
-
v
--
hex
$MYSQLD_DATADIR
/
master
-
bin
.
000001
>
$MYSQLTEST_VARDIR
/
tmp
/
mysqlbinlog_bug50018
.
binlog
--
exec
$MYSQL_BINLOG
-
v
--
hex
$MYSQLD_DATADIR
/
master
-
bin
.
000001
>
$MYSQLTEST_VARDIR
/
tmp
/
mysqlbinlog_bug50018
.
binlog
## clean up
## clean up
...
...
mysql-test/suite/sys_vars/t/div_precision_increment_func.test
View file @
e688b6c2
...
@@ -19,7 +19,7 @@
...
@@ -19,7 +19,7 @@
# #
# #
################################################################################
################################################################################
let
$save_div_precision_increment
=
`SELECT @@global.div_precision_increment`
let
$save_div_precision_increment
=
`SELECT @@global.div_precision_increment`
;
#SET @save_div_precision_increment = @@global.div_precision_increment;
#SET @save_div_precision_increment = @@global.div_precision_increment;
...
...
mysql-test/suite/sys_vars/t/secure_file_priv.test
View file @
e688b6c2
...
@@ -9,7 +9,7 @@ SHOW VARIABLES LIKE 'secure_file_priv';
...
@@ -9,7 +9,7 @@ SHOW VARIABLES LIKE 'secure_file_priv';
# Doing this in a portable manner is difficult but we should be able to
# Doing this in a portable manner is difficult but we should be able to
# count on the depth of the directory hierarchy used. Three steps up from
# count on the depth of the directory hierarchy used. Three steps up from
# the datadir is the 'mysql_test' directory.
# the datadir is the 'mysql_test' directory.
--
let
$PROTECTED_FILE
=
`SELECT concat(@@datadir,'/../../../bug50373.txt')`
;
--
let
$PROTECTED_FILE
=
`SELECT concat(@@datadir,'/../../../bug50373.txt')`
--
eval
SELECT
*
FROM
t1
INTO
OUTFILE
'$PROTECTED_FILE'
;
--
eval
SELECT
*
FROM
t1
INTO
OUTFILE
'$PROTECTED_FILE'
;
DELETE
FROM
t1
;
DELETE
FROM
t1
;
--
eval
LOAD
DATA
INFILE
'$PROTECTED_FILE'
INTO
TABLE
t1
;
--
eval
LOAD
DATA
INFILE
'$PROTECTED_FILE'
INTO
TABLE
t1
;
...
...
mysql-test/t/mysqltest.test
View file @
e688b6c2
...
@@ -494,6 +494,32 @@ remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
...
@@ -494,6 +494,32 @@ remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
--
error
1
--
error
1
--
exec
echo
"--disable_query_log;"
|
$MYSQL_TEST
2
>&
1
--
exec
echo
"--disable_query_log;"
|
$MYSQL_TEST
2
>&
1
#
# Extra text after ``
#
# Cannot use exec echo here as ` may or may not need to be escaped
--
write_file
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
let
$x
=
`select 1`
BOO
;
EOF
--
error
1
--
exec
$MYSQL_TEST
<
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
2
>&
1
remove_file
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
;
--
write_file
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
--
let
$x
=
`select 1`
;
EOF
--
error
1
--
exec
$MYSQL_TEST
<
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
2
>&
1
remove_file
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
;
--
write_file
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
# Missing ; in next line should be detected and cause failure
let
$x
=
`select 1`
let
$x
=
2
;
echo
$x
;
EOF
--
error
1
--
exec
$MYSQL_TEST
<
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
2
>&
1
remove_file
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
;
# Allow trailing # comment
# Allow trailing # comment
--
sleep
1
# Wait for insert delayed to be executed.
--
sleep
1
# Wait for insert delayed to be executed.
...
@@ -980,16 +1006,13 @@ EOF
...
@@ -980,16 +1006,13 @@ EOF
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Test inc
# Test inc
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
inc
$i
;
let
$i
=
0
;
echo
$i
;
inc
$i
;
inc
$i
;
echo
$i
;
echo
$i
;
let
$i
=
100
;
let
$i
=
100
;
inc
$i
;
inc
$i
;
echo
$i
;
echo
$i
;
let
$i
=
-
100
;
let
$i
=
hej
;
echo
$i
;
inc
$i
;
inc
$i
;
echo
$i
;
echo
$i
;
...
@@ -998,7 +1021,13 @@ echo $i;
...
@@ -998,7 +1021,13 @@ echo $i;
--
error
1
--
error
1
--
exec
echo
"inc i;"
|
$MYSQL_TEST
2
>&
1
--
exec
echo
"inc i;"
|
$MYSQL_TEST
2
>&
1
--
error
1
--
error
1
--
exec
echo
"inc
\$
i;"
|
$MYSQL_TEST
2
>&
1
--
error
1
--
exec
echo
"let
\$
i=100; inc
\$
i 1000; echo
\$
i;"
|
$MYSQL_TEST
2
>&
1
--
exec
echo
"let
\$
i=100; inc
\$
i 1000; echo
\$
i;"
|
$MYSQL_TEST
2
>&
1
--
error
1
--
exec
echo
"let
\$
i=text; inc
\$
i; echo
\$
i;"
|
$MYSQL_TEST
2
>&
1
--
error
1
--
exec
echo
"let
\$
i=10cc; inc
\$
i; echo
\$
i;"
|
$MYSQL_TEST
2
>&
1
inc
$i
;
inc
$i
;
inc
$i
;
--
echo
$i
inc
$i
;
inc
$i
;
inc
$i
;
--
echo
$i
echo
$i
;
echo
$i
;
...
@@ -1008,25 +1037,25 @@ echo $i;
...
@@ -1008,25 +1037,25 @@ echo $i;
# Test dec
# Test dec
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
dec
$d
;
let
$d
=
0
;
echo
$d
;
dec
$d
;
dec
$d
;
echo
$d
;
echo
$d
;
let
$d
=
100
;
let
$d
=
100
;
dec
$d
;
dec
$d
;
echo
$d
;
echo
$d
;
let
$d
=
hej
;
echo
$d
;
dec
$d
;
echo
$d
;
--
error
1
--
error
1
--
exec
echo
"dec;"
|
$MYSQL_TEST
2
>&
1
--
exec
echo
"dec;"
|
$MYSQL_TEST
2
>&
1
--
error
1
--
error
1
--
exec
echo
"dec i;"
|
$MYSQL_TEST
2
>&
1
--
exec
echo
"dec i;"
|
$MYSQL_TEST
2
>&
1
--
error
1
--
error
1
--
exec
echo
"dec
\$
i;"
|
$MYSQL_TEST
2
>&
1
--
error
1
--
exec
echo
"let
\$
i=100; dec
\$
i 1000; echo
\$
i;"
|
$MYSQL_TEST
2
>&
1
--
exec
echo
"let
\$
i=100; dec
\$
i 1000; echo
\$
i;"
|
$MYSQL_TEST
2
>&
1
--
error
1
--
exec
echo
"let
\$
i=text; dec
\$
i; echo
\$
i;"
|
$MYSQL_TEST
2
>&
1
--
error
1
--
exec
echo
"let
\$
i=10cc; dec
\$
i; echo
\$
i;"
|
$MYSQL_TEST
2
>&
1
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
...
@@ -1439,19 +1468,6 @@ eval select "$long_rep" as x;
...
@@ -1439,19 +1468,6 @@ eval select "$long_rep" as x;
--
error
1
--
error
1
--
exec
echo
"connect (con1,localhost,root,,,,,SMTP POP);"
|
$MYSQL_TEST
2
>&
1
--
exec
echo
"connect (con1,localhost,root,,,,,SMTP POP);"
|
$MYSQL_TEST
2
>&
1
# Repeat connect/disconnect
--
write_file
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
let
$i
=
100
;
while
(
$i
)
{
connect
(
test_con1
,
localhost
,
root
,,);
disconnect
test_con1
;
dec
$i
;
}
EOF
--
exec
echo
"source
$MYSQLTEST_VARDIR
/tmp/mysqltest.sql; echo OK; exit;"
|
$MYSQL_TEST
2
>&
1
remove_file
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
;
# Repeat connect/disconnect
# Repeat connect/disconnect
--
write_file
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
--
write_file
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
let
$i
=
200
;
let
$i
=
200
;
...
@@ -1461,9 +1477,8 @@ while ($i)
...
@@ -1461,9 +1477,8 @@ while ($i)
disconnect
test_con1
;
disconnect
test_con1
;
dec
$i
;
dec
$i
;
}
}
echo
200
connects
succeeded
;
EOF
EOF
--
replace_result
$MYSQLTEST_VARDIR
MYSQLTEST_VARDIR
--
error
1
--
exec
echo
"source
$MYSQLTEST_VARDIR
/tmp/mysqltest.sql;"
|
$MYSQL_TEST
2
>&
1
--
exec
echo
"source
$MYSQLTEST_VARDIR
/tmp/mysqltest.sql;"
|
$MYSQL_TEST
2
>&
1
remove_file
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
;
remove_file
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
;
...
@@ -1504,6 +1519,22 @@ show tables;
...
@@ -1504,6 +1519,22 @@ show tables;
disconnect
con2
;
disconnect
con2
;
connection
default
;
connection
default
;
# Test enable_connect_log
--
enable_connect_log
connect
(
con1
,
localhost
,
root
,,);
connection
default
;
connection
con1
;
--
disable_query_log
# These should not be logged
connect
(
con2
,
localhost
,
root
,,
*
NO
-
ONE
*
);
connection
con2
;
disconnect
con2
;
connection
con1
;
--
enable_query_log
disconnect
con1
;
connection
default
;
--
disable_connect_log
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Test mysqltest arguments
# Test mysqltest arguments
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment