Commit e74d5313 authored by unknown's avatar unknown

mysql-test-run.pl:

  More compact and safe handling of path names.
  Support for running in Windows source tree.
  Use libtool wrapper, instead of messing with
  library path names, and objects in .libs dir.
mtr_misc.pl:
  Utility function that search aand check path names
mtr_report.pl:
  Patch by Carsten, set correct reject/result/eval if not main suite


mysql-test/lib/mtr_report.pl:
  Patch by Carsten, set correct reject/result/eval if not main suite
mysql-test/lib/mtr_misc.pl:
  Utility function that search aand check path names
mysql-test/mysql-test-run.pl:
  More compact and safe handling of path names.
  Support for running in Windows source tree.
  Use libtool wrapper, instead of messing with
  library path names, and objects in .libs dir.
parent e17de6ec
...@@ -9,6 +9,9 @@ use strict; ...@@ -9,6 +9,9 @@ use strict;
sub mtr_full_hostname (); sub mtr_full_hostname ();
sub mtr_init_args ($); sub mtr_init_args ($);
sub mtr_add_arg ($$); sub mtr_add_arg ($$);
sub mtr_path_exists(@);
sub mtr_script_exists(@);
sub mtr_exe_exists(@);
############################################################################## ##############################################################################
# #
...@@ -47,4 +50,53 @@ sub mtr_add_arg ($$) { ...@@ -47,4 +50,53 @@ sub mtr_add_arg ($$) {
push(@$args, sprintf($format, @fargs)); push(@$args, sprintf($format, @fargs));
} }
##############################################################################
sub mtr_path_exists (@) {
foreach my $path ( @_ )
{
return $path if -e $path;
}
if ( @_ == 1 )
{
mtr_error("Could not find $_[0]");
}
else
{
mtr_error("Could not find any of " . join(" ", @_));
}
}
sub mtr_script_exists (@) {
foreach my $path ( @_ )
{
return $path if -x $path;
}
if ( @_ == 1 )
{
mtr_error("Could not find $_[0]");
}
else
{
mtr_error("Could not find any of " . join(" ", @_));
}
}
sub mtr_exe_exists (@) {
foreach my $path ( @_ )
{
$path.= ".exe" if $::opt_win32;
return $path if -x $path;
}
if ( @_ == 1 )
{
mtr_error("Could not find $_[0]");
}
else
{
mtr_error("Could not find any of " . join(" ", @_));
}
}
1; 1;
...@@ -38,6 +38,13 @@ sub mtr_show_failed_diff ($) { ...@@ -38,6 +38,13 @@ sub mtr_show_failed_diff ($) {
my $result_file= "r/$tname.result"; my $result_file= "r/$tname.result";
my $eval_file= "r/$tname.eval"; 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";
}
if ( -f $eval_file ) if ( -f $eval_file )
{ {
$result_file= $eval_file; $result_file= $eval_file;
......
...@@ -770,146 +770,83 @@ sub executable_setup () { ...@@ -770,146 +770,83 @@ sub executable_setup () {
if ( $opt_source_dist ) if ( $opt_source_dist )
{ {
if ( $glob_use_embedded_server ) if ( $glob_win32 )
{
if ( -f "$glob_basedir/libmysqld/examples/mysqltest" )
{
$exe_mysqltest= "$glob_basedir/libmysqld/examples/mysqltest";
}
else
{
mtr_error("Can't find embedded server 'mysqltest'");
}
$exe_mysql_client_test=
"$glob_basedir/libmysqld/examples/mysql_client_test_embedded";
}
else
{
if ( -f "$glob_basedir/client/.libs/lt-mysqltest" )
{
$exe_mysqltest= "$glob_basedir/client/.libs/lt-mysqltest";
}
elsif ( -f "$glob_basedir/client/.libs/mysqltest" )
{
$exe_mysqltest= "$glob_basedir/client/.libs/mysqltest";
}
else
{
$exe_mysqltest= "$glob_basedir/client/mysqltest";
}
$exe_mysql_client_test=
"$glob_basedir/tests/mysql_client_test";
}
if ( -f "$glob_basedir/client/.libs/mysqldump" )
{
$exe_mysqldump= "$glob_basedir/client/.libs/mysqldump";
}
else
{
$exe_mysqldump= "$glob_basedir/client/mysqldump";
}
if ( -f "$glob_basedir/client/.libs/mysqlshow" )
{ {
$exe_mysqlshow= "$glob_basedir/client/.libs/mysqlshow"; $path_client_bindir= mtr_path_exists("$glob_basedir/client_release");
$exe_mysqld= mtr_exe_exists ("$path_client_bindir/mysqld-nt");
$path_language= mtr_path_exists("$glob_basedir/share/english/");
$path_charsetsdir= mtr_path_exists("$glob_basedir/share/charsets");
} }
else else
{ {
$exe_mysqlshow= "$glob_basedir/client/mysqlshow"; $path_client_bindir= mtr_path_exists("$glob_basedir/client");
$exe_mysqld= mtr_exe_exists ("$glob_basedir/sql/mysqld");
$path_language= mtr_path_exists("$glob_basedir/sql/share/english/");
$path_charsetsdir= mtr_path_exists("$glob_basedir/sql/share/charsets");
} }
if ( -f "$glob_basedir/client/.libs/mysqlbinlog" )
if ( $glob_use_embedded_server )
{ {
$exe_mysqlbinlog= "$glob_basedir/client/.libs/mysqlbinlog"; my $path_examples= "$glob_basedir/libmysqld/examples";
$exe_mysqltest= mtr_exe_exists("$path_examples/mysqltest");
$exe_mysql_client_test=
mtr_exe_exists("$path_examples/mysql_client_test_embedded");
} }
else else
{ {
$exe_mysqlbinlog= "$glob_basedir/client/mysqlbinlog"; $exe_mysqltest= mtr_exe_exists("$glob_basedir/client/mysqltest");
$exe_mysql_client_test=
mtr_exe_exists("$glob_basedir/tests/mysql_client_test");
} }
$exe_mysqldump= mtr_exe_exists("$path_client_bindir/mysqldump");
$path_client_bindir= "$glob_basedir/client"; $exe_mysqlshow= mtr_exe_exists("$path_client_bindir/mysqlshow");
$exe_mysqld= "$glob_basedir/sql/mysqld"; $exe_mysqlbinlog= mtr_exe_exists("$path_client_bindir/mysqlbinlog");
$exe_mysqladmin= "$path_client_bindir/mysqladmin"; $exe_mysqladmin= mtr_exe_exists("$path_client_bindir/mysqladmin");
$exe_mysql= "$path_client_bindir/mysql"; $exe_mysql= mtr_exe_exists("$path_client_bindir/mysql");
$exe_mysql_fix_system_tables= "$glob_basedir/scripts/mysql_fix_privilege_tables"; $exe_mysql_fix_system_tables=
$path_language= "$glob_basedir/sql/share/english/"; mtr_script_exists("$glob_basedir/scripts/mysql_fix_privilege_tables");
$path_charsetsdir= "$glob_basedir/sql/share/charsets"; $path_ndb_tools_dir= mtr_path_exists("$glob_basedir/ndb/tools");
$exe_ndb_mgm= "$glob_basedir/ndb/src/mgmclient/ndb_mgm";
$path_ndb_tools_dir= "$glob_basedir/ndb/tools";
$exe_ndb_mgm= "$glob_basedir/ndb/src/mgmclient/ndb_mgm";
} }
else else
{ {
my $path_tests_bindir= "$glob_basedir/tests"; $path_client_bindir= mtr_path_exists("$glob_basedir/bin");
$exe_mysqltest= mtr_exe_exists("$path_client_bindir/mysqltest");
$path_client_bindir= "$glob_basedir/bin"; $exe_mysqldump= mtr_exe_exists("$path_client_bindir/mysqldump");
$exe_mysqltest= "$path_client_bindir/mysqltest"; $exe_mysqlshow= mtr_exe_exists("$path_client_bindir/mysqlshow");
$exe_mysqldump= "$path_client_bindir/mysqldump"; $exe_mysqlbinlog= mtr_exe_exists("$path_client_bindir/mysqlbinlog");
$exe_mysqlshow= "$path_client_bindir/mysqlshow"; $exe_mysqladmin= mtr_exe_exists("$path_client_bindir/mysqladmin");
$exe_mysqlbinlog= "$path_client_bindir/mysqlbinlog"; $exe_mysql= mtr_exe_exists("$path_client_bindir/mysql");
$exe_mysqladmin= "$path_client_bindir/mysqladmin"; $exe_mysql_fix_system_tables=
$exe_mysql= "$path_client_bindir/mysql"; mtr_script_exists("$path_client_bindir/mysql_fix_privilege_tables");
$exe_mysql_fix_system_tables= "$path_client_bindir/mysql_fix_privilege_tables";
$path_language= mtr_path_exists("$glob_basedir/share/mysql/english/",
if ( -d "$glob_basedir/share/mysql/english" ) "$glob_basedir/share/english/");
{ $path_charsetsdir= mtr_path_exists("$glob_basedir/share/mysql/charsets",
$path_language ="$glob_basedir/share/mysql/english/"; "$glob_basedir/share/charsets");
$path_charsetsdir ="$glob_basedir/share/mysql/charsets"; $exe_mysqld= mtr_exe_exists ("$glob_basedir/libexec/mysqld",
} "$glob_basedir/bin/mysqld");
else
{
$path_language ="$glob_basedir/share/english/";
$path_charsetsdir ="$glob_basedir/share/charsets";
}
if ( -x "$glob_basedir/libexec/mysqld" )
{
$exe_mysqld= "$glob_basedir/libexec/mysqld";
}
else
{
$exe_mysqld= "$glob_basedir/bin/mysqld";
}
if ( $glob_use_embedded_server ) if ( $glob_use_embedded_server )
{ {
if ( -f "$path_client_bindir/mysqltest_embedded" ) $exe_mysqltest= mtr_exe_exists("$path_client_bindir/mysqltest_embedded");
{ $exe_mysql_client_test=
# FIXME valgrind? mtr_exe_exists("$glob_basedir/tests/mysql_client_test_embedded",
$exe_mysqltest="$path_client_bindir/mysqltest_embedded"; "$path_client_bindir/mysql_client_test_embedded");
}
else
{
mtr_error("Cannot find embedded server 'mysqltest_embedded'");
}
if ( -d "$path_tests_bindir/mysql_client_test_embedded" )
{
$exe_mysql_client_test=
"$path_tests_bindir/mysql_client_test_embedded";
}
else
{
$exe_mysql_client_test=
"$path_client_bindir/mysql_client_test_embedded";
}
} }
else else
{ {
$exe_mysqltest="$path_client_bindir/mysqltest"; $exe_mysqltest= mtr_exe_exists("$path_client_bindir/mysqltest");
$exe_mysql_client_test="$path_client_bindir/mysql_client_test"; $exe_mysql_client_test=
mtr_exe_exists("$path_client_bindir/mysql_client_test");
} }
$path_ndb_tools_dir= "$glob_basedir/bin"; $path_ndb_tools_dir= "$glob_basedir/bin";
$exe_ndb_mgm= "$glob_basedir/bin/ndb_mgm"; $exe_ndb_mgm= "$glob_basedir/bin/ndb_mgm";
} }
if ( ! $exe_master_mysqld ) $exe_master_mysqld= $exe_master_mysqld || $exe_mysqld;
{ $exe_slave_mysqld= $exe_slave_mysqld || $exe_mysqld;
$exe_master_mysqld= $exe_mysqld;
}
if ( ! $exe_slave_mysqld )
{
$exe_slave_mysqld= $exe_mysqld;
}
$path_ndb_backup_dir= $path_ndb_backup_dir=
"$opt_vardir/ndbcluster-$opt_ndbcluster_port"; "$opt_vardir/ndbcluster-$opt_ndbcluster_port";
...@@ -928,15 +865,19 @@ sub executable_setup () { ...@@ -928,15 +865,19 @@ sub executable_setup () {
sub environment_setup () { sub environment_setup () {
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
# Set LD_LIBRARY_PATH if we are using shared libraries # We might not use a standard installation directory, like /usr/lib.
# Set LD_LIBRARY_PATH to make sure we find our installed libraries.
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
$ENV{'LD_LIBRARY_PATH'}= unless ( $opt_source_dist )
"$glob_basedir/lib:$glob_basedir/libmysql/.libs" . {
($ENV{'LD_LIBRARY_PATH'} ? ":$ENV{'LD_LIBRARY_PATH'}" : ""); $ENV{'LD_LIBRARY_PATH'}=
$ENV{'DYLD_LIBRARY_PATH'}= "$glob_basedir/lib" .
"$glob_basedir/lib:$glob_basedir/libmysql/.libs" . ($ENV{'LD_LIBRARY_PATH'} ? ":$ENV{'LD_LIBRARY_PATH'}" : "");
($ENV{'DYLD_LIBRARY_PATH'} ? ":$ENV{'DYLD_LIBRARY_PATH'}" : ""); $ENV{'DYLD_LIBRARY_PATH'}=
"$glob_basedir/lib" .
($ENV{'DYLD_LIBRARY_PATH'} ? ":$ENV{'DYLD_LIBRARY_PATH'}" : "");
}
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
# Also command lines in .opt files may contain env vars # Also command lines in .opt files may contain env vars
......
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