Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: 2372c430ae

Fetching latest commit…

Cannot retrieve the latest commit at this time

elly/angband unit tests

This directory contains the unit tests for the Angband engine. As we refactor
the engine to be more modular, the number of tests will grow. A unit test is a C
program which links against angband.o and tests the desired functions. To make
writing these tests easier, there is a header file (at /src/tests/unit-test.h)
which defines a particular main function which runs a set of specified tests in

Using unit-test.h:
To use this test template, your test needs to supply four things:
	static struct test tests[]:
		A list of all the tests to run, terminated by a test with a
		null name.
	static int setup(void **data):
		A function to set up this suite of tests; may do something like
		preallocate file handles and such. The `data` argument points to
		a pointer which is supplied to all unit test functions and the
		teardown function.
	static int teardown(void *data):
		Clean up after the test; close file handles, etc.
	static const char *suite_name:
		The test suite name.
For examples, see the /src/tests/trivial.

Using unit-test-data.h:
Since we're testing a game engine, many times we will need dummy races, classes,
etc to pass in to functions we'd like to test. Creating these is time-consuming
since some of the structures involved are fairly large; unit-test-data.h defines
test objects of most types to ease this pain.
Something went wrong with that request. Please try again.