Most of the tests follow the same pattern. * test.pl that uses Test::More, and demonstrates whatever functionality that we're trying to test. This is the reference code. * test.c, which tests the libtap reimplementation of the same functionality. * test.t, which compiles the .c program, runs both test scripts, and then diffs their output to make sure it's identical.