The Greg testing framework

Greg is a framework for testing other programs and libraries.
Its purpose is to provide a single front end for all tests and to
be a small, simple framework for writing tests.
Greg leverages off the Guile language to provide all the power (and more)
of other test frameworks with greater simplicity and ease of use.

The simplicity of the Greg framework makes it easy to write tests for
any program, but it was specifically written for use with GNUstep-Guile
to permit direct testing of the
GNUstep libraries without the
necessity to run a separate driver program.

The core functionality of Greg is a Guile module which can be loaded
into any software with an embedded Guile interpreter. Any program
which uses Guile as it's scripting language can therefore use Greg
to test itself directly!

For testing external programs, Greg provides a compiled module that may
be dynamically linked into Guile to permit you to run an application as
a child process on a pseudo-terminal. In conjunction with the standard
Guile `expect' module, this lets you test external programs.

Also provided is greg - a Guile script to invoke the Greg test
framework in much the same way that runtest is used in DejaGNU.

All tests have the same output format (enforced by the greg-testcase
procedure).
Greg's output is designed to be both readable and readily parsed by other
software, so that it can be used as input to customised testing processes.

Greg provides most of the functionality of DejaGNU but is rather simpler.
It omits specific support for cross-platform/remote testing since this is
really rather trivial to add where required and tends to vary from site to
site so much that an attempt at a generic solution is pretty pointless.
What Greg does do, is provide hooks to let you easily introduce site
specific code for handling those sorts of situations.