# from James Keenan via RT
# on Friday 21 September 2007 13:44:

>On Thu Sep 20 13:03:31 2007, [EMAIL PROTECTED] wrote:
>>http://perlsix.org/svn/parrot/view/branches/unified_testing/BRANCH_TODO
>>...
>> 5) Add processing of the output of Configure --test.
>
>When I began working on writing tests for the Perl 5 components of
>Parrot last November, we made the decision to not incorporate all the
>tests I was writing under the 'make test' target.

This is perfectly fine.

>... some take a long time to run
>...some of the tests were only meaningful if run post-configuration,
>pre-build...

Those are fine reasons to exclude tests from a given target.

>So I'm unclear as to what the 'unification' you're talking about would
>mean for these test suites.  Can you clarify?

I think "unification" is primarily needed in the sense of unifying how 
the results are reported.  Do not be alarmed -- the fact that 
TAP::Parser has "a parser" (and an aggregator) as separate objects from 
the harness means there is more than one way to do it.[1]

Also, "unification" in the sense that the shebang line for the tests 
tell the harness ~how to execute the test, not where to find the parrot 
and etc.  It is intended that the test shebangs will function against 
an installed parrot and/or hll.

And, also "unification" might involve specifying/organizing the tests 
(e.g. which are "developer", which are "exhaustive", etc) as e.g. a 
YAML file rather than capturing `$some_t_harness --files`.[2]  If this 
can be completely expressed in data and/or directory layout, the amount 
of support code required to select a set of tests to run is reduced or 
eliminated.

The details are in the details, err... footnotes.

[1] For example, a smoke server might be logging the TAP results from 
`./Configure.pl --test`, then doing some post-processing and reporting 
on those results in conjunction with the rest of the TAP tree.  The 
time at which those tests are run need not be dictated by the single 
harness, but it would be nice to unify the config/declaration of which 
tests are which and why -- possibly allowing a smoker to run them 
outside of the context of ./Configure so long as the state of the 
universe required by these tests is known.

[2] This is not strictly necessary, but from my adventures in reading a 
few $some_t_harness files, the list of files does not usually require 
computation, and yet can be difficult to deduce from a quick read vs a 
data file.  Perhaps some environment variables or etc. become involved 
and the list of tests actually does require computation.  At the least, 
the unified harness will not require each t/harness to execute 
Test::Harness::runtests(@tests)[3] and so the code is reduced simply to 
the task of returning a manifest of files to be run.  Perhaps 
t/manifest, (which (yes) might still need to be executed) but does not 
actually run the tests.[4]  But maybe a nice directory layout would do?

[3] "unification" actually conflicts with "each t/harness calling 
runtests()" in that the options (such as archiving the TAP) would need 
to be communicated in a rather roundabout way.

[4] Whatever best serves the goal of being able to reliably report on 
the results of all of the tests run, how long they (each and all) took, 
and (hopefully cleanly) selects which to run (or not run) when.

--Eric
-- 
Moving pianos is dangerous.
Moving pianos are dangerous.
Buffalo buffalo buffalo buffalo buffalo buffalo buffalo.
---------------------------------------------------
    http://scratchcomputing.com
---------------------------------------------------

Reply via email to