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
3f8d9dc687 feat(pdftract-5rl5o): add cbindgen header generation for pdftract.h
Add cbindgen infrastructure to auto-generate C/C++ header from Rust extern
"C" surface at build time.

- Add cbindgen.toml config (C language, include guard, pragma_once, cpp_compat)
- Add build.rs to generate include/pdftract.h during cargo build
- Generated header compiles cleanly with gcc (C) and g++ (C++)

The header is the contract between libpdftract and C/C++ consumers.
Future extern "C" functions will automatically appear in the header.

Refs: pdftract-5rl5o
2026-05-23 07:31:53 -04:00