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

Implement MBT for ICS04 Channel handlers #30

Closed
2 of 3 tasks
andrey-kuprianov opened this issue Jan 21, 2021 · 2 comments
Closed
2 of 3 tasks

Implement MBT for ICS04 Channel handlers #30

andrey-kuprianov opened this issue Jan 21, 2021 · 2 comments
Labels
O: testing Objective: aims to improve testing coverage

Comments

@andrey-kuprianov
Copy link
Contributor

andrey-kuprianov commented Jan 21, 2021

We need to initiate model-based testing for IBC-rs; while initially IBC client handlers (ICS02) have been chosen for that, we have decided to do it for ICS04 Channel handlers instead; see the explanation below.

The goal is to complement the current manual tests for channel handlers with MBT-based ones, such that model-based tests will be able to explore unexpected corner cases.

We can split the work here in multiple parts, as follows:

Bugs found with MBT:

@andrey-kuprianov andrey-kuprianov changed the title Implement MBT for ICS02 Client handlers Implement MBT for ICS04 Channel handlers Jan 26, 2021
@andrey-kuprianov
Copy link
Contributor Author

We have figured out that client handlers are too primitive to throw the heavy MBT machinery at them; e.g. the CreateClient handler is only incrementing one counter, so no real logic to test.

Considering that now the Channel handlers are coming to completeness, we are shifting focus to them. They have quite non-trivial implementation, that deserves thorough testing; see e.g. the ChanOpenTry handler.

The corresponding TLA+ model is also non-trivial, so this seems to be a good match for MBT.

@hu55a1n1 hu55a1n1 transferred this issue from informalsystems/hermes Sep 28, 2022
@hu55a1n1 hu55a1n1 mentioned this issue Oct 6, 2022
7 tasks
livelybug referenced this issue in octopus-network/ibc-rs Oct 14, 2022
Closes: #30

Query of client consensus now distinguishes between query height
and consensus height.

Specifically:

- `chain_height` is the height at which the query is made
  (can be 0 if the latest state on chain is queried).

- `consensus_height` is the consensus height of the client running on this chain
  but it represents a height of the client's chain and should be used to
  construct the query path.
@plafer plafer added the O: testing Objective: aims to improve testing coverage label Nov 14, 2022
@plafer
Copy link
Contributor

plafer commented Dec 13, 2022

Closing this as stale; we should reformulate these issues when we address #148 (and our correctness strategy in general).

@plafer plafer closed this as completed Dec 13, 2022
shuoer86 pushed a commit to shuoer86/ibc-rs that referenced this issue Nov 4, 2023
Add Calculate method to CommitmentProof
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
O: testing Objective: aims to improve testing coverage
Projects
None yet
Development

No branches or pull requests

3 participants