-
Notifications
You must be signed in to change notification settings - Fork 20
Description
I am getting the following failures when trying to install v. 1.26 with Strawberry Perl 5.30.1 on Windows 10:
http://www.cpan.org/authors/id/J/JK/JKEENAN/IPC-System-Simple-1.26.tar.gz
Test Summary Report
t/04_capture.t (Wstat: 1024 Tests: 12 Failed: 4)
Failed tests: 3, 5, 7, 11
Non-zero exit status: 4
t/12_systemx.t (Wstat: 256 Tests: 7 Failed: 1)
Failed test: 4
Non-zero exit status: 1
t/win32.t (Wstat: 512 Tests: 33 Failed: 2)
Failed tests: 24, 26
Non-zero exit status: 2
Files=19, Tests=157, 2 wallclock secs ( 0.03 usr + 0.01 sys = 0.05 CPU)
Result: FAIL
Failed 3/19 test programs. 7/157 subtests failed.
gmake: *** [Makefile:877: test_dynamic] Error 2
Samples of failures:
t/03_signal.t ............ skipped: Signals not implemented on Win32
# Failed test 'Scalar capture'
# at t/04_capture.t line 28.
# got: ''
# expected: 'Hello
# Goodbye
# '
# Failed test 'capture and qx() return same results'
# at t/04_capture.t line 32.
# got: ''
# expected: 'Hello
# Goodbye
# '
# Failed test 'List capture'
# at t/04_capture.t line 39.
# Structures begin differing at:
# $got->[0] = Does not exist
# $expected->[0] = 'Hello
# '
# Failed test 'Single-arg capture still works'
# at t/04_capture.t line 59.
# ''
# doesn't match '(?^:Hello)'
# Looks like you failed 4 tests of 12.
Investigation
Did a build manually, and it seems that 04_capture.t when executing the Line 25:
my $output = capture($output_exe);
..., seems to read from stdin without echo, instead of executing the command $output_exe and reading its output. On my system during the test, the value of $output_exe is:
C:\strawberry\perl\bin\perl.exe output.pl
I went deeper and found that in sub _win32_capture:
$command contains: C:\strawberry\perl\bin\perl.exe output.pl
@args is empty!
So, later when the exe file is parsed out into $exe the output.pl part is lost and, because @args is empty, instead of the intended call to the output.pl script:
C:\strawberry\perl\bin\perl.exe output.pl
..., we get:
C:\strawberry\perl\bin\perl.exe
..., which just sits there when executed and waits for you to type in a perl script interactively.