Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
kmx opened this issue Jan 25, 2015 · 6 comments · Fixed by ingydotnet/inline-pm#51
Closed

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

kmx opened this issue Jan 25, 2015 · 6 comments · Fixed by ingydotnet/inline-pm#51

Comments

@kmx
Copy link

kmx commented Jan 25, 2015

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
Copy link
Collaborator

mohawk2 commented Jan 26, 2015

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

@bulk88
Copy link
Contributor

bulk88 commented Jan 31, 2015

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
Copy link
Collaborator

mohawk2 commented Jan 31, 2015

@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 added a commit to wchristian/inline-pm that referenced this issue Feb 17, 2015
dmake handles { and } in a special manner, which means that $(INST_ARCHLIB)
was never interpolated, but passed on as it is, which in turn broke the
cleanup phase of Inline::C.

They could be interpolated for dmake, and EUMM does that usually when
generating, but it's less of a hassle to simply avoid them in the first
place.

Fixes ingydotnet/inline-c-pm#36
@wchristian
Copy link
Contributor

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 added a commit to wchristian/inline-c-pm that referenced this issue Feb 17, 2015
Since before 0.54 these strings were defined with single quotes, stopping
the mod name from interpolating, and thus also the deletion of those files.

related to ingydotnet#36
related to ingydotnet/inline-pm/51
wchristian added a commit to wchristian/inline-c-pm that referenced this issue Feb 17, 2015
Previously the cleanup phase just blindly tried to delete the files and
silently gave up when it couldn't find them. With this change it'll check
whether they exist and then delete them or die trying.

I suspect it might also be useful to check whether $autodir is a directory
and die if not, and to assume a .packlist is generated and die if it can't
be found, but that's up to you guys.

related to ingydotnet#36
related to ingydotnet/inline-pm/51
@wchristian
Copy link
Contributor

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

@mohawk2 mohawk2 reopened this Feb 17, 2015
@ingydotnet
Copy link
Owner

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants