You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by mm...@apache.org on 2014/02/14 16:03:18 UTC
svn commit: r1568332 - in /spamassassin/trunk/t: SATest.pm dnsbl_subtests.t
Author: mmartinec
Date: Fri Feb 14 15:03:17 2014
New Revision: 1568332
URL: http://svn.apache.org/r1568332
Log:
Bug 7000: dnsbl_subtests.t hangs on Windows
Modified:
spamassassin/trunk/t/SATest.pm
spamassassin/trunk/t/dnsbl_subtests.t
Modified: spamassassin/trunk/t/SATest.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/SATest.pm?rev=1568332&r1=1568331&r2=1568332&view=diff
==============================================================================
--- spamassassin/trunk/t/SATest.pm (original)
+++ spamassassin/trunk/t/SATest.pm Fri Feb 14 15:03:17 2014
@@ -14,29 +14,30 @@ use File::Path;
use File::Spec;
use POSIX qw(WIFEXITED WIFSIGNALED WIFSTOPPED WEXITSTATUS WTERMSIG WSTOPSIG);
+use vars qw($RUNNING_ON_WINDOWS $SSL_AVAILABLE
+ $SKIP_SPAMD_TESTS $SKIP_SPAMC_TESTS $NO_SPAMC_EXE
+ $SKIP_SETUID_NOBODY_TESTS $SKIP_DNSBL_TESTS
+ $have_inet4 $have_inet6 $spamdhost $spamdport);
+
BEGIN {
require Exporter;
use vars qw(@ISA @EXPORT @EXPORT_OK);
@ISA = qw(Exporter);
- use vars qw($have_inet4 $have_inet6 $spamdhost $spamdport);
@EXPORT = qw($have_inet4 $have_inet6 $spamdhost $spamdport);
# No spamd test in Windows unless env override says user figured out a way
# If you want to know why these are vars and no constants, read this thread:
# <http://www.mail-archive.com/dev%40perl.apache.org/msg05466.html>
# -- mss, 2004-01-13
- our $RUNNING_ON_WINDOWS = ($^O =~ /^(mswin|dos|os2)/oi);
- our $SKIP_SPAMD_TESTS =
+ $RUNNING_ON_WINDOWS = ($^O =~ /^(mswin|dos|os2)/oi);
+ $SKIP_SPAMD_TESTS =
$RUNNING_ON_WINDOWS ||
( $ENV{'SPAMD_HOST'} && !($ENV{'SPAMD_HOST'} eq '127.0.0.1' ||
$ENV{'SPAMD_HOST'} eq '::1' ||
$ENV{'SPAMD_HOST'} eq 'localhost') );
- our $NO_SPAMC_EXE;
- our $SKIP_SPAMC_TESTS;
- our $SSL_AVAILABLE;
- our $SKIP_SETUID_NOBODY_TESTS = 0;
- our $SKIP_DNSBL_TESTS = 0;
+ $SKIP_SETUID_NOBODY_TESTS = 0;
+ $SKIP_DNSBL_TESTS = 0;
$have_inet4 = eval {
require IO::Socket::INET;
Modified: spamassassin/trunk/t/dnsbl_subtests.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/dnsbl_subtests.t?rev=1568332&r1=1568331&r2=1568332&view=diff
==============================================================================
--- spamassassin/trunk/t/dnsbl_subtests.t (original)
+++ spamassassin/trunk/t/dnsbl_subtests.t Fri Feb 14 15:03:17 2014
@@ -365,7 +365,22 @@ test_samples(
if ($pid) {
kill('TERM',$pid) or die "Cannot stop a DNS server [$pid]: $!";
- waitpid($pid,0);
+
+# Bug 7000: Seems like a DNS server process can't be terminated. [...]
+# Reason is "waitpid($pid,0)". If commented out, it does not hang.
+# There are no extra processes after end of this test.
+#
+# perlfunc: waitpid - waiting for a particular pid with FLAGS of 0 is
+# implemented everywhere
+#
+# perlport: (Win32) waitpid Can only be applied to process handles returned
+# for processes spawned using "system(1, ...)" or pseudo processes created
+# with "fork()".
+#
+# so ... waitpid($pid,0) should work on Windows, but it doesn't - nevermind:
+
+ waitpid($pid,0) unless $RUNNING_ON_WINDOWS;
+
undef $pid;
}