Skip to content

feat: introduce load tests into devnet#664

Open
wlawt wants to merge 2 commits intomainfrom
load-devnet
Open

feat: introduce load tests into devnet#664
wlawt wants to merge 2 commits intomainfrom
load-devnet

Conversation

@wlawt
Copy link
Contributor

@wlawt wlawt commented Feb 4, 2026

Supersedes #653

Motivation

Previously, there wasn't a way to easily test changes made across our services. We would deploy to the devnet and manually QA. As part of the production readiness of getting resource metering out, it's a requirement to be able to run the system locally and test locally first before rolling out changes.

Changes

This PR extends off of the system_tests which was originally inspired by scripts/devnet/ to include stress/load tests. It includes bringing in the Simulator.sol contract from base/benchmark and sending transactions that would be gas or time expensive (see storage slot modifications, calldata sizes)

Notes

Co-authored-by: Niran Babalola niran.babalola@coinbase.com

@cb-heimdall
Copy link
Collaborator

cb-heimdall commented Feb 4, 2026

🟡 Heimdall Review Status

Requirement Status More Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 0
Sum 1

@wlawt wlawt requested a review from niran February 4, 2026 19:58
Comment on lines 86 to 95
fn assert_load_test_passed(stats: &Stats) {
assert!(
stats.submitted() >= 10,
"Expected at least 10 transactions to be submitted, got {}",
stats.submitted()
);
// TODO: once the resource metering changes are in, we should have different
// thresholds for failed transactions
assert!(stats.failed() <= 2, "Expected no more than 2 failed transactions, but {} failed", stats.failed());
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should open up a ticket to track this. Generally would be nice to not commit TODOs into the codebase but at the minimum have tickets to track.

Copy link
Contributor

@refcell refcell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Few nits but otherwise good to merge

@danyalprout
Copy link
Collaborator

danyalprout commented Feb 7, 2026

I think we should put load tests into base/infra. A few thoughts:

  1. Our load testing framework should be able to run on a local devnet like this or via a CLI against a production network
  2. It feels more like infra than protocol (i.e. load tests should run against proxyd/nodes as well as the protocol)

I think we need a bit of a plan to unify contender, this PR and gobrr. Lets chat on Monday and come up with a plan

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants