summaryrefslogtreecommitdiff
path: root/mysql-test/lib
diff options
context:
space:
mode:
authorunknown <kent@mysql.com>2005-08-17 01:26:19 +0200
committerunknown <kent@mysql.com>2005-08-17 01:26:19 +0200
commitdfffd46772c8dd3b86cc084c8ebb03ce2bf28cfd (patch)
treee1e2ea3ea8c1145dbd5f2ae24ed2d914ceacbcd5 /mysql-test/lib
parent8fd77a045c3bf4f08e6c9e00f94692690d01b6f5 (diff)
parentee793d030e4221a5226ea6337deecd84b4337f63 (diff)
downloadmariadb-git-dfffd46772c8dd3b86cc084c8ebb03ce2bf28cfd.tar.gz
Merge mysql.com:/Users/kent/mysql/bk/mysql-4.1
into mysql.com:/Users/kent/mysql/bk/mysql-5.0 mysql-test/lib/mtr_cases.pl: Auto merged
Diffstat (limited to 'mysql-test/lib')
-rw-r--r--mysql-test/lib/mtr_cases.pl27
-rw-r--r--mysql-test/lib/mtr_process.pl37
-rw-r--r--mysql-test/lib/mtr_report.pl1
3 files changed, 39 insertions, 26 deletions
diff --git a/mysql-test/lib/mtr_cases.pl b/mysql-test/lib/mtr_cases.pl
index 12714ddc1ad..158fd602ef8 100644
--- a/mysql-test/lib/mtr_cases.pl
+++ b/mysql-test/lib/mtr_cases.pl
@@ -53,21 +53,20 @@ sub collect_test_cases ($) {
else
{
# ----------------------------------------------------------------------
- # Skip some tests listed in disabled.def
+ # Disable some tests listed in disabled.def
# ----------------------------------------------------------------------
- my %skiplist;
- my $skipfile= "$testdir/disabled.def";
- if ( open(SKIPFILE, $skipfile) )
+ my %disabled;
+ if ( open(DISABLED, "$testdir/disabled.def" ) )
{
- while ( <SKIPFILE> )
+ while ( <DISABLED> )
{
chomp;
if ( /^\s*(\S+)\s*:\s*(.*?)\s*$/ )
{
- $skiplist{$1}= $2;
+ $disabled{$1}= $2;
}
}
- close SKIPFILE;
+ close DISABLED;
}
foreach my $elem ( sort readdir(TESTDIR) ) {
@@ -75,7 +74,7 @@ sub collect_test_cases ($) {
next if ! defined $tname;
next if $::opt_do_test and ! defined mtr_match_prefix($elem,$::opt_do_test);
- collect_one_test_case($testdir,$resdir,$tname,$elem,$cases,\%skiplist);
+ collect_one_test_case($testdir,$resdir,$tname,$elem,$cases,\%disabled);
}
closedir TESTDIR;
}
@@ -119,7 +118,7 @@ sub collect_one_test_case($$$$$$) {
my $tname= shift;
my $elem= shift;
my $cases= shift;
- my $skiplist=shift;
+ my $disabled=shift;
my $path= "$testdir/$elem";
@@ -188,7 +187,7 @@ sub collect_one_test_case($$$$$$) {
my $slave_mi_file= "$testdir/$tname.slave-mi";
my $master_sh= "$testdir/$tname-master.sh";
my $slave_sh= "$testdir/$tname-slave.sh";
- my $disabled= "$testdir/$tname.disabled";
+ my $disabled_file= "$testdir/$tname.disabled";
$tinfo->{'master_opt'}= $::glob_win32 ? ["--default-time-zone=+3:00"] : [];
$tinfo->{'slave_opt'}= $::glob_win32 ? ["--default-time-zone=+3:00"] : [];
@@ -292,18 +291,18 @@ sub collect_one_test_case($$$$$$) {
}
# FIXME why this late?
- if ( $skiplist->{$tname} )
+ if ( $disabled->{$tname} )
{
$tinfo->{'skip'}= 1;
$tinfo->{'disable'}= 1; # Sub type of 'skip'
- $tinfo->{'comment'}= $skiplist->{$tname} if $skiplist->{$tname};
+ $tinfo->{'comment'}= $disabled->{$tname} if $disabled->{$tname};
}
- if ( -f $disabled )
+ if ( -f $disabled_file )
{
$tinfo->{'skip'}= 1;
$tinfo->{'disable'}= 1; # Sub type of 'skip'
- $tinfo->{'comment'}= mtr_fromfile($disabled);
+ $tinfo->{'comment'}= mtr_fromfile($disabled_file);
}
# We can't restart a running server that may be in use
diff --git a/mysql-test/lib/mtr_process.pl b/mysql-test/lib/mtr_process.pl
index e4cdaff1e77..1f18968031c 100644
--- a/mysql-test/lib/mtr_process.pl
+++ b/mysql-test/lib/mtr_process.pl
@@ -186,8 +186,8 @@ sub spawn_parent_impl {
if ( $mode eq 'run' or $mode eq 'test' )
{
my $exit_value= -1;
- my $signal_num= 0;
- my $dumped_core= 0;
+# my $signal_num= 0;
+# my $dumped_core= 0;
if ( $mode eq 'run' )
{
@@ -199,9 +199,10 @@ sub spawn_parent_impl {
mtr_error("$path ($pid) got lost somehow");
}
- $exit_value= $? >> 8;
- $signal_num= $? & 127;
- $dumped_core= $? & 128;
+ $exit_value= $?;
+# $exit_value= $? >> 8;
+# $signal_num= $? & 127;
+# $dumped_core= $? & 128;
return $exit_value;
}
@@ -229,9 +230,10 @@ sub spawn_parent_impl {
if ( $ret_pid == $pid )
{
# We got termination of mysqltest, we are done
- $exit_value= $? >> 8;
- $signal_num= $? & 127;
- $dumped_core= $? & 128;
+ $exit_value= $?;
+# $exit_value= $? >> 8;
+# $signal_num= $? & 127;
+# $dumped_core= $? & 128;
last;
}
@@ -473,6 +475,7 @@ sub mtr_stop_mysqld_servers ($) {
}
else
{
+ # Server is dead, we remove the pidfile if any
# Race, could have been removed between I tested with -f
# and the unlink() below, so I better check again with -f
@@ -502,10 +505,12 @@ sub mtr_stop_mysqld_servers ($) {
# that for true Win32 processes, kill(0,$pid) will not return 1.
# ----------------------------------------------------------------------
+ start_reap_all(); # Avoid zombies
+
SIGNAL:
foreach my $sig (15,9)
{
- my $retries= 10; # 10 seconds
+ my $retries= 20; # FIXME 20 seconds, this is silly!
kill($sig, keys %mysqld_pids);
while ( $retries-- and kill(0, keys %mysqld_pids) )
{
@@ -514,6 +519,8 @@ sub mtr_stop_mysqld_servers ($) {
}
}
+ stop_reap_all(); # Get into control again
+
# ----------------------------------------------------------------------
# Now, we check if all we can find using kill(0,$pid) are dead,
# and just assume the rest are. We cleanup socket and PID files.
@@ -632,7 +639,8 @@ sub mtr_mysqladmin_shutdown () {
$mysql_admin_pids{$pid}= 1;
}
- # We wait blocking, we wait for the last one anyway
+ # As mysqladmin is such a simple program, we trust it to terminate.
+ # I.e. we wait blocking, and wait wait for them all before we go on.
while (keys %mysql_admin_pids)
{
foreach my $pid (keys %mysql_admin_pids)
@@ -651,7 +659,8 @@ sub mtr_mysqladmin_shutdown () {
my $timeout= 20; # 20 seconds max
my $res= 1; # If we just fall through, we are done
-
+ # in the sense that the servers don't
+ # listen to their ports any longer
TIME:
while ( $timeout-- )
{
@@ -669,6 +678,8 @@ sub mtr_mysqladmin_shutdown () {
last; # If we got here, we are done
}
+ $timeout or mtr_debug("At least one server is still listening to its port");
+
sleep(5) if $::glob_win32; # FIXME next startup fails if no sleep
return $res;
@@ -794,8 +805,12 @@ sub sleep_until_file_created ($$$) {
#
##############################################################################
+# FIXME something is wrong, we sometimes terminate with "Hangup" written
+# to tty, and no STDERR output telling us why.
+
sub mtr_exit ($) {
my $code= shift;
+# cluck("Called mtr_exit()");
local $SIG{HUP} = 'IGNORE';
kill('HUP', -$$);
exit($code);
diff --git a/mysql-test/lib/mtr_report.pl b/mysql-test/lib/mtr_report.pl
index 0af34d11a3f..b9dab6b8d32 100644
--- a/mysql-test/lib/mtr_report.pl
+++ b/mysql-test/lib/mtr_report.pl
@@ -10,7 +10,6 @@ sub mtr_report_test_name($);
sub mtr_report_test_passed($);
sub mtr_report_test_failed($);
sub mtr_report_test_skipped($);
-sub mtr_report_test_disabled($);
sub mtr_show_failed_diff ($);
sub mtr_report_stats ($);