pdftract/notes/bf-6uh9a.md

3.8 KiB

bf-6uh9a: Clean tests/fixtures and relocate useful generators

Summary

Verified that tests/fixtures/ cleanup and generator relocation has already been completed by previous beads (bf-1iefu, bf-xqib3, bf-2yhak, bf-620xp). Removed one untracked temporary file.

Verification Results

Generator drafts already removed

  • No "gen_encoding_fixtures v2-v9" drafts found in tests/fixtures/
  • The only gen_encoding_fixtures implementation is in xtask/src/bin/gen_encoding_fixtures.rs (correct location for an xtask binary)
  • All generator cleanup was completed by bf-xqib3 on 2026-07-05

Compiled binaries already removed

  • No compiled binaries found in tests/fixtures/ (searched for .so, .dylib, .dll, .exe files)
  • The .bin files present (lzw_*.bin, random_bytes.bin, compression-bomb.bin) are legitimate fixture data files:
    • lzw_*.bin: LZW compression stream test data for decompressor testing
    • random_bytes.bin: Malformed PDF fixture data
    • compression-bomb.bin: Malformed PDF fixture data for security testing

Generators already relocated and documented

  • 2 general-purpose tools relocated to tools/ by bf-2yhak:
    • convert_pdf_to_scanned.sh - Converts text-embedded PDFs to scanned image-based PDFs
    • Documentation added in tools/README.md

Co-located generators are actively maintained

The 10 remaining generator scripts in tests/fixtures/ subdirectories are correctly placed (KEEP category from bf-1iefu):

  • tests/fixtures/encoding/generate_unmapped_glyphs.py - Unmapped glyph fixtures
  • tests/fixtures/encoding/create_unmapped_comprehensive.py - Comprehensive encoding tests
  • tests/fixtures/forms/generate_form_fixtures.rs - Form fixture generator
  • tests/fixtures/malformed/gen_bomb.py - Malformed PDF bomb generator
  • tests/fixtures/scanned/generate_scanned_fixtures.py - Scanned OCR fixtures
  • tests/fixtures/scanned/run_gen.sh - Scanned fixture generation script
  • tests/fixtures/scanned/calculate_wer.py - Word Error Rate calculation
  • tests/fixtures/scanned/wer_gate_stub.rs - WER gate stub
  • tests/fixtures/security/generate_embedded_js.py - Embedded JS fixtures
  • tests/fixtures/security/generate_sensitive_fixture.rs - Sensitive data fixtures
  • tests/fixtures/vector/generate_vector_cer_corpus.py - Vector CER test corpus

These are co-located with their fixtures for maintainability and are actively used.

Cleanup Action Taken

Removed untracked temporary file

Removed tests/fixtures/scanned/low-quality/degraded-page-1.png (temporary intermediate file from PDF-to-image conversion process).

Acceptance Criteria

tests/fixtures/ contains only fixture data, not generator binaries or drafts

  • No generator binaries found
  • No versioned drafts found
  • Only legitimate fixture data files present

Useful generators are relocated with documentation

  • Relocation completed by bf-2yhak
  • Comprehensive documentation in tools/README.md
  • Co-located generators documented in tests/fixtures/STRUCTURE.md

git rm executed for all removed files

  • Cleanup completed by previous beads
  • One untracked file removed in this bead

Single commit

Commit: chore(bf-6uh9a): clean tests/fixtures and relocate useful generators

References

  • tools/README.md - Comprehensive generator catalog
  • tests/fixtures/STRUCTURE.md - Fixtures directory organization
  • tests/fixtures/PROVENANCE.md - Fixture generation history
  • notes/bf-1iefu.md - Generator categorization rationale
  • notes/bf-xqib3.md - Obsolete generator removal
  • notes/bf-2yhak.md - Generator relocation
  • notes/bf-620xp.md - Cleanup verification

Conclusion

The cleanup and relocation work requested by this bead was completed by three previous beads (bf-1iefu, bf-xqib3, bf-2yhak) and verified by bf-620xp. The tests/fixtures/ directory is clean and well-organized. No further cleanup or relocation is needed.