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

chore: add upgrade callback overrides for mock ibc app #3812

Merged

Conversation

damiannolan
Copy link
Member

Description

Adds the upgrade callback overrideable functions to mock IBCApp

ref: #3791


Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

  • Targeted PR against correct branch (see CONTRIBUTING.md).
  • Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
  • Code follows the module structure standards and Go style guide.
  • Wrote unit and integration tests.
  • Updated relevant documentation (docs/) or specification (x/<module>/spec/).
  • Added relevant godoc comments.
  • Provide a commit message to be used for the changelog entry in the PR description for review.
  • Re-reviewed Files changed in the Github PR explorer.
  • Review Codecov Report in the comment section below once CI passes.

@@ -245,6 +245,7 @@ type SimApp struct {

// make IBC modules public for test purposes
// these modules are never directly routed to by the IBC Router
IBCMockModule ibcmock.IBCModule
Copy link
Contributor

Choose a reason for hiding this comment

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

Side question, how come this wasn't present earlier?

Copy link
Contributor

Choose a reason for hiding this comment

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

I believe we originally added these overrides to test middleware. One initial point of testing was with interchain accounts (to mimic "icauth" modules, v6 improvement removed notion of "icaauth"). The mock module would be wrapped however as it acts as middleware, thus you reference ICAAuthModule instead of IBCMockModule

Referencing the unwrapped mock module is only required when you don't need to test the mock module as middleware but as a base application. This only occurs when you need to revert state of the IBC app callback. This occurs in OnRecvPacket handling. Because those tests were written before this feature was added, it uses a mock.MockFailPacketData. Then logic was added to mock.OnRecvPacket to return a certain ack based on the packet data. These tests could be updated to use the override app callback. It'd probably be more stable in the long term (as you won't need to pass in a certain packet data to create a certain result)

Copy link
Contributor

Choose a reason for hiding this comment

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

Copy link
Contributor

Choose a reason for hiding this comment

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

looks like I initially added GetMockModule() but I'm not sure when that was removed

Copy link
Contributor

Choose a reason for hiding this comment

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

It was removed in this pr #380, but idk why. Might have been something as simple as a merge conflict mistake or unused func

Copy link
Member Author

Choose a reason for hiding this comment

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

Yeah, must have been a merge conflict I assume. I was a little surprised when I noticed this was missing from the SimApp struct.

Copy link
Contributor

@DimitrisJim DimitrisJim left a comment

Choose a reason for hiding this comment

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

lgtm, just had one q.

@damiannolan damiannolan merged commit 05416ee into 04-channel-upgrades Jun 12, 2023
@damiannolan damiannolan deleted the damian/upgrade-cbs-testing-app-overrides branch June 12, 2023 13:41
Copy link
Contributor

@chatton chatton left a comment

Choose a reason for hiding this comment

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

Late to the party on this one but thanks for adding this! LGTM

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.

5 participants