Regression Testing of Enlightenment

Enlightenment has a regression testing suite that can be of benefit when exploring a possible defect or unexpected change in the window manager or it's applications.

The test suite can be found at but it must be installed using the following instructions before it can be used.



The test suite should be cloned from git and installed in the usual autotools manner:

$ git clone
$ cd test-e
$ ./ --prefix=
$ make
$ make install

Running Tests

Tests are invoked using the run script:

  • ./ runs all available tests
  • ./ <test1> <test2> run the specified tests

Graphical output is rendered to a png file matching the name of the test i.e. test1.png.

Test stdout and stderr are saved to a log file with the same name i.e. test1.log.


The following environment variables are supported to control the behaviour of the tests:

Run test(s) under valgrind
Automatically print a backtrace on crash
Use exit() instead of logging out after tests
Run ‘git clean -dxf’ before running tests
Wait 4 extra seconds before beginning tests
Run tests under strace
‘sw’ or ‘gl’ to set software or gl rendering
‘buffer’, ‘drm’, ‘x11’, ‘wl’ to set the output engine

Additionally you can change the expected outcome of a test by editing the imgs/testname.png file. If you delete the file then it will be recreated from the output of the next test run.

Adding New Tests

To add a new test to the suite follow these steps

Create src/<newtestname>.c
Copy scripts/ to scripts/<newtestname>.sh
Add src/<newtestname>.c to src/
Add RUN_TEST(<newtestname>); to src/e_mod_main.c
Add TEST_FN(<newtestname>); to src/e_mod_main.h

Add the following content to src/<newtestname>.c as a starting point:

#include "e_mod_main.h"
    // Initialize stuff here

For further examples of how to write tests please check the content of existing test files.