1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
/*!
Framework code for making it easier to write test cases.
If you want to create a common test setup that is shared
by multiple test cases, the best way is to define them as
new traits within the [`framework`](crate::framework) module.
The actual operations for bootstrapping the test setup
should *not* be implemented in this module. Instead, they
should be implemented as functions in the
[`bootstrap`](crate::bootstrap) module. This is so that
test writers can still have the option to manually
bootstrap the test setup without getting locked-in to
using the test framework.
We can think of the test framework as being a DSL for
making it easier to write _declarative_ tests. On the
other hand, the [`bootstrap`](crate::bootstrap) module
allows the same test setup to be done in an _imperative_ way.
## Common Test Cases
Here is a short list of common traits that are used for
defining simple test scenarios:
- [`BinaryNodeTest`](binary::node::BinaryNodeTest) -
Test with two full nodes running without setting up the relayer.
- [`BinaryChainTest`](binary::chain::BinaryChainTest) -
Test with two full nodes running with the relayer setup with chain handles.
- [`BinaryChannelTest`](binary::channel::BinaryChannelTest) -
Test with two full nodes running with the relayer setup with chain handles
together with channels that are already connected.
*/
pub mod base;
pub mod binary;
pub mod nary;
pub mod overrides;
pub mod supervisor;