DMuCheck provides a simple wrapper over the
MuCheck library, to accomplish
parallel mutation analysis of Haskell programs with tests written using the
supported test frameworks. It provides two ways of doing it, first the simple
forked processes from the main process, and second, using a master and multiple
It supports the test frameworks QuickCheck, SmallCheck, HUnit and HSpec, which
are enabled by using flags. The flags available are
-fQuickCheck, -fSmallCheck, -fHUnit, -fHspec.
You can only use one of these flags at a time.
First build it using the flag
cabal configure -fQuickCheck cabal build
Simple uses a single machine, and spawns multiple processes to run mutation analysis parallelly. Start the mutation using the simple client
./dist/build/d-mucheck/d-mucheck 4 Examples/QuickCheckTest.hs
This will start 4 processes that will evaluate all
13 mutants from
Examples/QuickCheckTest.hs for you. The mutants can be found under
The advanced option is to use a separate master and slave clients to do the mutation. The advantage is that the slaves can be in any machines in the local network.
First, start your master
Then in separate terminals (or in machines), execute these
You can start any number of slaves, and you will see slaves registering on the master server. We use workstealing, so slaves request work when they join. For now, you cant bring down any slave once started. The slaves exit when the master finishes.
See Makefile at src for more examples in HUnit, HSpec and SmallCheck.