[gs-code-review] regression test system generation 2

Jack Moffitt jack at artifex.com
Sat Jun 4 11:23:24 PDT 2005


I've attached a tarball containing the new generation of the regression
test system.  Here are the highlights:

 * reorganized the code (it is much simpler now and more capable).  the
   new database values are dicts instead of strings, which means they
   can store arbitrary data, not just md5sums.

 * new tests for runtime discrepancies, stdout/stderr differences, and
   pdfwrite encryption

 * test failures have more informative output.  if a stdout/stderr 
   difference is detected, the output is a unified diff.  if rasters are
   different, the output is a fuzzy comparision report.

 * daily test results are only saved if the entire suite ran to
   completion.  if the test is aborted or the system crashes, an 
   incomplete daily test result database will not be saved.

 * handling of parameters for update_baseline, update_specific, etc was
   improved.  now there is a unified way to do this.

 * update_specific now maintains and uses cached builds for speedier
   operations.  the number of environments to cache is configurable and
   each environment represents a single cvs datespec.

 * segfaults are now properly detected when running ghostscript.

 * A default set of tests is defined, but tests can be overridden on a 
   per file basis by creating a file.cfg file in the comparefiles 
   directory.  Getting a list of tests to run has been abstracted, so
   even more advanced behavior is easily added here.

 * Most of the core code is now in a package called "gstest".

 * Adding new types of tests should be much easier now with the
   refactored design.

A few notes about the code:
 
 * Python 2.4 is now required (decorated syntax on classmethods and
   possibly other things).

 * The __main__ module must define several special variables depending
   on the needed functionality.  __config__, __resultdb__, 
   __ghostscript__, and __dailydb__.  This makes the code simpler.

 * The pdfwrite test now compares the resulting pdf md5sums instead of 
   generating rasters.  

 * The default parameters could use customization on the pdfwrite and
   pdfenc tests.  I just made some guesses.

 * A few scripts are not windows ready, such as update_specific which
   needs to build and configure Ghostscript.

 * I have tested on small regression sets, but I have tried to excercise
   the bulk of the code.  Small problems are likely to crop up, but
   this code should clean up most of the previous annoyances.
 
I hope you enjoy :)

Regards,
jack.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: testsg2.tar.gz
Type: application/octet-stream
Size: 26341 bytes
Desc: not available
Url : http://ghostscript.com/pipermail/gs-code-review/attachments/20050604/167d455c/testsg2.tar-0001.obj


More information about the gs-code-review mailing list