Concepts
How it is checked
How the interface stays stable, what tests stand behind it, and what it does not do yet.
A stable interface
- Everything public is under
include/dxfio;dxfio/dxfio.hppbrings in all of it. The reader’s machinery stays insource. - Failures come back in
std::expected; what was mended or left out, in a list of issues. Nothing throws. - Every public declaration carries a comment, and every header compiles on its own.
- A snapshot of the public headers is checked in. The
dxfio_apitest fails on any change to it, so a change to the interface is always a deliberate one.
Tests and AutoCAD
- 155 drawings AutoCAD 2026 wrote, for each release, read without an issue, and what dxfio saves back reads to the same document: every group and value, in its order.
- What dxfio writes, to each release, is opened by AutoCAD’s console and passes its audit.
- The tests cover every line, function, region and branch; the coverage build fails below that.
- libFuzzer targets feed broken input to the reader, the tags and the text escapes.
Known limits
- No type yet for CAMERA, FIELD, GEODATA or SUN: they are kept whole and written back, with no fields of their own.
- Saving to R12 leaves out paper space viewports; AutoCAD keeps them with ACAD MVIEW extended data.
- MTEXT saved to R12 wraps no line to its width; only its own line breaks start a new TEXT.