In Progress

Documentation

Conformance Testing of Consensus

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 testgen will 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. The runner tool will then output a topology file whose localRoots point to the simulated peers and an additional downstream peer whose sole job is to query the NUT state.

  • Shrink viewer — The shrinkview tool 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.

More Documentation