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

Proposal: Adopt ibctest as the e2e testing framework for the SDK #12939

Closed
jackzampolin opened this issue Aug 17, 2022 · 5 comments
Closed

Proposal: Adopt ibctest as the e2e testing framework for the SDK #12939

jackzampolin opened this issue Aug 17, 2022 · 5 comments
Assignees
Labels

Comments

@jackzampolin
Copy link
Member

jackzampolin commented Aug 17, 2022

At Strangelove we have done quite a bit work lately on building ibctest. The purpose of this framework is to:

  1. Provide a conformance test for IBC that enables us to understand which chains have which IBC features and to ensure that new releases are compatible.
  2. Provide a library of reusable components that allow easy spin up of different primitives in the the IBC environment such as relayers and other chains.

The core libs have also been used to do fun stuff like reproduce a juno halt and help test the restart. They amount to an extremely powerful network simulation tool for cosmos sdk based applications that can be used as an e2e testing framework. The only API the test framework relies on is the ones exposed by the binaries. This method allows for testing of features such as upgrade handlers and state sync in a CI environment. They also allow for networks to be started from predefined genesis files with rich state.

Currently IBC has been focused on feature development focused on IBC usecases however the cosmos chain package can easily be expanded to meet the sdk's needs allowing for a lot code reuse.

We have spent the last 5 months building out the core functionality and building test cases and the repo is now ready for more collaborators and usecases. Strangelove engineers are currently working with multiple teams to help them implement testing in IBC test and are building out more examples. We would love to help the SDK with the e2e work we have done here.

@alexanderbez
Copy link
Contributor

Yeah this seems like it will lineup very well with our e2e test plans. Essentially we want to have an e2e test suite that tests things like:

  • upgrade handlers along with their implicit migrations (e.g. 0.45 -> 0.46)
  • gRPC and CLI queries
  • various tx execution flows

Big fan of this. @kocubinski you might be interested in this 👍

@tac0turtle
Copy link
Member

@jackzampolin any chance we can get a demo of ibc test at work? we are looking at e2e and testing in general and would like to see ibc test and how you recommend developing against it.

@tac0turtle
Copy link
Member

we added starshiip and plan on rewritng testutil.net to work with different layer of testing

@robert-zaremba
Copy link
Collaborator

So you are not planning to reuse ibctest in Cosmos SDK e2e tests? Why starship is better?

@tac0turtle
Copy link
Member

starship did the integration and it helping us with redesigning a few things around e2e simulations and different form of tests. IBCtest has a dependency on us as well. We dont want to have circular dependencies

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants