pdftract/crates/pdftract-core/tests
jedarden 4d6fd8a4ab test(pdftract-4w0v4): implement adversarial test corpus + integration harness
Add 7 adversarial PDF fixtures exercising Phase 1 error-recovery paths:
- xref_30pct_bad_offsets.pdf: 100 objects, 30 bad xref offsets
- missing_mediabox_all_pages.pdf: 10 pages, no /MediaBox at any level
- missing_endobj.pdf: object 5 missing endobj marker
- truncated_mid_stream.pdf: FlateDecode stream truncated mid-decompression
- int_overflow_bbox.pdf: /BBox value 99999999999999999 (i32 overflow)
- nested_failure.pdf: every page has at least one diagnostic
- combined_failures.pdf: combines multiple failure modes (keystone INV-8 test)

Each fixture has a sibling .expected_diagnostics.json file with threshold
counts (>= not == per EC-07/EC-09 to tolerate drift).

Integration test harness (error_recovery_integration.rs):
- assert_diagnostic_count_at_least() helper for threshold checking
- assert_no_panic() helper using std::panic::catch_unwind for INV-8
- Individual test functions for each fixture
- Cumulative test_inv_8_no_panics_across_all_fixtures()

All 8 tests pass. INV-8 verified: zero panics across all fixtures.

Closes: pdftract-4w0v4
2026-05-25 14:30:24 -04:00
..
classifier_corpus.rs fix: resolve compilation errors across codebase 2026-05-25 08:38:04 -04:00
conformance.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
error_recovery_integration.rs test(pdftract-4w0v4): implement adversarial test corpus + integration harness 2026-05-25 14:30:24 -04:00
memory_guard.rs feat(bf-2ervu): implement mmap-backed PdfSource via memmap2 2026-05-24 08:40:11 -04:00
memory_guard_tests.rs feat(bf-2ervu): implement mmap-backed PdfSource via memmap2 2026-05-24 08:40:11 -04:00
ocr_integration.rs fix: resolve compilation errors across codebase 2026-05-25 08:38:04 -04:00
page_classification.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
struct_tree_coverage.rs fix: resolve compilation errors across codebase 2026-05-25 08:38:04 -04:00
test_xref_debug.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
TH-01-stream-bomb.rs feat(pdftract-3h9xo): implement threads JSON output + schema integration 2026-05-25 13:40:15 -04:00
TH-03-mcp-no-auth.rs test(pdftract-5m3hp): implement TH-03 MCP no-auth bind security tests 2026-05-24 18:43:52 -04:00
TH-04-js-presence.rs feat(pdftract-2r11u): implement TH-04 JavaScript detection 2026-05-25 14:04:29 -04:00
TH-07-ps-leak.rs fix: resolve compilation errors across codebase 2026-05-25 08:38:04 -04:00
th_05_ssrf_block.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
xref_helpers.rs feat(bf-2ervu): implement mmap-backed PdfSource via memmap2 2026-05-24 08:40:11 -04:00
xref_integration_test.rs feat(bf-2ervu): implement mmap-backed PdfSource via memmap2 2026-05-24 08:40:11 -04:00