Hi,
Attached shell script (for systems with a shell) runs all parrot tests
natively compiled either static or shared.
It uses the perl6 driver for this, which has (since I ran out of disc
space first ;-) an explicit option to delete the ~2MB static executables
after successful tests.
(perl6 is able to run .p6 .imc .pasm and .pbc files - patches for non
*nix OSs welcome)
A lot of errors are due to these warnings:
-
decimal constant is so large that it is unsigned
-
comparison between signed and unsigned
one error is:
-
`REL_PC' undeclared (first use in this function)
Test result after applying [perl #16298]:
../testnative
[ ... ]
Failed Test Status Wstat Total Fail Failed List of failed
-------------------------------------------------------------------------------
t/op/hacks.t 1 1 100,00% 1
t/op/ifunless.t 6 2 33,33% 1, 4
t/op/integer.t 39 9 23,08% 16-23, 34
t/op/interp.t 1 1 100,00% 1
t/op/rx.t 27 6 22,22% 6, 8, 10, 12, 14, 17
t/op/stacks.t 35 3 8,57% 4, 7, 34
t/op/string.t 87 4 4,60% 81-82, 84-85
t/pmc/perlhash. 15 1 6,67% 9
t/pmc/sub.t 3 2 66,67% 2-3
5 subtests skipped.
Failed 9/26 test scripts, 65.38% okay. 29/432 subtests failed, 93.29% okay.
BTW stacks_33 takes quite a long time to finish ... and succeeds finally.
../testnative --shared
[ same result ]
(All tests on i386-linux, perl 5.005_03)
leo
#!/bin/sh
#
# run parrot tests in native C mode
#
cleanup() {
if [ "$S" = "--shared" ] ; then
rm parrot parrot.orig
make
else
mv parrot.orig parrot
fi
exit
}
trap cleanup 1 2 3
mv parrot parrot.orig
if [ "$1" = "--shared" ] ; then
rm parrot
make shared
export LD_LIBRARY_PATH=blib/lib
S=--shared
fi
echo 'cd languages/perl6; perl6 -C $S --ignore-exitcode --rm-exe ../../$1' > parrot
# use -kC to keep all intermediate files
# on error, files are kept
# if you don't --rm-exe, you'll need plenty of disk space
chmod 755 parrot
make test
cleanup