Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"zef test ." returning a different result than running some tests with raku -Ilib

I really can't figure this out. Clearly, zef performs some kind of arrangement and precompilation of modules, but in this case it's really critical, since it simply seems to be using a different version of the code. For instance, running one of the test that fails,

raku -Ilib t/01-basic.t # ok 1 - get-all() found Licenses

However, zef test . fails that test (and a host of others that also work if run locally)

➜  License-Software-mine git:(master) ✗ zef test .
===> Testing: License::Software:ver<0.3.0>:auth<kalkin>
[License::Software] # Failed test 'get-all() found Licenses'
[License::Software] # at t/01-basic.t line 8
[License::Software] # You failed 1 test of 1
[License::Software] Can not find license alias 'gplv3'
[License::Software]   in sub license at /home/jmerelo/progs/forks/perl6/License-Software-mine/lib/License/Software.pm6 (License::Software) line 174
[License::Software] # Failed test at t/10-gplv3.t line 8
[License::Software] Method 'aliases' must be implemented by License::Software::Abstract because it is required by roles: .
[License::Software]   in block <unit> at t/10-gplv3.t line 9
[License::Software] # You planned 10 tests, but ran 1
[License::Software] # You failed 1 test of 1
[License::Software] Can not find license alias 'apache'
[License::Software]   in sub license at /home/jmerelo/progs/forks/perl6/License-Software-mine/lib/License/Software.pm6 (License::Software) line 174
[License::Software] Method 'aliases' must be implemented by License::Software::Abstract because it is required by roles: .
[License::Software]   in block <unit> at t/11-Apache2.t line 10
[License::Software] Can not find license alias 'lgplv3'
[License::Software]   in sub license at /home/jmerelo/progs/forks/perl6/License-Software-mine/lib/License/Software.pm6 (License::Software) line 174
[License::Software] # Failed test at t/12-LGPLv3.t line 8
[License::Software] Method 'aliases' must be implemented by License::Software::Abstract because it is required by roles: .
[License::Software]   in block <unit> at t/12-LGPLv3.t line 9
[License::Software] # You planned 8 tests, but ran 1
[License::Software] # You failed 1 test of 1
[License::Software] Can not find license alias 'agplv3'
[License::Software]   in sub license at /home/jmerelo/progs/forks/perl6/License-Software-mine/lib/License/Software.pm6 (License::Software) line 174
[License::Software] # Failed test at t/13-AGPLv3.t line 7
[License::Software] Method 'aliases' must be implemented by License::Software::Abstract because it is required by roles: .
[License::Software]   in block <unit> at t/13-AGPLv3.t line 8
[License::Software] # You planned 11 tests, but ran 1
[License::Software] # You failed 1 test of 1
[License::Software] Can not find license alias 'artistic'
[License::Software]   in sub license at /home/jmerelo/progs/forks/perl6/License-Software-mine/lib/License/Software.pm6 (License::Software) line 174
[License::Software] # Failed test at t/14-Artistic2.t line 7
[License::Software] Method 'aliases' must be implemented by License::Software::Abstract because it is required by roles: .
[License::Software]   in block <unit> at t/14-Artistic2.t line 8
[License::Software] # You planned 8 tests, but ran 1
[License::Software] # You failed 1 test of 1
===> Testing [FAIL]: License::Software:ver<0.3.0>:auth<kalkin>
Aborting due to test failure: License::Software:ver<0.3.0>:auth<kalkin> (use --force-test to override)

zef install . fails in the same way. Any idea of why this happens and if there's some workaround?

like image 900
jjmerelo Avatar asked Mar 03 '23 02:03

jjmerelo


1 Answers

zef doesn't use -Ilib -- I personally consider telling people to use it harmful -- it uses -I.

➜  License-Software git:(master) raku -Ilib t/01-basic.t
1..1
ok 1 - get-all() found Licenses
➜  License-Software git:(master) raku -I. t/01-basic.t
1..1
not ok 1 - get-all() found Licenses
# Failed test 'get-all() found Licenses'
# at t/01-basic.t line 8
# You failed 1 test of 1

Now obviously zef is not doing any precompiling itself, nor using a different version of the code. You are also using a plugin module, and all your errors are referencing things that is attached to. Therefore I can only assume the plugin code you are using does not work with -I..

like image 116
ugexe Avatar answered Apr 27 '23 11:04

ugexe