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) + } +}