This directory is a collection of testing and analysis tools.

CONSISTENCY TESTS

sym-diff.sh: This collects all the defined symbols from the
documentation and all the symbols from the source *.def files, sorts
them, and make a diff listing.  Ideally, the list of differences will
be empty.

src-uses.sh: This collects references to the C enums or functions that
correspond to GDL symbols.  Every implemented enum should be
referenced at least twice, once for reading and once for writing.
Every implemented function should be referenced at least once.

lib-uses.sh: This does the same thing for the game library.  Not
everything has to be used, but it's useful to have at least an example
game that uses each symbol.

It is helpful, but not required, to sort the lists generated by the
two previous scripts.

cmd-diff.sh:

syntax-diff.sh:

make-check-sync: This runs all of the above scripts.

make check-dates: This lists everything that might be a user-visible
date in the sources and documentation.  Examine manually to see if
everything is as it should be.

make check-versions: This lists all the version numbers in sources and
documentation.  Examine manually to see any errors.

EXECUTION TESTS

Note that although the test runs require skelconq to exist in
../kernel, it is not normally built, so as to save space.  You have to
go into ../kernel and do "make skelconq" there.

test-lib.sh (make check-lib): This runs skelconq and does some
assorted random actions on random units, for each .g file in the
library, and collects all output into a log.  This is useful for
finding errors in the kernel and in library games.

test-save.sh (make check-save): This does multiple save and restore,
and compares the results.

test-run.sh (make check-run):

test-long.sh (make check-long):

test-ai.sh (make check-ai):

test-test.sh (make check-test):

TEST GAMES

error*.g:  These game designs trigger various kinds of fatal errors.

extreme*.g:

warn.g: This file triggers all the warnings.

all.g: This file mentions all the GDL symbols and constructs.

around.g: This tests the ability of the AI to maneuver units around
obstacles.

transport.g: This tests the ability of the AI to use a transport to
ferry a unit.

buildtransp.g: This tests the ability of the AI to build transports to
get a unit to its destination.

relief.g: This displays a fractally generated terrain using a range
of colors.  This is useful for debugging terrain generation algorithms
and parameters; it shows the distribution of raw elevations.
