ingydotnet / inline-c-pm

10 stars 19 forks source link

t/27inline_maker.t fails on MS Windows #36

Closed kmx closed 9 years ago

kmx commented 9 years ago

Hi,

I have experienced the following failure on MS Windows (gcc-4.8.3)

Regards kmx

Building and testing Inline-C-0.73 ... cp share\inline-c.pgx blib\lib\auto\share\dist\Inline-C\inline-c.pgx
cp lib/Inline/C/Parser/RecDescent.pm blib\lib\Inline\C\Parser\RecDescent.pm
cp lib/Inline/C/Parser/Pegex/AST.pm blib\lib\Inline\C\Parser\Pegex\AST.pm
cp lib/Inline/C/ParseRegExp.pod blib\lib\Inline\C\ParseRegExp.pod
cp lib/Inline/C.pod blib\lib\Inline\C.pod
cp lib/Inline/C.pm blib\lib\Inline\C.pm
cp lib/Inline/C/Parser/Pegex.pm blib\lib\Inline\C\Parser\Pegex.pm
cp lib/Inline/C/Parser/Pegex/Grammar.pm blib\lib\Inline\C\Parser\Pegex\Grammar.pm
cp lib/Inline/C/Parser/RegExp.pm blib\lib\Inline\C\Parser\RegExp.pm
cp lib/Inline/C/Parser.pm blib\lib\Inline\C\Parser.pm
cp lib/Inline/C/Cookbook.pod blib\lib\Inline\C\Cookbook.pod
cp lib/Inline/C/ParsePegex.pod blib\lib\Inline\C\ParsePegex.pod
cp lib/Inline/C/ParseRecDescent.pod blib\lib\Inline\C\ParseRecDescent.pod
Skip blib\lib\auto\share\dist\Inline-C\inline-c.pgx (unchanged)
"C:\strawberry\perl\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib\lib', 'blib\arch')" t/*.t
t/000-require-modules.t .. ok
t/01syntax.t ............. ok
t/02config.t ............. ok
t/03typemap.t ............ ok
t/04perlapi.t ............ ok
t/05xsmode.t ............. ok
t/06parseregexp.t ........ ok
t/07typemap_multi.t ...... ok
t/08taint.t .............. ok
This test could take a couple of minutes to run
t/09parser.t ............. ok
t/10callback.t ........... ok
t/11default_readonly.t ... ok
t/14void_arg.t ........... ok
t/14void_arg_PRD.t ....... ok
t/15ccflags.t ............ ok
t/16ccflagsex.t .......... ok
t/17prehead.t ............ ok
t/18quote_space.t ........ ok
t/19INC.t ................ ok
t/20eval.t ............... ok
t/21read_DATA.t .......... ok
t/22read_DATA_2.t ........ ok
t/23validate.t ........... ok
t/24prefix.t ............. ok
t/25proto.t .............. ok
t/26fork.t ............... ok

#   Failed test 'make install'
#   at t/27inline_maker.t line 60.
# Can't open file C:\STRAWB~1\data\.cpanm\work\1422211646.3912\Inline-C-0.73\_Inline_27inline_maker.4112\inst dir\lib\perl5\MSWin32-x64-multi-thread\auto\Math\Simple\.packlist: Permission denied at C:/strawberry/perl/lib/ExtUtils/Install.pm line 842.

# Files found in blib\arch: installing files in blib\lib into architecture dependent library tree

# Installing C:\STRAWB~1\data\.cpanm\work\1422211646.3912\Inline-C-0.73\_Inline_27inline_maker.4112\inst dir\lib\perl5\MSWin32-x64-multi-thread\auto\Math\Simple\.packlist

# Installing C:\STRAWB~1\data\.cpanm\work\1422211646.3912\Inline-C-0.73\_Inline_27inline_maker.4112\inst dir\lib\perl5\MSWin32-x64-multi-thread\auto\Math\Simple\Simple.xs.dll

# Installing C:\STRAWB~1\data\.cpanm\work\1422211646.3912\Inline-C-0.73\_Inline_27inline_maker.4112\inst dir\lib\perl5\MSWin32-x64-multi-thread\Math\Simple.pm

# dmake:  Error code 141, while making 'pure_vendor_install'

# Looks like you failed 1 test of 8.
t/27inline_maker.t ....... 
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/8 subtests 
t/28autowrap.t ........... ok
'diff' is not recognized as an internal or external command,
operable program or batch file.
'diff' is not recognized as an internal or external command,
operable program or batch file.
'diff' is not recognized as an internal or external command,
operable program or batch file.
'diff' is not recognized as an internal or external command,
operable program or batch file.
'diff' is not recognized as an internal or external command,
operable program or batch file.
'diff' is not recognized as an internal or external command,
operable program or batch file.
'diff' is not recognized as an internal or external command,
operable program or batch file.
'diff' is not recognized as an internal or external command,
operable program or batch file.
'diff' is not recognized as an internal or external command,
operable program or batch file.
'diff' is not recognized as an internal or external command,
operable program or batch file.
'diff' is not recognized as an internal or external command,
operable program or batch file.
'diff' is not recognized as an internal or external command,
operable program or batch file.
'diff' is not recognized as an internal or external command,
operable program or batch file.
'diff' is not recognized as an internal or external command,
operable program or batch file.
'diff' is not recognized as an internal or external command,
operable program or batch file.
'diff' is not recognized as an internal or external command,
operable program or batch file.
'diff' is not recognized as an internal or external command,
operable program or batch file.
'diff' is not recognized as an internal or external command,
operable program or batch file.
'diff' is not recognized as an internal or external command,
operable program or batch file.
t/parse-pegex.t .......... ok
'rm' is not recognized as an internal or external command,
operable program or batch file.
'rm' is not recognized as an internal or external command,
operable program or batch file.
t/pegex-parser.t ......... skipped: $ENV{PERL_INLINE_DEVELOPER_TEST} not set
t/release-pod-syntax.t ... skipped: these tests are for release candidate testing

Test Summary Report
-------------------
t/27inline_maker.t     (Wstat: 256 Tests: 8 Failed: 1)
  Failed test:  7
  Non-zero exit status: 1
t/parse-pegex.t        (Wstat: 0 Tests: 24 Failed: 0)
  TODO passed:   4, 7-9
Files=31, Tests=153, 416 wallclock secs ( 0.48 usr +  0.05 sys =  0.53 CPU)
Result: FAIL
Failed 1/31 test programs. 1/153 subtests failed.
dmake.exe:  Error code 255, while making 'test_dynamic'
mohawk2 commented 9 years ago

@bulk88, this is the infamous 27/7 failure again. Could you possibly look again at this to help figure out why this happens?

bulk88 commented 9 years ago

I saw the same thing

'diff' is not recognized as an internal or external command,
operable program or batch file.
'diff' is not recognized as an internal or external command,
operable program or batch file.
'diff' is not recognized as an internal or external command,
operable program or batch file.
'diff' is not recognized as an internal or external command,
operable program or batch file.
'diff' is not recognized as an internal or external command,
operable program or batch file.
t\parse-pegex.t .......... ok
t\pegex-parser.t ......... 'rm' is not recognized as an internal or external com
mand,
operable program or batch file.
'rm' is not recognized as an internal or external command,
operable program or batch file.
t\pegex-parser.t ......... skipped: $ENV{PERL_INLINE_DEVELOPER_TEST} not set
t\release-pod-syntax.t ... skipped: these tests are for release candidate testin
g
All tests successful.

Test Summary Report
-------------------
t\parse-pegex.t        (Wstat: 0 Tests: 24 Failed: 0)
  TODO passed:   4, 7-9
Files=31, Tests=153, 219 wallclock secs ( 0.16 usr +  0.06 sys =  0.22 CPU)
Result: PASS
  INGY/Inline-C-0.73.tar.gz
  "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\BIN\nmake.EXE" test --
 OK

cpan[2]>

There isn't much to say on why "diff" and "rm" aren't found on Win32.

mohawk2 commented 9 years ago

@kmx's said FAIL, because it did - yours said PASS. You can safely ignore all the diff/rm stuff, that's because the author of that code didn't write it portably.

wchristian commented 9 years ago

I just made a pull request to Inline.pm that should fix the root issue for this. A fix for this issue then would be a version dependency bump.

As an explanation for how this came about: The Makefile code generation in Inline::MakeMaker made code that broke dmake in a subtle way, which caused the wrong path being handed to Inline::C cleanup, which then silently failed to remove the .packlist file, causing ExtUtils::Install to copy it over, mark read-only, and THEN to try and generate a new one.

I'll also be making a pull request on Inline::C to ensure that it does not fail silently in the future, as well as one to ExtUtils::Install to see if they can at least warn when copying .packlist.

Edit: PRs made, EU::Install ticket made: https://rt.cpan.org/Ticket/Display.html?id=102170

wchristian commented 9 years ago

@ingydotnet : This should not be closed yet unless the dep version on Inline.pm has been bumped. ;)

ingydotnet commented 9 years ago

Bumped. Waiting on mohawk to review then will release Inline{,::C} together.