Commit 6bc475c5 authored by unknown's avatar unknown

Merge bk-internal.mysql.com:/home/bk/mysql-4.1-maint

into  rolltop.ignatz42.dyndns.org:/mnt/storeage/mysql-4.1-maint


mysql-test/mysql-test-run.pl:
  Auto merged
parents 65e36462 3465d0c0
...@@ -66,6 +66,9 @@ sub mtr_add_arg ($$@) { ...@@ -66,6 +66,9 @@ sub mtr_add_arg ($$@) {
############################################################################## ##############################################################################
# Note - More specific paths should be given before less specific. For examle
# /client/debug should be listed before /client
sub mtr_path_exists (@) { sub mtr_path_exists (@) {
foreach my $path ( @_ ) foreach my $path ( @_ )
{ {
...@@ -81,6 +84,9 @@ sub mtr_path_exists (@) { ...@@ -81,6 +84,9 @@ sub mtr_path_exists (@) {
} }
} }
# Note - More specific paths should be given before less specific. For examle
# /client/debug should be listed before /client
sub mtr_script_exists (@) { sub mtr_script_exists (@) {
foreach my $path ( @_ ) foreach my $path ( @_ )
{ {
...@@ -103,6 +109,9 @@ sub mtr_script_exists (@) { ...@@ -103,6 +109,9 @@ sub mtr_script_exists (@) {
} }
} }
# Note - More specific paths should be given before less specific. For examle
# /client/debug should be listed before /client
sub mtr_file_exists (@) { sub mtr_file_exists (@) {
foreach my $path ( @_ ) foreach my $path ( @_ )
{ {
...@@ -111,6 +120,9 @@ sub mtr_file_exists (@) { ...@@ -111,6 +120,9 @@ sub mtr_file_exists (@) {
return ""; return "";
} }
# Note - More specific paths should be given before less specific. For examle
# /client/debug should be listed before /client
sub mtr_exe_maybe_exists (@) { sub mtr_exe_maybe_exists (@) {
my @path= @_; my @path= @_;
...@@ -129,6 +141,9 @@ sub mtr_exe_maybe_exists (@) { ...@@ -129,6 +141,9 @@ sub mtr_exe_maybe_exists (@) {
return ""; return "";
} }
# Note - More specific paths should be given before less specific. For examle
# /client/debug should be listed before /client
sub mtr_exe_exists (@) { sub mtr_exe_exists (@) {
my @path= @_; my @path= @_;
if (my $path= mtr_exe_maybe_exists(@path)) if (my $path= mtr_exe_maybe_exists(@path))
......
...@@ -68,6 +68,9 @@ use strict; ...@@ -68,6 +68,9 @@ use strict;
use warnings; use warnings;
use diagnostics; use diagnostics;
select(STDOUT);
$| = 1; # Automatically flush STDOUT
our $glob_win32_perl= ($^O eq "MSWin32"); # ActiveState Win32 Perl our $glob_win32_perl= ($^O eq "MSWin32"); # ActiveState Win32 Perl
our $glob_cygwin_perl= ($^O eq "cygwin"); # Cygwin Perl our $glob_cygwin_perl= ($^O eq "cygwin"); # Cygwin Perl
our $glob_win32= ($glob_win32_perl or $glob_cygwin_perl); our $glob_win32= ($glob_win32_perl or $glob_cygwin_perl);
...@@ -127,6 +130,12 @@ our $opt_vardir; # A path but set directly on cmd line ...@@ -127,6 +130,12 @@ our $opt_vardir; # A path but set directly on cmd line
our $path_vardir_trace; # unix formatted opt_vardir for trace files our $path_vardir_trace; # unix formatted opt_vardir for trace files
our $opt_tmpdir; # A path but set directly on cmd line our $opt_tmpdir; # A path but set directly on cmd line
# Visual Studio produces executables in different sub-directories based on the
# configuration used to build them. To make life easier, an environment
# variable or command-line option may be specified to control which set of
# executables will be used by the test suite.
our $opt_vs_config = $ENV{'MTR_VS_CONFIG'};
our $default_vardir; our $default_vardir;
our $opt_usage; our $opt_usage;
...@@ -351,7 +360,6 @@ main(); ...@@ -351,7 +360,6 @@ main();
sub main () { sub main () {
initial_setup();
command_line_setup(); command_line_setup();
check_ndbcluster_support(\%mysqld_variables); check_ndbcluster_support(\%mysqld_variables);
...@@ -433,86 +441,6 @@ sub main () { ...@@ -433,86 +441,6 @@ sub main () {
mtr_exit(0); mtr_exit(0);
} }
##############################################################################
#
# Initial setup independent on command line arguments
#
##############################################################################
sub initial_setup () {
select(STDOUT);
$| = 1; # Make unbuffered
$glob_scriptname= basename($0);
# We require that we are in the "mysql-test" directory
# to run mysql-test-run
if (! -f $glob_scriptname)
{
mtr_error("Can't find the location for the mysql-test-run script\n" .
"Go to to the mysql-test directory and execute the script " .
"as follows:\n./$glob_scriptname");
}
if ( -d "../sql" )
{
$opt_source_dist= 1;
}
$glob_hostname= mtr_short_hostname();
# 'basedir' is always parent of "mysql-test" directory
$glob_mysql_test_dir= cwd();
if ( $glob_cygwin_perl )
{
# Windows programs like 'mysqld' needs Windows paths
$glob_mysql_test_dir= `cygpath -m "$glob_mysql_test_dir"`;
chomp($glob_mysql_test_dir);
}
$glob_basedir= dirname($glob_mysql_test_dir);
# Expect mysql-bench to be located adjacent to the source tree, by default
$glob_mysql_bench_dir= "$glob_basedir/../mysql-bench"
unless defined $glob_mysql_bench_dir;
$path_my_basedir=
$opt_source_dist ? $glob_mysql_test_dir : $glob_basedir;
$glob_timers= mtr_init_timers();
#
# Find the mysqld executable to be able to find the mysqld version
# number as early as possible
#
# Look for the path where to find the client binaries
$path_client_bindir= mtr_path_exists("$glob_basedir/client_release",
"$glob_basedir/client_debug",
"$glob_basedir/client/release",
"$glob_basedir/client/debug",
"$glob_basedir/client",
"$glob_basedir/bin");
# Look for the mysqld executable
$exe_mysqld= mtr_exe_exists ("$glob_basedir/sql/mysqld",
"$path_client_bindir/mysqld-max-nt",
"$path_client_bindir/mysqld-max",
"$path_client_bindir/mysqld-nt",
"$path_client_bindir/mysqld",
"$path_client_bindir/mysqld-debug",
"$path_client_bindir/mysqld-max",
"$glob_basedir/libexec/mysqld",
"$glob_basedir/bin/mysqld",
"$glob_basedir/sql/release/mysqld",
"$glob_basedir/sql/debug/mysqld");
# Use the mysqld found above to find out what features are available
collect_mysqld_features();
}
############################################################################## ##############################################################################
# #
...@@ -590,6 +518,7 @@ sub command_line_setup () { ...@@ -590,6 +518,7 @@ sub command_line_setup () {
'bench' => \$opt_bench, 'bench' => \$opt_bench,
'small-bench' => \$opt_small_bench, 'small-bench' => \$opt_small_bench,
'with-ndbcluster' => \$opt_with_ndbcluster, 'with-ndbcluster' => \$opt_with_ndbcluster,
'vs-config' => \$opt_vs_config,
# Control what test suites or cases to run # Control what test suites or cases to run
'force' => \$opt_force, 'force' => \$opt_force,
...@@ -695,6 +624,68 @@ sub command_line_setup () { ...@@ -695,6 +624,68 @@ sub command_line_setup () {
usage("") if $opt_usage; usage("") if $opt_usage;
$glob_scriptname= basename($0);
# We require that we are in the "mysql-test" directory
# to run mysql-test-run
if (! -f $glob_scriptname)
{
mtr_error("Can't find the location for the mysql-test-run script\n" .
"Go to to the mysql-test directory and execute the script " .
"as follows:\n./$glob_scriptname");
}
if ( -d "../sql" )
{
$opt_source_dist= 1;
}
$glob_hostname= mtr_short_hostname();
# 'basedir' is always parent of "mysql-test" directory
$glob_mysql_test_dir= cwd();
if ( $glob_cygwin_perl )
{
# Windows programs like 'mysqld' needs Windows paths
$glob_mysql_test_dir= `cygpath -m "$glob_mysql_test_dir"`;
chomp($glob_mysql_test_dir);
}
$glob_basedir= dirname($glob_mysql_test_dir);
# Expect mysql-bench to be located adjacent to the source tree, by default
$glob_mysql_bench_dir= "$glob_basedir/../mysql-bench"
unless defined $glob_mysql_bench_dir;
$path_my_basedir=
$opt_source_dist ? $glob_mysql_test_dir : $glob_basedir;
$glob_timers= mtr_init_timers();
#
# Find the mysqld executable to be able to find the mysqld version
# number as early as possible
#
# Look for the client binaries
$path_client_bindir= mtr_path_exists(vs_config_dirs('client', ''),
"$glob_basedir/client_release",
"$glob_basedir/client_debug",
"$glob_basedir/client");
$exe_mysqld= mtr_exe_exists (vs_config_dirs('sql', 'mysqld'),
"$glob_basedir/sql/mysqld",
"$path_client_bindir/mysqld-max-nt",
"$path_client_bindir/mysqld-max",
"$path_client_bindir/mysqld-nt",
"$path_client_bindir/mysqld",
"$path_client_bindir/mysqld-debug",
"$path_client_bindir/mysqld-max",
"$glob_basedir/libexec/mysqld",
"$glob_basedir/bin/mysqld");
# Use the mysqld found above to find out what features are available
collect_mysqld_features();
if ( $opt_comment ) if ( $opt_comment )
{ {
print "\n"; print "\n";
...@@ -1396,16 +1387,14 @@ sub executable_setup () { ...@@ -1396,16 +1387,14 @@ sub executable_setup () {
# Look for my_print_defaults # Look for my_print_defaults
$exe_my_print_defaults= $exe_my_print_defaults=
mtr_exe_exists("$path_client_bindir/my_print_defaults", mtr_exe_exists(vs_config_dirs('extra', 'my_print_defaults'),
"$glob_basedir/extra/my_print_defaults", "$path_client_bindir/my_print_defaults",
"$glob_basedir/extra/release/my_print_defaults", "$glob_basedir/extra/my_print_defaults");
"$glob_basedir/extra/debug/my_print_defaults");
# Look for perror # Look for perror
$exe_perror= mtr_exe_exists("$glob_basedir/extra/perror", $exe_perror= mtr_exe_exists(vs_config_dirs('extra', 'perror'),
"$path_client_bindir/perror", "$glob_basedir/extra/perror",
"$glob_basedir/extra/release/perror", "$path_client_bindir/perror");
"$glob_basedir/extra/debug/perror");
# Look for the client binaries # Look for the client binaries
$exe_mysqlcheck= mtr_exe_exists("$path_client_bindir/mysqlcheck"); $exe_mysqlcheck= mtr_exe_exists("$path_client_bindir/mysqlcheck");
...@@ -1451,22 +1440,20 @@ sub executable_setup () { ...@@ -1451,22 +1440,20 @@ sub executable_setup () {
# Look for the udf_example library # Look for the udf_example library
$lib_udf_example= $lib_udf_example=
mtr_file_exists("$glob_basedir/sql/.libs/udf_example.so", mtr_file_exists(vs_config_dirs('sql', 'udf_example.dll'),
"$glob_basedir/sql/release/udf_example.dll", "$glob_basedir/sql/.libs/udf_example.so",);
"$glob_basedir/sql/debug/udf_example.dll");
# Look for mysqltest executable # Look for mysqltest executable
if ( $glob_use_embedded_server ) if ( $glob_use_embedded_server )
{ {
$exe_mysqltest= $exe_mysqltest=
mtr_exe_exists("$glob_basedir/libmysqld/examples/mysqltest_embedded", mtr_exe_exists(vs_config_dirs('libmysqld/examples', 'mysqltest_embedded'),
"$glob_basedir/libmysqld/examples/mysqltest_embedded",
"$path_client_bindir/mysqltest_embedded"); "$path_client_bindir/mysqltest_embedded");
} }
else else
{ {
$exe_mysqltest= mtr_exe_exists("$path_client_bindir/mysqltest"); $exe_mysqltest= mtr_exe_exists("$path_client_bindir/mysqltest");
} }
# Look for mysql_client_test executable which may _not_ exist in # Look for mysql_client_test executable which may _not_ exist in
...@@ -1475,14 +1462,14 @@ sub executable_setup () { ...@@ -1475,14 +1462,14 @@ sub executable_setup () {
{ {
$exe_mysql_client_test= $exe_mysql_client_test=
mtr_exe_maybe_exists( mtr_exe_maybe_exists(
vs_config_dirs('libmysqld/examples', 'mysql_client_test_embedded'),
"$glob_basedir/libmysqld/examples/mysql_client_test_embedded"); "$glob_basedir/libmysqld/examples/mysql_client_test_embedded");
} }
else else
{ {
$exe_mysql_client_test= $exe_mysql_client_test=
mtr_exe_maybe_exists("$glob_basedir/tests/mysql_client_test", mtr_exe_maybe_exists(vs_config_dirs('tests', 'mysql_client_test'),
"$glob_basedir/tests/release/mysql_client_test", "$glob_basedir/tests/mysql_client_test",
"$glob_basedir/tests/debug/mysql_client_test",
"$glob_basedir/bin"); "$glob_basedir/bin");
} }
} }
...@@ -2099,6 +2086,31 @@ sub check_debug_support ($) { ...@@ -2099,6 +2086,31 @@ sub check_debug_support ($) {
$debug_compiled_binaries= 1; $debug_compiled_binaries= 1;
} }
##############################################################################
#
# Helper function to handle configuration-based subdirectories which Visual
# Studio uses for storing binaries. If opt_vs_config is set, this returns
# a path based on that setting; if not, it returns paths for the default
# /release/ and /debug/ subdirectories.
#
# $exe can be undefined, if the directory itself will be used
#
###############################################################################
sub vs_config_dirs ($$) {
my ($path_part, $exe) = @_;
$exe = "" if not defined $exe;
if ($opt_vs_config)
{
return ("$glob_basedir/$path_part/$opt_vs_config/$exe");
}
return ("$glob_basedir/$path_part/release/$exe",
"$glob_basedir/$path_part/debug/$exe");
}
############################################################################## ##############################################################################
# #
# Start the ndb cluster # Start the ndb cluster
...@@ -4618,6 +4630,8 @@ Options to control what engine/variation to run ...@@ -4618,6 +4630,8 @@ Options to control what engine/variation to run
bench Run the benchmark suite bench Run the benchmark suite
small-bench Run the benchmarks with --small-tests --small-tables small-bench Run the benchmarks with --small-tests --small-tables
with-ndbcluster Use cluster as default table type for benchmark with-ndbcluster Use cluster as default table type for benchmark
vs-config Visual Studio configuration used to create executables
(default: MTR_VS_CONFIG environment variable)
Options to control directories to use Options to control directories to use
benchdir=DIR The directory where the benchmark suite is stored benchdir=DIR The directory where the benchmark suite is stored
......
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