JoranHonig / vertigo

Mutation Testing for Ethereum Smart Contracts

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Implement ganache wrapper

JoranHonig opened this issue · comments

Description

Currently vertigo expects that there are live test networks available.
Regularly one would estup several instances of ganache to allow for parallel mutation testing.
However, due to the nature of ganache this results in millions of files and hundreds of GB's being created over the course of one mutation run.

A more effective and user friendly approach is to dynamically create a new ganache instance for each test run, using a ramdisk rather than local storage.
This also removes the need to manually setup different ganache processes, which is another win in usability

Just leaving a note in case this is not something you've already looked into. (And not sure this would really resolve anything)....

When the ganache server is launched within a JS script via the .server() method, it can be passed provider options. One of these is db which lets you specify an in-memory db store like memdown.

This seems like it would get around the files issue. I've also heard it's faster, although my attempt to benchmark did not really show much improvement so idk.

It's been a while 😅, trufflesuite/ganache#798 exposes this in memory db's for ganache through the CLI.