test(ingester): rfc 0028 slice 1 — 27 test binaries fold into one harness - #399
Conversation
|
Warning Review limit reached
Next review available in: 55 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (31)
📝 WalkthroughWalkthroughThis PR adds a consolidated integration-test harness (tests/it/main.rs) declaring shared test submodules per RFC 0028, adds a README documenting the harness layout, and updates all existing integration test files to import ingest_support/otlp_strategy helpers via crate-qualified paths instead of local mod declarations. ChangesIntegration test harness consolidation
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…ness Pure moves + mechanical scaffolding (tests/it/main.rs mod lines, crate::-prefixed support-module imports): no test body changed (RFC0028.1). Four binaries stay dedicated per RFC0028.2 — each installs the process-global OTel meter provider; the reasons are committed in tests/README.md. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
d9d3cba to
8ec6609
Compare
There was a problem hiding this comment.
Pull request overview
Consolidates the ourios-ingester integration tests into a single harness (tests/it/) as RFC 0028 slice 1, reducing the number of linked test binaries while preserving the existing test inventory and behavior.
Changes:
- Introduces a consolidated integration-test harness at
crates/ourios-ingester/tests/it/main.rswith module declarations for the migrated suites. - Moves shared test helpers/strategies into harness modules (
tests/it/ingest_support,tests/it/otlp_strategy) and updates test modules to import them viacrate::.... - Documents the new layout and the “harness-exempt” binaries in
crates/ourios-ingester/tests/README.md.
Reviewed changes
Copilot reviewed 18 out of 31 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| crates/ourios-ingester/tests/README.md | Documents the new consolidated harness layout and the rationale for exempt test binaries. |
| crates/ourios-ingester/tests/it/main.rs | New single-harness entrypoint declaring all migrated integration-test modules. |
| crates/ourios-ingester/tests/it/ingest_support/mod.rs | Shared helper module for ingestion/HTTP/WAL test scaffolding used across harness modules. |
| crates/ourios-ingester/tests/it/otlp_strategy/mod.rs | Shared proptest strategies for OTLP wire-decode equivalence scenarios. |
| crates/ourios-ingester/tests/it/http_transport_errors.rs | Updated to use harness-shared crate::ingest_support helpers. |
| crates/ourios-ingester/tests/it/invariant_3_7_3_tenant_per_resource_logs.rs | Updated to use harness-shared crate::ingest_support helpers. |
| crates/ourios-ingester/tests/it/rfc0001_3_5_snapshot_restore.rs | Updated to use harness-shared crate::ingest_support helpers. |
| crates/ourios-ingester/tests/it/rfc0003_10_dropped_attributes_count.rs | Migrated into harness as a module for receiver materialization invariant. |
| crates/ourios-ingester/tests/it/rfc0003_11_transport_errors.rs | Updated to use harness-shared crate::ingest_support helpers. |
| crates/ourios-ingester/tests/it/rfc0003_12_empty_request_success.rs | Updated to use harness-shared crate::ingest_support helpers. |
| crates/ourios-ingester/tests/it/rfc0003_13_compression.rs | Updated to use harness-shared crate::ingest_support helpers and types. |
| crates/ourios-ingester/tests/it/rfc0003_14_path_config.rs | Updated to use harness-shared crate::ingest_support helpers. |
| crates/ourios-ingester/tests/it/rfc0003_15_concurrent_wal_before_ack.rs | Updated to use harness-shared crate::ingest_support helpers. |
| crates/ourios-ingester/tests/it/rfc0003_1_wal_before_ack.rs | Updated to use harness-shared crate::ingest_support helpers. |
| crates/ourios-ingester/tests/it/rfc0003_2_crash_before_ack.rs | Updated to use harness-shared crate::ingest_support helpers. |
| crates/ourios-ingester/tests/it/rfc0003_3_tenant_fanout.rs | Migrated into harness as a module for fan-out semantics. |
| crates/ourios-ingester/tests/it/rfc0003_4_tenant_resolution_failure.rs | Migrated into harness as a module for resolution-failure semantics. |
| crates/ourios-ingester/tests/it/rfc0003_5_grpc_http_protobuf_equivalence.rs | Updated to use crate::otlp_strategy from harness. |
| crates/ourios-ingester/tests/it/rfc0003_6_json_protobuf_equivalence.rs | Updated to use crate::otlp_strategy from harness. |
| crates/ourios-ingester/tests/it/rfc0003_7_body_structured_verbatim.rs | Migrated into harness as a module for structured-body semantics. |
| crates/ourios-ingester/tests/it/rfc0003_8_body_string_lraw.rs | Migrated into harness as a module for string-body semantics. |
| crates/ourios-ingester/tests/it/rfc0003_9_edge_otlp_fields.rs | Migrated into harness as a module for edge-field pass-through semantics. |
| crates/ourios-ingester/tests/it/rfc0008_10_rotation_cadence.rs | Updated to use harness-shared crate::ingest_support helpers. |
| crates/ourios-ingester/tests/it/rfc0008_8_batched_fsync.rs | Migrated/relocated batched-fsync acceptance tests into the ingester harness. |
| crates/ourios-ingester/tests/it/rfc0008_8_ingest_order.rs | Updated to use harness-shared crate::ingest_support helpers. |
| crates/ourios-ingester/tests/it/rfc0014_ingest_write_path.rs | Migrated into harness as a module for Parquet sink flush-policy acceptance scenarios. |
| crates/ourios-ingester/tests/it/rfc0014_5_crash_no_loss.rs | Migrated into harness as a module for crash + recovery “no acknowledged loss” scenario using fixture binary. |
| crates/ourios-ingester/tests/it/rfc0018_retryable.rs | Updated to use harness-shared crate::ingest_support helpers. |
| crates/ourios-ingester/tests/it/rfc0022_promoted_threading.rs | Migrated into harness as a module validating promoted-attribute threading through flush and publish paths. |
| crates/ourios-ingester/tests/it/rfc0023_overflow_roundtrip.rs | Migrated into harness as a module validating overflow-body Parquet round-trip. |
| crates/ourios-ingester/tests/it/rfc0026_auth.rs | Updated to use harness-shared crate::ingest_support helpers. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
What
RFC 0028 slice 1 — the ingester's 27 of 31 integration-test binaries fold into one
tests/it/harness. Pure file moves plus the mechanical scaffolding §6 allows:tests/it/main.rsmodlines, per-file removal of the duplicatedmod ingest_support;/mod otlp_strategy;declarations, andcrate::-prefixed support-module imports. No test body changed — the reviewer check per §6 is that no hunk in this diff touches a test function body.RFC0028.1 — inventory proof
cargo test -p ourios-ingester -- --list: 129 tests before, 129 after; the leaf-name sets are identical (verified by stripping module-path prefixes from both lists and diffing — byte-identical). The only change is the harness's module segment (rfc0003_1_wal_before_ack::…→it::rfc0003_1_wal_before_ack::…in cargo's naming). Both snapshots below.RFC0028.2 — harness-exempt binaries
Four stay dedicated, each documented in
tests/README.md:perf_metrics,audit_sink_metrics,rfc0018_otlp_compliance,rfc0025_quarantine— every one installs the process-global OTel meter provider (init_in_memory/ global-meter instruments); OpenTelemetry cannot restore a replaced global, so two installers in one process race (the pre-existing note inperf_metrics.rs). The SIGKILL crash tests joined the harness — they kill fixture child binaries (CARGO_BIN_EXE_*[[bin]]targets undertests/fixtures/), never themselves.Indicative timing (not the RFC0028.3 gate)
Same machine, warm workspace:
touch crates/ourios-ingester/src/lib.rs && cargo test -p ourios-ingester --no-run— 62.4 s before, 20.0 s after (3.1×). The authoritative RFC0028.3 probe re-run (core→querier < 30 s, full suite ≥ 30%) happens after slice 2, recorded in epic #382.Process note
RFC 0028's scenarios are review/measurement mechanisms (§6), not stub-able tests — there is no meaningful
redrung; slices discharge scenarios directly via the §6 mechanisms, as here.Invariants / hazards
CLAUDE.md §6.2 (tests are specifications): nothing weakened, nothing deleted — the inventory proof above is the point of this PR's shape.
Pre inventory (129, leaf names — 126 at capture base 690a654 + the 3 tests #398's review rounds added, attributed in-line)
Post inventory (129, full names)
🤖 Generated with Claude Code
Summary by CodeRabbit
Documentation
Tests