3.8 KiB
bf-6b4t7: Relocate useful generators to tools/ or xtask/
Date: 2026-07-08 Status: ✅ ALREADY COMPLETE (Work done by prior beads) Dependency: bf-16far (debris removal completed)
Finding
All useful generators have already been relocated from tests/fixtures/ to appropriate locations by beads completed on 2026-07-05:
- bf-1iefu: Categorized all 17 generator scripts into KEEP (10), DELETE (5), RELOCATE (2)
- bf-xqib3: Removed 5 obsolete generators and all compiled artifacts
- bf-2yhak: Relocated 2 general-purpose tools to
tools/with comprehensive documentation
Verification
Generators Already Relocated to tools/
The following general-purpose generators were moved to tools/ by bf-2yhak:
convert_pdf_to_scanned.sh- Converts text-embedded PDFs to scanned image-based PDFsgenerate_encoding_fixtures.py- Generate Unicode recovery test fixturesgenerate_encrypted_pdf_fixtures.py- Generate encrypted PDF test fixturesgenerate_stress_pdf.py- Generate synthetic stress-test PDFsgenerate_invoice_pdf_fixtures.py- Generate invoice OCR test fixturesgenerate_invoice_fixture.rs- Generate invoice fixture as Rust binarygenerate_encrypted_pdf_fixtures.rs- Generate encrypted PDF fixtures as Rust binary
Co-located Generators (Intentionally NOT Relocated)
The following 11 generator scripts remain in tests/fixtures/ subdirectories because they are co-located with their specific fixture types for maintainability:
Encoding fixtures (tests/fixtures/encoding/):
generate_unmapped_glyphs.py- Unmapped glyph fixturescreate_unmapped_comprehensive.py- Comprehensive encoding tests
Form fixtures (tests/fixtures/forms/):
generate_form_fixtures.rs- Form fixture generator
Malformed fixtures (tests/fixtures/malformed/):
gen_bomb.py- Malformed PDF bomb generator
Scanned fixtures (tests/fixtures/scanned/):
generate_scanned_fixtures.py- Scanned OCR fixturesrun_gen.sh- Scanned fixture generation scriptcalculate_wer.py- Word Error Rate calculationlow-quality/create_degraded_200dpi.py- Degraded fixture generator
Security fixtures (tests/fixtures/security/):
generate_embedded_js.py- Embedded JS fixturesgenerate_sensitive_fixture.rs- Sensitive data fixtures
Vector fixtures (tests/fixtures/vector/):
generate_vector_cer_corpus.py- Vector CER test corpus
These generators are correctly placed and actively maintained. See tests/fixtures/STRUCTURE.md for details on the fixtures organization.
Generators in xtask/
xtask/src/bin/gen_encoding_fixtures.rs- Encoding fixture generator (xtask binary)
Git Status Verification
git status tests/fixtures/
# Result: No untracked generator files that should be relocated (✅)
git status tools/
# Result: All relocated generators properly tracked (✅)
Acceptance Criteria
- ✅ All useful generators moved from
tests/fixtures/(done by bf-2yhak) - ✅ Old locations removed via git rm (done by bf-2yhak)
- ✅ New locations in
tools/orxtask/added via git add (done by bf-2yhak) - ✅ References updated in tools/README.md (done by bf-2yhak)
- ✅ Single commit documenting state (this note)
Documentation
tools/README.md- Comprehensive generator catalogtests/fixtures/STRUCTURE.md- Fixtures directory organizationtests/fixtures/PROVENANCE.md- Fixture generation history
Conclusion
No further action required. All useful generators have been relocated to appropriate locations (tools/ or xtask/). The remaining 11 generators in tests/fixtures/ are intentionally co-located with their specific fixture types for maintainability, as documented in tests/fixtures/STRUCTURE.md. This bead's objectives were achieved by prior work on 2026-07-05.