Why does panda fail to install my module when all tests pass locally?

103 views Asked by At

I'm the author of Pod-Perl5 a Perl 6 module that parses Perl 5 pod. Until the release of Perl 6.c, this module installed fine with panda install Pod::Perl5. Now it fails with an extensive list of errors (excerpt is below, full output is here). All tests pass when running the test suite with: prove --exec perl6 -r

I asked on the IRC #perl6 channel, and have tried the "nuke everything, re-install" tactic. It didn't work. Can anyone else help?

$ panda install Pod::Perl5
==> Fetching Pod::Perl5
==> Building Pod::Perl5
==> Testing Pod::Perl5

# Failed test 'found 8 paragraphs'
# at t/Grammar/01_formatting.t line 11
# expected: '8'
#      got: '1'
Use of uninitialized value $v of type Any in string context
Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed.  in block <unit> at t/Grammar/01_formatting.t line 13

# Failed test 'match format text'
# at t/Grammar/01_formatting.t line 13
# expected: 'this text is an example of inline italicised/emphasised'
#      got: ''
Use of uninitialized value $v of type Any in string context
Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed.  in block <unit> at t/Grammar/01_formatting.t line 17

# Failed test 'matches format text'
# at t/Grammar/01_formatting.t line 17
# expected: 'this text is italicised/emphasised 
# across 
# newlines'
#      got: ''
Use of uninitialized value $v of type Any in string context
Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed.  in block <unit> at t/Grammar/01_formatting.t line 21

# Failed test 'matches format text'
# at t/Grammar/01_formatting.t line 21
# expected: 'italicised words'
#      got: ''
Use of uninitialized value $v of type Any in string context
Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed.  in block <unit> at t/Grammar/01_formatting.t line 25

# Failed test 'matches format text'
# at t/Grammar/01_formatting.t line 25
# expected: 'italicised
# words'
#      got: ''
Use of uninitialized value $v of type Any in string context
Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed.  in block <unit> at t/Grammar/01_formatting.t line 29

# Failed test 'matches format text'
# at t/Grammar/01_formatting.t line 29
# expected: 'bolded B<words> within italics!'
#      got: ''
Use of uninitialized value $v of type Any in string context
Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed.  in block <unit> at t/Grammar/01_formatting.t line 33

...
2

There are 2 answers

1
AudioBubble On BEST ANSWER

Panda is calling prove as following:

$prove-command, '-e', "$*EXECUTABLE $libs -Ilib", "--norc", '-r', 't/'

translated to bash that would be:

prove -e "perl6 -Ilib" --norc -r t/

what results in exactly the same output as you provided.

Please file a bugreport at https://github.com/tadzik/panda/issues with the information provided above.

0
AudioBubble On

changing use lib 'lib'; to use lib '../lib'; for tests in subdirectories helps to. I'm not quite sure if it should.