I wanted to have a nightly CI task to run our mutation script. In order to do that, I also had to teach dune to distinguish our fast and slow tests.
So, this PR contains a few changes:
I changed our test suite to consist of a different dune task per module instead of a single task. I did that by removing the main entrypoint test.ml, and making each test suite their own dune target. So, now each one of our test suites can be invoked with a command like:
dune exec tests/testBurrow.exe
I added the aliases run-fast-tests and run-avl-tests to run a specific set of tests. Note that these do not yet cover all our test cases (eg. testLiquidationAuction), we should add them as we start mutation testing those modules. As before, dune runtest still runs all tests and it's what is used on the CI.
You can use the aliases with:
dune build @run-fast-tests
dune build @run-avl-tests
# or alternatively
make fast-test
This change is in the same spirit as https://github.com/tezos-checker/checker/pull/108. I choose to implement it as dune tasks more granularly, since I assume that the modules to test per mutation can overlap, and we might end up with arbitrary groupings.
I modified our mutation script to take the list of modules and the command to test as parameter. Which allows us to invoke it like:
After this PR it should be easy to introduce a new cronjob (whatever the GitHub Actions equivalent is) to run something like the command right above. I haven't done this within this PR since it was getting too big.
I wanted to have a nightly CI task to run our mutation script. In order to do that, I also had to teach dune to distinguish our fast and slow tests.
So, this PR contains a few changes:
test.ml
, and making each test suite their own dune target. So, now each one of our test suites can be invoked with a command like:run-fast-tests
andrun-avl-tests
to run a specific set of tests. Note that these do not yet cover all our test cases (eg.testLiquidationAuction
), we should add them as we start mutation testing those modules. As before,dune runtest
still runs all tests and it's what is used on the CI.You can use the aliases with:
This change is in the same spirit as https://github.com/tezos-checker/checker/pull/108. I choose to implement it as dune tasks more granularly, since I assume that the modules to test per mutation can overlap, and we might end up with arbitrary groupings.
After this PR it should be easy to introduce a new cronjob (whatever the GitHub Actions equivalent is) to run something like the command right above. I haven't done this within this PR since it was getting too big.