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

Add fee middleware test suite functions (E2E #5) #1710

Merged
merged 47 commits into from
Jul 19, 2022

Conversation

chatton
Copy link
Contributor

@chatton chatton commented Jul 15, 2022

Description

This PR adds some functionality that will be used in the coming fee middleware E2E tests.

  • The ability to broadcast arbitrary messages for our test suites.

    • RegisterCounterPartyPayee
    • PayPacketFeeAsync
  • Initialize GRPC clients for test chains.

  • Query GRPC endpoints

    • QueryCounterPartyPayee
    • QueryIncentivizedPacketsForChannel

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.
  • Wrote unit and integration tests
  • Updated relevant documentation (docs/) or specification (x/<module>/spec/)
  • Added relevant godoc comments.
  • Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
  • Re-reviewed Files changed in the Github PR explorer
  • Review Codecov Report in the comment section below once CI passes

chatton and others added 30 commits July 4, 2022 10:56
@chatton chatton changed the title Add fee middleware test suite functions Add fee middleware test suite functions (E2E #5) Jul 15, 2022
chatton added a commit that referenced this pull request Jul 15, 2022
@chatton chatton changed the title Add fee middleware test suite functions (E2E #5) Add fee middleware test suite functions to E2ETestSuite (E2E #5) Jul 15, 2022
Base automatically changed from cian/separate-go-mod-for-e2e to main July 15, 2022 09:32
@chatton chatton marked this pull request as ready for review July 15, 2022 09:38
@chatton chatton changed the title Add fee middleware test suite functions to E2ETestSuite (E2E #5) Add fee middleware test suite functions (E2E #5) Jul 15, 2022
chatton added a commit that referenced this pull request Jul 15, 2022
@@ -18,13 +24,51 @@ type FeeMiddlewareTestSuite struct {
testsuite.E2ETestSuite
}

// RegisterCounterPartyPayee broadcasts a MsgRegisterCounterpartyPayee message.
func (s *FeeMiddlewareTestSuite) RegisterCounterPartyPayee(ctx context.Context, chain *cosmos.CosmosChain, user broadcast.User, portID, channelID, relayerAddr, counterpartyPayeeAddr string) (sdk.TxResponse, error) {
Copy link
Contributor

Choose a reason for hiding this comment

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

With so many arguments the line becomes quite long, should we split it in multiple lines for better readability?

}

// PayPacketFeeAsync broadcasts a MsgPayPacketFeeAsync message.
func (s *FeeMiddlewareTestSuite) PayPacketFeeAsync(ctx context.Context, chain *cosmos.CosmosChain, user broadcast.User, packetID channeltypes.PacketId, packetFee feetypes.PacketFee) (sdk.TxResponse, error) {
Copy link
Member

Choose a reason for hiding this comment

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

ditto on @crodriguezvega's point

}

// QueryIncentivizedPacketsForChannel queries the incentivized packets on the specified channel.
func (s *FeeMiddlewareTestSuite) QueryIncentivizedPacketsForChannel(ctx context.Context, chain *cosmos.CosmosChain, portId, channelId string) ([]*feetypes.IdentifiedPacketFees, error) {
Copy link
Member

Choose a reason for hiding this comment

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

ditto on @crodriguezvega's point

Comment on lines 37 to 39
type E2ETestSuite struct {
suite.Suite
grpcClientSets map[string]GRPCClientSet
Copy link
Member

Choose a reason for hiding this comment

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

mega nit but should we add a line break after suite.Suite...?

paths map[string]path
logger *zap.Logger
DockerClient *dockerclient.Client
network string
startRelayerFn func(relayer ibc.Relayer)
}

type GRPCClientSet struct {
Copy link
Member

Choose a reason for hiding this comment

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

nit: I think we should add godocs to all exported types

Copy link
Member

Choose a reason for hiding this comment

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

What's the reasoning behind the naming of having the Set suffix? Initially when I read this I thought it was supposed to be a set data structure but I'm slightly confused

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The intention is just that is a group of clients, however I can see where the confusion is coming from.

After some searching it looks like the term clientSet isn't that common (used a lot in k8s ecosystem) I can rename to maybe just GRPCClients does that sound good to you?

Copy link
Member

Choose a reason for hiding this comment

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

Yep sounds good to me! :) Thanks 🤝

})

if s.grpcClientSets == nil {
s.grpcClientSets = map[string]GRPCClientSet{}
Copy link
Member

Choose a reason for hiding this comment

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

Any reason that we should not use make(map[string]GRPCClientSet) ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

nope! I can change it, I think make(...) syntax is more common in the codebase.

@codecov-commenter
Copy link

Codecov Report

Merging #1710 (b6a6d01) into main (0fd5656) will increase coverage by 0.00%.
The diff coverage is 100.00%.

Impacted file tree graph

@@           Coverage Diff           @@
##             main    #1710   +/-   ##
=======================================
  Coverage   80.00%   80.00%           
=======================================
  Files         164      164           
  Lines       12299    12300    +1     
=======================================
+ Hits         9840     9841    +1     
  Misses       1997     1997           
  Partials      462      462           
Impacted Files Coverage Δ
modules/apps/transfer/ibc_module.go 64.93% <100.00%> (+0.22%) ⬆️

@chatton chatton merged commit 193e414 into main Jul 19, 2022
@chatton chatton deleted the cian/add-fee-middleware-test-suite-functions branch July 19, 2022 09:18
damiannolan added a commit that referenced this pull request Jul 27, 2022
* docs: msg types for fee middleware (#1572)

* fix broken link

* fix: rm AllowUpdateAfter... check (#1118)

* update code & test

* update proto and adr026

* update CHANGELOG

* update cli docs

* update broken milestone link

* updated docs

* update re: comments

* nits: adding inline comments

Co-authored-by: Sean King <sean@seking.dev>

* chore: adding module name to incentivized packet events (#1580)

* docs: adding events to fee middleware docs (#1578)

* adding fee distribution docs for relayer operators

* adding validation information and basic cli examples

* removing unnecessary whitespace

* updating definitions

* adding ics29 fee middleware events docs

* cleanup

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* docs: adding End Users section to ics29 docs (#1579)

* docs: adding End Users section to ics29 docs

* Update docs/middleware/ics29-fee/end-users.md

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

* Update docs/middleware/ics29-fee/end-users.md

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

* Update docs/middleware/ics29-fee/end-users.md

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

* Update docs/middleware/ics29-fee/end-users.md

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

* Update docs/middleware/ics29-fee/end-users.md

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

* Update docs/middleware/ics29-fee/end-users.md

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

* Update docs/middleware/ics29-fee/end-users.md

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

* Update docs/middleware/ics29-fee/end-users.md

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

* Update docs/middleware/ics29-fee/end-users.md

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* chore: add link

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>
Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* feat: emitting an event when handling a client upgrade proposal (#1570)

* feat: emitting an event when handling a client upgrade proposal

* refactor: only emit event if err is nil

* refactor: idiotmatic go:

* docs: nits (#1595)

* docs: document that version string can be empty as argument of RegisterInterchainAccount (#1582)

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* docs: add upgrade client proposal event (#1596)

* Consolidate usage of NewErrorAcknowledgement (#1565)

* docs: adding line about module accounts / invariants (#1597)

* docs: adding line about module accounts / invariants

* Update docs/middleware/ics29-fee/fee-distribution.md

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* Update docs/middleware/ics29-fee/fee-distribution.md

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* follow up nits to #1565 (#1598)

* delete test files and add error to transfer types

* review comments

* build(deps): bump github.com/stretchr/testify from 1.7.5 to 1.8.0 (#1616)

Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.7.5 to 1.8.0.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](stretchr/testify@v1.7.5...v1.8.0)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: bump go package version to v4 (#1564)

* chore: bump go package version to v4

* update go.mod

* fix alignment

* fix build

* review comments

* build fixes

* deps: bumping go version 1.18 (#1627)

* bumping go version 1.18

* updating broken workflow setup

* add backport to v4.0.x and remove backports to v1 (EoL) (#1629)

* delete unused 04-channel version functions (#1636)

* delete unused code and associated tests

* Update CHANGELOG.md

* build(deps): bump github.com/cosmos/cosmos-sdk from 0.45.5 to 0.45.6 (#1615)

* build(deps): bump github.com/cosmos/cosmos-sdk from 0.45.5 to 0.45.6

Bumps [github.com/cosmos/cosmos-sdk](https://github.com/cosmos/cosmos-sdk) from 0.45.5 to 0.45.6.
- [Release notes](https://github.com/cosmos/cosmos-sdk/releases)
- [Changelog](https://github.com/cosmos/cosmos-sdk/blob/main/CHANGELOG.md)
- [Commits](cosmos/cosmos-sdk@v0.45.5...v0.45.6)

---
updated-dependencies:
- dependency-name: github.com/cosmos/cosmos-sdk
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update CHANGELOG.md

* copying part of codeql workflow to try to make it pass

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Carlos Rodriguez <carlos@interchain.io>
Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* update mergify.yml with new release branches (#1654)

* Script to dynamically generate list of e2e tests (E2E #1) (#1644)

* Add GitHub actions for e2e tests (E2E #2) (#1646)

* Remove crossings hello (#1317)

* remove crossing hellos from ChanOpenTry

* remove crossing hellos testcase

* revert single connectionHops check

* add comment in MsgChannelOpenTry tx proto about deprecate field

* Update proto/ibc/core/channel/v1/tx.proto

Co-authored-by: Aditya <adityasripal@gmail.com>

* minor fixes && UPDATE CHANGELOG.md

* Update proto/ibc/core/channel/v1/tx.proto

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

* Update proto/ibc/core/channel/v1/tx.proto

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* apply remaining changes for crossing hello removal

Deprecate previous channel id with proto tag
Remove unnecessary test cases from 04-channel
Remove crossing hello check in transfer application and the associated test case

* remove previous channel check in WriteChannelOpenTry

* regenerate proto files

* update documentation

* add migration documentation

* remove unnecessary doc

* remove crossing hello notion from ChanOpenAck

* apply review suggestions

Co-authored-by: Aditya <adityasripal@gmail.com>
Co-authored-by: Carlos Rodriguez <carlos@interchain.io>
Co-authored-by: Damian Nolan <damiannolan@gmail.com>
Co-authored-by: Jacob Gadikian <jacobgadikian@gmail.com>
Co-authored-by: Colin Axnér <25233464+colin-axner@users.noreply.github.com>

* docs: update roadmap (#1678)

* update roadmap

* update roadmap

* Update roadmap.md

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* refactor: remove crossing hellos from 03-connection (#1672)

* remove crossing hello check from ConnOpenTry and ConnOpenAck

* remove unnecessary test cases and fix build

* fix tests and add migration docs

* fix connection version check in conn open ack

* add changelog entry

* Update modules/core/03-connection/keeper/handshake.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* remove unnecessary testing function

* improve migration documentation as per review suggestion

Co-authored-by: Aditya <adityasripal@gmail.com>

* (core/23-commitment/types) doc: fix typo (#1694)

* remove spurious `TestABCICodeDeterminism` tests (#1695)

## Description

Thanks @colin-axner for noticing this.

closes: #XXXX

---

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.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* update bug report issue template (#1693)

* fix codeowners for 02-client (#1696)

## Description

Thanks again @colin-axner for signaling this!

closes: #XXXX

---

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.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* build(deps): bump google.golang.org/grpc from 1.47.0 to 1.48.0 (#1699)

Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.47.0 to 1.48.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.47.0...v1.48.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* docs: update middleware documentation (#1639)

* docs: update middleware documentation

* remove old text and add func keyword

* alignment

* fix alignment

* Update develop.md

* review comments

* remove empty line

* docs: add links in middleware docs to fee middleware implementation (#1641)

* docs: add links in middleware docs to fee middleware implementation

* add extra line for better readability

* fix typos

* Adding github action to run goimports (#1673)

* Add E2ETestSuite Type (E2E #3) (#1650)

* Separate go mod for e2e (E2E #4) (#1701)

* put back module name in event (#1681)

* fix typo

* Extracting e2e tests into two separate workflows (#1719)

* add categories

* Add fee middleware test suite functions (E2E #5) (#1710)

* Build local image to run tests with make e2e-test (#1722)

* Remove leftover crossing hello tests in connection handshake (#1724)

* remove leftover crossing hello tests in connection handshake

* fix bug in tests

* chore: adding environment variable to specify go relayer image (#1727)

* Thomas/1584 update docs apps (#1675)

* restructure content according to outline, fix image and syntax highlighting, fix titles and prepare for content updates

* rewrite bind port section

* restructure applications doc into folder structure

* add keeper section, make some minor corrections in bind ports, custom packet and implmenent IBC module sections

* update ibcmodule interface to encorporate the simpliefied handshake callbacks and version negotiation

* fix broken links

* fix remaining broken link

* fix some nits, correct for removal of crossing hellos and add some more explanation on portIDs

* update middleware docs to resolve merge confilicts

* update fee mw docs, add formating, fix typos, increase readability (#1665)

* update fee mw docs, add formating, fix typos, increase readability

* fix broken link

* Apply suggestions from code review

(De)capitalize headings and references to headings for consistency

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

* resolving merge conflict

* split the CLI commands and small typo correction

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

* chore: remove @fedekunze from CODEOWNERS (#1733)

* Test for AsyncSingleSender (E2E #6) (#1682)

* fix: running e2e-fork for dependabot PRs (#1745)

* Adding manual triggering of e2e via workflow dispatch (#1749)

* chore: denom traces migration handler (#1680)

* update code & test

* register migrator service

* add changelog entry for #1680

* add issue templates for epics and releases (#1702)

* add issue templates for epics and releases

* remove text

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* fix typo

* fix typo

* feat: allow governance to update the TrustingPeriod of the 07-tendermint light client (#1713)

* initial commit

* format imports

* update docs

* update CHANGELOG

* update upgrade dev docs

* update re: pr comments

* E2E Test: TestMsgPayPacketFeeSingleSender (#1756)

* move entry to right place

* build(deps): bump docker/build-push-action from 3.0.0 to 3.1.0 (#1743)

Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](docker/build-push-action@e551b19...1cb9d22)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

* chore: Update makefile (#1770)

* remove unused tools, remove incorrect import formatting

* uncomment command in makefile

* add version matrix (#1767)

* add pseudocode to handle empty version string in OnChanOpenInit

* fix broken link (#1776)

* add item to update the version matrix after a release (#1775)

* E2E Test: TestMsgPayPacketFeeSingleSenderTimesOut (#1751)

* Move scripts from .github directory into cmd (#1787)

Co-authored-by: Charly <charly@interchain.berlin>
Co-authored-by: Sean King <sean@seking.dev>
Co-authored-by: Sean King <seantking@users.noreply.github.com>
Co-authored-by: Carlos Rodriguez <carlos@interchain.io>
Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>
Co-authored-by: Cian Hatton <cian@interchain.io>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: vuong <56973102+vuong177@users.noreply.github.com>
Co-authored-by: Aditya <adityasripal@gmail.com>
Co-authored-by: Jacob Gadikian <jacobgadikian@gmail.com>
Co-authored-by: Colin Axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: rene <41963722+renaynay@users.noreply.github.com>
Co-authored-by: tmsdkeys <98807841+tmsdkeys@users.noreply.github.com>
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
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.

4 participants