feat(devenv): E2E and load prod#735
Open
rodrigombsoares wants to merge 22 commits into
Open
Conversation
|
👋 rodrigombsoares, thanks for creating this pull request! To help reviewers, please consider creating future PRs as drafts first. This allows you to self-review and make any final changes before notifying the team. Once you're ready, you can mark it as "Ready for review" to request feedback. Thanks! |
e0e8b8f to
1595e87
Compare
…getting next holdings
11db662 to
bcd7e3d
Compare
a5e6eb8 to
bcbf8f2
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This branch extends CCIP devenv e2e and load tests so they can run against Canton TestNet + Sepolia (prod-testnet) in addition to the local Docker devenv. Tests are selected via
-ccip-env/CCIP_ENV, with Canton auth wired through env vars and a new CLDF auth layer.Load gun is refactored to be environment-agnostic, adds structured load metrics (per-message timings and failure counts), and fixes concurrency issues.
Token transfer tests are updated with env-keyed config and prod datastore fallbacks for TEST/LINK lanes.
Features
env Bootstrap
BootstrapE2Ehelper that makes test functions env agnosticProd-testnet environment
-ccip-env/CCIP_ENVwithdevenv(default) andprod-testnettargets (ccip/devenv/tests/env.go).env-prod-testnet.ci.tomlfor CI against live Canton TestNet + Sepolia RPCs and CCIP indexer endpoints.cldf_auth.go(Okta authorization-code / client-credentials / static JWT overrides).verifier_observation.go,impl.go).Load test infrastructure
CCIPLoadGunto be environment-agnostic: no in-gun minting orSetupSend; callers pre-fund before WASP starts.LoadMetricsCollector(metrics.go) with per-message phase timings (send, confirm-send, confirm-exec), percentiles (P90/P95/P99), and failure counts by phase.messageIDper successful send; fixes concurrency / single-flight issues in the gun.ConfirmSendFuncandSkipExecConfirmfor prod vs devenv behavior.Token lane configuration
token_transfer_config.tomlinto env-keyed sections ([devenv.*],[prod-testnet.*]).remote_pool_*fields when combo discovery fails on simple TEST/LINK qualifiers.transfer_instrument_id(e.g.link-token) and documents fixed-point vs weitransfer_amountformats.token_lane.gowith prod-aware discovery, validation, and tests (token_lane_test.go).Supporting changes
manual_execution.go: improved prod handling (instance address hashing, confirm-send/exec paths).helpers.go: env-aware confirm timeouts, prod balance logging,PRIVATE_KEY-derived EVM receiver on prod..gitignore: local prod/staging env files underccip/devenv/.Testing
Create a test file
.env.prod-testnet.localset the env in terminal
set -a; source ../../.env.prod-testnet.local; set +arun the tests one direction at a time
go test -timeout 120m -v -count=1 -run '^TestEVM2Canton_TokenLoad$'go test -timeout 120m -v -count=1 -run '^TestCanton2EVM_TokenLoad$'