Skip to content

test(dursto): add a standalone long tests binary which runs in CI#1085

Merged
victor-dumitrescu merged 2 commits into
mainfrom
vdum/rv-984-2
Jun 15, 2026
Merged

test(dursto): add a standalone long tests binary which runs in CI#1085
victor-dumitrescu merged 2 commits into
mainfrom
vdum/rv-984-2

Conversation

@victor-dumitrescu

@victor-dumitrescu victor-dumitrescu commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Relates to RV-984.

What

Adds a standalone binary for the Database long test with 2 commands:

  • test to start a test with the given parameters
  • replay to replay a failing epoch recorded by a previous test run at a given path

It also adds a new Durable Storage Long Tests pull request job which runs the long test for 10 minutes. I chose this time limit so that, given parallel execution, the overall time to complete a PR CI run is not impacted.

Next:

Why

Binary added so that the long test can be deployed independently.

Manually Testing

To run a short test through the binary:

cargo run --release --features rocksdb,unstable-test-utils --bin database_long_test -- test --epochs 10 --ops-per-epoch 100 --cases-per-epoch 20

To test the replay command you need to generate a failure first, for example by changing behaviour for one database instance but not the others in durable-storage/src/long_test/run_case.rs:

         check_and_apply_value_operation(&mut targets.in_memory_db, &targets.model, op);
         check_and_apply_value_operation(&mut targets.persistent_db, &targets.model, op);
-        check_and_apply_value_operation(&mut targets.production_db, &targets.model, op);
+        if !prove {
+            check_and_apply_value_operation(&mut targets.production_db, &targets.model, op);
+        }

Running the test again should now result in a failure and the command to replay it should be printed:

failure artifacts written to XXXX
replay with:
cargo run --release --features rocksdb,unstable-test-utils --bin database_long_test -- replay XXXX

Tasks for the Author

  • Link all Linear issues related to this MR using magic words (e.g. part of, relates to, closes).
  • Eliminate dead code and other spurious artefacts introduced in your changes.
  • Document new public functions, methods and types.
  • Make sure the documentation for updated functions, methods, and types is correct.
  • Add tests for bugs that have been fixed.
  • Explain changes to regression test captures when applicable.
  • Write commit messages in agreement with our guidelines.
  • Self-review your changes to ensure they are high-quality.
  • Complete all of the above before assigning this MR to reviewers.

@codecov

codecov Bot commented Jun 8, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 26.38889% with 53 lines in your changes missing coverage. Please review.
✅ Project coverage is 89.95%. Comparing base (39f076e) to head (7325f47).

Files with missing lines Patch % Lines
durable-storage/src/long_test/mod.rs 40.42% 18 Missing and 10 partials ⚠️
durable-storage/src/bin/database_long_test.rs 0.00% 25 Missing ⚠️

❌ Your patch check has failed because the patch coverage (26.38%) is below the target coverage (80.00%). You can increase the patch coverage or adjust the target coverage.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1085      +/-   ##
==========================================
- Coverage   90.14%   89.95%   -0.20%     
==========================================
  Files         134      135       +1     
  Lines       29155    29217      +62     
  Branches    29155    29217      +62     
==========================================
  Hits        26282    26282              
- Misses       2058     2109      +51     
- Partials      815      826      +11     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@victor-dumitrescu victor-dumitrescu force-pushed the vdum/rv-984 branch 2 times, most recently from 22b8517 to e04f630 Compare June 9, 2026 06:46
@victor-dumitrescu victor-dumitrescu force-pushed the vdum/rv-984-2 branch 2 times, most recently from 5e1bf8f to efb2a2f Compare June 9, 2026 07:20
@victor-dumitrescu victor-dumitrescu force-pushed the vdum/rv-984 branch 3 times, most recently from e652f91 to e91b11e Compare June 12, 2026 08:15
@victor-dumitrescu victor-dumitrescu force-pushed the vdum/rv-984-2 branch 2 times, most recently from ac69241 to 5f9ec95 Compare June 12, 2026 09:36
Base automatically changed from vdum/rv-984 to main June 12, 2026 12:02
@victor-dumitrescu victor-dumitrescu marked this pull request as ready for review June 12, 2026 13:35
@github-actions

github-actions Bot commented Jun 12, 2026

Copy link
Copy Markdown

Benchmark results for revision 6ee73e4:

Metric Duration TPS
Mean 1.469866878s 27.213
Worst 1.478257983s 27.059
Best 1.464837872s 27.307
Standard Deviation ±3.172118ms ±0.059
Full results
Run Transfers Duration TPS
1 40 1.473824759s 27.140
2 40 1.46954991s 27.219
3 40 1.474316551s 27.131
4 40 1.478257983s 27.059
5 40 1.46902629s 27.229
6 40 1.471620778s 27.181
7 40 1.464837872s 27.307
8 40 1.470426098s 27.203
9 40 1.470077746s 27.209
10 40 1.465743735s 27.290
11 40 1.47105497s 27.191
12 40 1.465955489s 27.286
13 40 1.4732362s 27.151
14 40 1.467339187s 27.260
15 40 1.467803981s 27.252
16 40 1.467121195s 27.264
17 40 1.469604209s 27.218
18 40 1.469450689s 27.221
19 40 1.468337756s 27.242
20 40 1.469752172s 27.215

Compare the results above with those for the default branch.

@victor-dumitrescu victor-dumitrescu force-pushed the vdum/rv-984-2 branch 2 times, most recently from 614ef91 to 7325f47 Compare June 15, 2026 08:55
@victor-dumitrescu victor-dumitrescu added this pull request to the merge queue Jun 15, 2026
Merged via the queue into main with commit 8b8098f Jun 15, 2026
10 of 11 checks passed
@victor-dumitrescu victor-dumitrescu deleted the vdum/rv-984-2 branch June 15, 2026 16:59
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.

3 participants