merge from 5.5-mtr
This commit is contained in:
commit
d6df320d9e
@ -5684,6 +5684,17 @@ void do_block(enum block_cmd cmd, struct st_command* command)
|
|||||||
while (my_isspace(charset_info, *curr_ptr))
|
while (my_isspace(charset_info, *curr_ptr))
|
||||||
curr_ptr++;
|
curr_ptr++;
|
||||||
|
|
||||||
|
/* Strip off trailing white space */
|
||||||
|
while (my_isspace(charset_info, expr_end[-1]))
|
||||||
|
expr_end--;
|
||||||
|
/* strip off ' or " around the string */
|
||||||
|
if (*curr_ptr == '\'' || *curr_ptr == '"')
|
||||||
|
{
|
||||||
|
if (expr_end[-1] != *curr_ptr)
|
||||||
|
die("Unterminated string value");
|
||||||
|
curr_ptr++;
|
||||||
|
expr_end--;
|
||||||
|
}
|
||||||
VAR v2;
|
VAR v2;
|
||||||
var_init(&v2,0,0,0,0);
|
var_init(&v2,0,0,0,0);
|
||||||
eval_expr(&v2, curr_ptr, &expr_end);
|
eval_expr(&v2, curr_ptr, &expr_end);
|
||||||
|
@ -53,9 +53,7 @@ source include/wait_for_slave_to_start.inc;
|
|||||||
connection master;
|
connection master;
|
||||||
# Write file to make mysql-test-run.pl expect the "crash", but don't start
|
# Write file to make mysql-test-run.pl expect the "crash", but don't start
|
||||||
# it until it's told to
|
# it until it's told to
|
||||||
--write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
||||||
wait
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Send shutdown to the connected server and give
|
# Send shutdown to the connected server and give
|
||||||
# it 10 seconds to die before zapping it
|
# it 10 seconds to die before zapping it
|
||||||
@ -85,9 +83,7 @@ source include/wait_for_slave_io_error.inc;
|
|||||||
eval set @@global.debug = "-d,$dbug_sync_point";
|
eval set @@global.debug = "-d,$dbug_sync_point";
|
||||||
|
|
||||||
# Write file to make mysql-test-run.pl start up the server again
|
# Write file to make mysql-test-run.pl start up the server again
|
||||||
--append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
||||||
restart
|
|
||||||
EOF
|
|
||||||
|
|
||||||
connection master;
|
connection master;
|
||||||
# Turn on reconnect
|
# Turn on reconnect
|
||||||
|
@ -36,8 +36,8 @@ let $ddl_cases= 41;
|
|||||||
while ($ddl_cases >= 1)
|
while ($ddl_cases >= 1)
|
||||||
{
|
{
|
||||||
--echo -b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b-
|
--echo -b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b-
|
||||||
let $in_temporary= "no";
|
let $in_temporary= no;
|
||||||
let $ok= "yes";
|
let $ok= yes;
|
||||||
#
|
#
|
||||||
# In SBR and MIXED modes, the commit event is usually the third event in the
|
# In SBR and MIXED modes, the commit event is usually the third event in the
|
||||||
# binary log:
|
# binary log:
|
||||||
@ -91,7 +91,7 @@ while ($ddl_cases >= 1)
|
|||||||
{
|
{
|
||||||
# This seems to be related to epochs.
|
# This seems to be related to epochs.
|
||||||
# We need to check this against an updated version or avoid it.
|
# We need to check this against an updated version or avoid it.
|
||||||
let $ok= "no";
|
let $ok= no;
|
||||||
let $commit_event_row_number= 6;
|
let $commit_event_row_number= 6;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -356,7 +356,7 @@ while ($ddl_cases >= 1)
|
|||||||
if ($ddl_cases == 11)
|
if ($ddl_cases == 11)
|
||||||
{
|
{
|
||||||
let $cmd= CREATE TEMPORARY TABLE tt_xx (a int);
|
let $cmd= CREATE TEMPORARY TABLE tt_xx (a int);
|
||||||
let $in_temporary= "yes";
|
let $in_temporary= yes;
|
||||||
# In SBR and MIXED modes, the DDL statement is written to the binary log but
|
# In SBR and MIXED modes, the DDL statement is written to the binary log but
|
||||||
# does not commit the current transaction.
|
# does not commit the current transaction.
|
||||||
#
|
#
|
||||||
@ -478,7 +478,7 @@ while ($ddl_cases >= 1)
|
|||||||
if ($ddl_cases == 8)
|
if ($ddl_cases == 8)
|
||||||
{
|
{
|
||||||
let $cmd= DROP TEMPORARY TABLE IF EXISTS new_tt_xx;
|
let $cmd= DROP TEMPORARY TABLE IF EXISTS new_tt_xx;
|
||||||
let $in_temporary= "yes";
|
let $in_temporary= yes;
|
||||||
#
|
#
|
||||||
# In SBR and MIXED modes, the DDL statement is written to the binary log
|
# In SBR and MIXED modes, the DDL statement is written to the binary log
|
||||||
# but does not commit the current transaction:
|
# but does not commit the current transaction:
|
||||||
@ -618,14 +618,14 @@ while ($ddl_cases >= 1)
|
|||||||
# commit. The flag in_temporary is used to avoid aborting the test in such
|
# commit. The flag in_temporary is used to avoid aborting the test in such
|
||||||
# cases. Thus we force the commit.
|
# cases. Thus we force the commit.
|
||||||
#
|
#
|
||||||
if ($in_temporary == "yes")
|
if ($in_temporary == yes)
|
||||||
{
|
{
|
||||||
--eval COMMIT
|
--eval COMMIT
|
||||||
}
|
}
|
||||||
let $event_commit= query_get_value("SHOW BINLOG EVENTS FROM $first_binlog_position", Info, $commit_event_row_number);
|
let $event_commit= query_get_value("SHOW BINLOG EVENTS FROM $first_binlog_position", Info, $commit_event_row_number);
|
||||||
if (`SELECT SUBSTRING("$event_commit",1,6) != "COMMIT"`)
|
if (`SELECT SUBSTRING("$event_commit",1,6) != "COMMIT"`)
|
||||||
{
|
{
|
||||||
if ($ok == "yes")
|
if ($ok == yes)
|
||||||
{
|
{
|
||||||
--echo it *does not* commit the current transaction.
|
--echo it *does not* commit the current transaction.
|
||||||
--echo $cmd
|
--echo $cmd
|
||||||
|
@ -1,18 +1,14 @@
|
|||||||
|
|
||||||
# Write file to make mysql-test-run.pl expect the "crash", but don't start
|
# Write file to make mysql-test-run.pl expect the "crash", but don't start
|
||||||
# it until it's told to
|
# it until it's told to
|
||||||
--write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
||||||
wait
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Send shutdown to the connected server and give
|
# Send shutdown to the connected server and give
|
||||||
# it 10 seconds to die before zapping it
|
# it 10 seconds to die before zapping it
|
||||||
shutdown_server 10;
|
shutdown_server 10;
|
||||||
|
|
||||||
# Write file to make mysql-test-run.pl start up the server again
|
# Write file to make mysql-test-run.pl start up the server again
|
||||||
--append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
||||||
restart
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Turn on reconnect
|
# Turn on reconnect
|
||||||
--enable_reconnect
|
--enable_reconnect
|
||||||
|
@ -150,7 +150,7 @@ sub collect_test_cases ($$$$) {
|
|||||||
{
|
{
|
||||||
last unless $opt_reorder;
|
last unless $opt_reorder;
|
||||||
# test->{name} is always in suite.name format
|
# test->{name} is always in suite.name format
|
||||||
if ( $test->{name} =~ /.*\.$tname/ )
|
if ( $test->{name} =~ /^$sname.*\.$tname$/ )
|
||||||
{
|
{
|
||||||
$found= 1;
|
$found= 1;
|
||||||
last;
|
last;
|
||||||
|
@ -607,7 +607,10 @@ sub run_test_server ($$$) {
|
|||||||
if ( !$opt_force ) {
|
if ( !$opt_force ) {
|
||||||
# Test has failed, force is off
|
# Test has failed, force is off
|
||||||
push(@$completed, $result);
|
push(@$completed, $result);
|
||||||
return $completed;
|
return $completed unless $result->{'dont_kill_server'};
|
||||||
|
# Prevent kill of server, to get valgrind report
|
||||||
|
print $sock "BYE\n";
|
||||||
|
next;
|
||||||
}
|
}
|
||||||
elsif ($opt_max_test_fail > 0 and
|
elsif ($opt_max_test_fail > 0 and
|
||||||
$num_failed_test >= $opt_max_test_fail) {
|
$num_failed_test >= $opt_max_test_fail) {
|
||||||
@ -854,15 +857,16 @@ sub run_worker ($) {
|
|||||||
mtr_report("Server said BYE");
|
mtr_report("Server said BYE");
|
||||||
stop_all_servers($opt_shutdown_timeout);
|
stop_all_servers($opt_shutdown_timeout);
|
||||||
mark_time_used('restart');
|
mark_time_used('restart');
|
||||||
|
my $valgrind_reports= 0;
|
||||||
if ($opt_valgrind_mysqld) {
|
if ($opt_valgrind_mysqld) {
|
||||||
valgrind_exit_reports();
|
$valgrind_reports= valgrind_exit_reports();
|
||||||
}
|
}
|
||||||
if ( $opt_gprof ) {
|
if ( $opt_gprof ) {
|
||||||
gprof_collect (find_mysqld($basedir), keys %gprof_dirs);
|
gprof_collect (find_mysqld($basedir), keys %gprof_dirs);
|
||||||
}
|
}
|
||||||
mark_time_used('init');
|
mark_time_used('init');
|
||||||
print_times_used($server, $thread_num);
|
print_times_used($server, $thread_num);
|
||||||
exit(0);
|
exit($valgrind_reports);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
mtr_error("Could not understand server, '$line'");
|
mtr_error("Could not understand server, '$line'");
|
||||||
@ -3846,7 +3850,6 @@ sub run_testcase ($) {
|
|||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
# Check if it was an expected crash
|
# Check if it was an expected crash
|
||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
SRVDIED:
|
|
||||||
my $check_crash = check_expected_crash_and_restart($proc);
|
my $check_crash = check_expected_crash_and_restart($proc);
|
||||||
if ($check_crash)
|
if ($check_crash)
|
||||||
{
|
{
|
||||||
@ -3856,6 +3859,7 @@ sub run_testcase ($) {
|
|||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SRVDIED:
|
||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
# Stop the test case timer
|
# Stop the test case timer
|
||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
@ -4386,7 +4390,12 @@ sub after_failure ($) {
|
|||||||
sub report_failure_and_restart ($) {
|
sub report_failure_and_restart ($) {
|
||||||
my $tinfo= shift;
|
my $tinfo= shift;
|
||||||
|
|
||||||
stop_all_servers();
|
if ($opt_valgrind_mysqld && ($tinfo->{'warnings'} || $tinfo->{'timeout'})) {
|
||||||
|
# In these cases we may want valgrind report from normal termination
|
||||||
|
$tinfo->{'dont_kill_server'}= 1;
|
||||||
|
}
|
||||||
|
# Shotdown properly if not to be killed (for valgrind)
|
||||||
|
stop_all_servers($tinfo->{'dont_kill_server'} ? $opt_shutdown_timeout : 0);
|
||||||
|
|
||||||
$tinfo->{'result'}= 'MTR_RES_FAILED';
|
$tinfo->{'result'}= 'MTR_RES_FAILED';
|
||||||
|
|
||||||
@ -5526,6 +5535,8 @@ sub valgrind_arguments {
|
|||||||
#
|
#
|
||||||
|
|
||||||
sub valgrind_exit_reports() {
|
sub valgrind_exit_reports() {
|
||||||
|
my $found_err= 0;
|
||||||
|
|
||||||
foreach my $log_file (keys %mysqld_logs)
|
foreach my $log_file (keys %mysqld_logs)
|
||||||
{
|
{
|
||||||
my @culprits= ();
|
my @culprits= ();
|
||||||
@ -5561,7 +5572,7 @@ sub valgrind_exit_reports() {
|
|||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
# This line marks the start of a valgrind report
|
# This line marks the start of a valgrind report
|
||||||
$found_report= 1 if $line =~ /ERROR SUMMARY:/;
|
$found_report= 1 if $line =~ /^==\d+== .* SUMMARY:/;
|
||||||
|
|
||||||
if ($found_report) {
|
if ($found_report) {
|
||||||
$line=~ s/^==\d+== //;
|
$line=~ s/^==\d+== //;
|
||||||
@ -5578,8 +5589,11 @@ sub valgrind_exit_reports() {
|
|||||||
mtr_print ("Valgrind report from $log_file after tests:\n", @culprits);
|
mtr_print ("Valgrind report from $log_file after tests:\n", @culprits);
|
||||||
mtr_print_line();
|
mtr_print_line();
|
||||||
print ("$valgrind_rep\n");
|
print ("$valgrind_rep\n");
|
||||||
|
$found_err= 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return $found_err;
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -423,7 +423,10 @@ while with string, only once
|
|||||||
hello == hello
|
hello == hello
|
||||||
hello == hello
|
hello == hello
|
||||||
hello != goodbye
|
hello != goodbye
|
||||||
|
'quoted' == ''quoted''
|
||||||
two words
|
two words
|
||||||
|
'two words'
|
||||||
|
"two words"
|
||||||
two words are two words
|
two words are two words
|
||||||
right answer
|
right answer
|
||||||
anything goes
|
anything goes
|
||||||
|
@ -38,9 +38,7 @@ RESET MASTER;
|
|||||||
##########
|
##########
|
||||||
|
|
||||||
# 1. Stop master server
|
# 1. Stop master server
|
||||||
-- write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
-- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
||||||
wait
|
|
||||||
EOF
|
|
||||||
-- shutdown_server 10
|
-- shutdown_server 10
|
||||||
-- source include/wait_until_disconnected.inc
|
-- source include/wait_until_disconnected.inc
|
||||||
|
|
||||||
@ -52,9 +50,7 @@ master-bin.2147483646
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
# 3. Restart the server
|
# 3. Restart the server
|
||||||
-- append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
-- exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
||||||
restart
|
|
||||||
EOF
|
|
||||||
-- enable_reconnect
|
-- enable_reconnect
|
||||||
-- source include/wait_until_connected_again.inc
|
-- source include/wait_until_connected_again.inc
|
||||||
|
|
||||||
@ -70,9 +66,7 @@ FLUSH LOGS;
|
|||||||
##############
|
##############
|
||||||
|
|
||||||
# 1. Stop the server
|
# 1. Stop the server
|
||||||
-- write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
-- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
||||||
wait
|
|
||||||
EOF
|
|
||||||
-- shutdown_server 10
|
-- shutdown_server 10
|
||||||
-- source include/wait_until_disconnected.inc
|
-- source include/wait_until_disconnected.inc
|
||||||
|
|
||||||
@ -85,8 +79,6 @@ EOF
|
|||||||
-- remove_file $MYSQLD_DATADIR/master-bin.2147483647
|
-- remove_file $MYSQLD_DATADIR/master-bin.2147483647
|
||||||
|
|
||||||
# 3. Restart the server
|
# 3. Restart the server
|
||||||
-- append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
-- exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
||||||
restart
|
|
||||||
EOF
|
|
||||||
-- enable_reconnect
|
-- enable_reconnect
|
||||||
-- source include/wait_until_connected_again.inc
|
-- source include/wait_until_connected_again.inc
|
||||||
|
@ -153,15 +153,11 @@ SET @@global.slave_net_timeout=50;
|
|||||||
--enable_warnings
|
--enable_warnings
|
||||||
--replace_result $MASTER_MYPORT MASTER_PORT
|
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||||
eval CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=$MASTER_MYPORT, MASTER_USER='root', MASTER_HEARTBEAT_PERIOD=30;
|
eval CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=$MASTER_MYPORT, MASTER_USER='root', MASTER_HEARTBEAT_PERIOD=30;
|
||||||
--write_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
|
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
|
||||||
wait
|
|
||||||
EOF
|
|
||||||
--echo Reload slave
|
--echo Reload slave
|
||||||
--shutdown_server 10
|
--shutdown_server 10
|
||||||
--source include/wait_until_disconnected.inc
|
--source include/wait_until_disconnected.inc
|
||||||
--append_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
|
--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
|
||||||
restart
|
|
||||||
EOF
|
|
||||||
--enable_reconnect
|
--enable_reconnect
|
||||||
--source include/wait_until_connected_again.inc
|
--source include/wait_until_connected_again.inc
|
||||||
SHOW GLOBAL STATUS LIKE 'slave_heartbeat_period';
|
SHOW GLOBAL STATUS LIKE 'slave_heartbeat_period';
|
||||||
@ -456,15 +452,11 @@ let $status_var_comparsion= >;
|
|||||||
--source include/wait_for_status_var.inc
|
--source include/wait_for_status_var.inc
|
||||||
--echo Heartbeat event received
|
--echo Heartbeat event received
|
||||||
--connection master
|
--connection master
|
||||||
--write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
||||||
wait
|
|
||||||
EOF
|
|
||||||
--echo Reload master
|
--echo Reload master
|
||||||
--shutdown_server 10
|
--shutdown_server 10
|
||||||
--source include/wait_until_disconnected.inc
|
--source include/wait_until_disconnected.inc
|
||||||
--append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
||||||
restart
|
|
||||||
EOF
|
|
||||||
--enable_reconnect
|
--enable_reconnect
|
||||||
--source include/wait_until_connected_again.inc
|
--source include/wait_until_connected_again.inc
|
||||||
--connection slave
|
--connection slave
|
||||||
|
@ -315,9 +315,7 @@ FLUSH LOGS;
|
|||||||
|
|
||||||
# Stop master server
|
# Stop master server
|
||||||
--echo --> Stop master server
|
--echo --> Stop master server
|
||||||
--write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
||||||
wait
|
|
||||||
EOF
|
|
||||||
--shutdown_server 10
|
--shutdown_server 10
|
||||||
--source include/wait_until_disconnected.inc
|
--source include/wait_until_disconnected.inc
|
||||||
# Replace binlog
|
# Replace binlog
|
||||||
@ -325,9 +323,7 @@ remove_file $MYSQLD_DATADIR/master-bin.000001;
|
|||||||
copy_file $MYSQL_TEST_DIR/std_data/bug16266.000001 $MYSQLD_DATADIR/master-bin.000001;
|
copy_file $MYSQL_TEST_DIR/std_data/bug16266.000001 $MYSQLD_DATADIR/master-bin.000001;
|
||||||
|
|
||||||
--echo --> Start master server
|
--echo --> Start master server
|
||||||
--append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
||||||
restart
|
|
||||||
EOF
|
|
||||||
--enable_reconnect
|
--enable_reconnect
|
||||||
--source include/wait_until_connected_again.inc
|
--source include/wait_until_connected_again.inc
|
||||||
let $binlog_version= query_get_value(SHOW BINLOG EVENTS, Info, 1);
|
let $binlog_version= query_get_value(SHOW BINLOG EVENTS, Info, 1);
|
||||||
|
@ -1276,12 +1276,24 @@ if ($ifvar != goodbye)
|
|||||||
{
|
{
|
||||||
echo hello != goodbye;
|
echo hello != goodbye;
|
||||||
}
|
}
|
||||||
|
let $ifvar= 'quoted';
|
||||||
|
if ($ifvar == ''quoted'')
|
||||||
|
{
|
||||||
|
echo 'quoted' == ''quoted'';
|
||||||
|
}
|
||||||
let $ifvar= two words;
|
let $ifvar= two words;
|
||||||
if ($ifvar == two words)
|
if ($ifvar == two words)
|
||||||
{
|
{
|
||||||
echo two words;
|
echo two words;
|
||||||
}
|
}
|
||||||
|
if ($ifvar == 'two words')
|
||||||
|
{
|
||||||
|
echo 'two words';
|
||||||
|
}
|
||||||
|
if ($ifvar == "two words")
|
||||||
|
{
|
||||||
|
echo "two words";
|
||||||
|
}
|
||||||
if ($ifvar == `SELECT 'two words'`)
|
if ($ifvar == `SELECT 'two words'`)
|
||||||
{
|
{
|
||||||
echo two words are two words;
|
echo two words are two words;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user