Ticket #87 (closed bug: wontfix)
'make test' inoperable in languages/PIR/
Reported by: | jkeenan | Owned by: | |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | language | Version: | trunk |
Severity: | medium | Keywords: | PIR |
Cc: | Language: | ||
Patch status: | Platform: |
Description
According to languages/PIR/README, it ought to be a simple matter to run the tests in languages/PIR/t/
Type $ make Easy huh? Please note that compiling may take a while. The compiler is called 'pir.pbc', but the main source file is called pirc.pir, otherwise it would be "pir.pir", which is kinda strange. After that, you can run the test suite: $ make test which will run a little perl script that runs all files in the examples directory.
But instead, 'make test' fails horribly. The output from the first test in the first file run, languages/PIR/t/assign.t, looks like this:
[PIR] 527 $ prove -v t/assign.t t/assign.... 1..7 not ok 1 - simple assignments # Failed test 'simple assignments' # at t/assign.t line 12. # 'Parrot VM: Can't stat languages/PIR/pir.pbc, code 2. # main: Packfile loading failed # ' # doesn't match '(?-xism:Parse successful!)' # './parrot languages/PIR/pir.pbc work/parrot/languages/PIR/t/assign_1.pir' failed with exit code 1
chromatic indicated that "Parrot VM: Can't stat languages/PIR/pir.pbc" is similar to a Perl 5 "can't locate package X in @INC." After staring at this for >1 hour and larding up Parrot::Test with debugging statements, I realized how this was true in this case. At some point, the pir.pbc file generated by running make in languages/PIR/ was renamed pirc.pbc
[parrot] 540 $ ls -l languages/PIR/pir.pbc ls: languages/PIR/pir.pbc: No such file or directory [parrot] 541 $ ls -l languages/PIR/pirc.pbc -rw-r--r-- 1 jimk jimk 774000 Dec 23 20:00 languages/PIR/pirc.pbc
Problem is: That doesn't play well with Parrot::Test. Parrot::Test loads Parrot::Test::PIR_PGE, which at one point explicitly expects pir rather than pirc.
my $cmd = "$self->{parrot} $args languages/PIR/pir.pbc $lang_f";
And, no, simply changing pir.pbc to pirc.pbc in the line above doesn't get the test to pass (though it does generate a very different error message).
Comments?
Thank you very much.
kid51