Commit graph

2 commits

Author SHA1 Message Date
jedarden
9c7f9d3e37 test(pdftract-5ya9x): update memory roundtrip test to 10,000 iterations
- Updated test_api_null.c to run 10,000 alloc/free cycles (was 100)
- Updated verification note to mark memory roundtrip as PASS
- Improved stream_next implementation to use reference-based approach
  instead of Box::from_raw/leak dance for cleaner memory handling

All acceptance criteria for pdftract-5ya9x now PASS:
- 12 exported symbols verified via nm -D
- C client tests (test_api.c, test_api_null.c)
- C++ client test (test_extract.cpp)
- Null pointer safety
- Panic safety (catch_unwind on all entry points)
- Memory roundtrip (10,000 iterations)
- Thread safety (8 pthreads)

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-05-23 08:13:31 -04:00
jedarden
f26f9e3c0f feat(pdftract-uyhq7): scaffold libpdftract cdylib+staticlib crate
Add pdftract-libpdftract as 4th workspace member with dual crate-type
configuration (cdylib + staticlib) for C/C++ SDK flexibility.

Changes:
- Create crates/pdftract-libpdftract/Cargo.toml with cdylib+staticlib
- Create crates/pdftract-libpdftract/src/lib.rs scaffold
- Update root Cargo.toml workspace.members
- Configure [lib] name="pdftract" for correct artifact naming

Artifacts produced:
- target/debug/libpdftract.so (shared, cdylib)
- target/debug/libpdftract.a (static, staticlib)

Acceptance criteria:
- PASS: cargo build -p pdftract-libpdftract produces libpdftract.so/.a
- PASS: Workspace cargo build builds all 4 crates without regression
- PASS: cargo metadata shows pdftract-libpdftract in workspace members
- PASS: nm -D shows no exported symbols (empty API scaffold)

References: pdftract-uyhq7, Phase SDK epic

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-23 07:29:47 -04:00