Commit 346e5659 authored by msvensson@pilot.(none)'s avatar msvensson@pilot.(none)

Merge bk-internal:/home/bk/mysql-5.1-maint

into  pilot.(none):/data/msvensson/mysql/mysql-5.1-new-maint
parents 76d173fa 2b8218d3
...@@ -468,6 +468,7 @@ static int run_query(const char *query, DYNAMIC_STRING *ds_res, ...@@ -468,6 +468,7 @@ static int run_query(const char *query, DYNAMIC_STRING *ds_res,
NULL); NULL);
my_close(fd, MYF(0)); my_close(fd, MYF(0));
my_delete(query_file_path, MYF(0));
DBUG_RETURN(ret); DBUG_RETURN(ret);
} }
......
This diff is collapsed.
...@@ -99,25 +99,26 @@ sub spawn_impl ($$$$$$$) { ...@@ -99,25 +99,26 @@ sub spawn_impl ($$$$$$$) {
if ( $::opt_script_debug ) if ( $::opt_script_debug )
{ {
print STDERR "\n"; mtr_report("");
print STDERR "#### ", "-" x 78, "\n"; mtr_debug("-" x 73);
print STDERR "#### ", "STDIN $input\n" if $input; mtr_debug("STDIN $input") if $input;
print STDERR "#### ", "STDOUT $output\n" if $output; mtr_debug("STDOUT $output") if $output;
print STDERR "#### ", "STDERR $error\n" if $error; mtr_debug("STDERR $error") if $error;
print STDERR "#### ", "$mode : $path ", join(" ",@$arg_list_t), "\n"; mtr_debug("$mode: $path ", join(" ",@$arg_list_t));
print STDERR "#### ", "spawn options:\n"; mtr_debug("spawn options:");
if ($spawn_opts) if ($spawn_opts)
{ {
foreach my $key (sort keys %{$spawn_opts}) foreach my $key (sort keys %{$spawn_opts})
{ {
print STDERR "#### ", " - $key: $spawn_opts->{$key}\n"; mtr_debug(" - $key: $spawn_opts->{$key}");
} }
} }
else else
{ {
print STDERR "#### ", " none\n"; mtr_debug(" none");
} }
print STDERR "#### ", "-" x 78, "\n"; mtr_debug("-" x 73);
mtr_report("");
} }
mtr_error("Can't spawn with empty \"path\"") unless defined $path; mtr_error("Can't spawn with empty \"path\"") unless defined $path;
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
# same name. # same name.
use strict; use strict;
use warnings;
sub mtr_report_test_name($); sub mtr_report_test_name($);
sub mtr_report_test_passed($); sub mtr_report_test_passed($);
...@@ -26,7 +27,6 @@ sub mtr_report_test_failed($); ...@@ -26,7 +27,6 @@ sub mtr_report_test_failed($);
sub mtr_report_test_skipped($); sub mtr_report_test_skipped($);
sub mtr_report_test_not_skipped_though_disabled($); sub mtr_report_test_not_skipped_though_disabled($);
sub mtr_show_failed_diff ($);
sub mtr_report_stats ($); sub mtr_report_stats ($);
sub mtr_print_line (); sub mtr_print_line ();
sub mtr_print_thick_line (); sub mtr_print_thick_line ();
...@@ -38,6 +38,9 @@ sub mtr_child_error (@); ...@@ -38,6 +38,9 @@ sub mtr_child_error (@);
sub mtr_debug (@); sub mtr_debug (@);
sub mtr_verbose (@); sub mtr_verbose (@);
my $tot_real_time= 0;
############################################################################## ##############################################################################
# #
...@@ -45,43 +48,10 @@ sub mtr_verbose (@); ...@@ -45,43 +48,10 @@ sub mtr_verbose (@);
# #
############################################################################## ##############################################################################
# We can't use diff -u or diff -a as these are not portable
sub mtr_show_failed_diff ($) {
my $tinfo= shift;
# The reject and log files have been dumped to
# to filenames based on the result_file's name
my $base_file= mtr_match_extension($tinfo->{'result_file'},
"result"); # Trim extension
my $reject_file= "$base_file.reject";
my $result_file= "$base_file.result";
my $log_file= "$base_file.log";
my $diffopts= $::opt_udiff ? "-u" : "-c";
if ( -f $reject_file )
{
print "Below are the diffs between actual and expected results:\n";
print "-------------------------------------------------------\n";
# FIXME check result code?!
mtr_run("diff",[$diffopts,$result_file,$reject_file], "", "", "", "");
print "-------------------------------------------------------\n";
print "Please follow the instructions outlined at\n";
print "http://www.mysql.com/doc/en/Reporting_mysqltest_bugs.html\n";
print "to find the reason to this problem and how to report this.\n\n";
}
if ( -f $log_file )
{
print "Result from queries before failure can be found in $log_file\n";
# FIXME Maybe a tail -f -n 10 $log_file here
}
}
sub mtr_report_test_name ($) { sub mtr_report_test_name ($) {
my $tinfo= shift; my $tinfo= shift;
_mtr_log("$tinfo->{name}");
printf "%-30s ", $tinfo->{'name'}; printf "%-30s ", $tinfo->{'name'};
} }
...@@ -91,15 +61,15 @@ sub mtr_report_test_skipped ($) { ...@@ -91,15 +61,15 @@ sub mtr_report_test_skipped ($) {
$tinfo->{'result'}= 'MTR_RES_SKIPPED'; $tinfo->{'result'}= 'MTR_RES_SKIPPED';
if ( $tinfo->{'disable'} ) if ( $tinfo->{'disable'} )
{ {
print "[ disabled ] $tinfo->{'comment'}\n"; mtr_report("[ disabled ] $tinfo->{'comment'}");
} }
elsif ( $tinfo->{'comment'} ) elsif ( $tinfo->{'comment'} )
{ {
print "[ skipped ] $tinfo->{'comment'}\n"; mtr_report("[ skipped ] $tinfo->{'comment'}");
} }
else else
{ {
print "[ skipped ]\n"; mtr_report("[ skipped ]");
} }
} }
...@@ -127,11 +97,11 @@ sub mtr_report_test_passed ($) { ...@@ -127,11 +97,11 @@ sub mtr_report_test_passed ($) {
if ( $::opt_timer and -f "$::opt_vardir/log/timer" ) if ( $::opt_timer and -f "$::opt_vardir/log/timer" )
{ {
$timer= mtr_fromfile("$::opt_vardir/log/timer"); $timer= mtr_fromfile("$::opt_vardir/log/timer");
$::glob_tot_real_time += ($timer/1000); $tot_real_time += ($timer/1000);
$timer= sprintf "%12s", $timer; $timer= sprintf "%12s", $timer;
} }
$tinfo->{'result'}= 'MTR_RES_PASSED'; $tinfo->{'result'}= 'MTR_RES_PASSED';
print "[ pass ] $timer\n"; mtr_report("[ pass ] $timer");
} }
sub mtr_report_test_failed ($) { sub mtr_report_test_failed ($) {
...@@ -140,27 +110,34 @@ sub mtr_report_test_failed ($) { ...@@ -140,27 +110,34 @@ sub mtr_report_test_failed ($) {
$tinfo->{'result'}= 'MTR_RES_FAILED'; $tinfo->{'result'}= 'MTR_RES_FAILED';
if ( defined $tinfo->{'timeout'} ) if ( defined $tinfo->{'timeout'} )
{ {
print "[ fail ] timeout\n"; mtr_report("[ fail ] timeout");
return; return;
} }
else else
{ {
print "[ fail ]\n"; mtr_report("[ fail ]");
} }
if ( $tinfo->{'comment'} ) if ( $tinfo->{'comment'} )
{ {
print "\nERROR: $tinfo->{'comment'}\n"; # The test failure has been detected by mysql-test-run.pl
# when starting the servers or due to other error, the reason for
# failing the test is saved in "comment"
mtr_report("\nERROR: $tinfo->{'comment'}");
} }
elsif ( -f $::path_timefile ) elsif ( -f $::path_timefile )
{ {
print "\nErrors are (from $::path_timefile) :\n"; # Test failure was detected by test tool and it's report
# about what failed has been saved to file. Display the report.
print "\n";
print mtr_fromfile($::path_timefile); # FIXME print_file() instead print mtr_fromfile($::path_timefile); # FIXME print_file() instead
print "\n(the last lines may be the most important ones)\n"; print "\n";
} }
else else
{ {
print "\nUnexpected termination, probably when starting mysqld\n"; # Neither this script or the test tool has recorded info
# about why the test has failed. Should be debugged.
mtr_report("\nUnexpected termination, probably when starting mysqld");;
} }
} }
...@@ -228,8 +205,10 @@ sub mtr_report_stats ($) { ...@@ -228,8 +205,10 @@ sub mtr_report_stats ($) {
if ( $::opt_timer ) if ( $::opt_timer )
{ {
print use English;
"Spent $::glob_tot_real_time seconds actually executing testcases\n"
mtr_report("Spent", sprintf("%.3f", $tot_real_time),"of",
time - $BASETIME, "seconds executing testcases");
} }
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
...@@ -484,35 +463,66 @@ sub mtr_print_header () { ...@@ -484,35 +463,66 @@ sub mtr_print_header () {
############################################################################## ##############################################################################
# #
# Misc # Log and reporting functions
# #
############################################################################## ##############################################################################
use IO::File;
my $log_file_ref= undef;
sub mtr_log_init ($) {
my ($filename)= @_;
mtr_error("Log is already open") if defined $log_file_ref;
$log_file_ref= IO::File->new($filename, "a") or
mtr_warning("Could not create logfile $filename: $!");
}
sub _mtr_log (@) {
print $log_file_ref join(" ", @_),"\n"
if defined $log_file_ref;
}
sub mtr_report (@) { sub mtr_report (@) {
# Print message to screen and log
_mtr_log(@_);
print join(" ", @_),"\n"; print join(" ", @_),"\n";
} }
sub mtr_warning (@) { sub mtr_warning (@) {
# Print message to screen and log
_mtr_log("WARNING: ", @_);
print STDERR "mysql-test-run: WARNING: ",join(" ", @_),"\n"; print STDERR "mysql-test-run: WARNING: ",join(" ", @_),"\n";
} }
sub mtr_error (@) { sub mtr_error (@) {
# Print message to screen and log
_mtr_log("ERROR: ", @_);
print STDERR "mysql-test-run: *** ERROR: ",join(" ", @_),"\n"; print STDERR "mysql-test-run: *** ERROR: ",join(" ", @_),"\n";
mtr_exit(1); mtr_exit(1);
} }
sub mtr_child_error (@) { sub mtr_child_error (@) {
# Print message to screen and log
_mtr_log("ERROR(child): ", @_);
print STDERR "mysql-test-run: *** ERROR(child): ",join(" ", @_),"\n"; print STDERR "mysql-test-run: *** ERROR(child): ",join(" ", @_),"\n";
exit(1); exit(1);
} }
sub mtr_debug (@) { sub mtr_debug (@) {
# Only print if --script-debug is used
if ( $::opt_script_debug ) if ( $::opt_script_debug )
{ {
_mtr_log("###: ", @_);
print STDERR "####: ",join(" ", @_),"\n"; print STDERR "####: ",join(" ", @_),"\n";
} }
} }
sub mtr_verbose (@) { sub mtr_verbose (@) {
# Always print to log, print to screen only when --verbose is used
_mtr_log("> ",@_);
if ( $::opt_verbose ) if ( $::opt_verbose )
{ {
print STDERR "> ",join(" ", @_),"\n"; print STDERR "> ",join(" ", @_),"\n";
......
...@@ -52,12 +52,10 @@ sub mtr_init_timers () { ...@@ -52,12 +52,10 @@ sub mtr_init_timers () {
sub mtr_timer_start($$$) { sub mtr_timer_start($$$) {
my ($timers,$name,$duration)= @_; my ($timers,$name,$duration)= @_;
mtr_verbose("mtr_timer_start: $name, $duration");
if ( exists $timers->{'timers'}->{$name} ) if ( exists $timers->{'timers'}->{$name} )
{ {
# We have an old running timer, kill it # We have an old running timer, kill it
mtr_verbose("There is an old timer running"); mtr_warning("There is an old timer running");
mtr_timer_stop($timers,$name); mtr_timer_stop($timers,$name);
} }
...@@ -75,22 +73,22 @@ sub mtr_timer_start($$$) { ...@@ -75,22 +73,22 @@ sub mtr_timer_start($$$) {
} }
else else
{ {
mtr_error("can't fork"); mtr_error("can't fork timer, error: $!");
} }
} }
if ( $tpid ) if ( $tpid )
{ {
# Parent, record the information # Parent, record the information
mtr_verbose("timer parent, record info($name, $tpid, $duration)"); mtr_verbose("Starting timer for '$name',",
"duration: $duration, pid: $tpid");
$timers->{'timers'}->{$name}->{'pid'}= $tpid; $timers->{'timers'}->{$name}->{'pid'}= $tpid;
$timers->{'timers'}->{$name}->{'duration'}= $duration; $timers->{'timers'}->{$name}->{'duration'}= $duration;
$timers->{'pids'}->{$tpid}= $name; $timers->{'pids'}->{$tpid}= $name;
} }
else else
{ {
# Child, redirect output and exec # Child, install signal handlers and sleep for "duration"
# FIXME do we need to redirect streams?
# Don't do the ^C cleanup in the timeout child processes! # Don't do the ^C cleanup in the timeout child processes!
# There is actually a race here, if we get ^C after fork(), but before # There is actually a race here, if we get ^C after fork(), but before
...@@ -98,13 +96,13 @@ sub mtr_timer_start($$$) { ...@@ -98,13 +96,13 @@ sub mtr_timer_start($$$) {
$SIG{INT}= 'DEFAULT'; $SIG{INT}= 'DEFAULT';
$SIG{TERM}= sub { $SIG{TERM}= sub {
mtr_verbose("timer woke up, exiting!"); mtr_verbose("timer $$ woke up, exiting!");
exit(0); exit(0);
}; };
$0= "mtr_timer(timers,$name,$duration)"; $0= "mtr_timer(timers,$name,$duration)";
sleep($duration); sleep($duration);
mtr_verbose("timer expired after $duration seconds"); mtr_verbose("timer $$ expired after $duration seconds");
exit(0); exit(0);
} }
} }
...@@ -114,12 +112,10 @@ sub mtr_timer_start($$$) { ...@@ -114,12 +112,10 @@ sub mtr_timer_start($$$) {
sub mtr_timer_stop ($$) { sub mtr_timer_stop ($$) {
my ($timers,$name)= @_; my ($timers,$name)= @_;
mtr_verbose("mtr_timer_stop: $name");
if ( exists $timers->{'timers'}->{$name} ) if ( exists $timers->{'timers'}->{$name} )
{ {
my $tpid= $timers->{'timers'}->{$name}->{'pid'}; my $tpid= $timers->{'timers'}->{$name}->{'pid'};
mtr_verbose("Stopping timer with pid $tpid"); mtr_verbose("Stopping timer for '$name' with pid $tpid");
# FIXME as Cygwin reuses pids fast, maybe check that is # FIXME as Cygwin reuses pids fast, maybe check that is
# the expected process somehow?! # the expected process somehow?!
...@@ -134,11 +130,8 @@ sub mtr_timer_stop ($$) { ...@@ -134,11 +130,8 @@ sub mtr_timer_stop ($$) {
return 1; return 1;
} }
else
{ mtr_error("Asked to stop timer '$name' not started");
mtr_error("Asked to stop timer \"$name\" not started");
return 0;
}
} }
...@@ -158,7 +151,8 @@ sub mtr_timer_timeout ($$) { ...@@ -158,7 +151,8 @@ sub mtr_timer_timeout ($$) {
return "" unless exists $timers->{'pids'}->{$pid}; return "" unless exists $timers->{'pids'}->{$pid};
# We got a timeout, return the name ot the timer # Got a timeout(the process with $pid is recorded as being a timer)
# return the name of the timer
return $timers->{'pids'}->{$pid}; return $timers->{'pids'}->{$pid};
} }
......
...@@ -83,7 +83,6 @@ require "lib/mtr_io.pl"; ...@@ -83,7 +83,6 @@ require "lib/mtr_io.pl";
require "lib/mtr_gcov.pl"; require "lib/mtr_gcov.pl";
require "lib/mtr_gprof.pl"; require "lib/mtr_gprof.pl";
require "lib/mtr_report.pl"; require "lib/mtr_report.pl";
require "lib/mtr_diff.pl";
require "lib/mtr_match.pl"; require "lib/mtr_match.pl";
require "lib/mtr_misc.pl"; require "lib/mtr_misc.pl";
require "lib/mtr_stress.pl"; require "lib/mtr_stress.pl";
...@@ -234,7 +233,6 @@ my $opt_report_features; ...@@ -234,7 +233,6 @@ my $opt_report_features;
our $opt_check_testcases; our $opt_check_testcases;
our $opt_mark_progress; our $opt_mark_progress;
our $opt_skip;
our $opt_skip_rpl; our $opt_skip_rpl;
our $max_slave_num= 0; our $max_slave_num= 0;
our $max_master_num= 1; our $max_master_num= 1;
...@@ -277,13 +275,8 @@ our $opt_stress_test_duration= 0; ...@@ -277,13 +275,8 @@ our $opt_stress_test_duration= 0;
our $opt_stress_init_file= ""; our $opt_stress_init_file= "";
our $opt_stress_test_file= ""; our $opt_stress_test_file= "";
our $opt_wait_for_master;
our $opt_wait_for_slave;
our $opt_warnings; our $opt_warnings;
our $opt_udiff;
our $opt_skip_ndbcluster= 0; our $opt_skip_ndbcluster= 0;
our $opt_skip_ndbcluster_slave= 0; our $opt_skip_ndbcluster_slave= 0;
our $opt_with_ndbcluster= 0; our $opt_with_ndbcluster= 0;
...@@ -307,7 +300,6 @@ our @data_dir_lst; ...@@ -307,7 +300,6 @@ our @data_dir_lst;
our $used_binlog_format; our $used_binlog_format;
our $used_default_engine; our $used_default_engine;
our $debug_compiled_binaries; our $debug_compiled_binaries;
our $glob_tot_real_time= 0;
our %mysqld_variables; our %mysqld_variables;
...@@ -619,7 +611,6 @@ sub command_line_setup () { ...@@ -619,7 +611,6 @@ sub command_line_setup () {
'start-dirty' => \$opt_start_dirty, 'start-dirty' => \$opt_start_dirty,
'start-and-exit' => \$opt_start_and_exit, 'start-and-exit' => \$opt_start_and_exit,
'timer!' => \$opt_timer, 'timer!' => \$opt_timer,
'unified-diff|udiff' => \$opt_udiff,
'user=s' => \$opt_user, 'user=s' => \$opt_user,
'testcase-timeout=i' => \$opt_testcase_timeout, 'testcase-timeout=i' => \$opt_testcase_timeout,
'suite-timeout=i' => \$opt_suite_timeout, 'suite-timeout=i' => \$opt_suite_timeout,
...@@ -2924,13 +2915,16 @@ sub initialize_servers () { ...@@ -2924,13 +2915,16 @@ sub initialize_servers () {
} }
} }
check_running_as_root(); check_running_as_root();
mtr_log_init("$opt_vardir/log/mysql-test-run.log");
} }
sub mysql_install_db () { sub mysql_install_db () {
install_db('master', $master->[0]->{'path_myddir'}); install_db('master', $master->[0]->{'path_myddir'});
if ($max_master_num) if ($max_master_num > 1)
{ {
copy_install_db('master', $master->[1]->{'path_myddir'}); copy_install_db('master', $master->[1]->{'path_myddir'});
} }
...@@ -3652,7 +3646,6 @@ sub report_failure_and_restart ($) { ...@@ -3652,7 +3646,6 @@ sub report_failure_and_restart ($) {
my $tinfo= shift; my $tinfo= shift;
mtr_report_test_failed($tinfo); mtr_report_test_failed($tinfo);
mtr_show_failed_diff($tinfo);
print "\n"; print "\n";
if ( $opt_force ) if ( $opt_force )
{ {
...@@ -3661,13 +3654,13 @@ sub report_failure_and_restart ($) { ...@@ -3661,13 +3654,13 @@ sub report_failure_and_restart ($) {
# Restore the snapshot of the installed test db # Restore the snapshot of the installed test db
restore_installed_db($tinfo->{'name'}); restore_installed_db($tinfo->{'name'});
print "Resuming Tests\n\n"; mtr_report("Resuming Tests\n");
return; return;
} }
my $test_mode= join(" ", @::glob_test_mode) || "default"; my $test_mode= join(" ", @::glob_test_mode) || "default";
print "Aborting: $tinfo->{'name'} failed in $test_mode mode. "; mtr_report("Aborting: $tinfo->{'name'} failed in $test_mode mode. ");
print "To continue, re-run with '--force'.\n"; mtr_report("To continue, re-run with '--force'.");
if ( ! $glob_debugger and if ( ! $glob_debugger and
! $opt_extern and ! $opt_extern and
! $glob_use_embedded_server ) ! $glob_use_embedded_server )
...@@ -4126,11 +4119,11 @@ sub mysqld_start ($$$) { ...@@ -4126,11 +4119,11 @@ sub mysqld_start ($$$) {
sub stop_all_servers () { sub stop_all_servers () {
print "Stopping All Servers\n"; mtr_report("Stopping All Servers");
if ( ! $opt_skip_im ) if ( ! $opt_skip_im )
{ {
print "Shutting-down Instance Manager\n"; mtr_report("Shutting-down Instance Manager");
unless (mtr_im_stop($instance_manager, "stop_all_servers")) unless (mtr_im_stop($instance_manager, "stop_all_servers"))
{ {
mtr_error("Failed to stop Instance Manager.") mtr_error("Failed to stop Instance Manager.")
...@@ -4840,6 +4833,9 @@ sub run_mysqltest ($) { ...@@ -4840,6 +4833,9 @@ sub run_mysqltest ($) {
mtr_add_arg($args, "--test-file=%s", $tinfo->{'path'}); mtr_add_arg($args, "--test-file=%s", $tinfo->{'path'});
# Number of lines of resut to include in failure report
mtr_add_arg($args, "--tail-lines=20");
if ( defined $tinfo->{'result_file'} ) { if ( defined $tinfo->{'result_file'} ) {
mtr_add_arg($args, "--result-file=%s", $tinfo->{'result_file'}); mtr_add_arg($args, "--result-file=%s", $tinfo->{'result_file'});
} }
...@@ -5253,7 +5249,6 @@ Misc options ...@@ -5253,7 +5249,6 @@ Misc options
fast Don't try to clean up from earlier runs fast Don't try to clean up from earlier runs
reorder Reorder tests to get fewer server restarts reorder Reorder tests to get fewer server restarts
help Get this help text help Get this help text
unified-diff | udiff When presenting differences, use unified diff
testcase-timeout=MINUTES Max test case run time (default $default_testcase_timeout) testcase-timeout=MINUTES Max test case run time (default $default_testcase_timeout)
suite-timeout=MINUTES Max test suite run time (default $default_suite_timeout) suite-timeout=MINUTES Max test suite run time (default $default_suite_timeout)
......
...@@ -280,8 +280,20 @@ let $B = changed value of B; ...@@ -280,8 +280,20 @@ let $B = changed value of B;
var2: content of variable 1 var2: content of variable 1
var3: content of variable 1 content of variable 1 var3: content of variable 1 content of variable 1
length of var3 is longer than 0 length of var3 is longer than 0
var1
hi 1 hi there
var2
2
var2 again
2
var3 two columns with same name
1 2 3
var4 from query that returns NULL
var5 from query that returns no row
failing query in let
mysqltest: At line 1: Error running query 'failing query': 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'failing query' at line 1
mysqltest: At line 1: Missing required argument 'filename' to command 'source' mysqltest: At line 1: Missing required argument 'filename' to command 'source'
mysqltest: At line 1: Could not open file ./non_existingFile mysqltest: At line 1: Could not open file './non_existingFile'
mysqltest: In included file "MYSQLTEST_VARDIR/tmp/recursive.sql": At line 1: Source directives are nesting too deep mysqltest: In included file "MYSQLTEST_VARDIR/tmp/recursive.sql": At line 1: Source directives are nesting too deep
mysqltest: In included file "MYSQLTEST_VARDIR/tmp/error.sql": At line 1: query 'garbage ' failed: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'garbage' at line 1 mysqltest: In included file "MYSQLTEST_VARDIR/tmp/error.sql": At line 1: query 'garbage ' failed: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'garbage' at line 1
...@@ -340,6 +352,8 @@ here is the sourced script ...@@ -340,6 +352,8 @@ here is the sourced script
In loop In loop
here is the sourced script here is the sourced script
here is the sourced script here is the sourced script
"hello"
"hello"
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: Missing argument to real_sleep
mysqltest: At line 1: Invalid argument to sleep "abc" mysqltest: At line 1: Invalid argument to sleep "abc"
...@@ -461,7 +475,6 @@ root@localhost ...@@ -461,7 +475,6 @@ root@localhost
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
this will be executed this will be executed
this will be executed this will be executed
mysqltest: Result length mismatch
mysqltest: The test didn't produce any output mysqltest: The test didn't produce any output
Failing multi statement query Failing multi statement query
mysqltest: At line 3: query 'create table t1 (a int primary key); mysqltest: At line 3: query 'create table t1 (a int primary key);
...@@ -473,6 +486,8 @@ mysqltest: At line 3: query 'create table t1 (a int primary key); ...@@ -473,6 +486,8 @@ mysqltest: At line 3: query 'create table t1 (a int primary key);
insert into t1 values (1); insert into t1 values (1);
select 'select-me'; select 'select-me';
insertz 'error query'' failed: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'insertz 'error query'' at line 1 insertz 'error query'' failed: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'insertz 'error query'' at line 1
More results from queries before failure can be found in MYSQLTEST_VARDIR/log/bug11731.log
drop table t1; drop table t1;
Multi statement using expected error Multi statement using expected error
create table t1 (a int primary key); create table t1 (a int primary key);
...@@ -520,17 +535,19 @@ drop table t1; ...@@ -520,17 +535,19 @@ drop table t1;
mysqltest: At line 1: Missing required argument 'filename' to command 'remove_file' mysqltest: At line 1: Missing required argument 'filename' to command 'remove_file'
mysqltest: At line 1: Missing required argument 'filename' to command 'write_file' mysqltest: At line 1: Missing required argument 'filename' to command 'write_file'
mysqltest: At line 1: End of file encountered before 'EOF' delimiter was found mysqltest: At line 1: End of file encountered before 'EOF' delimiter was found
Content for test_file1
mysqltest: At line 1: File already exist: 'MYSQLTEST_VARDIR/tmp/test_file1.tmp'
Some data Some data
for cat_file command for cat_file command
of mysqltest of mysqltest
mysqltest: At line 1: Failed to open file non_existing_file mysqltest: At line 1: Failed to open file 'non_existing_file'
mysqltest: At line 1: Missing required argument 'filename' to command 'file_exists' mysqltest: At line 1: Missing required argument 'filename' to command 'file_exists'
mysqltest: At line 1: Missing required argument 'from_file' to command 'copy_file' mysqltest: At line 1: Missing required argument 'from_file' to command 'copy_file'
mysqltest: At line 1: Missing required argument 'to_file' to command 'copy_file' mysqltest: At line 1: Missing required argument 'to_file' to command 'copy_file'
mysqltest: At line 1: Missing required argument 'mode' to command 'chmod' mysqltest: At line 1: Missing required argument 'mode' to command 'chmod'
mysqltest: At line 1: You must write a 4 digit octal number for mode mysqltest: At line 1: You must write a 4 digit octal number for mode
mysqltest: At line 1: You must write a 4 digit octal number for mode mysqltest: At line 1: You must write a 4 digit octal number for mode
mysqltest: At line 1: Missing required argument 'file' to command 'chmod' mysqltest: At line 1: Missing required argument 'filename' to command 'chmod'
mysqltest: At line 1: You must write a 4 digit octal number for mode mysqltest: At line 1: You must write a 4 digit octal number for mode
mysqltest: At line 1: You must write a 4 digit octal number for mode mysqltest: At line 1: You must write a 4 digit octal number for mode
hello hello
......
...@@ -9,12 +9,13 @@ drop table if exists t1; ...@@ -9,12 +9,13 @@ drop table if exists t1;
# #
# Check that --bootstrap reads from stdin # Check that --bootstrap reads from stdin
# #
--write_file $MYSQLTEST_VARDIR/tmp/bootstrap.sql --write_file $MYSQLTEST_VARDIR/tmp/bootstrap_test.sql
use test; use test;
CREATE TABLE t1(a int); CREATE TABLE t1(a int);
EOF EOF
--exec $MYSQLD_BOOTSTRAP_CMD < $MYSQLTEST_VARDIR/tmp/bootstrap.sql >> $MYSQLTEST_VARDIR/tmp/bootstrap.log 2>&1 --exec $MYSQLD_BOOTSTRAP_CMD < $MYSQLTEST_VARDIR/tmp/bootstrap_test.sql >> $MYSQLTEST_VARDIR/tmp/bootstrap.log 2>&1
drop table t1; drop table t1;
remove_file $MYSQLTEST_VARDIR/tmp/bootstrap_test.sql;
# #
# Check that --bootstrap of file with SQL error returns error # Check that --bootstrap of file with SQL error returns error
...@@ -28,6 +29,7 @@ EOF ...@@ -28,6 +29,7 @@ EOF
# Table t1 should not exists # Table t1 should not exists
--error 1051 --error 1051
drop table t1; drop table t1;
remove_file $MYSQLTEST_VARDIR/tmp/bootstrap_error.sql;
# #
# Bootstrap with a query larger than 2*thd->net.max_packet # Bootstrap with a query larger than 2*thd->net.max_packet
...@@ -40,6 +42,7 @@ eval select * into outfile '$MYSQLTEST_VARDIR/tmp/long_query.sql' from t1; ...@@ -40,6 +42,7 @@ eval select * into outfile '$MYSQLTEST_VARDIR/tmp/long_query.sql' from t1;
--enable_query_log --enable_query_log
--error 1 --error 1
--exec $MYSQLD_BOOTSTRAP_CMD < $MYSQLTEST_VARDIR/tmp/long_query.sql >> $MYSQLTEST_VARDIR/tmp/bootstrap.log 2>&1 --exec $MYSQLD_BOOTSTRAP_CMD < $MYSQLTEST_VARDIR/tmp/long_query.sql >> $MYSQLTEST_VARDIR/tmp/bootstrap.log 2>&1
remove_file $MYSQLTEST_VARDIR/tmp/long_query.sql;
set global max_allowed_packet=@my_max_allowed_packet; set global max_allowed_packet=@my_max_allowed_packet;
drop table t1; drop table t1;
......
...@@ -1424,6 +1424,7 @@ DROP TABLE test_repair_table2; ...@@ -1424,6 +1424,7 @@ DROP TABLE test_repair_table2;
# Corrupt csv file and see if we can repair it # Corrupt csv file and see if we can repair it
CREATE TABLE test_repair_table3 ( val integer ) ENGINE = CSV; CREATE TABLE test_repair_table3 ( val integer ) ENGINE = CSV;
--remove_file $MYSQLTEST_VARDIR/master-data/test/test_repair_table3.CSV
--write_file $MYSQLTEST_VARDIR/master-data/test/test_repair_table3.CSV --write_file $MYSQLTEST_VARDIR/master-data/test/test_repair_table3.CSV
"1" "1"
"4" "4"
...@@ -1476,6 +1477,7 @@ CREATE TABLE test_repair_table5 ( ...@@ -1476,6 +1477,7 @@ CREATE TABLE test_repair_table5 (
) ENGINE = CSV; ) ENGINE = CSV;
# Corrupt a table -- put a file with wrong # of columns # Corrupt a table -- put a file with wrong # of columns
--remove_file $MYSQLTEST_VARDIR/master-data/test/test_repair_table5.CSV
--write_file $MYSQLTEST_VARDIR/master-data/test/test_repair_table5.CSV --write_file $MYSQLTEST_VARDIR/master-data/test/test_repair_table5.CSV
"1","101","IBM" "1","101","IBM"
EOF EOF
...@@ -1629,6 +1631,7 @@ insert into bug22080_1 values(2,'string'); ...@@ -1629,6 +1631,7 @@ insert into bug22080_1 values(2,'string');
insert into bug22080_1 values(3,'string'); insert into bug22080_1 values(3,'string');
# Create first corrupt file as described in bug report # Create first corrupt file as described in bug report
--remove_file $MYSQLTEST_VARDIR/master-data/test/bug22080_2.CSV
--write_file $MYSQLTEST_VARDIR/master-data/test/bug22080_2.CSV --write_file $MYSQLTEST_VARDIR/master-data/test/bug22080_2.CSV
1,"string" 1,"string"
2","string" 2","string"
...@@ -1636,6 +1639,7 @@ insert into bug22080_1 values(3,'string'); ...@@ -1636,6 +1639,7 @@ insert into bug22080_1 values(3,'string');
EOF EOF
# Create second corrupt file as described in bug report # Create second corrupt file as described in bug report
--remove_file $MYSQLTEST_VARDIR/master-data/test/bug22080_3.CSV
--write_file $MYSQLTEST_VARDIR/master-data/test/bug22080_3.CSV --write_file $MYSQLTEST_VARDIR/master-data/test/bug22080_3.CSV
1,"string" 1,"string"
"2",string" "2",string"
...@@ -1696,6 +1700,7 @@ check table t1; ...@@ -1696,6 +1700,7 @@ check table t1;
drop table t1; drop table t1;
create table t1(a int, b int) engine=csv; create table t1(a int, b int) engine=csv;
--remove_file $MYSQLTEST_VARDIR/master-data/test/t1.CSV
--write_file $MYSQLTEST_VARDIR/master-data/test/t1.CSV --write_file $MYSQLTEST_VARDIR/master-data/test/t1.CSV
1, 1E-2 1, 1E-2
-2E2, .9 -2E2, .9
......
...@@ -242,18 +242,21 @@ DELIMITER / ...@@ -242,18 +242,21 @@ DELIMITER /
SELECT 1/ SELECT 1/
EOF EOF
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug21412.sql 2>&1 --exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug21412.sql 2>&1
remove_file $MYSQLTEST_VARDIR/tmp/bug21412.sql;
# This should give an error... # This should give an error...
--write_file $MYSQLTEST_VARDIR/tmp/bug21412.sql --write_file $MYSQLTEST_VARDIR/tmp/bug21412.sql
DELIMITER \ DELIMITER \
EOF EOF
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug21412.sql 2>&1 --exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug21412.sql 2>&1
remove_file $MYSQLTEST_VARDIR/tmp/bug21412.sql;
# As should this... # As should this...
--write_file $MYSQLTEST_VARDIR/tmp/bug21412.sql --write_file $MYSQLTEST_VARDIR/tmp/bug21412.sql
DELIMITER \\ DELIMITER \\
EOF EOF
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug21412.sql 2>&1 --exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug21412.sql 2>&1
remove_file $MYSQLTEST_VARDIR/tmp/bug21412.sql;
# #
# Some coverage of not normally used parts # Some coverage of not normally used parts
......
...@@ -20,7 +20,7 @@ EOF ...@@ -20,7 +20,7 @@ EOF
--replace_regex /.*mysqladmin.*: unknown/mysqladmin: unknown/ --replace_regex /.*mysqladmin.*: unknown/mysqladmin: unknown/
--error 7 --error 7
--exec $MYSQLADMIN --defaults-file=$MYSQLTEST_VARDIR/tmp/bug10608.cnf -S $MASTER_MYSOCK -P $MASTER_MYPORT -u root --password= ping 2>&1 --exec $MYSQLADMIN --defaults-file=$MYSQLTEST_VARDIR/tmp/bug10608.cnf -S $MASTER_MYSOCK -P $MASTER_MYPORT -u root --password= ping 2>&1
remove_file $MYSQLTEST_VARDIR/tmp/bug10608.cnf;
# When mysqladmin finds "loose-database" in .cnf file it shall print # When mysqladmin finds "loose-database" in .cnf file it shall print
# a warning and continue # a warning and continue
...@@ -32,3 +32,4 @@ EOF ...@@ -32,3 +32,4 @@ EOF
--replace_regex /Warning: .*mysqladmin.*: unknown/Warning: mysqladmin: unknown/ --replace_regex /Warning: .*mysqladmin.*: unknown/Warning: mysqladmin: unknown/
--exec $MYSQLADMIN --defaults-file=$MYSQLTEST_VARDIR/tmp/bug10608.cnf -S $MASTER_MYSOCK -P $MASTER_MYPORT -u root --password= ping 2>&1 --exec $MYSQLADMIN --defaults-file=$MYSQLTEST_VARDIR/tmp/bug10608.cnf -S $MASTER_MYSOCK -P $MASTER_MYPORT -u root --password= ping 2>&1
remove_file $MYSQLTEST_VARDIR/tmp/bug10608.cnf;
This diff is collapsed.
...@@ -50,6 +50,7 @@ insert into t1 values (0); ...@@ -50,6 +50,7 @@ insert into t1 values (0);
flush table mysql.proc; flush table mysql.proc;
# Thrashing the .frm file # Thrashing the .frm file
--remove_file $MYSQLTEST_VARDIR/master-data/mysql/proc.frm
--write_file $MYSQLTEST_VARDIR/master-data/mysql/proc.frm --write_file $MYSQLTEST_VARDIR/master-data/mysql/proc.frm
saljdfa saljdfa
EOF EOF
......
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