Greg is a testing framework designed for software and library testing purposes. It allows developers to test and analyze the performance of their applications for different scenarios.
The framework is simplistic, making it a breeze to write tests for any program. Greg was initially developed for GNUstep-Guile to enable direct testing of the GNUstep libraries, without requiring a separate driver program. This added convenience has resulted in an easy-to-use framework that is accessible even for novice users.
The core functionality of Greg is a Guile module that can be loaded into any software that uses an embedded Guile interpreter. This means that any program that uses Guile as its scripting language can be tested directly with Greg. To test external programs, Greg provides a compiled module that can be dynamically linked into Guile. This will permit the user to run an application as a child process on a pseudo-terminal. Paired with the standard Guile 'expect' module, this allows for external programs to be tested.
A Guile script called 'greg' is provided to invoke the Greg test framework in much the same way that 'runtest' is used in DejaGNU. All tests have the same output format - a requirement enforced by the greg-testcase procedure. Greg's output is designed to be both readable and readily parsed by other software, so it can be used as input for customized testing processes.
Greg provides most of the functionality of DejaGNU, but is much simpler. Greg omits specific support for cross-platform/remote testing since this is trivial to add where necessary and tends to vary from site to site, which makes an attempt at a generic solution rather pointless. However, Greg does provide hooks that allow users to easily introduce site-specific code to handle those sorts of situations.
The latest release has upgraded the software's API to guile 1.8.0. Overall, Greg is a versatile and accessible software framework that makes testing programs and libraries simple and easy.
Version 2.0.0: N/A