cosmos-sdk/tests/systemtests
2025-01-16 17:31:23 +00:00
..
testdata test: migrate e2e/tx tests to systemtest (#22152) 2024-10-24 09:18:37 +00:00
.gitignore refactor(systemtests): Extract system test framework (#22578) 2024-11-26 14:46:54 +00:00
account_test.go refactor(systemtests): Extract system test framework (#22578) 2024-11-26 14:46:54 +00:00
auth_test.go fix(x/auth): update proto address conversion query to prevent duplicate HTTP binding (#23357) 2025-01-16 17:31:23 +00:00
authz_test.go test(systemtests): fix gRPC tests for v1 & v2 (#22774) 2024-12-06 11:03:12 +00:00
bank_test.go refactor(server/v2): auto-gateway improvements (#23262) 2025-01-13 21:13:13 +00:00
bankv2_test.go feat(store/v2): build the migration manager in the root store factory (#22336) 2025-01-13 10:56:48 +00:00
circuit_test.go feat(client/v2): support definitions of inner messages (#22890) 2024-12-18 10:48:12 +00:00
cometbft_client_test.go refactor(systemtests): remove v2 checks (#23098) 2025-01-09 08:43:01 +00:00
distribution_test.go fix(server/v2): post request fallback (#23361) 2025-01-14 00:25:07 +00:00
export_test.go test: investigate test failure due to wal log (#22679) 2024-12-19 15:00:37 +00:00
fraud_test.go fix(systemtests): wait longer to detect double sign (#23286) 2025-01-10 10:36:45 +00:00
go.mod build(deps): Bump google.golang.org/grpc from 1.69.2 to 1.69.4 (#23389) 2025-01-15 21:23:22 +00:00
go.sum build(deps): Bump google.golang.org/grpc from 1.69.2 to 1.69.4 (#23389) 2025-01-15 21:23:22 +00:00
gov_test.go refactor(systemtests): Extract system test framework (#22578) 2024-11-26 14:46:54 +00:00
group_test.go refactor(systemtests): remove v2 checks (#23098) 2025-01-09 08:43:01 +00:00
grpc_test.go fix(server/v2/grpc): fix reflection (#23333) 2025-01-13 10:14:24 +00:00
main_test.go refactor(systemtests): Extract system test framework (#22578) 2024-11-26 14:46:54 +00:00
Makefile ci: increase test-system timeout (#22386) 2024-10-28 12:36:40 +00:00
mint_test.go refactor(systemtests): remove v2 checks (#23098) 2025-01-09 08:43:01 +00:00
README.md refactor(systemtests): remove v2 checks (#23098) 2025-01-09 08:43:01 +00:00
snapshots_test.go refactor(systemtests): remove v2 checks (#23098) 2025-01-09 08:43:01 +00:00
staking_test.go refactor(systemtests): remove v2 checks (#23098) 2025-01-09 08:43:01 +00:00
tx_test.go chore: fix system test for v2 (#23328) 2025-01-14 22:50:02 +00:00
unordered_tx_test.go refactor(systemtests): remove v2 checks (#23098) 2025-01-09 08:43:01 +00:00
upgrade_test.go fix(x/upgrade): register missing implementation for SoftwareUpgradeProposal (#23179) 2025-01-14 09:40:50 +00:00

System tests

Go black box tests that setup and interact with a local blockchain. The system test framework works with the compiled binary of the chain artifact only. To get up to speed, checkout the getting started guide.

Beside the Go tests and testdata files, this directory can contain the following directories:

  • binaries - cache for binary
  • testnet - node files

Please make sure to not add or push them to git.

Execution

Build a new binary from current branch and copy it to the tests/systemtests/binaries folder by running system tests. In project root:

make test-system

Or via manual steps

make build
mkdir -p ./tests/systemtests/binaries
cp ./build/simdv2 ./tests/systemtests/binaries/

Manual test run

go test -v -mod=readonly -failfast -tags='system_test' --run TestStakeUnstake    ./... --verbose

Working with macOS

Most tests should function seamlessly. However, the file upgrade_test.go includes a build annotation for Linux only.

For the system upgrade test, an older version of the binary is utilized to perform a chain upgrade. This artifact is retrieved from a Docker container built for Linux.

To circumvent this limitation locally:

  1. Checkout and build the older version of the artifact from a specific tag for your OS.
  2. Place the built artifact into the binaries folder.
  3. Ensure that the filename, including the version, is correct.

With the cached artifact in place, the test will use this file instead of attempting to pull it from Docker.