You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Merge remote-tracking branch 'upstream/master' into bal-devnet-6-benchmarks
bal-devnet-6 (#11436) is now in master, so this brings everything from master
including the BAL devnet-6 PR plus subsequent master commits. Conflict
resolution:
- Took ours for every BAL-touching file (decoders, manager, validator,
BlockAccessListBased/TracedAccess world states, parallel-loop executor,
cache pre-warmer, BAL tests). Our branch's ReadOnly*/Generated*/*AtIndex
split diverges substantially from upstream's unified BlockAccessList, and
upstream merging bal-devnet-6 into master pulled in the unified version.
- Removed (again) BlockAccessListValidationIndex + tests, BlockAccessList,
AccountChanges, SlotChanges, BlockAccessListItemCountTests, and
BlockAccessListJournalTests: all reference the removed unified type.
- Removed the now-broken Rlp.Encode(BlockAccessList) overload in Rlp.cs;
callers use the generic Rlp.Encode<T> path for ReadOnly/Generated BALs.
- Took theirs for TxReceiptConverter (upstream's boxing-free
ForcedNumberConversion.Value refactor, already includes our EIP-7778/8037
diagnostic fields) and ChainSpecBasedSpecProvider (comment-only addition).
- Took ours for OpcodeBlockTracer (kept t_ prefix on the [ThreadStatic]
field, our existing convention).
- For .github/workflows/nethermind-tests-flat.yml took upstream's
unconditional pre-build + 'dotnet build-server shutdown || true' approach
(matches their CI peak-memory PR) while keeping our extra Cache NuGet
packages step.
- Updated EngineModuleTests.V6 ResultWrapper generic args from IEnumerable to
IReadOnlyList to match upstream's API change.
Copy file name to clipboardExpand all lines: .agents/rules/coding-style.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@
9
9
- Use `?.` null-conditional operator where applicable
10
10
- Use `ArgumentNullException.ThrowIfNull` for null checks
11
11
- Use `ObjectDisposedException.ThrowIf` for disposal checks
12
-
- Use documentation comments with proper structure (`<summary>`, `<param>`, `<returns>`) for all public APIs
12
+
- Use documentation comments with proper structure (`<summary>`, `<remarks>`, `<param>`, `<returns>`, `<exception>`, `<typeparam>`, `<inheritdoc/>`) for all public APIs. See [AGENTS.md](../../AGENTS.md) "Coding guidelines and style" for when to use each tag.
13
13
- Avoid `var` — spell out types (exception: very long nested generic types)
14
14
- Prefer low-allocation code patterns
15
15
- Use `Array.Empty<T>()` or `[]` instead of `new T[0]` — avoids allocating a new empty array each time. In attribute arguments (e.g. `[Attr(new string[0])]`), `new T[0]` is acceptable because `Array.Empty<T>()` is not a compile-time constant.
Copy file name to clipboardExpand all lines: .agents/rules/test-infrastructure.md
+6Lines changed: 6 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -71,6 +71,12 @@ The rule: **if production modules already wire a component, use them — don't c
71
71
- Add tests to existing test files rather than creating new ones
72
72
-**Do not duplicate test methods that differ only in parameters** — use `[TestCase(...)]` or `[TestCaseSource(...)]` to parameterize a single method
73
73
- Before writing a new test, check if an existing test can be extended with another `[TestCase]` or use `[TestCaseSource]`
74
+
-**When only parts of tests are similar** — extract the shared parts into helper methods or types instead of copy-pasting:
75
+
- Shared arrange/build steps → a private helper method, an existing builder (`Build.A.Block...`, `Build.A.Transaction...`, `TestItem.*`), or a new builder if the pattern is reused across files
76
+
- Shared assertions → a helper method like `AssertExpectedState(...)` so each test asserts in one line and the failure message stays meaningful
77
+
- Shared scenarios spanning multiple test classes → a base fixture, a shared `static` helper class, or a fixture-level `[SetUp]`
78
+
- Keep each test body focused on what makes the case unique; the helper should not hide behavior that matters for understanding the test
79
+
- Use `[TestCaseSource]` (not `[TestCase]`) when cases need non-constant data, named scenarios, or grow beyond a handful — keep the source method or `IEnumerable<TestCaseData>` next to the test it feeds
0 commit comments