Allison Randal wrote:
> Okay, languages/perl6 is failing all its tests.
[...]
> Will or Jerome, could you take a minute to explain the direction
> you're taking Parrot::Test? I'll patch P6C::TestCompiler to match the
> new setup, but I want to do an "architecture sanity check" first.

I'm sorry, I've been very busy for 2 weeks, and did not have the time to 
continue things regarding this topic. :-(
I hope to have some more time this week-end, but I'm not even sure...

So, very quickly:
1. The main goal is to have unified languages tests, that is, make 
language-tests would get a list of all the test files for all of the 
languages, and then run only _one_ harness with all those files. This 
would allow for one nice overview of all the tests, and tinderboxen 
would benefit from this too: they were reporting success as long as the 
last language was reporting succes.

2. In order for this to work, all the languages should have commit to 
having a t/harness file in their directory, responsible to get back a 
list of all the test files when called with a -files argument. (Except 
if we consider that *.t files are test files, but this may be too 
strict) If the language implementer wants to use this harness to also 
launch test for the current language only, this is of course welcome

3. Will and I thought that it would be nice for tests to just "use 
Parrot::Test" and then have a new function:
        language_output_is($language, $code, $expected, $comment)

4. Will worked on a patch for Parrot::Test, with some (little) help from 
me to debug it. (Perl 6 tests did not even run because it seems Perl 6 
test suite has core knowledge of Parrot::Test)

5. With Dan's agreement, I applied it since Will does not have checkin 
rights on the whole tree.

6. The next thing to do was to work on the subject in order to make all 
languages aware of this scheme.

7. The patch has some, erm, "action at distance" problems, such as the 
pasm files put in /tmp


This is for what happened.
Now, here's my view for the future of languages testing:
1. I really think the scheme one language_output_is function and one 
global harness is the way to go. This does not forbid having one 
harness per language: indeed, each language still _needs_ one harness 
script to fetch the list of test files.

2. Will's patch needs to be updated in (at least) two ways: a) put back 
pasm files in test directories and b) remove the need for a 
Parrot::Test::<Language> module. It should _allow_ it, but should also 
provide a convenient default for languages that do not need fancy 
testing things. (This should be the case of all the "little" languages 
where running a $parrot languages/$lang/$lang.pasm $code_file should be 
enough)

3. All the languages needs to be updated to take this scheme into 
account once Parrot::Test is modified accordingly.


That's it, I don't know if I made myself clear? (tricky subject to work 
on - and thus to explain :o) )

As we saw, it seems that Perl 6's test suite does weird things. Can you 
explain what those weird things are, so we can take them into account 
in the Plan?
Also, what do you think of the scheme? (and when I say you, I also mean 
the p6i list) Knowing that the scheme will allow (currently it 
_forces_) you to extend Parrot::Test with Parrot::Test::Perl6 (or 
whatever language)


I'll try to work on it saturday, but maybe we should currently revert 
the patch on Parrot::Test so I can have some more time re-working the 
languages testing stuff, without annoying Leo and you. (at least)


Once again, sorry for lack of time that led to those problems,
Jerome
-- 
[EMAIL PROTECTED]

Reply via email to