Project: Cardano Conformance Testing of Consensus
A testing framework based on the following CLI tools:
-
Test generator — Accepts arguments to select a specific class of tests. Each class of tests will have an associated generator, which
testgenwill invoke to instantiate the test class. Its output is a test file containing the instructions for the simulated peers and a (mechanical) description of the property which needs to pass. -
Test runner — Takes a test file (as output by
testgen) as argument, and an optional shrink index, to spin up simulated peers serving the generated chain schedule. Therunnertool will then output a topology file whoselocalRootspoint to the simulated peers and an additional downstream peer whose sole job is to query the NUT state. -
Shrink viewer — The
shrinkviewtool takes a test file and a shrink index, and outputs the test file corresponding to the given shrink index. This tool is primarily useful for looking at non-minimal test inputs, e.g. when the user doesn’t want to iterate the shrinking all the way down to a minimal counterexample or desires to keep file records of intermediate shrunk counterexamples.