Skip to content

chore(ci): run every corpus-reading real target in the Corpus job - #435

Merged
DrunkOnJava merged 3 commits into
mainfrom
test/corpus-job-runs-real-targets
Oct 28, 2026
Merged

DrunkOnJava merged 3 commits into
mainfrom
test/corpus-job-runs-real-targets

Conversation

@DrunkOnJava

@DrunkOnJava DrunkOnJava commented Oct 28, 2026 •

Copy link
Copy Markdown
Owner

Summary

Three real targets of tools/ci/test-targets.txt (#428) read ../../samples and skip when it is absent: integration_dxf_roundtrip (dwg-to-dxf's converter on line_2013.dwg, release by release), integration_gltf (the glTF exporter on the same drawing) and the four corpus tests of integration_legacy_container (the R14, R2000 and R2007 object walks). Every Test leg lacks that directory, and the Corpus job's step named only five targets, so these three ran nowhere with the 19 pinned drawings in place: every one of their corpus tests returned early and passed.

The step now runs all eight corpus-reading targets. integration_legacy_container runs without the seven byte-built tests its skip= list in the manifest leaves out (the same seven names, passed to libtest's --skip, which is unique across the eight binaries), so the manifest stays the one statement of what runs. The guard that fails the step on the word skipping also fails on convert failed, the early return of integration_dxf_roundtrip when the converter errors on the drawing, which passes just as vacuously.

All ten drawings these targets name (line_R14, arc_R14, circle_R14, line_2000, arc_2000, circle_2000, line_2007, arc_2007, circle_2007, line_2013) are in the 19-file subset (tests column of tools/corpus/pins.tsv).

Spec reference

Not a decoder change. No corpus count moves.

Test plan

  • CI evidence, run 40681850350, all 24 checks green. The Corpus (public DWG) job's "Real-file tests on the 19-file corpus" step ran eight targets with the corpus present: block_names 5, class_census 1, corpus_roundtrip 5, integration_dxf_roundtrip 7, integration_gltf 3, integration_legacy_container 4 (7 filtered out), r2013_entity_values 15 and samples 23 tests passed, with no skipping and no convert failed in the log. (The first run, 40675739514, ran integration_legacy_container whole, 11 tests; its macOS stable Test leg also failed once on a rustup download, static.rust-lang.org unreachable, and passed on re-run.)

Source-provenance declaration

By submitting this PR I certify that my contribution does not incorporate executable code from any source whose license is incompatible with Apache-2.0. Specifically:

  • No Autodesk DWG SDK source (RealDWG, ObjectARX, ObjectDBX) or NDA-protected Autodesk documentation was consulted or imported.
  • No Open Design Alliance Teigha / Drawings SDK source was consulted or imported. The ODA's public Open Design Specification for .dwg files PDF is explicitly allowed (see CLEANROOM.md).
  • No GPL-licensed DWG implementation source (LibreDWG, etc.) was consulted or imported. This matters because dwg-rs is Apache-2.0 and must remain compatible.

My contribution is based on:

  • The ODA's freely-redistributable Open Design Specification for .dwg files (v5.4.1);
  • Public reverse-engineering notes, research papers, or blog posts cited inline;
  • Reading algorithm-description comments (not executable code) in permissively-licensed projects (MIT / Apache / BSD) to resolve spec ambiguities: none were read for this change.

See CLEANROOM.md for the full allowed/forbidden source list and the honest scope of what "clean-room" means for this project.

Developer Certificate of Origin

By submitting this PR, I certify that the contribution complies with the Developer Certificate of Origin 1.1. Specifically, I affirm that the contribution is my own work (or rightfully licensed to me) and that it can be distributed under the project's Apache-2.0 license.

integration_dxf_roundtrip, integration_gltf and integration_legacy_container
read ../../samples and skip when it is absent, which is every Test leg, and
the Corpus job's list of targets did not name them, so they ran nowhere with
the 19 pinned drawings in place. The step now runs all eight targets of
tools/ci/test-targets.txt that read the corpus, and fails on the "convert
failed" early return of integration_dxf_roundtrip as well as on a skip, since
both pass vacuously.
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-28T13:46:07.194719Z cdc5b0c New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@DrunkOnJava DrunkOnJava changed the title ci(corpus): run every corpus-reading real target in the Corpus job chore(ci): run every corpus-reading real target in the Corpus job Oct 28, 2026
…iner in the Corpus job

The manifest classes integration_legacy_container as real with seven tests
skipped, because they build their flat files and page maps byte by byte. The
Corpus step ran the file whole. It now passes the same seven names to
libtest's --skip, so the manifest stays the one statement of what runs.
@DrunkOnJava
DrunkOnJava enabled auto-merge (squash) October 28, 2026 13:50
@DrunkOnJava
DrunkOnJava merged commit db815e2 into main Oct 28, 2026
24 checks passed
@DrunkOnJava
DrunkOnJava deleted the test/corpus-job-runs-real-targets branch October 28, 2026 13:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant