[% setvar title JART - Just Another Regression Test %]

This file is part of the Perl 6 Archive

Note: these documents may be out of date. Do not use as reference!

To see what is currently happening visit http://www.perl6.org/


JART - Just Another Regression Test


  Maintainer: Michael G Schwern <schwern@pobox.com>
  Date: 30 Aug 2000
  Mailing List: perl-qa@perl.org
  Number: 182
  Version: 1
  Status: Developing


Regression tests are often contrived and do not represent real world usage nor test features in combination. JAPHs represent a repository of real world code which is simple to turn into regression tests. Use JAPHs to test Perl!


Testing code is often contrived and incomplete. Its often optimistic, simplistic and doesn't stress the program as much as real world code will. It would be best to use real world code in our regression tests, but unfortunately it is difficult to collect code which is itself simple to test. Complex tests which force interactions between features could be written with effort, but traditionally few have wanted to put in the effort on writing tests.

So it would be wonderful to have a set of real world code which stresses all the features of Perl, but is also easy to test. Fortunately we do. JAPHs! Hundreds and hundreds and hundreds of freely available small bits of test code using almost the entire range of Perl and all with the same output!

The main purpose of the JART is to test backwards compatibility and also to test existing perl features in combination with each other.


The process of converting a JAPH to a test is straight forward.

JAPH Archive

A pleasant consequence of gathering lots of JAPHs is that we're gathering lots of JAPHs! This can be spun off into a nice, annotated JAPH archive for people who's lives aren't already weird enough.


JART will act like any other of Perl's regression tests, probably added to perl as t/JART.t. It will run each JAPH and note its output and print the usual "ok/not ok".

The JAPHs will be organized one per file. This avoids the issues of having to escape out characters in the JAPHs and getting spaces and the number of characters exactly right. As the output of each JAPH is subtly different, each JAPH file will have an associated output file which contains the expected output of each JAPH. This will all be tossed into one directory, probably t/JART/JAPHs/.

A prototype implementation exists.

Auditing will probably be done by simple way of a mailing list. Newly arriving JAPHs will be posted and auditors (subscribers to the list) will perform audits at their leisure. An incoming queue will also be maintained, accessible by auditors, to make sure things don't get lost in the noise.

JAPH authors submitting their work will be given a questionnaire to fill out to allow them to conduct their own audit of their work.