From 98623a21d37412867c2a9bc1b2d310ff803cab0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?colin=20axn=C3=A9r?= <25233464+colin-axner@users.noreply.github.com> Date: Tue, 30 Aug 2022 14:07:49 +0200 Subject: [PATCH] testing: add base upgrade handler (#2144) ## Description 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. - [ ] 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//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` - [ ] Re-reviewed `Files changed` in the Github PR explorer - [ ] Review `Codecov Report` in the comment section below once CI passes (cherry picked from commit 4b8e5348cda28e8cc39d3d204abf88d8f69ad5e2) --- testing/simapp/app.go | 11 +++++++++++ testing/simapp/upgrades/upgrades.go | 23 +++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 testing/simapp/upgrades/upgrades.go diff --git a/testing/simapp/app.go b/testing/simapp/app.go index b9829f606be..5b1fffccf3f 100644 --- a/testing/simapp/app.go +++ b/testing/simapp/app.go @@ -108,6 +108,7 @@ import ( ibckeeper "github.com/cosmos/ibc-go/v5/modules/core/keeper" ibcmock "github.com/cosmos/ibc-go/v5/testing/mock" simappparams "github.com/cosmos/ibc-go/v5/testing/simapp/params" + simappupgrades "github.com/cosmos/ibc-go/v5/testing/simapp/upgrades" ibctestingtypes "github.com/cosmos/ibc-go/v5/testing/types" ) @@ -623,6 +624,8 @@ func NewSimApp( app.SetEndBlocker(app.EndBlocker) + app.setupUpgradeHandlers() + if loadLatest { if err := app.LoadLatestVersion(); err != nil { tmos.Exit(err.Error()) @@ -847,3 +850,11 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino return paramsKeeper } + +// setupUpgradeHandlers sets all necessary upgrade handlers for testing purposes +func (app *SimApp) setupUpgradeHandlers() { + app.UpgradeKeeper.SetUpgradeHandler( + simappupgrades.DefaultUpgradeName, + simappupgrades.CreateDefaultUpgradeHandler(app.mm, app.configurator), + ) +} diff --git a/testing/simapp/upgrades/upgrades.go b/testing/simapp/upgrades/upgrades.go new file mode 100644 index 00000000000..adc81349bdd --- /dev/null +++ b/testing/simapp/upgrades/upgrades.go @@ -0,0 +1,23 @@ +package upgrades + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/module" + upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" +) + +const ( + // DefaultUpgradeName is the default upgrade name used for upgrade tests which do not require special handling. + DefaultUpgradeName = "normal upgrade" +) + +// CreateDefaultUpgradeHandler creates an upgrade handler which can be used for regular upgrade tests +// that do not require special logic +func CreateDefaultUpgradeHandler( + mm *module.Manager, + configurator module.Configurator, +) upgradetypes.UpgradeHandler { + return func(ctx sdk.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { + return mm.RunMigrations(ctx, configurator, vm) + } +}