Open njelich opened 1 year ago
There is already a test function that takes mutation hashes as inputs, so that would probably be a good starting point to start the process.
The main blocker I see is the original files being modified to run the tests, but most Solidity testing frameworks compile files and then run tests, so I wonder what would happen if we simply started multiple processes sequentiall, but without waiting for the testing process to finish.
This would be a great improvement! To enable parallel execution we could spawn an async testing process in the testingInterface and adjust the test function in the mutationRunner.
Indeed the main problem is that the original contract files are modified and restored for each mutant. I'm not yet sure what's the best way to handle this but I will try to play around with it
I found a reference implementation - another mutation testing framework implemented some parallel testing with hardhat.
Might be a good starting point.
The way SuMo currently works is by modifying the original source files and then running the tests, but this is done one by one, making it really slow. SuMo in general doesn't use a lot of processing power, and it could be parallelized to achieve better performance.
I'm starting this thread to open discussion of this idea.