all parrot core tests should live under t/. notably, this includes
imcc, and other compilers like pge and tge. i propose t/compilers/
which would contain imcc, pge, tge, et al. following this trend,
t/p6rules/ would be moved to t/compilers/pge/p6rules. glob, p5regexp,
and any other pge test subdirs would live here. displayed graphically,
it looks something like this:
t/
compilers/
imcc/ <--- formerly imcc/t/
reg/
syn/
...
pge/ <--- formerly t/library/pge.t
p6rules/ <--- formerly t/p6rules/
glob/ <--- formerly t/library/pge-glob.t
...
tge/
...
...
this probably requires modification of the test tool chain, but that
shouldn't be a reason to prevent implementation, imho. of course, the
manifest, makefiles, etc are affected, too. does anybody have any
questions or concerns with this strategy?
your feedback is most welcome.
~jerry
Sound good to me. 'imcc/t' is more confusing than helpful.
I also suggest to do away with t/imcc/reg and move it's test perhaps
t/reg, as no PIR specific functionality is tested.
t/compilers/imcc could also be t/compilers/pir.
Also Punie.pm Python.pm Tcl.pm should be moved from lib/Parrot/Test
to their respective dir in 'languages'.
For t/libraries it might make sense to move the libraries tests next to
the libraries source.
CU, Bernhard
> Also Punie.pm Python.pm Tcl.pm should be moved from lib/Parrot/Test
> to their respective dir in 'languages'.
How would the library loads in the test files look if this were the
case?
-- c
Setting the Perl5 search path can be handled with FindBin. See for
example languages/m4/t/basic/001_comletely_empty.t:
use FindBin;
use lib "$FindBin::Bin/../../lib", "$FindBin::Bin/../../../../lib";
CU, Bernhard
for now, i've reorganized the pge tests, moving them into the
t/compilers/pge/ directory and subdirs, in revision 10112. smoke tests
and bug reports are welcome for all platforms. in testing, i've come
across that may affect msvc6 on win32 (no problem with msvc7.) i'm
hunting this down, and once fixed, i'll move on to tge, imcc, etc.
> Also Punie.pm Python.pm Tcl.pm should be moved from lib/Parrot/Test
> to their respective dir in 'languages'.
>
> For t/libraries it might make sense to move the libraries tests next to
> the libraries source.
>
i haven't made up my mind as to what the ideal locations are for
languages files. therefore, i'll leave those until a bit later.
whatever those locations are, there should be clear documentation for
HLL implementors to follow as to how to integrate their files into the
parrot source tree. therefore, i'll write up a design document with a
how-to section, and post it for review before making any changes to
the source tree.
~jerry
while i continue to investigate imcc's tests, i'll also be looking at
test file order in the main makefile, and standardization of test file
headers (use warnings; use Test::More; etc.)
~jerry
> Setting the Perl5 search path can be handled with FindBin. See for
> example languages/m4/t/basic/001_comletely_empty.t:
>
> use FindBin;
> use lib "$FindBin::Bin/../../lib", "$FindBin::Bin/../../../../lib";
That's fairly ugly to put in the header of every test file. It would be
nice to avoid such repeated, typo-prone, scary black magic.
-- c