Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
2597fdf
feat(tests/e2e): bring evmos e2e upgrade test suite
GuillemGarciaDev Jan 19, 2025
4cc7853
fix(tests/e2e): remove e2e docker testsuite
GuillemGarciaDev Jan 20, 2025
1b56800
feat(tests/upgrade): setup testsuite with custom db wip
GuillemGarciaDev Jan 20, 2025
b2ae909
feat(tests): upgrade integration testutil
GuillemGarciaDev Jan 28, 2025
e3d60cb
feat: upgrade integration base
GuillemGarciaDev Jan 28, 2025
22e2a62
feat(tests): upgrade integration testsuite with `ApplyUpgrade` call
GuillemGarciaDev Jan 29, 2025
42aefc2
poc(tests): testing temporal v6 upgrade with upgrade integration test…
GuillemGarciaDev Jan 30, 2025
9d3a1c6
fix: rename `tests` package to `integration`
GuillemGarciaDev Jan 30, 2025
76638a1
fix(testutil): restore `MemDB` for exrp integration app
GuillemGarciaDev Jan 30, 2025
af0ebb9
Merge branch 'e2e/feat/suite' into integration/feat/upgrade-test-suite
GuillemGarciaDev Jan 30, 2025
800bea1
refactor(poc): replace current version `v6` with testing version `v7`
GuillemGarciaDev Jan 30, 2025
7a2aefa
fix(tests): replace upgrade plan name with v7
GuillemGarciaDev Jan 30, 2025
596829d
feat(tests): upgrade auth module tests
GuillemGarciaDev Jan 30, 2025
99fbf06
feat(tests): upgrade bank module tests
GuillemGarciaDev Jan 30, 2025
a51bc65
feat(tests): upgrade distribution module tests
GuillemGarciaDev Jan 30, 2025
7701cec
feat(tests): upgrade erc20 module tests
GuillemGarciaDev Jan 30, 2025
4a7c5b7
feat(tests): upgrade evm module tests
GuillemGarciaDev Jan 30, 2025
cd101b4
feat(tests): upgrade feemarket module tests
GuillemGarciaDev Jan 30, 2025
56edca6
feat(tests): upgrade gov module tests
GuillemGarciaDev Jan 30, 2025
fc20391
feat(tests): upgrade slashing module tests
GuillemGarciaDev Jan 30, 2025
dd1c4a6
feat(tests): upgrade staking module tests
GuillemGarciaDev Jan 30, 2025
c2ce5b4
refactor(tests): upgrade test suite
GuillemGarciaDev Jan 30, 2025
6c581f7
feat(tests): add poa upgrade tests
GuillemGarciaDev Jan 31, 2025
ee31df2
chore: remove `test-upgrade` rule from dockerfile
GuillemGarciaDev Jan 31, 2025
a08caae
Merge branch 'integration/feat/upgrade-test-suite' into integration/f…
GuillemGarciaDev Jan 31, 2025
94cd5f8
fix(tests): linting
GuillemGarciaDev Jan 31, 2025
66099e9
feat: customize `test-upgrade` Makefile rule to accept custom options
GuillemGarciaDev Jan 31, 2025
02ca22c
Merge pull request #56 from xrplevm/integration/feat/upgrade-module-p…
AdriaCarrera Mar 18, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ RUN make lint
RUN make test-poa
# Integration tests
RUN make test-integration
RUN make test-upgrade
# Simulation tests
RUN make test-sim-benchmark-simulation
RUN make test-sim-full-app-fast
Expand Down
11 changes: 8 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ COMMIT := $(shell git log -1 --format='%H')
BINDIR ?= $(GOPATH)/bin
APP = ./app

# Upgrade testsuite values
LATEST_UPGRADE ?= $(shell ls -d ./app/upgrades/* | sort -r | head -n 1)
SNAPSHOT_DIR ?= .exrpd
# don't override user values
ifeq (,$(VERSION))
VERSION := $(shell git describe --tags)
Expand Down Expand Up @@ -126,11 +129,13 @@ mocks:
@echo "--> Generating mocks"
@./scripts/mockgen.sh

test: test-poa test-integration test-upgrade test-sim-benchmark-simulation test-sim-full-app-fast
test: test-poa test-integration test-sim-benchmark-simulation test-sim-full-app-fast

test-upgrade:
@echo "--> Running upgrade testsuite"
@go test -mod=readonly -v ./tests/upgrade
@echo "--> Running upgrade testsuite from snapshot: $(SNAPSHOT_DIR), into $(LATEST_UPGRADE)"
@rm -rf $(LATEST_UPGRADE)/integration/.exrpd
@cp -r $(SNAPSHOT_DIR) $(LATEST_UPGRADE)/integration/.exrpd
@go test -mod=readonly -v $(LATEST_UPGRADE)/integration

test-integration:
@echo "--> Running integration testsuite"
Expand Down
11 changes: 10 additions & 1 deletion app/upgrades.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (
v4 "github.com/xrplevm/node/v6/app/upgrades/v4"
v5 "github.com/xrplevm/node/v6/app/upgrades/v5"
v6 "github.com/xrplevm/node/v6/app/upgrades/v6"
v7 "github.com/xrplevm/node/v6/app/upgrades/v7"
)

func (app *App) setupUpgradeHandlers() {
Expand Down Expand Up @@ -44,6 +45,14 @@ func (app *App) setupUpgradeHandlers() {
app.configurator,
),
)
app.UpgradeKeeper.SetUpgradeHandler(
v7.UpgradeName,
v7.CreateUpgradeHandler(
app.mm,
app.configurator,
app.StakingKeeper,
),
)

// When a planned update height is reached, the old binary will panic
// writing on disk the height and name of the update that triggered it
Expand All @@ -68,7 +77,7 @@ func (app *App) setupUpgradeHandlers() {
},
Deleted: []string{},
}
case v5.UpgradeName, v6.UpgradeName:
case v5.UpgradeName, v6.UpgradeName, v7.UpgradeName:
// No store upgrades for v5
storeUpgrades = &storetypes.StoreUpgrades{}
}
Expand Down
5 changes: 5 additions & 0 deletions app/upgrades/v7/constants.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package v7

const (
UpgradeName = "v7.0.0"
)
44 changes: 44 additions & 0 deletions app/upgrades/v7/integration/auth_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
//nolint:dupl
package integration

import (
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
)

func (s *UpgradeTestSuite) TestUpgrade_Auth_Params() {
prevParams, err := s.network.GetAuthClient().Params(
s.network.GetContext(),
&authtypes.QueryParamsRequest{},
)
s.Require().NoError(err)

s.RunUpgrade(upgradeName)

postParams, err := s.network.GetAuthClient().Params(
s.network.GetContext(),
&authtypes.QueryParamsRequest{},
)
s.Require().NoError(err)

// Check that not modified params are the same
s.Require().Equal(prevParams.Params, postParams.Params)
}

func (s *UpgradeTestSuite) TestUpgrade_Auth_Accounts() {
res, err := s.network.GetAuthClient().Accounts(
s.network.GetContext(),
&authtypes.QueryAccountsRequest{},
)
s.Require().NoError(err)

s.RunUpgrade(upgradeName)

postRes, err := s.network.GetAuthClient().Accounts(
s.network.GetContext(),
&authtypes.QueryAccountsRequest{},
)
s.Require().NoError(err)

// Check that not modified accounts are the same
s.Require().Equal(res.Accounts, postRes.Accounts)
}
102 changes: 102 additions & 0 deletions app/upgrades/v7/integration/bank_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
package integration

import (
sdktypes "github.com/cosmos/cosmos-sdk/types"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
)

func (s *UpgradeTestSuite) TestUpgrade_Bank_Params() {
prevParams, err := s.network.GetBankClient().Params(
s.network.GetContext(),
&banktypes.QueryParamsRequest{},
)
s.Require().NoError(err)

s.RunUpgrade(upgradeName)

postParams, err := s.network.GetBankClient().Params(
s.network.GetContext(),
&banktypes.QueryParamsRequest{},
)
s.Require().NoError(err)

// Check that not modified params are the same
s.Require().Equal(prevParams.Params, postParams.Params)
}

func (s *UpgradeTestSuite) TestUpgrade_Bank_TotalSupply() {
res, err := s.network.GetBankClient().TotalSupply(
s.network.GetContext(),
&banktypes.QueryTotalSupplyRequest{},
)
s.Require().NoError(err)

s.RunUpgrade(upgradeName)

postRes, err := s.network.GetBankClient().TotalSupply(
s.network.GetContext(),
&banktypes.QueryTotalSupplyRequest{},
)
s.Require().NoError(err)

// Check that not modified balances are the same
s.Require().Equal(res.Supply, postRes.Supply)
}

func (s *UpgradeTestSuite) TestUpgrade_Bank_Send() {
// Replace with the desired addresses
sender, err := sdktypes.AccAddressFromBech32("ethm1dakgyqjulg29m5fmv992g2y66m9g2mjn6hahwg")
s.Require().NoError(err)
receiver, err := sdktypes.AccAddressFromBech32("ethm1nqvn2hmte72e3z0xyqmh06hdwd9qu6hgdcavhh")
s.Require().NoError(err)
amount := sdktypes.NewInt64Coin(s.network.GetDenom(), 100)

prevBalancesSender, err := s.network.GetBankClient().Balance(
s.network.GetContext(),
&banktypes.QueryBalanceRequest{
Address: sender.String(),
Denom: s.network.GetDenom(),
},
)
s.Require().NoError(err)

prevBalancesReceiver, err := s.network.GetBankClient().Balance(
s.network.GetContext(),
&banktypes.QueryBalanceRequest{
Address: receiver.String(),
Denom: s.network.GetDenom(),
},
)
s.Require().NoError(err)

s.RunUpgrade(upgradeName)

err = s.network.BankKeeper().SendCoins(
s.network.GetContext(),
sender,
receiver,
sdktypes.NewCoins(amount),
)
s.Require().NoError(err)

postBalancesSender, err := s.network.GetBankClient().Balance(
s.network.GetContext(),
&banktypes.QueryBalanceRequest{
Address: sender.String(),
Denom: s.network.GetDenom(),
},
)
s.Require().NoError(err)

postBalancesReceiver, err := s.network.GetBankClient().Balance(
s.network.GetContext(),
&banktypes.QueryBalanceRequest{
Address: receiver.String(),
Denom: s.network.GetDenom(),
},
)
s.Require().NoError(err)

s.Require().Equal(prevBalancesSender.Balance.Amount.Sub(amount.Amount).String(), postBalancesSender.Balance.Amount.String())
s.Require().Equal(prevBalancesReceiver.Balance.Amount.Add(amount.Amount).String(), postBalancesReceiver.Balance.Amount.String())
}
24 changes: 24 additions & 0 deletions app/upgrades/v7/integration/distribution_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package integration

import (
distributiontypes "github.com/cosmos/cosmos-sdk/x/distribution/types"
)

func (s *UpgradeTestSuite) TestUpgrade_DistributionParams() {
prevParams, err := s.network.GetDistrClient().Params(
s.network.GetContext(),
&distributiontypes.QueryParamsRequest{},
)
s.Require().NoError(err)

s.RunUpgrade(upgradeName)

postParams, err := s.network.GetDistrClient().Params(
s.network.GetContext(),
&distributiontypes.QueryParamsRequest{},
)
s.Require().NoError(err)

// Check that not modified params are the same
s.Require().Equal(prevParams.Params, postParams.Params)
}
Loading