This is my hack for automated UI tests. It requires the following software: 1. Xnest (X server in a window). should be packages for your favorite distro. 2. Xnee (recording/playback of X events): http://www.gnu.org/software/xnee/ 3. netpbm (specifically xwdtopnm and pnmtopng) 4. ImageMagick 1. Adding tests this is pretty complicated at the moment, and I haven't checked in anything to do it yet. The directory name tells the harness which compiler to use. 1.1 tests should be named "test-", while 2.0 tests should be named "test2-" 2. Running the tests $ make test This will pop up a rather large Xnest window (1000x700), so don't run the tests expecting to be able to do much else. An individual test can also be run (although not from the Makefile): $ ./harness.sh test test2-80422 3. Checking for failures If tests fail, there will be a number of additional files left in the directory. They are named "result-0.png", "differences-0.png", etc. The "result" files are the actual screen dumps of the test run, and the "differences" files show the regions of differences between the "result" file and the corresponding baseline. That is, "differences-0.png" highlights the differences between "result-0.png" and "0.png". 3. Generating baselines The images (0.png, 1.png) in the test directories can be regenerated using the command: $ make baseline this should only be done when you can verify that the tests are working properly and all that's changed is the rendering. You can also generate baselines for individual tests, using the following command: $ ./harness.sh baseline test2-80422