mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge bk-internal:/home/bk/mysql-5.0-maint
into pilot.(none):/data/msvensson/mysql/mysql-5.0-maint mysql-test/mysql-test-run.pl: Auto merged
This commit is contained in:
@ -457,6 +457,7 @@ static int run_query(const char *query, DYNAMIC_STRING *ds_res,
|
||||
NULL);
|
||||
|
||||
my_close(fd, MYF(0));
|
||||
my_delete(query_file_path, MYF(0));
|
||||
|
||||
DBUG_RETURN(ret);
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -99,25 +99,26 @@ sub spawn_impl ($$$$$$$) {
|
||||
|
||||
if ( $::opt_script_debug )
|
||||
{
|
||||
print STDERR "\n";
|
||||
print STDERR "#### ", "-" x 78, "\n";
|
||||
print STDERR "#### ", "STDIN $input\n" if $input;
|
||||
print STDERR "#### ", "STDOUT $output\n" if $output;
|
||||
print STDERR "#### ", "STDERR $error\n" if $error;
|
||||
print STDERR "#### ", "$mode : $path ", join(" ",@$arg_list_t), "\n";
|
||||
print STDERR "#### ", "spawn options:\n";
|
||||
mtr_report("");
|
||||
mtr_debug("-" x 73);
|
||||
mtr_debug("STDIN $input") if $input;
|
||||
mtr_debug("STDOUT $output") if $output;
|
||||
mtr_debug("STDERR $error") if $error;
|
||||
mtr_debug("$mode: $path ", join(" ",@$arg_list_t));
|
||||
mtr_debug("spawn options:");
|
||||
if ($spawn_opts)
|
||||
{
|
||||
foreach my $key (sort keys %{$spawn_opts})
|
||||
{
|
||||
print STDERR "#### ", " - $key: $spawn_opts->{$key}\n";
|
||||
mtr_debug(" - $key: $spawn_opts->{$key}");
|
||||
}
|
||||
}
|
||||
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;
|
||||
|
@ -19,6 +19,7 @@
|
||||
# same name.
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
sub mtr_report_test_name($);
|
||||
sub mtr_report_test_passed($);
|
||||
@ -26,7 +27,6 @@ sub mtr_report_test_failed($);
|
||||
sub mtr_report_test_skipped($);
|
||||
sub mtr_report_test_not_skipped_though_disabled($);
|
||||
|
||||
sub mtr_show_failed_diff ($);
|
||||
sub mtr_report_stats ($);
|
||||
sub mtr_print_line ();
|
||||
sub mtr_print_thick_line ();
|
||||
@ -38,6 +38,9 @@ sub mtr_child_error (@);
|
||||
sub mtr_debug (@);
|
||||
sub mtr_verbose (@);
|
||||
|
||||
my $tot_real_time= 0;
|
||||
|
||||
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
@ -45,58 +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 $result_file_name= shift;
|
||||
|
||||
# The reject and log files have been dumped to
|
||||
# to filenames based on the result_file's name
|
||||
my $tname= basename($result_file_name);
|
||||
$tname=~ s/\..*$//;
|
||||
|
||||
my $reject_file= "r/$tname.reject";
|
||||
my $result_file= "r/$tname.result";
|
||||
my $log_file= "r/$tname.log";
|
||||
my $eval_file= "r/$tname.eval";
|
||||
|
||||
if ( $::opt_suite ne "main" )
|
||||
{
|
||||
$reject_file= "$::glob_mysql_test_dir/suite/$::opt_suite/$reject_file";
|
||||
$result_file= "$::glob_mysql_test_dir/suite/$::opt_suite/$result_file";
|
||||
$eval_file= "$::glob_mysql_test_dir/suite/$::opt_suite/$eval_file";
|
||||
$log_file= "$::glob_mysql_test_dir/suite/$::opt_suite/$log_file";
|
||||
}
|
||||
|
||||
if ( -f $eval_file )
|
||||
{
|
||||
$result_file= $eval_file;
|
||||
}
|
||||
|
||||
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 ($) {
|
||||
my $tinfo= shift;
|
||||
|
||||
_mtr_log("$tinfo->{name}");
|
||||
printf "%-30s ", $tinfo->{'name'};
|
||||
}
|
||||
|
||||
@ -106,15 +61,15 @@ sub mtr_report_test_skipped ($) {
|
||||
$tinfo->{'result'}= 'MTR_RES_SKIPPED';
|
||||
if ( $tinfo->{'disable'} )
|
||||
{
|
||||
print "[ disabled ] $tinfo->{'comment'}\n";
|
||||
mtr_report("[ disabled ] $tinfo->{'comment'}");
|
||||
}
|
||||
elsif ( $tinfo->{'comment'} )
|
||||
{
|
||||
print "[ skipped ] $tinfo->{'comment'}\n";
|
||||
mtr_report("[ skipped ] $tinfo->{'comment'}");
|
||||
}
|
||||
else
|
||||
{
|
||||
print "[ skipped ]\n";
|
||||
mtr_report("[ skipped ]");
|
||||
}
|
||||
}
|
||||
|
||||
@ -142,11 +97,11 @@ sub mtr_report_test_passed ($) {
|
||||
if ( $::opt_timer and -f "$::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;
|
||||
}
|
||||
$tinfo->{'result'}= 'MTR_RES_PASSED';
|
||||
print "[ pass ] $timer\n";
|
||||
mtr_report("[ pass ] $timer");
|
||||
}
|
||||
|
||||
sub mtr_report_test_failed ($) {
|
||||
@ -155,27 +110,34 @@ sub mtr_report_test_failed ($) {
|
||||
$tinfo->{'result'}= 'MTR_RES_FAILED';
|
||||
if ( defined $tinfo->{'timeout'} )
|
||||
{
|
||||
print "[ fail ] timeout\n";
|
||||
mtr_report("[ fail ] timeout");
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
print "[ fail ]\n";
|
||||
mtr_report("[ fail ]");
|
||||
}
|
||||
|
||||
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 )
|
||||
{
|
||||
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 "\n(the last lines may be the most important ones)\n";
|
||||
print "\n";
|
||||
}
|
||||
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");;
|
||||
}
|
||||
}
|
||||
|
||||
@ -243,8 +205,10 @@ sub mtr_report_stats ($) {
|
||||
|
||||
if ( $::opt_timer )
|
||||
{
|
||||
print
|
||||
"Spent $::glob_tot_real_time seconds actually executing testcases\n"
|
||||
use English;
|
||||
|
||||
mtr_report("Spent", sprintf("%.3f", $tot_real_time),"of",
|
||||
time - $BASETIME, "seconds executing testcases");
|
||||
}
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
@ -397,35 +361,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 (@) {
|
||||
# Print message to screen and log
|
||||
_mtr_log(@_);
|
||||
print join(" ", @_),"\n";
|
||||
}
|
||||
|
||||
sub mtr_warning (@) {
|
||||
# Print message to screen and log
|
||||
_mtr_log("WARNING: ", @_);
|
||||
print STDERR "mysql-test-run: WARNING: ",join(" ", @_),"\n";
|
||||
}
|
||||
|
||||
sub mtr_error (@) {
|
||||
# Print message to screen and log
|
||||
_mtr_log("ERROR: ", @_);
|
||||
print STDERR "mysql-test-run: *** ERROR: ",join(" ", @_),"\n";
|
||||
mtr_exit(1);
|
||||
}
|
||||
|
||||
sub mtr_child_error (@) {
|
||||
# Print message to screen and log
|
||||
_mtr_log("ERROR(child): ", @_);
|
||||
print STDERR "mysql-test-run: *** ERROR(child): ",join(" ", @_),"\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
sub mtr_debug (@) {
|
||||
# Only print if --script-debug is used
|
||||
if ( $::opt_script_debug )
|
||||
{
|
||||
_mtr_log("###: ", @_);
|
||||
print STDERR "####: ",join(" ", @_),"\n";
|
||||
}
|
||||
}
|
||||
|
||||
sub mtr_verbose (@) {
|
||||
# Always print to log, print to screen only when --verbose is used
|
||||
_mtr_log("> ",@_);
|
||||
if ( $::opt_verbose )
|
||||
{
|
||||
print STDERR "> ",join(" ", @_),"\n";
|
||||
|
@ -52,12 +52,10 @@ sub mtr_init_timers () {
|
||||
sub mtr_timer_start($$$) {
|
||||
my ($timers,$name,$duration)= @_;
|
||||
|
||||
mtr_verbose("mtr_timer_start: $name, $duration");
|
||||
|
||||
if ( exists $timers->{'timers'}->{$name} )
|
||||
{
|
||||
# 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);
|
||||
}
|
||||
|
||||
@ -75,22 +73,22 @@ sub mtr_timer_start($$$) {
|
||||
}
|
||||
else
|
||||
{
|
||||
mtr_error("can't fork");
|
||||
mtr_error("can't fork timer, error: $!");
|
||||
}
|
||||
}
|
||||
|
||||
if ( $tpid )
|
||||
{
|
||||
# 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}->{'duration'}= $duration;
|
||||
$timers->{'pids'}->{$tpid}= $name;
|
||||
}
|
||||
else
|
||||
{
|
||||
# Child, redirect output and exec
|
||||
# FIXME do we need to redirect streams?
|
||||
# Child, install signal handlers and sleep for "duration"
|
||||
|
||||
# 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
|
||||
@ -98,13 +96,13 @@ sub mtr_timer_start($$$) {
|
||||
$SIG{INT}= 'DEFAULT';
|
||||
|
||||
$SIG{TERM}= sub {
|
||||
mtr_verbose("timer woke up, exiting!");
|
||||
mtr_verbose("timer $$ woke up, exiting!");
|
||||
exit(0);
|
||||
};
|
||||
|
||||
$0= "mtr_timer(timers,$name,$duration)";
|
||||
sleep($duration);
|
||||
mtr_verbose("timer expired after $duration seconds");
|
||||
mtr_verbose("timer $$ expired after $duration seconds");
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
@ -114,12 +112,10 @@ sub mtr_timer_start($$$) {
|
||||
sub mtr_timer_stop ($$) {
|
||||
my ($timers,$name)= @_;
|
||||
|
||||
mtr_verbose("mtr_timer_stop: $name");
|
||||
|
||||
if ( exists $timers->{'timers'}->{$name} )
|
||||
{
|
||||
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
|
||||
# the expected process somehow?!
|
||||
@ -134,11 +130,8 @@ sub mtr_timer_stop ($$) {
|
||||
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
mtr_error("Asked to stop timer \"$name\" not started");
|
||||
return 0;
|
||||
}
|
||||
|
||||
mtr_error("Asked to stop timer '$name' not started");
|
||||
}
|
||||
|
||||
|
||||
@ -158,7 +151,8 @@ sub mtr_timer_timeout ($$) {
|
||||
|
||||
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};
|
||||
}
|
||||
|
||||
|
@ -83,7 +83,6 @@ require "lib/mtr_io.pl";
|
||||
require "lib/mtr_gcov.pl";
|
||||
require "lib/mtr_gprof.pl";
|
||||
require "lib/mtr_report.pl";
|
||||
require "lib/mtr_diff.pl";
|
||||
require "lib/mtr_match.pl";
|
||||
require "lib/mtr_misc.pl";
|
||||
require "lib/mtr_stress.pl";
|
||||
@ -282,8 +281,6 @@ our $opt_wait_for_slave;
|
||||
|
||||
our $opt_warnings;
|
||||
|
||||
our $opt_udiff;
|
||||
|
||||
our $opt_skip_ndbcluster= 0;
|
||||
our $opt_skip_ndbcluster_slave= 0;
|
||||
our $opt_with_ndbcluster= 0;
|
||||
@ -307,7 +304,6 @@ our @data_dir_lst;
|
||||
our $used_binlog_format;
|
||||
our $used_default_engine;
|
||||
our $debug_compiled_binaries;
|
||||
our $glob_tot_real_time= 0;
|
||||
|
||||
our %mysqld_variables;
|
||||
|
||||
@ -620,7 +616,6 @@ sub command_line_setup () {
|
||||
'start-dirty' => \$opt_start_dirty,
|
||||
'start-and-exit' => \$opt_start_and_exit,
|
||||
'timer!' => \$opt_timer,
|
||||
'unified-diff|udiff' => \$opt_udiff,
|
||||
'user=s' => \$opt_user,
|
||||
'testcase-timeout=i' => \$opt_testcase_timeout,
|
||||
'suite-timeout=i' => \$opt_suite_timeout,
|
||||
@ -2905,6 +2900,9 @@ sub initialize_servers () {
|
||||
}
|
||||
}
|
||||
check_running_as_root();
|
||||
|
||||
mtr_log_init("$opt_vardir/log/mysql-test-run.log");
|
||||
|
||||
}
|
||||
|
||||
sub mysql_install_db () {
|
||||
@ -3617,7 +3615,6 @@ sub report_failure_and_restart ($) {
|
||||
my $tinfo= shift;
|
||||
|
||||
mtr_report_test_failed($tinfo);
|
||||
mtr_show_failed_diff($tinfo->{'result_file'});
|
||||
print "\n";
|
||||
if ( $opt_force )
|
||||
{
|
||||
@ -3626,13 +3623,13 @@ sub report_failure_and_restart ($) {
|
||||
|
||||
# Restore the snapshot of the installed test db
|
||||
restore_installed_db($tinfo->{'name'});
|
||||
print "Resuming Tests\n\n";
|
||||
mtr_report("Resuming Tests\n");
|
||||
return;
|
||||
}
|
||||
|
||||
my $test_mode= join(" ", @::glob_test_mode) || "default";
|
||||
print "Aborting: $tinfo->{'name'} failed in $test_mode mode. ";
|
||||
print "To continue, re-run with '--force'.\n";
|
||||
mtr_report("Aborting: $tinfo->{'name'} failed in $test_mode mode. ");
|
||||
mtr_report("To continue, re-run with '--force'.");
|
||||
if ( ! $glob_debugger and
|
||||
! $opt_extern and
|
||||
! $glob_use_embedded_server )
|
||||
@ -4090,11 +4087,11 @@ sub mysqld_start ($$$) {
|
||||
|
||||
sub stop_all_servers () {
|
||||
|
||||
print "Stopping All Servers\n";
|
||||
mtr_report("Stopping All Servers");
|
||||
|
||||
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"))
|
||||
{
|
||||
mtr_error("Failed to stop Instance Manager.")
|
||||
@ -4802,6 +4799,9 @@ sub run_mysqltest ($) {
|
||||
|
||||
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'} ) {
|
||||
mtr_add_arg($args, "--result-file=%s", $tinfo->{'result_file'});
|
||||
}
|
||||
@ -5213,7 +5213,6 @@ Misc options
|
||||
fast Don't try to clean up from earlier runs
|
||||
reorder Reorder tests to get fewer server restarts
|
||||
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)
|
||||
suite-timeout=MINUTES Max test suite run time (default $default_suite_timeout)
|
||||
|
@ -280,6 +280,18 @@ let $B = changed value of B;
|
||||
var2: content of variable 1
|
||||
var3: content of variable 1 content of variable 1
|
||||
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: Could not open file ./non_existingFile
|
||||
mysqltest: In included file "MYSQLTEST_VARDIR/tmp/recursive.sql": At line 1: Source directives are nesting too deep
|
||||
@ -461,7 +473,6 @@ root@localhost
|
||||
--------------------------------------------------------------------------------
|
||||
this will be executed
|
||||
this will be executed
|
||||
mysqltest: Result length mismatch
|
||||
mysqltest: The test didn't produce any output
|
||||
Failing multi statement query
|
||||
mysqltest: At line 3: query 'create table t1 (a int primary key);
|
||||
@ -473,6 +484,8 @@ mysqltest: At line 3: query 'create table t1 (a int primary key);
|
||||
insert into t1 values (1);
|
||||
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
|
||||
|
||||
More results from queries before failure can be found in MYSQLTEST_VARDIR/tmp/bug11731.log
|
||||
drop table t1;
|
||||
Multi statement using expected error
|
||||
create table t1 (a int primary key);
|
||||
@ -520,6 +533,8 @@ 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 'write_file'
|
||||
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
|
||||
for cat_file command
|
||||
of mysqltest
|
||||
@ -530,7 +545,7 @@ 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: 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
|
||||
hello
|
||||
|
@ -5748,6 +5748,7 @@ bug23760_rc_test(ROW_COUNT())
|
||||
DROP TABLE bug23760, bug23760_log|
|
||||
DROP PROCEDURE bug23760_update_log|
|
||||
DROP PROCEDURE bug23760_test_row_count|
|
||||
DROP PROCEDURE bug23760_test_row_count2|
|
||||
DROP FUNCTION bug23760_rc_test|
|
||||
DROP PROCEDURE IF EXISTS bug24117|
|
||||
DROP TABLE IF EXISTS t3|
|
||||
|
@ -9,12 +9,13 @@ drop table if exists t1;
|
||||
#
|
||||
# Check that --bootstrap reads from stdin
|
||||
#
|
||||
--write_file $MYSQLTEST_VARDIR/tmp/bootstrap.sql
|
||||
--write_file $MYSQLTEST_VARDIR/tmp/bootstrap_test.sql
|
||||
use test;
|
||||
CREATE TABLE t1(a int);
|
||||
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;
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/bootstrap_test.sql;
|
||||
|
||||
#
|
||||
# Check that --bootstrap of file with SQL error returns error
|
||||
@ -28,6 +29,7 @@ EOF
|
||||
# Table t1 should not exists
|
||||
--error 1051
|
||||
drop table t1;
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/bootstrap_error.sql;
|
||||
|
||||
#
|
||||
# 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;
|
||||
--enable_query_log
|
||||
--error 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;
|
||||
drop table t1;
|
||||
|
@ -241,18 +241,21 @@ DELIMITER /
|
||||
SELECT 1/
|
||||
EOF
|
||||
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug21412.sql 2>&1
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/bug21412.sql;
|
||||
|
||||
# This should give an error...
|
||||
--write_file $MYSQLTEST_VARDIR/tmp/bug21412.sql
|
||||
DELIMITER \
|
||||
EOF
|
||||
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug21412.sql 2>&1
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/bug21412.sql;
|
||||
|
||||
# As should this...
|
||||
--write_file $MYSQLTEST_VARDIR/tmp/bug21412.sql
|
||||
DELIMITER \\
|
||||
EOF
|
||||
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug21412.sql 2>&1
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/bug21412.sql;
|
||||
|
||||
#
|
||||
# Some coverage of not normally used parts
|
||||
|
@ -20,7 +20,7 @@ EOF
|
||||
--replace_regex /.*mysqladmin.*: unknown/mysqladmin: unknown/
|
||||
--error 7
|
||||
--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
|
||||
# a warning and continue
|
||||
@ -32,3 +32,4 @@ EOF
|
||||
--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
|
||||
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/bug10608.cnf;
|
||||
|
@ -366,6 +366,7 @@ show status;
|
||||
EOF
|
||||
--error 1
|
||||
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
|
||||
|
||||
#
|
||||
# Missing delimiter until eof
|
||||
@ -377,6 +378,7 @@ sleep 7
|
||||
EOF
|
||||
--error 1
|
||||
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
|
||||
|
||||
#
|
||||
# Missing delimiter until "disable_query_log"
|
||||
@ -391,6 +393,7 @@ disable_query_log;
|
||||
EOF
|
||||
--error 1
|
||||
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
|
||||
|
||||
#
|
||||
# Missing delimiter until "disable_query_log"
|
||||
@ -406,6 +409,7 @@ disable_query_log;
|
||||
EOF
|
||||
--error 1
|
||||
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
|
||||
|
||||
#
|
||||
# Missing delimiter until eof
|
||||
@ -422,6 +426,7 @@ disconnect default
|
||||
EOF
|
||||
--error 1
|
||||
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
|
||||
|
||||
#
|
||||
# Missing delimiter until eof
|
||||
@ -436,6 +441,8 @@ EOF
|
||||
--error 1
|
||||
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
|
||||
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
|
||||
|
||||
#
|
||||
# Extra delimiter
|
||||
#
|
||||
@ -734,38 +741,40 @@ if (`select length("$var3") > 0`)
|
||||
# Test to assign let from query
|
||||
# let $<var_name>=`<query>`;
|
||||
# ----------------------------------------------------------------------------
|
||||
--disable_parsing
|
||||
echo var1;
|
||||
let $var1= `select "hi" as "Col", 1 as "Column1", "hi there" as Col3`;
|
||||
echo $var1;
|
||||
echo $var1_Col;
|
||||
echo $var1_Column1;
|
||||
echo $var1_Col3;
|
||||
|
||||
echo var2;
|
||||
let $var2= `select 2 as "Column num 2"`;
|
||||
echo $var2;
|
||||
echo $var2_Column num 2;
|
||||
echo $var2_Column;
|
||||
|
||||
echo var2 again;
|
||||
let $var2= `select 2 as "Column num 2"`;
|
||||
echo $var2;
|
||||
echo $var2_Column num 2;
|
||||
echo $var2_Column_num_2;
|
||||
echo $var2_Column;
|
||||
|
||||
echo var3 two columns with same name;
|
||||
let $var3= `select 1 as "Col", 2 as "Col", 3 as "var3"`;
|
||||
echo $var3;
|
||||
echo $var3_Col;
|
||||
echo $var3_Col;
|
||||
echo $var3_var3;
|
||||
|
||||
#echo failing query in let;
|
||||
#--error 1
|
||||
#--exec echo "let $var2= `failing query;`" | $MYSQL_TEST 2>&1
|
||||
--enable_parsing
|
||||
echo var4 from query that returns NULL;
|
||||
let $var4= `select NULL`;
|
||||
|
||||
echo var5 from query that returns no row;
|
||||
let $var5= `SHOW VARIABLES LIKE "nonexisting_variable"`;
|
||||
|
||||
echo failing query in let;
|
||||
--write_file $MYSQLTEST_VARDIR/tmp/let.sql
|
||||
let $var2= `failing query`;
|
||||
echo $var2;
|
||||
EOF
|
||||
|
||||
--error 1
|
||||
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/let.sql 2>&1
|
||||
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/let.sql;
|
||||
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Test source command
|
||||
# ----------------------------------------------------------------------------
|
||||
@ -786,6 +795,7 @@ echo $var3_var3;
|
||||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||||
--error 1
|
||||
--exec echo "source $MYSQLTEST_VARDIR/tmp/recursive.sql;" | $MYSQL_TEST 2>&1
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/recursive.sql;
|
||||
|
||||
# Source a file with error
|
||||
--exec echo "garbage ;" > $MYSQLTEST_VARDIR/tmp/error.sql
|
||||
@ -793,6 +803,7 @@ echo $var3_var3;
|
||||
--error 1
|
||||
--exec echo "source $MYSQLTEST_VARDIR/tmp/error.sql;" | $MYSQL_TEST 2>&1
|
||||
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/error.sql;
|
||||
|
||||
# Test execution of source in a while loop
|
||||
--write_file $MYSQLTEST_VARDIR/tmp/sourced.inc
|
||||
@ -963,7 +974,7 @@ if (!$counter)
|
||||
echo Counter is not 0, (counter=10);
|
||||
}
|
||||
let $counter=0;
|
||||
if ($counter)
|
||||
if($counter)
|
||||
{
|
||||
echo Counter is greater than 0, (counter=0);
|
||||
}
|
||||
@ -1156,6 +1167,7 @@ echo hej;
|
||||
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
|
||||
while (0)
|
||||
@ -1163,6 +1175,7 @@ while (0)
|
||||
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
|
||||
while (0){
|
||||
@ -1171,6 +1184,8 @@ EOF
|
||||
--error 1
|
||||
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
|
||||
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Test error messages returned from comments starting with a command
|
||||
# ----------------------------------------------------------------------------
|
||||
@ -1262,6 +1277,7 @@ while ($i)
|
||||
}
|
||||
EOF
|
||||
--exec echo "source $MYSQLTEST_VARDIR/tmp/mysqltest.sql; echo OK;" | $MYSQL_TEST 2>&1
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
|
||||
|
||||
# Repeat connect/disconnect
|
||||
--write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql
|
||||
@ -1276,6 +1292,7 @@ EOF
|
||||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||||
--error 1
|
||||
--exec echo "source $MYSQLTEST_VARDIR/tmp/mysqltest.sql;" | $MYSQL_TEST 2>&1
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
|
||||
|
||||
# Select disconnected connection
|
||||
--write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql
|
||||
@ -1286,6 +1303,7 @@ EOF
|
||||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||||
--error 1
|
||||
--exec echo "source $MYSQLTEST_VARDIR/tmp/mysqltest.sql;" | $MYSQL_TEST 2>&1
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
|
||||
|
||||
# Connection name already used
|
||||
--write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql
|
||||
@ -1296,6 +1314,8 @@ EOF
|
||||
--error 1
|
||||
--exec echo "source $MYSQLTEST_VARDIR/tmp/mysqltest.sql;" | $MYSQL_TEST 2>&1
|
||||
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
|
||||
|
||||
# connect when "disable_abort_on_error" caused "connection not found"
|
||||
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
|
||||
--disable_abort_on_error
|
||||
@ -1399,7 +1419,11 @@ select "this will be executed";
|
||||
--exec touch $MYSQLTEST_VARDIR/tmp/zero_length_file.result
|
||||
--exec echo "echo ok;" > $MYSQLTEST_VARDIR/tmp/query.sql
|
||||
--error 1
|
||||
--exec $MYSQL_TEST -x $MYSQLTEST_VARDIR/tmp/query.sql -R $MYSQLTEST_VARDIR/tmp/zero_length_file.result 2>&1
|
||||
--exec $MYSQL_TEST -x $MYSQLTEST_VARDIR/tmp/query.sql -R $MYSQLTEST_VARDIR/tmp/zero_length_file.result > /dev/null 2>&1
|
||||
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/zero_length_file.result;
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/zero_length_file.reject;
|
||||
|
||||
#
|
||||
# Test that a test file that does not generate any output fails.
|
||||
#
|
||||
@ -1407,6 +1431,8 @@ select "this will be executed";
|
||||
--error 1
|
||||
--exec $MYSQL_TEST -x $MYSQLTEST_VARDIR/tmp/query.sql 2>&1
|
||||
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/query.sql;
|
||||
|
||||
#
|
||||
# Test that mysqltest fails when there are no queries executed
|
||||
# but a result file exists
|
||||
@ -1436,6 +1462,7 @@ echo Failing multi statement query;
|
||||
--exec $MYSQL_TEST -x $MYSQLTEST_VARDIR/tmp/bug11731.sql 2>&1
|
||||
drop table t1;
|
||||
|
||||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||||
--error 1
|
||||
--exec $MYSQL_TEST --record -x $MYSQLTEST_VARDIR/tmp/bug11731.sql -R $MYSQLTEST_VARDIR/tmp/bug11731.out 2>&1
|
||||
# The .out file should be non existent
|
||||
@ -1462,6 +1489,9 @@ drop table t1;
|
||||
# The .out file should exist
|
||||
--exec test -s $MYSQLTEST_VARDIR/tmp/bug11731.out
|
||||
drop table t1;
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/bug11731.out;
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/bug11731.log;
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/bug11731.sql;
|
||||
|
||||
#
|
||||
# Bug#19890 mysqltest: "query" command is broken
|
||||
@ -1544,12 +1574,19 @@ write_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp;
|
||||
Content for test_file1
|
||||
EOF
|
||||
file_exists $MYSQLTEST_VARDIR/tmp/test_file1.tmp;
|
||||
cat_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp;
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp;
|
||||
|
||||
write_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp END_DELIMITER;
|
||||
Content for test_file1 contains EOF
|
||||
END_DELIMITER
|
||||
file_exists $MYSQLTEST_VARDIR/tmp/test_file1.tmp;
|
||||
|
||||
# write to already exisiting file
|
||||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||||
--error 1
|
||||
--exec echo "write_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp;" | $MYSQL_TEST 2>&1
|
||||
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp;
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
@ -1571,6 +1608,8 @@ append_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp;
|
||||
Appended text on nonexisting file
|
||||
EOF
|
||||
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp;
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# test for cat_file
|
||||
# ----------------------------------------------------------------------------
|
||||
@ -1581,6 +1620,7 @@ for cat_file command
|
||||
of mysqltest
|
||||
EOF
|
||||
cat_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp;
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp;
|
||||
|
||||
--error 1
|
||||
--exec echo "cat_file non_existing_file;" | $MYSQL_TEST 2>&1
|
||||
@ -1607,19 +1647,48 @@ for diff_file command
|
||||
of mysqltest
|
||||
EOF
|
||||
|
||||
--write_file $MYSQLTEST_VARDIR/tmp/diff4.tmp
|
||||
Some data
|
||||
for diff_file command
|
||||
of musqltest
|
||||
EOF
|
||||
|
||||
# Compare equal files
|
||||
--diff_files $MYSQLTEST_VARDIR/tmp/diff1.tmp $MYSQLTEST_VARDIR/tmp/diff2.tmp
|
||||
--diff_files $MYSQLTEST_VARDIR/tmp/diff2.tmp $MYSQLTEST_VARDIR/tmp/diff1.tmp
|
||||
|
||||
# Compare files that differ
|
||||
--error 1
|
||||
--diff_files $MYSQLTEST_VARDIR/tmp/diff3.tmp $MYSQLTEST_VARDIR/tmp/diff2.tmp
|
||||
--error 1
|
||||
# Write the below commands to a intermediary file and execute them with
|
||||
# mysqltest in --exec, since the output will vary depending on what "diff"
|
||||
# is available it is sent to /dev/null
|
||||
--write_file $MYSQLTEST_VARDIR/tmp/diff.test
|
||||
# Compare files that differ in size
|
||||
--error 2
|
||||
--diff_files $MYSQLTEST_VARDIR/tmp/diff1.tmp $MYSQLTEST_VARDIR/tmp/diff3.tmp
|
||||
--error 2
|
||||
--diff_files $MYSQLTEST_VARDIR/tmp/diff3.tmp $MYSQLTEST_VARDIR/tmp/diff1.tmp
|
||||
|
||||
# Compare files that differ only in content
|
||||
--error 1
|
||||
--diff_files $MYSQLTEST_VARDIR/tmp/diff1.tmp $MYSQLTEST_VARDIR/tmp/diff4.tmp
|
||||
--error 1
|
||||
--diff_files $MYSQLTEST_VARDIR/tmp/diff4.tmp $MYSQLTEST_VARDIR/tmp/diff1.tmp
|
||||
EOF
|
||||
|
||||
# Execute the above diffs, and send their output to /dev/null - only
|
||||
# interesting to see that it returns correct error codes
|
||||
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/diff.test > /dev/null 2>&1
|
||||
|
||||
|
||||
# Compare equal files, again...
|
||||
--diff_files $MYSQLTEST_VARDIR/tmp/diff1.tmp $MYSQLTEST_VARDIR/tmp/diff2.tmp
|
||||
|
||||
--remove_file $MYSQLTEST_VARDIR/tmp/diff1.tmp
|
||||
--remove_file $MYSQLTEST_VARDIR/tmp/diff2.tmp
|
||||
--remove_file $MYSQLTEST_VARDIR/tmp/diff3.tmp
|
||||
--remove_file $MYSQLTEST_VARDIR/tmp/diff4.tmp
|
||||
--remove_file $MYSQLTEST_VARDIR/tmp/diff.test
|
||||
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# test for file_exist
|
||||
# ----------------------------------------------------------------------------
|
||||
@ -1672,6 +1741,7 @@ chmod 0000 $MYSQLTEST_VARDIR/tmp/file1.tmp;
|
||||
#EOF
|
||||
|
||||
chmod 0777 $MYSQLTEST_VARDIR/tmp/file1.tmp;
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/file1.tmp;
|
||||
--write_file $MYSQLTEST_VARDIR/tmp/file1.tmp
|
||||
test2
|
||||
EOF
|
||||
|
@ -42,6 +42,7 @@ insert into t1 values (0);
|
||||
flush table mysql.proc;
|
||||
|
||||
# Thrashing the .frm file
|
||||
--remove_file $MYSQLTEST_VARDIR/master-data/mysql/proc.frm
|
||||
--write_file $MYSQLTEST_VARDIR/master-data/mysql/proc.frm
|
||||
saljdfa
|
||||
EOF
|
||||
|
@ -6715,6 +6715,7 @@ SELECT bug23760_rc_test(ROW_COUNT())|
|
||||
DROP TABLE bug23760, bug23760_log|
|
||||
DROP PROCEDURE bug23760_update_log|
|
||||
DROP PROCEDURE bug23760_test_row_count|
|
||||
DROP PROCEDURE bug23760_test_row_count2|
|
||||
DROP FUNCTION bug23760_rc_test|
|
||||
|
||||
#
|
||||
|
Reference in New Issue
Block a user