summaryrefslogtreecommitdiff
path: root/mysql-test/mysql-test-run.pl
diff options
context:
space:
mode:
authorunknown <kent@mysql.com>2005-01-03 16:54:08 +0100
committerunknown <kent@mysql.com>2005-01-03 16:54:08 +0100
commitc8cfe3d211366b353eaefe47a78817508d3dac9a (patch)
treec9fa40f7ffdfddd5dda31ac933b2496dc418b251 /mysql-test/mysql-test-run.pl
parent07290e3348137508a8616e836644c463ca3c53be (diff)
downloadmariadb-git-c8cfe3d211366b353eaefe47a78817508d3dac9a.tar.gz
mtr_process.pl:
Added missing stop_reap_all() if returns early from function mysql-test-run.pl: Improved output from --script-debug Initial Cygwin support Improved mysqld process termination mysql-test/mysql-test-run.pl: Improved output from --script-debug Initial Cygwin support Improved mysqld process termination mysql-test/lib/mtr_process.pl: Added missing stop_reap_all() if returns early from function
Diffstat (limited to 'mysql-test/mysql-test-run.pl')
-rwxr-xr-xmysql-test/mysql-test-run.pl56
1 files changed, 38 insertions, 18 deletions
diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl
index 5565d29fb7b..01729aa1018 100755
--- a/mysql-test/mysql-test-run.pl
+++ b/mysql-test/mysql-test-run.pl
@@ -67,6 +67,11 @@
# is to use the Devel::Trace package found at
# "http://www.plover.com/~mjd/perl/Trace/" and run this script like
# "perl -d:Trace mysql-test-run.pl"
+#
+# FIXME Save a PID file from this code as well, to record the process
+# id we think it has. In Cygwin, a fork creates one Cygwin process,
+# and then the real Win32 process. Cygwin Perl can only kill Cygwin
+# processes. And "mysqld --bootstrap ..." doesn't save a PID file.
$Devel::Trace::TRACE= 0; # Don't trace boring init stuff
@@ -147,7 +152,9 @@ our @mysqld_src_dirs=
# Misc global variables
-our $glob_win32= 0;
+our $glob_win32= 0; # OS and native Win32 executables
+our $glob_win32_perl= 0; # ActiveState Win32 Perl
+our $glob_cygwin_perl= 0; # Cygwin Perl
our $glob_mysql_test_dir= undef;
our $glob_mysql_bench_dir= undef;
our $glob_hostname= undef;
@@ -383,7 +390,9 @@ sub initial_setup () {
$glob_scriptname= basename($0);
- $glob_win32= ($^O eq "MSWin32");
+ $glob_win32_perl= ($^O eq "MSWin32");
+ $glob_cygwin_perl= ($^O eq "cygwin");
+ $glob_win32= ($glob_win32_perl or $glob_cygwin_perl);
# We require that we are in the "mysql-test" directory
# to run mysql-test-run
@@ -404,6 +413,12 @@ sub initial_setup () {
# '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);
$glob_mysql_bench_dir= "$glob_basedir/mysql-bench"; # FIXME make configurable
@@ -991,7 +1006,7 @@ sub collect_test_cases ($) {
if ( -f $master_sh )
{
- if ( $glob_win32 )
+ if ( $glob_win32_perl )
{
$tinfo->{'skip'}= 1;
}
@@ -1004,7 +1019,7 @@ sub collect_test_cases ($) {
if ( -f $slave_sh )
{
- if ( $glob_win32 )
+ if ( $glob_win32_perl )
{
$tinfo->{'skip'}= 1;
}
@@ -1115,6 +1130,7 @@ sub sleep_until_file_created ($$) {
{
return;
}
+ mtr_debug("Sleep for 1 second waiting for creation of $pidfile");
sleep(1);
}
@@ -1396,6 +1412,8 @@ sub run_testcase ($) {
# the preparation.
# ----------------------------------------------------------------------
+ mtr_report_test_name($tinfo);
+
mtr_tofile($master->[0]->{'path_myerr'},"CURRENT_TEST: $tname\n");
do_before_start_master($tname,$tinfo->{'master_sh'});
@@ -1403,8 +1421,6 @@ sub run_testcase ($) {
# Start masters
# ----------------------------------------------------------------------
- mtr_report_test_name($tinfo);
-
if ( ! $glob_use_running_server and ! $glob_use_embedded_server )
{
# FIXME give the args to the embedded server?!
@@ -1914,15 +1930,17 @@ sub stop_masters () {
# the mysqld process from being killed
if ( $master->[$idx]->{'pid'} )
{
- push(@args,
- $master->[$idx]->{'path_mypid'},
- $master->[$idx]->{'path_mysock'},
- );
- $master->[$idx]->{'pid'}= 0;
+ push(@args,{
+ pid => $master->[$idx]->{'pid'},
+ pidfile => $master->[$idx]->{'path_mypid'},
+ sockfile => $master->[$idx]->{'path_mysock'},
+ port => $master->[$idx]->{'path_myport'},
+ });
+ $master->[$idx]->{'pid'}= 0; # Assume we are done with it
}
}
- mtr_stop_servers(\@args);
+ mtr_stop_mysqld_servers(\@args, 0);
}
sub stop_slaves () {
@@ -1934,15 +1952,17 @@ sub stop_slaves () {
{
if ( $slave->[$idx]->{'pid'} )
{
- push(@args,
- $slave->[$idx]->{'path_mypid'},
- $slave->[$idx]->{'path_mysock'},
- );
- $slave->[$idx]->{'pid'}= 0;
+ push(@args,{
+ pid => $slave->[$idx]->{'pid'},
+ pidfile => $slave->[$idx]->{'path_mypid'},
+ sockfile => $slave->[$idx]->{'path_mysock'},
+ port => $slave->[$idx]->{'path_myport'},
+ });
+ $slave->[$idx]->{'pid'}= 0; # Assume we are done with it
}
}
- mtr_stop_servers(\@args);
+ mtr_stop_mysqld_servers(\@args, 0);
}