Skip to content

test: v2.3.0 merge (#396) test-compile debt — only vendored libmdbx-rs tests remain #397

Description

@nekomoto911

Status (updated): Most of this is fixed in PR #396 (commit bfceb3d7a3).
The only remaining test-compile failures are the 21 in the vendored
crates/storage/libmdbx-rs/tests/ — see Remaining below.

Background

The reth v2.3.0 merge updated library APIs but not the corresponding test code,
breaking CI (test / ethereum, unit, clippy) while main stayed green (e.g.
#395's test / ethereum runs and passes). These were introduced by the merge,
not pre-existing.

Remaining

Failing target Errors Root cause
reth-libmdbx (cursor + transaction tests) 21 Transaction::cursor(..) signature drift — tests pass a u32 dbi, the API now takes &Database. In crates/storage/libmdbx-rs/tests/.

libmdbx-rs is treated as vendored (CLAUDE.md: "never modify libmdbx sources"),
though that rule targets the C sources under mdbx-sys/libmdbx/, not the Rust
binding's own tests/. Fixing these is mechanical (update the cursor(dbi) call
sites) but needs a decision on whether the binding tests are in scope to touch.

Until this is resolved, test / ethereum, unit, and clippy stay red (they
compile the libmdbx integration tests). clippy --benches additionally hits an
old-API state_root_task.rs bench, out of the --tests scope.

Fixed in #396 (bfceb3d7a3)

  • ethereum feature — re-added the no-op ethereum = [] to bin/reth (it
    was dropped with the deleted reth-bench crate), so
    --features "asm-keccak ethereum config-from-env" resolves again.
  • reth-rpc (148)MockEthProvider now implements PruneCheckpointReader,
    the bound v2.3.0 added to RpcNodeCore; one fixture fix cleared all 148.
  • revm40 driftAccountInfo { .. } now takes account_id;
    SparseTrieErrorKind::BlindedNode is a tuple variant.
  • reth-engine-tree (19) + reth-exex (4) — adapted tests to insert_block
    (StorageLocation), spawn (ExecutableTxIterator), OnStateHook::on_state,
    the PayloadValidator split, EngineApiTreeState::new, mpsc-vs-crossbeam
    channels, and #[must_use] on_engine_message.
  • reth-evm — removed 4 obsolete balance_increment_state tests (the helper
    was removed in alloy-evm 0.36.0 and is unused by production code).
  • e2e-rocksdb — removed the test, the orphaned db/migrate_v2.rs, and the
    e2e-rocksdb CI job (the RocksDB backend was intentionally dropped in the
    merge — "不并存"). If e2e-rocksdb is a required status check, drop it from the
    required list or the PR stays BLOCKED.
  • check-toml / typos — dprint-formatted 9 drifted Cargo.tomls; fixed 7 doc
    typos.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinghelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions