pdftract/tests
jedarden c43b9c49a4 test(bf-2np8r): add common encryption test fixtures and helpers
Add comprehensive shared utilities for encryption testing across the pdftract
workspace. Provides path resolution, test execution helpers, assertion functions,
fixture validation, mock data builders, and test constants.

Features:
- Path resolution: workspace_root(), pdftract_bin(), encrypted_fixture()
- Test execution: run_pdftract_extract(), stdin password support
- Assertions: encryption_exit_code, diagnostics, success/failure checks
- Fixture validation: PDF structure checks, fixture existence
- Mock builders: RC4, AES-128, AES-256 encryption dictionaries (decrypt feature)
- Constants: exit codes, fixture list, test passwords

Files:
- tests/encryption_fixtures.rs - Main fixtures module (461 lines)
- tests/lib.rs - Test support library
- tests/ENCRYPTION_FIXTURES.md - Documentation (161 lines)
- tests/verify_encryption_fixtures.rs - Verification tests (137 lines)
- tests/encryption_fixtures_usage_example.rs - Usage examples (81 lines)
- tests/mod.rs - Module aggregation

Acceptance criteria:
 Common test fixtures added (5 encrypted PDFs)
 Helper functions added (20+ functions)
 Code compiles successfully
 Functions usable across multiple encryption tests

Closes bf-2np8r

Verification: notes/bf-2np8r.md
2026-07-05 19:16:45 -04:00
..
c-client feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
conformance feat(pdftract-5omc): implement per-language conformance test runner pattern 2026-05-18 01:32:24 -04:00
document_model wip: AcroForm improvements, debug tooling, test corpus, and fixture updates 2026-05-30 09:48:14 -04:00
error_recovery/fixtures test(pdftract-4w0v4): implement adversarial test corpus + integration harness 2026-05-25 14:30:24 -04:00
fingerprint chore(bf-a8031): remove tracked debug/scratch artifacts and compiled binaries 2026-07-05 13:06:33 -04:00
fixtures test(bf-5cnj8): add comprehensive CLI module imports for encryption testing 2026-07-05 18:54:48 -04:00
integration/advanced feat(bf-2ypn2): add Phase 7 profiles exit gate fixtures 2026-07-04 23:56:32 -04:00
lexer/fixtures test(pdftract-sy8x): implement lexer proptest harness and curated corpus 2026-05-24 02:36:37 -04:00
object_parser/fixtures docs(pdftract-1eoo1): Phase 6.4 HTTP Serve Mode coordinator verification note 2026-06-01 23:57:05 -04:00
proptest docs(pdftract-1eoo1): Phase 6.4 HTTP Serve Mode coordinator verification note 2026-06-01 23:57:05 -04:00
proptest-regressions docs(pdftract-49f8): establish Cargo.lock policy and documentation 2026-05-20 18:13:14 -04:00
python-conformance feat(pdftract-5omc): implement SDK conformance test runner pattern 2026-05-18 01:22:23 -04:00
remote fix(bf-4mkhv): clean up unused imports in hash.rs 2026-06-01 09:43:48 -04:00
sdk-conformance fix(pdftract-39gey): fix indent trigger to not split drop-cap paragraphs 2026-06-07 13:43:19 -04:00
stream_decoder/fixtures wip: AcroForm improvements, debug tooling, test corpus, and fixture updates 2026-05-30 09:48:14 -04:00
xref/fixtures feat(pdftract-1s2uj): add xref test fixture corpus and integration test runner 2026-05-24 08:20:04 -04:00
conformance.c feat(pdftract-1eaxm): implement libpdftract C FFI library 2026-05-23 08:55:12 -04:00
conformance_fixed feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
conformance_fixed.c feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
conformance_run feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
conformance_test feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
conformance_test_simple feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
conformance_test_simple.c feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
ConformanceTest.php feat(pdftract-2m3gl): implement PHP SDK with Packagist publishing 2026-06-01 10:27:03 -04:00
debug_a85_filter.rs wip: AcroForm improvements, debug tooling, test corpus, and fixture updates 2026-05-30 09:48:14 -04:00
debug_content_edit_fingerprint.rs fix(pdftract-39gey): fix indent trigger to not split drop-cap paragraphs 2026-06-07 13:43:19 -04:00
debug_content_edit_pages.rs fix(pdftract-39gey): fix indent trigger to not split drop-cap paragraphs 2026-06-07 13:43:19 -04:00
debug_content_fingerprint.rs fix(bf-1avnz): remove .code field access on String diagnostics in serve.rs 2026-06-01 04:14:05 -04:00
debug_content_fingerprint_fixtures.rs fix(pdftract-39gey): fix indent trigger to not split drop-cap paragraphs 2026-06-07 13:43:19 -04:00
debug_content_hash.rs feat(pdftract-2m3gl): implement PHP SDK with Packagist publishing 2026-06-01 10:27:03 -04:00
debug_content_hash_integration.rs fix(pdftract-39gey): fix indent trigger to not split drop-cap paragraphs 2026-06-07 13:43:19 -04:00
debug_content_hash_one_glyph.rs fix(pdftract-39gey): fix indent trigger to not split drop-cap paragraphs 2026-06-07 13:43:19 -04:00
debug_content_stream_hash.rs fix(pdftract-39gey): fix indent trigger to not split drop-cap paragraphs 2026-06-07 13:43:19 -04:00
debug_content_streams.rs fix(pyo3): correct extract_text_fn call in extract_markdown stub 2026-05-28 20:28:25 -04:00
debug_filter_array.rs wip: AcroForm improvements, debug tooling, test corpus, and fixture updates 2026-05-30 09:48:14 -04:00
debug_fingerprint_content.rs wip: intermediate state from previous work 2026-05-29 08:25:23 -04:00
debug_fingerprint_content_edit.rs fix(pdftract-39gey): fix indent trigger to not split drop-cap paragraphs 2026-06-07 13:43:19 -04:00
debug_fingerprint_content_hash.rs fix(pdftract-39gey): fix indent trigger to not split drop-cap paragraphs 2026-06-07 13:43:19 -04:00
debug_fingerprint_content_streams.rs fix(pdftract-39gey): fix indent trigger to not split drop-cap paragraphs 2026-06-07 13:43:19 -04:00
debug_fingerprint_contents.rs fix(pdftract-39gey): fix indent trigger to not split drop-cap paragraphs 2026-06-07 13:43:19 -04:00
debug_fingerprint_fixture_content.rs fix(pdftract-39gey): fix indent trigger to not split drop-cap paragraphs 2026-06-07 13:43:19 -04:00
debug_fingerprint_issue.rs feat(pdftract-2m3gl): implement PHP SDK with Packagist publishing 2026-06-01 10:27:03 -04:00
debug_fixtures.rs fix(pdftract-39gey): fix indent trigger to not split drop-cap paragraphs 2026-06-07 13:43:19 -04:00
debug_lzw.rs fix(pyo3): correct extract_text_fn call in extract_markdown stub 2026-05-28 20:28:25 -04:00
debug_missing_mediabox.rs fix(pyo3): correct extract_text_fn call in extract_markdown stub 2026-05-28 20:28:25 -04:00
debug_page_count.rs wip: AcroForm improvements, debug tooling, test corpus, and fixture updates 2026-05-30 09:48:14 -04:00
debug_parse.rs feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
debug_parse_content_edit.rs fix(pdftract-39gey): fix indent trigger to not split drop-cap paragraphs 2026-06-07 13:43:19 -04:00
debug_parse_simple.rs wip: AcroForm improvements, debug tooling, test corpus, and fixture updates 2026-05-30 09:48:14 -04:00
debug_stream feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
debug_stream.c feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
doctor_runbook_coverage.rs docs(pdftract-653ah): add runbook integration for pdftract doctor 2026-05-24 13:26:31 -04:00
document_model.rs wip: AcroForm improvements, debug tooling, test corpus, and fixture updates 2026-05-30 09:48:14 -04:00
encryption_errors.rs docs(bf-2nl4x): verify encryption test infrastructure completion 2026-07-05 16:08:34 -04:00
ENCRYPTION_FIXTURES.md test(bf-2np8r): add common encryption test fixtures and helpers 2026-07-05 19:16:45 -04:00
encryption_fixtures.rs test(bf-2np8r): add common encryption test fixtures and helpers 2026-07-05 19:16:45 -04:00
encryption_fixtures_usage_example.rs test(bf-2np8r): add common encryption test fixtures and helpers 2026-07-05 19:16:45 -04:00
fingerprint_fixtures.rs wip: intermediate state from previous work 2026-05-29 08:25:23 -04:00
fingerprint_reproducibility.rs fix(pyo3): correct extract_text_fn call in extract_markdown stub 2026-05-28 20:28:25 -04:00
fingerprint_test_single_one.rs wip: AcroForm improvements, debug tooling, test corpus, and fixture updates 2026-05-30 09:48:14 -04:00
forms_integration.rs test(bf-1pxdm): implement PDF fixture discovery for forms tests 2026-07-05 15:22:26 -04:00
gen_lexer_golden.rs test(pdftract-sy8x): implement lexer proptest harness and curated corpus 2026-05-24 02:36:37 -04:00
json_schema.rs fix(bf-1avnz): remove .code field access on String diagnostics in serve.rs 2026-06-01 04:14:05 -04:00
lib.rs test(bf-2np8r): add common encryption test fixtures and helpers 2026-07-05 19:16:45 -04:00
log_secret_fuzz.rs fix(pdftract-4pnmd): build.rs doc comment format string parsing 2026-05-28 14:36:45 -04:00
mod.rs test(bf-2np8r): add common encryption test fixtures and helpers 2026-07-05 19:16:45 -04:00
object_parser.rs docs(pdftract-1eoo1): Phase 6.4 HTTP Serve Mode coordinator verification note 2026-06-01 23:57:05 -04:00
proptest-panic-verification.rs feat(pdftract-33v): add property tests and nightly fuzz job 2026-05-20 19:18:03 -04:00
stream_decoder_fixtures.rs feat(pdftract-91e1i): HTTP fetch sequence implementation 2026-05-28 13:17:00 -04:00
test_api_basic feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
test_api_basic.c feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
test_api_null feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
test_api_null.c feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
test_api_real feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
test_api_real.c feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
test_api_valid feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
test_api_valid.c feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
test_atomic_writer.rs feat(pdftract-68wfa): implement AtomicFileWriter for atomic file writes 2026-05-24 13:02:37 -04:00
test_bomb_limit.rs wip: AcroForm improvements, debug tooling, test corpus, and fixture updates 2026-05-30 09:48:14 -04:00
test_debug feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
test_debug.c feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
test_fingerprint_debug.rs fix(pyo3): correct extract_text_fn call in extract_markdown stub 2026-05-28 20:28:25 -04:00
test_parse_fixture.rs feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
test_simple.c feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
test_simple_run feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
test_stream feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
test_stream.c feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
test_valid.c feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
test_valid_run feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
verify_encryption_fixtures.rs test(bf-2np8r): add common encryption test fixtures and helpers 2026-07-05 19:16:45 -04:00
verify_ndjson_streaming.py fix(pdftract-39gey): fix indent trigger to not split drop-cap paragraphs 2026-06-07 13:43:19 -04:00