Repository navigation
test(dynamodb): bound paginated conformance setup - #11422
ReubenBond merged 2 commits into
Conversation
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The bounded workload retains multi-page coverage and is supported by focused validation and invariant tests.
Review effort: Balanced
Findings: None
What changed in this PR
Bounds DynamoDB conformance setup while preserving real multi-page snapshot coverage.
Changes:
- Adds internal row-padding workload control and validation.
- Reduces DynamoDB setup to 48 padded rows.
- Adds padding, bounds, and post-cleanup pagination tests.
| File | Description |
|---|---|
test/Orleans.Runtime.Internal.Tests/MembershipTests/MembershipTableConformanceTestsBase.cs |
Passes provider-specific padding into the runner. |
test/Orleans.Clustering.TestKit.Tests/MembershipTableTestFixtureTests.cs |
Tests padding bounds. |
test/Orleans.Clustering.TestKit.Tests/MembershipTableConformanceTests.cs |
Verifies seeded hostname padding. |
test/Extensions/Orleans.AWS.Tests/MembershipTests/DynamoDBMembershipTableUnitTests.cs |
Guards the post-cleanup page-size invariant. |
test/Extensions/Orleans.AWS.Tests/MembershipTests/DynamoDBMembershipTableTest.cs |
Configures the bounded DynamoDB workload. |
src/Orleans.Clustering.TestKit/Orleans.Clustering.TestKit.csproj |
Grants internal access to runtime conformance tests. |
src/Orleans.Clustering.TestKit/MembershipTableTestRunner.cs |
Implements validated internal row padding. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Code coverage
Report-only conclusion: current-main baseline stale. The newest successful coverage run tested 6bf11ad, not current main ec48d17. Coverage combines every CI test matrix job, including providers, CodeGen, .NET 8/10, Linux, Windows, and macOS, using canonical physical source and branch identities. The comparison remains report-only while normal line and branch variance is calibrated. Coverage details |
Problem
The DynamoDB concurrent full-read conformance test seeds 4,096 rows so reads cross DynamoDB's 1 MiB page boundary. After #11389 replaced point reads with full snapshots, setup became quadratic and observed 8,398,848 rows. The net8 CI job exhausted the TestKit's five-minute scenario budget during preparation, while net10 completed near the same boundary.
Solution
Add an additive TestKit constructor overload which configures seeded row payload size for byte-paginated providers. Configure DynamoDB to use 48 rows with 40 KiB padding, preserving real multi-page reads with substantial headroom after cleanup while reducing setup work by orders of magnitude.
Keep deterministic inter-page mutation coverage in
ReadAllRetriesWhenCanonicalMutationCrossesPages, and add focused guards for padding, bounds, and the post-cleanup page-size invariant. The generated TestKit API surface includes the new overload.Fixes #11407