This document describes the functionality of DejaGnu, the
testing framework of the GNU project. DejaGnu is written in
Expect, which uses
Tcl as a command
language. Expect acts as a very
programmable shell. As with other Unix command shells, you can
run any program, but once the program is started, your test script
has programmable control over its input and output. This does not
just apply to the programs under test; expect
can also run any auxiliary program, such as
diff or sh, with full
control over its input and output.

DejaGnu itself is merely a framework for the creation of
testsuites. Testsuites are distributed with each
application.