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