Smoking on Win32

[email protected] ("Mattia Barbon")
Newsgroups perl.daily-build
Message-ID <3B9CD8F4.8399.F63F15@localhost>
Hello,
I downloaded Test::Smoke 1.06, and it does not support smoking
on Win32.
Attached there is a patch _for discussion_ ( incomplete,
does only support dmake + MSVC5 ), and an example smoke.

Discussion about some parts of the patch:
diff -b -u -r Test-Smoke-1.06.orig/mktest.pl Test-Smoke-
1.06/mktest.pl
--- Test-Smoke-1.06.orig/mktest.pl	Mon Sep 03 12:32:57 2001
+++ Test-Smoke-1.06/mktest.pl	Sun Sep 09 00:43:10 2001
@@ -43,6 +44,26 @@
     return qx($command);
     } # run
 
+sub make ($) {
+  my $cmd = shift;
+
+  if( is_win32() ) {
+    my( $kill_err );
+    # don't capture STDERR
+    $cmd =~ s{2\s*>\s*/dev/null\s*$}{} and $kill_err = 1; 
+    $cmd = 'dmake -f smoke.mk ' . $cmd;
+    chdir 'win32' or die "unable to chdir() into 'win32'";
+    if( $kill_err ) {
+      run qq{$^X -e "close STDERR;system '$cmd'"};
+    } else {
+      run $cmd;
+    }
+    chdir '..' or die "unable to chdir() out of 'win32'";
+  } else {
+    run "make $cmd";
+  }
+}
+
 sub ttylog (@)
 {
     print TTY @_;
@@ -208,7 +229,7 @@
 	    }
 
 	print TTY "Make distclean ...";
-	run "make -i distclean 2>/dev/null";
+	make "-i distclean 2>/dev/null";
 
 	print TTY "\nCopy Policy.sh ...";


called as 'make "test";' or 'make "foo 2>/dev/null";'
Win32 makefiles reside
in the win32/ subdir. This code tries to handle 2>/dev/null,
but it is probably better to have something like
make 'target',
	 'STDERR' => 'STDOUT',
	 'STDOUT' => '/dev/null';
( suggestions welcome )

@@ -241,27 +262,35 @@
 	    }
 
 	print TTY "\nConfigure ...";
-	run "./Configure $config_args -des";
+	run "./Configure $config_args -des", 
+          is_win32() ? \&Configure : undef;

See below for discussion about this.

-	unless ($norun or (-f "Makefile" && -s "config.sh")) {
+	unless ($norun or ( is_win32() ?
+                            -f 'win32/smoke.mk' :
+                            -f "Makefile" && -s "config.sh")) {
 	    ttylog " Unable to configure perl in this configuration\n";
 	    next;
 	    }
 
 	print TTY "\nMake headers ...";
-	run "make regen_headers";
+        #FIXME makefile.mk doesn't have it
+	make "regen_headers";
+        # needed for updates to smoke.mk to propagate in config.h
+        make "regen_config_h" if is_win32();

Win32 makefiles don't have a 'regen_headers' target;
In addition, Win32 Makefiles have some modifiable settings
( USE_MULTI, USE_ITHREADS, USE_IMP_SYS, USE_PERLIO ), however
two of them ( USE_PERLIO, USE_ITHREADS ) do not affect CFLAGS,
and need a make regen_config_h to take effect.
I don't know if this is the right thing to do. Probably a
question for p5p.


 	print TTY "\nMake ...";
-	run "make";
+        make ' ';
 
-	unless ($norun or (-s "perl" && -x _)) {
+        use Config;
+        my $perl = "perl$Config{_exe}";
+	unless ($norun or (-s $perl && -x _)) {
 	    ttylog " Unable to make perl in this configuration\n";
 	    next;
 	    }
 
-	$norun or unlink "t/perl";
-	run "make test-prep";
-	unless ($norun or -l "t/perl") {
+	$norun or unlink "t/$perl";
+	make "test-prep";
+	unless ($norun or ( is_win32() ? -f "t/$perl" : -l "t/$perl" ) ) {
 	    ttylog " Unable to test perl in this configuration\n";
 	    next;
 	    }
@@ -277,7 +306,15 @@
 		next;
 		}
 
+            #FIXME kludge
+            if( is_win32() ) {
+                chdir 'win32' or die "unable to chdir() into 
'win32'";
+                open TST, "dmake -f smoke.mk test |";
+                chdir '..' or die "unable to chdir() out of 
'win32'";
+            } else {
 	    open TST, "make test |";
+            }
+
 	    my @nok = ();
 	    select ((select (TST), $| = 1)[0]);
 	    while (<TST>) {

Some obvious win32 compability

@@ -339,10 +376,16 @@
 		if (@harness) {
 		    local $ENV{PERL_SKIP_TTY_TEST} = 1;
 		    print TTY "\nExtending failures with Harness\n";
+                    my $harness = is_win32() ?
+                        join ' ', map { s{^\.\.[/\\]}{};
+                                        m/^(?:lib|ext)/ and $_ = 
"../$_";
+                                        $_ } @harness :
+                            "@harness";

On win32 all text results point to ../somedir/sometext,
however for harness to work properly, tests in 
lib/ and ext/ need to be prefixed with ../, while
the ones in t/ must not.


The sub below takes a ./Configure command line and makes some
modifications to win32/makefile.mk, writing them to smoke.mk

+
+sub Configure {
+  local $_;
+  my %opt_map = ( '-Dusethreads' => 'USE_ITHREADS',
+                  '-Duseithreads' => 'USE_ITHREADS',
+                  '-Duseperlio' => 'USE_PERLIO',
+                  '-Dusemultiplicity' => 'USE_MULTI',
+                  '-DDEBUGGING' => 'USE_DEBUGGING',
+                );
+  my %opts = ( USE_MULTI => 0,
+               USE_ITHREADS => 0,
+               USE_IMP_SYS => 0,
+               USE_PERLIO => 0,
+               USE_DEBUGGIMG => 0,
+             );
+
+  my $command = shift;
+  ttylog $command;
+  $command =~ m{^\s*\./Configure\s+(.*)} or die "unable to parse 
command";
+  my @args = split ' ', $1;
+  foreach ( @args ) {
+    m/^-[des]{1,3}$/ && next;
+    m/^-Dusedevel$/ && next;
+    die "invalid option '$_'" unless exists $opt_map{$_};
+    $opts{$opt_map{$_}} = 1;
+  }
+
+  local( *IN, *OUT );
+  my $in =  'win32/makefile.mk';
+  my $out = 'win32/smoke.mk';
+
+  open IN, "< $in" or die "unable to open '$in'";
+  open OUT, "> $out" or die "unable to open '$out'";
+  while ( <IN> ) {
+    if ( m/^\s*#?\s*(USE_\w+)(\s*\*?=\s*define)$/ ) {
+      $_ = ( $opts{$1} ? '' : '#' ) . $1 . $2 . "\n";
+    } elsif( m/^\s*#?\s*(CFG\s*\*?=\s*Debug)$/ ) {
+      $_ = ( $opts{USE_DEBUGGING} ? '' : '#' ) . $1 . "\n";

+    } elsif( m/^\s*#?\s*(CCTYPE\s*\*?=\s*)(\w+)$/ ) {
+      $_ = ( $2 eq 'MSVC' ? '' : '#' ) . $1 . $2 . "\n";
+    } elsif( m/^\s*CC\s*=\s*cl$/ ) {
+      chomp;
+      $_ .= " -nologo\n";
These two ( CC = .. and CCTYPE = ... ), along with
CCHOME, BCCOLD, BCCVCL, IS_WIN95, are related to
the tester's environment; The options I see are
* add some fake flags ( -cc=... -cctype=, etc )
  This make easy to smoke with various compilers at one time
* put these in some config file ( a new section in
  smoke.cfg, o a new environment.cfg )
* pass them on the command line
  perl mktext.pl CC=xxx CCTYPE=yyy smoke.cfg

Comments?

+    }
+
+    print OUT $_;
+  }
+}
 
 __END__
 #!/bin/sh

diff -b -u -r Test-Smoke-1.06.orig/mkovz.pl Test-Smoke-1.06/mkovz.pl
--- Test-Smoke-1.06.orig/mkovz.pl	Mon Sep 03 12:32:50 2001
+++ Test-Smoke-1.06/mkovz.pl	Sun Sep 09 00:02:17 2001
@@ -22,9 +22,15 @@
 $rpt{patch} = "?";
 my $out = "$testd/mktest.out";
 open OUT, "<$out" or die "Can't open $out: $!";
+my @last_lines = ( 1 .. 5 );
 for (<OUT>) {
     m/^\s*$/ and next;
     m/^-+$/  and next;
+
+    pop @last_lines;
+    unshift @last_lines, $_;
+    chomp $last_lines[0];
+
     if (m/^\s*Smoking patch (\d+)/) {
 	$rpt{patch} = $1;
 	next;
@@ -80,6 +86,15 @@
 	$rpt{$conf}{$debug}{perlio} = $1;
 	next;
 	}
+    if (m/^\s*FAILED/ || m/^\s*DIED/) {
+        foreach my $i ( @last_lines ) {
+            if( $i =~ m/\.\./ ) {
+                push @{$rpt{$conf}{$debug}{$perlio}}, $i . substr( 
$_, 3 );
+		last;                
+                }
+            }
+        next;
+        }
     if (m/FAILED/) {
 	push @{$rpt{$conf}{$debug}{$perlio}}, $_;
 	next;

On win32 I found some of that in 'make test' output
..\lib/File/Find/t/taint..............dubious
	Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 28
	Failed 1/45 tests, 97.78% okay (-18 skipped tests: 26 okay, 57.78%)

and this ends up as
DIED. FAILED test 28
in mktest.rpt, without any mention of the test script
so if I ges a "DIED" or "FAILED" at the beginning of the line,
I look back the last 5 lines for something containing '..'
( the line with the test name )

Regards
Mattia

diff -b -u -r Test-Smoke-1.06.orig/mktest.pl Test-Smoke-1.06/mktest.pl
--- Test-Smoke-1.06.orig/mktest.pl	Mon Sep 03 12:32:57 2001
+++ Test-Smoke-1.06/mktest.pl	Sun Sep 09 00:43:10 2001
@@ -30,6 +30,7 @@
 open LOG,    "> mktest.out";	select ((select (LOG),    $| = 1)[0]);
 				select ((select (STDOUT), $| = 1)[0]);
 
+sub is_win32() { $^O eq 'MSWin32' }
 # Run a system command or a perl subroutine, unless -n was flagged.
 sub run ($;$)
 {
@@ -43,6 +44,26 @@
     return qx($command);
     } # run
 
+sub make ($) {
+  my $cmd = shift;
+
+  if( is_win32() ) {
+    my( $kill_err );
+    # don't capture STDERR
+    $cmd =~ s{2\s*>\s*/dev/null\s*$}{} and $kill_err = 1; 
+    $cmd = 'dmake -f smoke.mk ' . $cmd;
+    chdir 'win32' or die "unable to chdir() into 'win32'";
+    if( $kill_err ) {
+      run qq{$^X -e "close STDERR;system '$cmd'"};
+    } else {
+      run $cmd;
+    }
+    chdir '..' or die "unable to chdir() out of 'win32'";
+  } else {
+    run "make $cmd";
+  }
+}
+
 sub ttylog (@)
 {
     print TTY @_;
@@ -208,7 +229,7 @@
 	    }
 
 	print TTY "Make distclean ...";
-	run "make -i distclean 2>/dev/null";
+	make "-i distclean 2>/dev/null";
 
 	print TTY "\nCopy Policy.sh ...";
 
@@ -241,27 +262,35 @@
 	    }
 
 	print TTY "\nConfigure ...";
-	run "./Configure $config_args -des";
+	run "./Configure $config_args -des", 
+          is_win32() ? \&Configure : undef;
 
-	unless ($norun or (-f "Makefile" && -s "config.sh")) {
+	unless ($norun or ( is_win32() ?
+                            -f 'win32/smoke.mk' :
+                            -f "Makefile" && -s "config.sh")) {
 	    ttylog " Unable to configure perl in this configuration\n";
 	    next;
 	    }
 
 	print TTY "\nMake headers ...";
-	run "make regen_headers";
+        #FIXME makefile.mk doesn't have it
+	make "regen_headers";
+        # needed for updates to smoke.mk to propagate in config.h
+        make "regen_config_h" if is_win32();
 
 	print TTY "\nMake ...";
-	run "make";
+        make ' ';
 
-	unless ($norun or (-s "perl" && -x _)) {
+        use Config;
+        my $perl = "perl$Config{_exe}";
+	unless ($norun or (-s $perl && -x _)) {
 	    ttylog " Unable to make perl in this configuration\n";
 	    next;
 	    }
 
-	$norun or unlink "t/perl";
-	run "make test-prep";
-	unless ($norun or -l "t/perl") {
+	$norun or unlink "t/$perl";
+	make "test-prep";
+	unless ($norun or ( is_win32() ? -f "t/$perl" : -l "t/$perl" ) ) {
 	    ttylog " Unable to test perl in this configuration\n";
 	    next;
 	    }
@@ -277,7 +306,15 @@
 		next;
 		}
 
+            #FIXME kludge
+            if( is_win32() ) {
+                chdir 'win32' or die "unable to chdir() into 'win32'";
+                open TST, "dmake -f smoke.mk test |";
+                chdir '..' or die "unable to chdir() out of 'win32'";
+            } else {
 	    open TST, "make test |";
+            }
+
 	    my @nok = ();
 	    select ((select (TST), $| = 1)[0]);
 	    while (<TST>) {
@@ -339,10 +376,16 @@
 		if (@harness) {
 		    local $ENV{PERL_SKIP_TTY_TEST} = 1;
 		    print TTY "\nExtending failures with Harness\n";
+                    my $harness = is_win32() ?
+                        join ' ', map { s{^\.\.[/\\]}{};
+                                        m/^(?:lib|ext)/ and $_ = "../$_";
+                                        $_ } @harness :
+                            "@harness";
 		    push @nok, "\n",
 			grep !m:\bFAILED tests\b: &&
-			    !m:% okay$: => run "./perl t/harness @harness";
-
+			    !m:% okay$: => run is_win32() ?
+                                ".\\perl.exe t/harness @harness" :
+                                "./perl t/harness @harness";
 		    open  NOK, ">> perl.nok.$$";
 		    print NOK $p_conf->[1] eq $s_conf ? "\n" :
 			     ($p_conf->[1] =  $s_conf);
@@ -415,6 +458,54 @@
 else {
     unlink "perl.nok";
     }
+
+sub Configure {
+  local $_;
+  my %opt_map = ( '-Dusethreads' => 'USE_ITHREADS',
+                  '-Duseithreads' => 'USE_ITHREADS',
+                  '-Duseperlio' => 'USE_PERLIO',
+                  '-Dusemultiplicity' => 'USE_MULTI',
+                  '-DDEBUGGING' => 'USE_DEBUGGING',
+                );
+  my %opts = ( USE_MULTI => 0,
+               USE_ITHREADS => 0,
+               USE_IMP_SYS => 0,
+               USE_PERLIO => 0,
+               USE_DEBUGGIMG => 0,
+             );
+
+  my $command = shift;
+  ttylog $command;
+  $command =~ m{^\s*\./Configure\s+(.*)} or die "unable to parse command";
+  my @args = split ' ', $1;
+  foreach ( @args ) {
+    m/^-[des]{1,3}$/ && next;
+    m/^-Dusedevel$/ && next;
+    die "invalid option '$_'" unless exists $opt_map{$_};
+    $opts{$opt_map{$_}} = 1;
+  }
+
+  local( *IN, *OUT );
+  my $in =  'win32/makefile.mk';
+  my $out = 'win32/smoke.mk';
+
+  open IN, "< $in" or die "unable to open '$in'";
+  open OUT, "> $out" or die "unable to open '$out'";
+  while ( <IN> ) {
+    if ( m/^\s*#?\s*(USE_\w+)(\s*\*?=\s*define)$/ ) {
+      $_ = ( $opts{$1} ? '' : '#' ) . $1 . $2 . "\n";
+    } elsif( m/^\s*#?\s*(CFG\s*\*?=\s*Debug)$/ ) {
+      $_ = ( $opts{USE_DEBUGGING} ? '' : '#' ) . $1 . "\n";
+    } elsif( m/^\s*#?\s*(CCTYPE\s*\*?=\s*)(\w+)$/ ) {
+      $_ = ( $2 eq 'MSVC' ? '' : '#' ) . $1 . $2 . "\n";
+    } elsif( m/^\s*CC\s*=\s*cl$/ ) {
+      chomp;
+      $_ .= " -nologo\n";
+    }
+
+    print OUT $_;
+  }
+}
 
 __END__
 #!/bin/sh
diff -b -u -r Test-Smoke-1.06.orig/smoke.cfg Test-Smoke-1.06/smoke.cfg
--- Test-Smoke-1.06.orig/smoke.cfg	Wed Aug 29 15:58:08 2001
+++ Test-Smoke-1.06/smoke.cfg	Sat Sep 08 21:21:28 2001
@@ -19,14 +19,13 @@
 
 -Dusethreads -Duseithreads
 ==
-
--Uuseperlio
 -Duseperlio
--Duseperlio -Duse64bitint
--Duseperlio -Duse64bitall
--Duseperlio -Duselongdouble
--Duseperlio -Dusemorebits
--Duseperlio -Duse64bitall -Duselongdouble
+#-Duseperlio
+#-Duseperlio -Duse64bitint
+#-Duseperlio -Duse64bitall
+#-Duseperlio -Duselongdouble
+#-Duseperlio -Dusemorebits
+#-Duseperlio -Duse64bitall -Duselongdouble
 ==
 # The pattern must have leading and trailing '/' characters in this
 # configuration file. The smoke tester will globally substitute this pattern
@@ -49,6 +48,8 @@
 # spaces.   This lets you have one section  testing  ("", "-DDEBUGGING"),  a
 # second testing ("", "-DCRIPPLED_CC") and have cflags set correctly for the
 # 4 combinations.
-/-DDEBUGGING/
+#/-DDEBUGGING/
+#
+#-DDEBUGGING
 
 -DDEBUGGING
diff -b -u -r Test-Smoke-1.06.orig/mkovz.pl Test-Smoke-1.06/mkovz.pl
--- Test-Smoke-1.06.orig/mkovz.pl	Mon Sep 03 12:32:50 2001
+++ Test-Smoke-1.06/mkovz.pl	Sun Sep 09 00:02:17 2001
@@ -22,9 +22,15 @@
 $rpt{patch} = "?";
 my $out = "$testd/mktest.out";
 open OUT, "<$out" or die "Can't open $out: $!";
+my @last_lines = ( 1 .. 5 );
 for (<OUT>) {
     m/^\s*$/ and next;
     m/^-+$/  and next;
+
+    pop @last_lines;
+    unshift @last_lines, $_;
+    chomp $last_lines[0];
+
     if (m/^\s*Smoking patch (\d+)/) {
 	$rpt{patch} = $1;
 	next;
@@ -80,6 +86,15 @@
 	$rpt{$conf}{$debug}{perlio} = $1;
 	next;
 	}
+    if (m/^\s*FAILED/ || m/^\s*DIED/) {
+        foreach my $i ( @last_lines ) {
+            if( $i =~ m/^.*\.\./ ) {
+                push @{$rpt{$conf}{$debug}{$perlio}}, $i . substr( $_, 3 );
+		last;                
+                }
+            }
+        next;
+        }
     if (m/FAILED/) {
 	push @{$rpt{$conf}{$debug}{$perlio}}, $_;
 	next;

Automated smoke report for patch 11949
          v1.06         on MSWin32 using cl version 
O = OK
F = Failure(s), extended report at the bottom
? = still running or test results not (yet) available
Build failures during:       - = unknown
    c = Configure, m = make, t = make test-prep

         Configuration
-------  --------------------------------------------------------------------
F F F F -Duseperlio
F F F F -Dusethreads -Duseithreads -Duseperlio
| | | +- PERLIO = perlio -DDEBUGGING
| | +--- PERLIO = stdio  -DDEBUGGING
| +----- PERLIO = perlio
+------- PERLIO = stdio

Failures:

MSWin32      stdio            -Duseperlio
    comp/require..........................FAILED tests 22-23
    io/open...............................FAILED tests 4, 36
    io/tell...............................FAILED tests 7, 10
    io/utf8...............................Test output counter mismatch [test 20] FAILED test 19
    op/crypt..............................dubious DIED. FAILED tests 1-2
    ..\ext/Cwd/t/taint....................dubious DIED. FAILED test 2
    ..\ext/Filter/t/call..................FAILED test 24
    ..\lib/English........................dubious DIED. FAILED test 48
    ..\lib/ExtUtils/Manifest..............dubious DIED. FAILED test 19
    ..\lib/File/Find/t/taint..............dubious DIED. FAILED test 28
    ..\lib/Net/hostent....................dubious DIED. FAILED tests 3, 5-7
    ..\lib/Search/Dict....................FAILED test 2
    ..\lib/Tie/Handle/stdhandle...........FAILED test 5
    ..\lib/Unicode/UCD....................FAILED tests 1-34, 52-118, 122-137

MSWin32      perlio           -Duseperlio
    io/fs.................................dubious DIED. FAILED tests 21-29
    op/crypt..............................dubious DIED. FAILED tests 1-2
    op/magic..............................dubious DIED. FAILED tests 1, 19-41
    ..\ext/Cwd/t/cwd......................FAILED tests 3-6
    ..\ext/Cwd/t/taint....................dubious DIED. FAILED test 2
    ..\ext/XS/Typemap/Typemap.............FAILED tests 81-82
    ..\lib/ExtUtils/Manifest..............dubious DIED. FAILED test 19
    ..\lib/File/Find/t/taint..............dubious DIED. FAILED test 28
    ..\lib/Net/hostent....................dubious DIED. FAILED tests 3, 5-7
    ..\lib/warnings.......................FAILED tests 382-384

MSWin32      stdio            -DDEBUGGING -Duseperlio
    comp/require..........................FAILED tests 22-23
    io/open...............................FAILED tests 4, 36
    io/tell...............................FAILED tests 7, 10
    io/utf8...............................Test output counter mismatch [test 20] FAILED test 19
    op/crypt..............................dubious DIED. FAILED tests 1-2
    ..\ext/Cwd/t/taint....................dubious DIED. FAILED test 2
    ..\ext/Filter/t/call..................FAILED test 24
    ..\lib/English........................dubious DIED. FAILED test 48
    ..\lib/ExtUtils/Manifest..............dubious DIED. FAILED test 19
    ..\lib/File/Find/t/taint..............dubious DIED. FAILED test 28
    ..\lib/Net/hostent....................dubious DIED. FAILED tests 3, 5-7
    ..\lib/Search/Dict....................FAILED test 2
    ..\lib/Tie/Handle/stdhandle...........FAILED test 5
    ..\lib/Unicode/UCD....................FAILED tests 1-34, 52-118, 122-137

MSWin32      perlio           -DDEBUGGING -Duseperlio
    io/fs.................................dubious DIED. FAILED tests 21-29
    op/crypt..............................dubious DIED. FAILED tests 1-2
    op/magic..............................dubious DIED. FAILED tests 1, 19-41
    ..\ext/Cwd/t/cwd......................FAILED tests 3-6
    ..\ext/Cwd/t/taint....................dubious DIED. FAILED test 2
    ..\ext/XS/Typemap/Typemap.............FAILED tests 81-82
    ..\lib/ExtUtils/Manifest..............dubious DIED. FAILED test 19
    ..\lib/File/Find/t/taint..............dubious DIED. FAILED test 28
    ..\lib/Net/hostent....................dubious DIED. FAILED tests 3, 5-7
    ..\lib/warnings.......................FAILED tests 382-384

MSWin32      stdio            -Dusethreads -Duseithreads -Duseperlio
    comp/require..........................FAILED tests 22-23
    io/open...............................FAILED tests 4, 36
    io/tell...............................FAILED tests 7, 10
    io/utf8...............................Test output counter mismatch [test 20] FAILED test 19
    op/crypt..............................dubious DIED. FAILED tests 1-2
    ..\ext/Cwd/t/taint....................dubious DIED. FAILED test 2
    ..\ext/Filter/t/call..................FAILED test 24
    ..\lib/English........................dubious DIED. FAILED test 48
    ..\lib/ExtUtils/Manifest..............dubious DIED. FAILED test 19
    ..\lib/File/Find/t/taint..............dubious DIED. FAILED test 28
    ..\lib/Net/hostent....................dubious DIED. FAILED tests 3, 5-7
    ..\lib/Search/Dict....................FAILED test 2
    ..\lib/Tie/Handle/stdhandle...........FAILED test 5
    ..\lib/Unicode/UCD....................FAILED tests 1-34, 52-118, 122-137

MSWin32      perlio           -Dusethreads -Duseithreads -Duseperlio
    io/fs.................................dubious DIED. FAILED tests 21-29
    op/crypt..............................dubious DIED. FAILED tests 1-2
    op/magic..............................dubious DIED. FAILED tests 1, 19-41
    ..\ext/Cwd/t/cwd......................FAILED tests 3-6
    ..\ext/Cwd/t/taint....................dubious DIED. FAILED test 2
    ..\ext/XS/Typemap/Typemap.............FAILED tests 81-82
    ..\lib/ExtUtils/Manifest..............dubious DIED. FAILED test 19
    ..\lib/File/Find/t/taint..............dubious DIED. FAILED test 28
    ..\lib/Net/hostent....................dubious DIED. FAILED tests 3, 5-7
    ..\lib/warnings.......................FAILED tests 382-384

MSWin32      stdio            -DDEBUGGING -Dusethreads -Duseithreads -Duseperlio
    comp/require..........................FAILED tests 22-23
    io/open...............................FAILED tests 4, 36
    io/tell...............................FAILED tests 7, 10
    io/utf8...............................Test output counter mismatch [test 20] FAILED test 19
    op/crypt..............................dubious DIED. FAILED tests 1-2
    ..\ext/Cwd/t/taint....................dubious DIED. FAILED test 2
    ..\ext/Filter/t/call..................FAILED test 24
    ..\lib/English........................dubious DIED. FAILED test 48
    ..\lib/ExtUtils/Manifest..............dubious DIED. FAILED test 19
    ..\lib/File/Find/t/taint..............dubious DIED. FAILED test 28
    ..\lib/Net/hostent....................dubious DIED. FAILED tests 3, 5-7
    ..\lib/Search/Dict....................FAILED test 2
    ..\lib/Tie/Handle/stdhandle...........FAILED test 5
    ..\lib/Unicode/UCD....................FAILED tests 1-34, 52-118, 122-137

MSWin32      perlio           -DDEBUGGING -Dusethreads -Duseithreads -Duseperlio
    io/fs.................................dubious DIED. FAILED tests 21-29
    op/crypt..............................dubious DIED. FAILED tests 1-2
    op/magic..............................dubious DIED. FAILED tests 1, 19-41
    ..\ext/Cwd/t/cwd......................FAILED tests 3-6
    ..\ext/Cwd/t/taint....................dubious DIED. FAILED test 2
    ..\ext/XS/Typemap/Typemap.............FAILED tests 81-82
    ..\lib/ExtUtils/Manifest..............dubious DIED. FAILED test 19
    ..\lib/File/Find/t/taint..............dubious DIED. FAILED test 28
    ..\lib/Net/hostent....................dubious DIED. FAILED tests 3, 5-7
    ..\lib/warnings.......................FAILED tests 382-384
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.