Subject: | fork.t fails on Win32 |
It looks like the "fixes" for forked proceses on Win32 still need work. I use IPC-Run3 as a dependency in other modules and I'd like to see it passing the Win32 build tests for ActiveState so it will be built as a PPM:
http://ppm.activestate.com/BuildStatus/5.8-windows/windows-5.8/IPC-Run3-0.033.txt
In my own test, downloading it and running the test suite on ActiveState Perl 5.8.7 Build 815, I get this error:
Show quoted text
> nmake test TEST_VERBOSE=1 TEST_FILES=t\fork.t
Microsoft (R) Program Maintenance Utility Version 1.50
Copyright (c) Microsoft Corp 1988-94. All rights reserved.
C:\Perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(1, 'blib\lib', '
blib\arch')" t\fork.t
t\fork....1..5
ok 1 - parent before fork
ok 2 - single child
ok 3 - parent after fork
# child -2932: expected "child-2932:run1", got ""
# child -2516: expected "child-2516:run1", got "child-2932:run1child-2516:run1"
# child -4036: expected "child-4036:run1", got "child-3764:run1child-4036:run1"
# child -3764: expected "child-3764:run1", got ""
not ok 4 - 5 parallel child processes, each run 10 times
# Failed test (t\fork.t at line 88)
ok 5 - parent after parallel forks
# Looks like you failed 1 test of 5.
dubious
Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 4
Failed 1/5 tests, 80.00% okay
Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
t\fork.t 1 256 5 1 20.00% 4
Failed 1/1 test scripts, 0.00% okay. 1/5 subtests failed, 80.00% okay.
NMAKE : fatal error U1077: 'C:\WINDOWS\system32\cmd.exe' : return code '0x1'
Stop.
I thought it might be the filehandle caching, but quickly hacking that out didn't seem to fix the problem. Until this is sorted out, I might suggest skipping the fork test on Win32 (since Win32 emulates forks with threads anyway) and documenting that forks on Win32 aren't supported yet.