Test cases are written by creating a new directory, containing a list of files to be interpreted, and a file called `files` that lists those file, in the order in which they should be interpreted/linked. runtests.sh runs the tests -- if passed a directory name as argument, it runs only that test, otherwise it tests everything. checktests.sh checks that the tests are correct by running them using the official OCaml implementation rather than the interpreted. If your test fails this check, the test is quite probably wrong. There is no explicit support for reporting success/failure of a test; you should write your tests so that success is doing nothing, and failure fails visibly -- for example, using `assert` to check for the expected result or fail loudly.