Expand description

IBC Relayer Integration Test Framework

Overview

The ibc-test-framework crate provides the infrastructure and framework for writing end-to-end (E2E) tests that include the spawning of the relayer together with Cosmos full nodes running as child processes inside the tests.

Installation

Other than Rust, the test suite assumes the gaiad binary is present in $PATH. You can install Gaia by either building from source, or load it using Cosmos.nix:

nix shell github:informalsystems/cosmos.nix#gaia7

Alternatively, you can use $CHAIN_COMMAND_PATH to override with a different executable that is compatible with gaiad.

Examples

Example tests written using ibc-test-framework can be found in the ibc-rs project repository

Diagrams

Some diagrams have been prepared to ease the understanding of the test framework:

Modules

Helper functions for setting up test cases in an imperative way.
Constructs for spawning and managing full nodes, e.g. the Gaia chains.
Error type used for the tests.
Framework code for making it easier to write test cases.
Code that may belong to the ibc module, but are currently in this crate for easier review or maintenance.
Re-export of common constructs that are used by test cases.
Code that may belong to the ibc_relayer module, but are currently in this crate for easier review or maintenance.
This module contains definitions of core data structures that are used in the test suite.
Utility and helper functions used in the tests.