Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test: Add IBC conformance test and enable as gh workflow #431

Merged
merged 11 commits into from
Sep 14, 2023

Conversation

spoo-bar
Copy link
Contributor

@spoo-bar spoo-bar commented Aug 24, 2023

Using the Interchain test framework, this PR adds IBC conformance tests as well as a gh workflow which runs the test for every PR targeting main

How it works

The test is configured for bidirectional IBC conformance testing of the following cases.

Archway <> Gaia

1. Successful IBC transfer from Archway -> Gaia and Gaia -> Archway.
2. Proper handling of no timeout from Archway -> Gaia and Gaia -> Archway.
3. Proper handling of height timeout from Archway -> Gaia and Gaia -> Archway.
4. Proper handling of timestamp timeout from Archway -> Gaia and Gaia -> Archway.

How to use it

There are two ways to use this:

  1. Test via github workflow
    The Run Interchaintest github workflow automatically runs on every PR targeting main.

  2. Test locally
    This tests needs heighliner images as other interchain tests. Find the details to build the images at /interchaintest/README.md or here test: Add chain upgrade test as gh action #430

    cd interchaintest
    go test -v -race -run TestGaiaConformance

Why we need this

  1. Ensures accurate IBC client, channel and connection creation
  2. Ensures IBC messages are properly relayed and acknowledged
  3. Ensures IBC packets are being properly timed out
  4. SDK 47 upgrades requires modifications to app wiring, this will catch any bad wiring of ibc components

Note

The default Interchaintest framework does not work with Archway as it dosent handle Coin precision of 18 very well. There are some hardcoded values for genesis accounts and gentx which amount to too little for archway. So, I have forked the repo and just fixed the hardcoded values to make more sense for Archway.

@codecov
Copy link

codecov bot commented Aug 24, 2023

Codecov Report

Patch and project coverage have no change.

Comparison is base (2606ed9) 69.52% compared to head (b53c9e4) 69.52%.
Report is 3 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #431   +/-   ##
=======================================
  Coverage   69.52%   69.52%           
=======================================
  Files          68       68           
  Lines        4023     4023           
=======================================
  Hits         2797     2797           
  Misses       1128     1128           
  Partials       98       98           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@spoo-bar spoo-bar marked this pull request as ready for review August 25, 2023 16:16
@spoo-bar spoo-bar requested review from a team as code owners August 25, 2023 16:16
@spoo-bar spoo-bar requested review from kayano and loverdos August 25, 2023 16:16
Copy link
Contributor

@zanicar zanicar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

interchaintest/README.md Outdated Show resolved Hide resolved
interchaintest/README.md Outdated Show resolved Hide resolved
@spoo-bar spoo-bar requested a review from kayano September 14, 2023 11:05
@spoo-bar spoo-bar merged commit 64380c2 into main Sep 14, 2023
9 checks passed
@spoo-bar spoo-bar deleted the spoorthi/ibc-confomance-test branch September 14, 2023 11:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants