Test Suite for mod_dtcl

$Id$

These tests are intended to automate the testing of core mod_dtcl
features.  They are not complete at this point, and work on them would
be welcome.

How to run the tests:

The program 'runtest.tcl' is launched with the full path to the apache
web server.  It then creates a minimal config file in the directory it
is launched from, and launches Apache with the generated config.  We
are thusly able to manipulate the environment completely, and run the
tests directly in the tests/ directory...

Note that mod_so.c must be compiled into Apache for this to work.

