Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

Using panda relies on (P5) 'prove' command being installed #38

Open
pmichaud opened this Issue · 7 comments

6 participants

@pmichaud

At least under Windows, using panda appears to rely on the existence of the 'prove' command, which Rakudo doesn't provide. (Normally 'prove' is a part of a p5 install.)

We need to either list P5 as a runtime requirement for panda, or find some way to have panda run without requiring 'prove'.

Pm

@szabgab

IMHO panda could temporarily rely on the availability of 'prove', but if it is not available it should tell the user to run with --notestes

In the longer run it should not rely on any perl5-ish thing.

@leto
Collaborator
@tadzik
Owner

I had two ideas for that:
1) Use parrot-prove command. Until Rakudo is running on Parrot only that seems sensible, for we require Parrot to be installed anyway.
2) I started TAP::Harness in pure Perl 6 a while ago (https://github.com/tadzik/Test-Harness). I lacked tuits to finish it, but I guess we want to eat our own dogfood eventually, so this seems like a good goal to look up to.

@tadzik
Owner

Work started on branch p6prove

@tadzik tadzik was assigned
@Leont

I'm working on a perl6 harness, but it's it's not quite ready for prime-time yet. In particular, Proc::Async isn't stable enough to actually support multiplexing input. It's otherwise close though.

@tsibley

Even with prove available, rakudobrew build-panda is failing for me because the Perl 6 File::Find has use v6 which when loaded by a Perl 5 prove blows up:

Current branch master is up to date.
No need to rebootstrap, running normal bootstrap
==> Bootstrapping Panda
==> Fetching File::Find
==> Building File::Find
Compiling lib/File/Find.pm to mbc
==> Testing File::Find
Perl v6.0.0 required--this is only v5.20.1, stopped at lib/File/Find.pm line 1.
BEGIN failed--compilation aborted at lib/File/Find.pm line 1.
Compilation failed in require at /opt/perlbrew/perls/5.20/lib/5.20.1/App/Prove/State.pm line 6.
BEGIN failed--compilation aborted at /opt/perlbrew/perls/5.20/lib/5.20.1/App/Prove/State.pm line 6.
Compilation failed in require at /opt/perlbrew/perls/5.20/lib/5.20.1/App/Prove.pm line 10.
BEGIN failed--compilation aborted at /opt/perlbrew/perls/5.20/lib/5.20.1/App/Prove.pm line 10.
Compilation failed in require at /opt/perlbrew/perls/5.20/bin/prove line 8.
BEGIN failed--compilation aborted at /opt/perlbrew/perls/5.20/bin/prove line 8.
test stage failed for File::Find: Tests failed
  in method install at /home/tom/.rakudobrew/moar-nom/panda/lib/Panda.pm:133
  in method resolve at /home/tom/.rakudobrew/moar-nom/panda/lib/Panda.pm:214
  in sub MAIN at bin/panda:20
  in block <unit> at bin/panda:87

==> Shell::Command depends on File::Find
==> Fetching File::Find
==> Building File::Find
Compiling lib/File/Find.pm to mbc
==> Testing File::Find
Perl v6.0.0 required--this is only v5.20.1, stopped at lib/File/Find.pm line 1.
BEGIN failed--compilation aborted at lib/File/Find.pm line 1.
Compilation failed in require at /opt/perlbrew/perls/5.20/lib/5.20.1/App/Prove/State.pm line 6.
BEGIN failed--compilation aborted at /opt/perlbrew/perls/5.20/lib/5.20.1/App/Prove/State.pm line 6.
Compilation failed in require at /opt/perlbrew/perls/5.20/lib/5.20.1/App/Prove.pm line 10.
BEGIN failed--compilation aborted at /opt/perlbrew/perls/5.20/lib/5.20.1/App/Prove.pm line 10.
Compilation failed in require at /opt/perlbrew/perls/5.20/bin/prove line 8.
BEGIN failed--compilation aborted at /opt/perlbrew/perls/5.20/bin/prove line 8.
test stage failed for File::Find: Tests failed
  in method install at /home/tom/.rakudobrew/moar-nom/panda/lib/Panda.pm:133
  in block  at /home/tom/.rakudobrew/moar-nom/panda/lib/Panda.pm:210
  in method resolve at /home/tom/.rakudobrew/moar-nom/panda/lib/Panda.pm:204
  in sub MAIN at bin/panda:20
  in block <unit> at bin/panda:87

==> Fetching JSON::Tiny
==> Building JSON::Tiny
Compiling lib/JSON/Tiny/Actions.pm to mbc
Compiling lib/JSON/Tiny/Grammar.pm to mbc
Compiling lib/JSON/Tiny.pm to mbc
==> Testing JSON::Tiny
t/01-parse.t ...... ok
t/02-structure.t .. ok
t/03-unicode.t .... ok
t/04-roundtrip.t .. ok
t/05-utf16.t ...... ok
All tests successful.
Files=5, Tests=122,  5 wallclock secs ( 0.05 usr  0.01 sys +  4.64 cusr  0.19 csys =  4.89 CPU)
Result: PASS
==> Installing JSON::Tiny
Copying blib/lib/JSON/Tiny.pm to /home/tom/.rakudobrew/moar-nom/install/share/perl6/site/lib/JSON/Tiny.pm
Copying blib/lib/JSON/Tiny/Actions.pm to /home/tom/.rakudobrew/moar-nom/install/share/perl6/site/lib/JSON/Tiny/Actions.pm
Copying blib/lib/JSON/Tiny/Grammar.pm to /home/tom/.rakudobrew/moar-nom/install/share/perl6/site/lib/JSON/Tiny/Grammar.pm
Copying blib/lib/JSON/Tiny.pm.moarvm to /home/tom/.rakudobrew/moar-nom/install/share/perl6/site/lib/JSON/Tiny.pm.moarvm
Copying blib/lib/JSON/Tiny/Actions.pm.moarvm to /home/tom/.rakudobrew/moar-nom/install/share/perl6/site/lib/JSON/Tiny/Actions.pm.moarvm
Copying blib/lib/JSON/Tiny/Grammar.pm.moarvm to /home/tom/.rakudobrew/moar-nom/install/share/perl6/site/lib/JSON/Tiny/Grammar.pm.moarvm
==> Successfully installed JSON::Tiny
==> panda depends on File::Find, Shell::Command
==> Shell::Command depends on File::Find
==> Fetching File::Find
==> Building File::Find
Compiling lib/File/Find.pm to mbc
==> Testing File::Find
Perl v6.0.0 required--this is only v5.20.1, stopped at lib/File/Find.pm line 1.
BEGIN failed--compilation aborted at lib/File/Find.pm line 1.
Compilation failed in require at /opt/perlbrew/perls/5.20/lib/5.20.1/App/Prove/State.pm line 6.
BEGIN failed--compilation aborted at /opt/perlbrew/perls/5.20/lib/5.20.1/App/Prove/State.pm line 6.
Compilation failed in require at /opt/perlbrew/perls/5.20/lib/5.20.1/App/Prove.pm line 10.
BEGIN failed--compilation aborted at /opt/perlbrew/perls/5.20/lib/5.20.1/App/Prove.pm line 10.
Compilation failed in require at /opt/perlbrew/perls/5.20/bin/prove line 8.
BEGIN failed--compilation aborted at /opt/perlbrew/perls/5.20/bin/prove line 8.
test stage failed for File::Find: Tests failed
  in method install at /home/tom/.rakudobrew/moar-nom/panda/lib/Panda.pm:133
  in block  at /home/tom/.rakudobrew/moar-nom/panda/lib/Panda.pm:210
  in method resolve at /home/tom/.rakudobrew/moar-nom/panda/lib/Panda.pm:204
  in sub MAIN at bin/panda:20
  in block <unit> at bin/panda:87


Failure Summary
----------------
Shell::Command
    *test stage failed for File::Find: Tests failed
/home/tom/.rakudobrew/moar-nom/panda
    *test stage failed for File::Find: Tests failed
File::Find
    *test stage failed for File::Find: Tests failed
==> Please make sure that /home/tom/.rakudobrew/moar-nom/install/share/perl6/site/bin is in your PATH
Done, built panda for moar-nom
Updating shims
@Leont

I think the latest TAP::Parser is close to the point where we can use it as Panda's test harness instead of prove; or at least the synchronous implementation is. The asynchronous implementation (needed for parallel testing) is not ready, mainly due to moarbugs though there's also a bug of my own.

It also seems I have to reorganize my code to make it precompilable,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.