This makes easier to improve the tester code, without having to code it as
a shell script embedded string. Now the only generated code is the one
that runs the test suites. You can also implement your own test suites
execution function; just write it in a separated C module and don't use
the mkmutest generator.
A new implementation is added. This implementation is dynamic. Test suites
must be compiled as dynamically linked shared objects (.so) and a Python
program (using ctypes module) inspects the shared objects, looking for
test cases, running them and collecting statistics.
The advantage of this implementation is that test suites are completely
isolated, name clashes between test suites can't be possible. The testing
program is completely decoupled from the test suites, and is less
"hackish", in the sense that no code-generation is needed. You compile
your test suites as shared object, and run the tester on them, that's it.
Is much easier to extend too, since is implemented in Python.
The downside is that the test suites are less "debuggeable", you can't
easily plug a gdb to see what's going on there (AFAIK). tmp