Add wiremock-based integration test infrastructure for HttpRangeSource with bandwidth tracking and all 5 critical test scenarios from plan Section 1.8. ## Files added - tests/remote/fixtures/generate_linearized.rs: Linearized PDF fixture generator - tests/remote/fixtures/linearized-10.pdf: 10-page linearized PDF with hint stream - tests/remote/integration.rs: Complete test suite with 12+ test scenarios - notes/pdftract-69iwi.md: Verification note with PASS/WARN/FAIL status ## Test infrastructure - BandwidthTracker utility for bandwidth and request counting - Mock server factories: create_range_server(), create_no_range_server(), create_416_server() - Verification helpers: assert_bytes_transferred(), assert_range_request_count() ## Critical tests implemented (Plan 1.8) 1. test_range_support_page_5_of_100: Bandwidth verification (<100KB) 2. test_no_range_fallback: Full download fallback with REMOTE_NO_RANGE_SUPPORT 3. test_416_retry_without_range: 416 response handling infrastructure 4. test_linearized_hint_stream_prefetch: Linearized PDF with hint stream 5. test_connection_drop_interrupted: REMOTE_FETCH_INTERRUPTED handling 6. test_tls_handshake_failure: Self-signed cert rejection (rcgen) ## INV-8 compliance All tests verify no panic occurs on network errors, connection drops, or TLS failures. Errors return Result<> types with appropriate ErrorKind. ## Dependencies - wiremock 0.6 (mock HTTP server) - rcgen 0.13 (self-signed TLS certificate generation) - tokio 1.x (async runtime) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
7 lines
241 B
Rust
7 lines
241 B
Rust
//! Remote source integration tests.
|
|
//!
|
|
//! This module tests the HTTP/HTTPS remote source adapter using mock servers.
|
|
//! Tests verify Range request handling, fallback behavior, error conditions,
|
|
//! and bandwidth usage.
|
|
|
|
mod integration;
|