Skip to content

Commit

Permalink
fix: Restore upgrade testing suite for v3.x line (#789)
Browse files Browse the repository at this point in the history
* chore: updated anteHandler and postHandler

* chore: use replace for feemarket in go.mod

* chore: changed go version in docker file

* fix : fix testing in antehandler

* fix: fix lint issues

* chore: updated antehandler

* fix: fix lint issues

* fix: fix lint issues

* fix: lint issus

* chore: updated ante and fix test cases

* fix: gofumt errors

* fix: golint issues

* chore: updated postHandler

* testing

* chore: added test cases

* fix

* fix

* fix: golint issues

* fix : fix testcase

* fix: fix lint issues

* disable update tests

* disable report test

* fix: added response check in tests

* fix

* chore: added param subsace for feemarket

* addressed review comments

* fix

* fix

* fix

* TODO in app.go

* fix: golint error

* feat: add msg mint

* fix lint

* chore: added tests for mintMsg

* Temporarily disabled upgrade test runs + references

* chore: added upgradeHandler and upgraded the store loader

* chore: added integration test for mint msg

* fix: gofumpt issue

* fix: lint issue

* Removed stale replacement statement

* fixes

* fix

* testing

* lint fix

* fix

* remove build tag

* fix:gas issue

* fix tests

* fix: fix lint

* added gobuild tag

* testing

* fix: lint fix

* testing

* reverted setup.sh

* reverted scripts

* reverted gobuild tags

* testing

* testing

* testing

* testing

* test

* try fixing mint

* try fixing test

* try fix

* try fix

* try fix

* try trace

* testing

* testing

* try fix

* testing

* try fix

* testing

* fix tests

* fix tests

* try fix

* try fix

* fix lint

* push integartion build

* keys tests

* add query

* lint

* go build tag

* try fix

* cheqd home

* added keys query

* lint-fix

* testing

* home flag

* added logs

* testing

* testing

* testing

* testing

* tests

* add git flow

* try fix

* try fix

* docker

* mainnet

* remove keys list

* fix setup

* fix

* ci

* ci

* ci

* remove home path

* tests

* tests

* tests

* ci

* tests

* add home

* changes

* changes

* try fix

* try fix

* fix test

* testing

* testing

* testing

* fix lint

* fix

* restored build tag

* testing

* fix

* added queryBalance to test minting

* buildtag

* fix

* chore: addressed review comments

* nits

* nit

* revert

* reverted functions

* uncommented upgrade tests

* chore: added module version for feemarket and feeabs

* reordered versionmaps

* testing

* testing

* build tag

* testing

* testing

* testing

* testing

* changed balances

* reverted balances

* feemarketParams

* updated to v3

* fix

* updated old scripts

* testing

* testing

* testing

* remove build tag

* commented validator3

* changed voting period

* build tag

* testing

* query

* voting period

* testing

* testing

* testing

* testing

* testing

* testing

* testing

* testing

* testing

* testing

* testing

* removed print statement

* lint fix

* chore: addressed review comments

* restored GetproposalID func

* restored function

* fix: lint

* restored paramchange in github workflows

* Removed trailing space

* testing

* uncommented pricing proposal jobs

* testing

* testing

* testing

* fix : lint

* testing

* testing

* testing

* testing

* testing

* fix:lint

* testing

* testing

* testing

* testing

* testing

* increase timeout

* testing

* testing

* added upgrade tests

* fix:lint

* added module version map

* chore: added balance check after minting

* fix

* Enhanced report inclusion

* Removed redundant

* Restored relationships

* Aligned v3 with v2 + removed redundancy

* Added intermediate block producal periods

* Added extra overhead

* Adjusted literals + dynamic identifiers

* Removed redundant

* Debug

* Debug v2

* Enhanced coded registry

* Added directive

* Debug v3

* Debug

* Switched to constant since given order of precedence

* chore: added query to extract address

* debug

* reduce waiting time

* reduce waiting period

* debug

* reduce waiting time

* debug

* debug

* debug

* debug

* debug

* debug

* fix: Added explicit did module account permission setter within upgrade handler (#805)

* testing

* Aligned literals

---------

Co-authored-by: Tasos Derisiotis <[email protected]>

* Removed prints

---------

Co-authored-by: atheesh <[email protected]>
Co-authored-by: Tasos Derisiotis <[email protected]>
Co-authored-by: Atheesh Padala <[email protected]>
  • Loading branch information
4 people authored Oct 17, 2024
1 parent 6b305aa commit db3c40e
Show file tree
Hide file tree
Showing 45 changed files with 1,508 additions and 369 deletions.
313 changes: 153 additions & 160 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ permissions:
checks: write

jobs:

installer-cosmovisor:
name: "Installer - Cosmovisor mode"
runs-on: ubuntu-20.04
Expand Down Expand Up @@ -165,145 +164,141 @@ jobs:
name: report-integration.xml
path: report-integration.xml

# NOTE: This job is disabled since upgrade tests from v0.6.x to v1.x.x are not needed until next major release.
# upgrade-tests:
# name: "Upgrade Tests"
# runs-on: ubuntu-20.04
# steps:
# - uses: actions/checkout@v4

# # Preparations

# - name: Download old node binary (mainnet-latest)
# run: |
# mkdir -p ${{ env.RUNNER_BIN_DIR }}
# wget -c https://github.com/cheqd/cheqd-node/releases/download/v"${LEGACY_VERSION}"/cheqd-noded-"${LEGACY_VERSION}"-linux-amd64.tar.gz
# tar -xvf cheqd-noded-"${LEGACY_VERSION}"-linux-amd64.tar.gz -C ${{ env.RUNNER_BIN_DIR }}
# sudo chmod +x ${{ env.RUNNER_BIN_DIR }}/cheqd-noded
# env:
# LEGACY_VERSION: 1.4.5

# - name: Login to GitHub Container Registry
# uses: docker/login-action@v3
# with:
# registry: ghcr.io
# username: ${{ github.actor }}
# password: ${{ secrets.GITHUB_TOKEN }}

# - uses: actions/setup-go@v5
# with:
# go-version-file: ./go.mod
# cache: true

# - name: Install ginkgo
# working-directory: ./..
# run: go install github.com/onsi/ginkgo/v2/ginkgo@latest

# - name: Download new version of the Docker image (build-latest)
# uses: actions/download-artifact@v4
# with:
# name: cheqd-node-build.tar

# - name: Load node Docker image
# run: docker load -i cheqd-node-build.tar

# # Run tests
# - name: Setting up network with old binary inside (mainnet version)
# working-directory: ./tests/upgrade/integration
# run: |
# bash scripts/old_binary_setup.sh

# - name: Run pre-upgrade tests
# working-directory: ./tests/upgrade/integration/v2
# run: |
# ginkgo -r --race --tags upgrade_integration --focus-file pre_test.go --keep-going --trace --junit-report ../../../../report-pre-upgrade.xml

# - name: Upload pre-upgrade tests result
# uses: actions/upload-artifact@v4
# with:
# name: report-pre-upgrade.xml
# path: report-pre-upgrade.xml

# - name: Restart network using new node version (build-latest)
# working-directory: ./tests/upgrade/integration
# run: |
# bash scripts/upgrade.sh

# - name: Verifying docker processes
# working-directory: ./tests/upgrade/integration
# run: |
# docker ps -a

# - name: Run post-upgrade tests
# working-directory: ./tests/upgrade/integration/v2
# run: |
# ginkgo -r --race --tags upgrade_integration --focus-file post_test.go --keep-going --trace --junit-report ../../../../report-post-upgrade.xml

# - name: Upload post-upgrade tests result
# uses: actions/upload-artifact@v4
# with:
# name: report-post-upgrade.xml
# path: report-post-upgrade.xml

# - name: Download binary artifact (build-latest)
# uses: actions/download-artifact@v4
# id: download
# with:
# name: cheqd-noded
# path: ${{ env.RUNNER_BIN_DIR }}

# - name: Restore binary permissions
# run: sudo chmod +x ${{ env.RUNNER_BIN_DIR }}/cheqd-noded

# - name: Run integration tests on upgraded network
# working-directory: ./tests/integration
# run: |
# ginkgo -r --tags integration --race --randomize-suites --keep-going --trace --junit-report ../../report-upgraded-integration.xml

# - name: Upload post-upgrade integration tests result
# uses: actions/upload-artifact@v4
# with:
# name: report-upgraded-integration.xml
# path: report-upgraded-integration.xml

# - name: Show logs on failure
# if: failure()
# working-directory: ./docker/localnet
# run: docker compose --env-file build-latest.env logs --tail --follow

# - name: Submit governance fee parameter change proposals
# working-directory: ./tests/upgrade/integration/v2
# run: |
# ginkgo -r --race --tags upgrade_integration --focus-file param_change_proposal_test.go --keep-going --trace --junit-report ../../../../report-pricing-proposal.xml

# - name: Upload pricing proposal tests result
# uses: actions/upload-artifact@v4
# with:
# name: report-pricing-proposal.xml
# path: report-pricing-proposal.xml

# - name: Run pricing integration tests after successful param change proposal
# working-directory: ./tests/integration
# run: |
# ginkgo -r --tags integration --race --randomize-suites --keep-going --trace --skip-file cli_diddoc_test.go --skip-file cli_diddoc_negative_test.go --skip-file cli_resource_test.go --skip-file cli_resource_negative_test.go --junit-report ../../report-pricing-change.xml

# - name: Upload pricing change tests result
# uses: actions/upload-artifact@v4
# with:
# name: report-pricing-change.xml
# path: report-pricing-change.xml

# - name: Cleanup after tests
# working-directory: ./tests/upgrade/integration
# run: |
# bash scripts/cleanup.sh
upgrade-tests:
name: "Upgrade Tests"
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4

- name: Download old node binary (mainnet-latest)
run: |
mkdir -p ${{ env.RUNNER_BIN_DIR }}
wget -c https://github.com/cheqd/cheqd-node/releases/download/v"${LEGACY_VERSION}"/cheqd-noded-"${LEGACY_VERSION}"-linux-amd64.tar.gz
tar -xvf cheqd-noded-"${LEGACY_VERSION}"-linux-amd64.tar.gz -C ${{ env.RUNNER_BIN_DIR }}
sudo chmod +x ${{ env.RUNNER_BIN_DIR }}/cheqd-noded
env:
LEGACY_VERSION: 2.0.1

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- uses: actions/setup-go@v5
with:
go-version-file: ./go.mod
cache: true

- name: Install ginkgo
working-directory: ./..
run: go install github.com/onsi/ginkgo/v2/ginkgo@latest

- name: Download new version of the Docker image (build-latest)
uses: actions/download-artifact@v4
with:
name: cheqd-node-build.tar

- name: Load node Docker image
run: docker load -i cheqd-node-build.tar

- name: Setting up network with old binary inside (mainnet version)
working-directory: ./tests/upgrade/integration
run: |
bash scripts/old_binary_setup.sh
- name: Run pre-upgrade tests
working-directory: ./tests/upgrade/integration/v3
run: |
ginkgo -r --race --tags upgrade_integration --focus-file pre_test.go --keep-going --trace --junit-report ../../../../report-pre-upgrade.xml
- name: Upload pre-upgrade tests result
uses: actions/upload-artifact@v4
with:
name: report-pre-upgrade.xml
path: report-pre-upgrade.xml

- name: Restart network using new node version (build-latest)
working-directory: ./tests/upgrade/integration
run: |
bash scripts/upgrade.sh
- name: Verifying docker processes
working-directory: ./tests/upgrade/integration
run: |
docker ps -a
- name: Run post-upgrade tests
working-directory: ./tests/upgrade/integration/v3
run: |
ginkgo -r --race --tags upgrade_integration --focus-file post_test.go --keep-going --trace --junit-report ../../../../report-post-upgrade.xml
- name: Upload post-upgrade tests result
uses: actions/upload-artifact@v4
with:
name: report-post-upgrade.xml
path: report-post-upgrade.xml

- name: Download binary artifact (build-latest)
uses: actions/download-artifact@v4
id: download
with:
name: cheqd-noded
path: ${{ env.RUNNER_BIN_DIR }}

- name: Restore binary permissions
run: sudo chmod +x ${{ env.RUNNER_BIN_DIR }}/cheqd-noded

- name: Run integration tests on upgraded network
working-directory: ./tests/integration
run: |
ginkgo -r --tags integration --race --randomize-suites --keep-going --trace --junit-report ../../report-upgraded-integration.xml
- name: Upload post-upgrade integration tests result
uses: actions/upload-artifact@v4
with:
name: report-upgraded-integration.xml
path: report-upgraded-integration.xml

- name: Show logs on failure
if: failure()
working-directory: ./docker/localnet
run: docker compose --env-file build-latest.env logs --tail --follow

- name: Submit governance fee parameter change proposals
working-directory: ./tests/upgrade/integration/v2
run: |
ginkgo -r --race --tags upgrade_integration --focus-file param_change_proposal_test.go --keep-going --trace --junit-report ../../../../report-pricing-proposal.xml
- name: Upload pricing proposal tests result
uses: actions/upload-artifact@v4
with:
name: report-pricing-proposal.xml
path: report-pricing-proposal.xml

- name: Run pricing integration tests after successful param change proposal
working-directory: ./tests/integration
run: |
ginkgo -r --tags integration --race --randomize-suites --keep-going --trace --skip-file cli_diddoc_test.go --skip-file cli_diddoc_negative_test.go --skip-file cli_resource_test.go --skip-file cli_resource_negative_test.go --junit-report ../../report-pricing-change.xml
- name: Upload pricing change tests result
uses: actions/upload-artifact@v4
with:
name: report-pricing-change.xml
path: report-pricing-change.xml

- name: Cleanup after tests
working-directory: ./tests/upgrade/integration
run: |
bash scripts/cleanup.sh
report-results:
name: "Report"
runs-on: ubuntu-20.04
# NOTE: If not next major release, only unit and integration tests are necessary, otherwise all tests are needed.
needs: [unit-tests, integration-tests]
# needs: [unit-tests, integration-tests, upgrade-tests]
# needs: [unit-tests, integration-tests]
needs: [unit-tests, integration-tests, upgrade-tests]
if: always()

steps:
Expand All @@ -319,41 +314,39 @@ jobs:
with:
name: report-integration.xml

# - name: Download pre-upgrade test Report
# uses: actions/download-artifact@v4
# with:
# name: report-pre-upgrade.xml

# - name: Download post-upgrade test Report
# uses: actions/download-artifact@v4
# with:
# name: report-post-upgrade.xml

# - name: Download upgraded integration test Report
# uses: actions/download-artifact@v4
# with:
# name: report-upgraded-integration.xml
- name: Download pre-upgrade test Report
uses: actions/download-artifact@v4
with:
name: report-pre-upgrade.xml

# - name: Download pricing proposal test Report
# uses: actions/download-artifact@v4
# with:
# name: report-pricing-proposal.xml
- name: Download post-upgrade test Report
uses: actions/download-artifact@v4
with:
name: report-post-upgrade.xml

# - name: Download pricing change test Report
# uses: actions/download-artifact@v4
# with:
# name: report-pricing-change.xml
- name: Download upgraded integration test Report
uses: actions/download-artifact@v4
with:
name: report-upgraded-integration.xml

- name: Download pricing proposal test Report
uses: actions/download-artifact@v4
with:
name: report-pricing-proposal.xml
- name: Download pricing change test Report
uses: actions/download-artifact@v4
with:
name: report-pricing-change.xml
- name: Combine test results
run: |
# python ./.github/scripts/xml_combine.py report-unit.xml report-integration.xml
python ./.github/scripts/xml_combine.py report-unit.xml report-integration.xml report-pre-upgrade.xml report-post-upgrade.xml report-upgraded-integration.xml report-pricing-proposal.xml report-pricing-change.xml > report.xml
# run: |
# python ./.github/scripts/xml_combine.py report-unit.xml report-integration.xml > report.xml

- uses: mikepenz/action-junit-report@v4
with:
report_paths: 'report.xml'
report_paths: "report.xml"
check_name: ""
suite_regex: '*'
suite_regex: "*"
include_passed: true
detailed_summary: true
20 changes: 20 additions & 0 deletions app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -1131,6 +1131,7 @@ func (app *App) RegisterUpgradeHandlers() {
if err != nil {
return migrations, err
}
SetExplicitModuleAccountPermissions(ctx, app.AccountKeeper)
err = ConfigureFeeMarketModule(ctx, app.FeeMarketKeeper)
if err != nil {
return migrations, err
Expand All @@ -1151,6 +1152,7 @@ func (app *App) setupUpgradeStoreLoaders() {
storeUpgrades := storetypes.StoreUpgrades{
Added: []string{
feemarkettypes.StoreKey,
feeabstypes.StoreKey,
},
}
// configure store loader that checks if version == upgradeHeight and applies store upgrades
Expand Down Expand Up @@ -1186,3 +1188,21 @@ func ConfigureFeeMarketModule(ctx sdk.Context, keeper *feemarketkeeper.Keeper) e
func (app *App) Configurator() module.Configurator {
return app.configurator
}

func SetExplicitModuleAccountPermissions(ctx sdk.Context, accountKeeper authkeeper.AccountKeeper) {
// Get the module account using the account name
moduleAcc := accountKeeper.GetModuleAccount(ctx, didtypes.ModuleName)
// Ensure the account exists
if moduleAcc == nil {
panic("module account not found")
}
// Update the permissions (replace with the actual permissions)
newPermissions := []string{authtypes.Minter, authtypes.Burner} // Example permissions
// Cast the account to the concrete type that has permissions
if macc, ok := moduleAcc.(*authtypes.ModuleAccount); ok {
macc.Permissions = newPermissions
accountKeeper.SetModuleAccount(ctx, macc) // Update the account in the keeper
} else {
panic("failed to cast module account to *ModuleAccount")
}
}
2 changes: 1 addition & 1 deletion docker/localnet/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -276,4 +276,4 @@ volumes:
validator-2-data:
validator-3-data:
seed-0-data:
observer-0-data:
observer-0-data:
Loading

0 comments on commit db3c40e

Please sign in to comment.