Description
See my branch coretests
https://github.com/rurban/perl-compiler/tree/coretests, based on the Cpanelinc variant https://github.com/CpanelInc/perl-compiler/tree/cm522/t/v5.22.0
use a seperate git submodule for this. either the existing roast5
with fudge support for multiple backends but not versions (https://github.com/rakudo-p5/roast5) or perl5-coretests
.
use the layout:
t/CORE-v.5.14/
t/CORE-v.5.22/
with
C-COMPILED/{op,...}/*.t
t/ lib/
from core
xtestc/
from B::C testc.sh
cp the core sources from t/
to t/CORE-v.5.22/t/
, also the .t files in lib.
use the full source from core in 5.22 only.
symlink same tests from v5.14 back to v5.22.
i.e. t/CORE-v5.14/op/arith.t -> ../../CORE-v5.22/op/arith.t
so we need to fix them only in the latest version.
only version specific fixes or changes are seperate.
t/CORE-v.5.*/C-COMPILED/update-links.sh
recreates the symlinks
which symlinks the to be compiled tests in C-COMPILED/*/*.t
to ../../template.pl
template.pl looks up the source for the test in the CORE-v5.*/ dir, runs the compiler tests and subtests and records changes in C-COMPILED/known-errors.txt
The CpanelInc variant:
- has a nice KnownErrors library which keeps track of regressions and fixes. Which is better than the old 5.14 error-in-symlink-name.
- can run the testc.sh tests in parallel.
But the CpanelInc variant has several limitations which are fixed in the coretests branch:
- only works with one global perl
- only works with an installed global compiler, ignoring blib.
- versions 5.14 vs 5.22 unharmonized
- ignore PERL_MINOR, only maintain some major variants (5.14 and 5.22 so far, later cperl and 5.24)
- new passing tests are marked as FAIL, not as TODO pass
See branch coretests