Infino employs a multi-layered testing strategy designed to validate correctness across different abstraction levels, from low-level byte parsing to high-level distributed table semantics. The strategy combines traditional unit tests with brute-force oracles, property-based crash tests, and memory safety validation using specialized tooling.
The testing lifecycle is managed primarily through the Makefile, which provides standardized entry points for CI and local development.
| Target | Tool | Purpose |
|---|---|---|
make test | cargo test | Runs the core Rust test suite with test-helpers enabled Makefile35-36 |
make coverage | cargo-llvm-cov | Validates that line/function/region coverage exceeds 90% Makefile38-40 |
make miri | Miri | Catches language-level UB (aliasing, provenance, uninitialized reads) in FTS Makefile73-77 |
make asan | LLVM ASan | Catches hardware-level memory errors (UAF, overflows) in unsafe blocks Makefile96-99 |
make public-api | cargo-public-api | Guards against accidental breaking changes to the curated API surface Makefile27-30 |
Because the FTS and format layers use unsafe for performance (e.g., bumpalo lifetime extensions and byte parsing), Infino uses Miri and ASan as complementary oracles Makefile59-62 Miri validates the Rust abstract machine rules, while ASan monitors real-hardware execution Makefile93-95
Sources: Makefile1-100
These tests validate the Supertable abstraction, focusing on the durability and consistency of the multi-file table format.
DiskCacheStore for LRU eviction accuracy, hybrid cold-fetch coordination, and madvise behavior src/supertable/reader_cache/disk.rs137-152 tests/supertable/main.rs16-17For details, see Supertable Integration Tests.
This domain focuses on the internal layout of the .sf.parquet file and the accuracy of the search pipelines.
BruteForceBm25) to verify that optimized algorithms like Block-Max WAND produce identical top-k results tests/superfile/fts/brute_force_oracle.rs4-9SuperfileBuilder to SuperfileReader lifecycle, including multi-batch ingestion and schema enforcement tests/superfile/fts/brute_force_oracle.rs113-135For details, see Superfile & Search Tests.
The following diagram illustrates how the testing suite bridges high-level search requirements to specific code entities used for validation.
Sources: src/test_helpers/brute_force_bm25.rs49-56 tests/supertable/query/brute_force_oracle.rs4-12 tests/superfile/fts/brute_force_oracle.rs113-135
While primarily for performance, the in-tree benchmark harness (infino-bench-utils) serves as a secondary correctness layer. It executes a "correctness phase" on every artifact it builds before measuring latency, ensuring that performance optimizations do not regress result accuracy. The harness includes a markdown emitter for summarizing these results in CI benches/utils/markdown.rs4-11
Sources: benches/utils/markdown.rs18-21 src/test_helpers/mod.rs11-22 src/supertable/reader_cache/disk.rs38-42