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;
 }