Test: regression for CIccCmm::CheckPCSConnections CIccPcsXform leak (#1337)#1341
Conversation
…1337) Adds a script CTest that reproduces the #1337 leak in isolation (no -PCC, so independent of the #1336 iccApplyToLink fix): two profiles generated from committed XML (a CMYK overprint profile chained to a spectral profile) form an unsupported PCS link, so CheckPCSConnections' middle CIccPcsXform Connect() fails. Run under LeakSanitizer the pre-fix build leaks 168 B via CheckPCSConnections; the test fails on any leak report. The tool is expected to exit non-zero ("Unsupported PCS Link used"), so the pass/fail signal is the absence of a leak. Verified failing pre-fix and passing with the #1338 fix, on both gcc and clang. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Job Failure2026-06-14 04:55:00 UTC |
xsscx
left a comment
There was a problem hiding this comment.
Job Failure
2026-06-14 04:55:00 UTC
The following tests FAILED:
Errors while running CTest
21 - iccdev.issue-1337-checkpcsconnections-regression (Failed)
Error: Process completed with exit code 8.
|
Same pattern as #1340: the only failing check ( It flips green once the paired fix #1338 is merged. Suggested order: merge #1338 (fix) → re-run → merge #1341 (test). |
|
@colourbill-ctrl #1338 is Merged but latest Jon indicates Fail |
…onnections-regression
|
Same cause as #1340, @xsscx — stale branch, not a real leak. This branch predated the #1338 merge, so its last CI run built the tools without the Merged current Verified locally (clang-18, ASAN+UBSAN), fix now in tree: Should go green on the re-run. |
xsscx
left a comment
There was a problem hiding this comment.
2026-06-14 21:40:28 UTC
Appears to need a rebase on master
Merge Conflict |
…onnections-regression # Conflicts: # Build/Cmake/Testing/CMakeLists.txt
|
Resolved, @xsscx. The conflict was purely additive in |
Summary
Adds a deterministic CTest regression for the
CIccCmm::CheckPCSConnectionsCIccPcsXformleak fixed in #1338 (issue #1337). On an upstream branch because it touches.github/scripts/+Build/Cmake/.This fills the gap noted on #1338 (which shipped without a repro because the triggering chain lived only in the uncommitted 200-QA script). With that script now attached to #1337, I isolated a minimal,
-PCC-free trigger — so this test is independent of the #1336 / #1339 fix.What it does
Generates two profiles from committed XML (
Testing/hybrid/CMYK-W_Overprint_Profile.xml,Testing/hybrid/Data/Spec380_10_730-D50_2deg.xml) and chains them:The CMYK→spectral PCS link is unsupported, so
CheckPCSConnections' middleCIccPcsXform/Connect()fails (icCmmStatUnsupportedPcsLink) and — pre-fix — leaks theCIccPcsXform. Run under LeakSanitizer, the test fails on any leak report. The tool is expected to exit non-zero ("Unsupported PCS Link used"), so the pass/fail signal is the absence of a leak.Verification
ctest -R issue-1337FAILS —168 byte(s) leaked ... CheckPCSConnections.Context: full 200-QA sweep
Running the attached
iccApplyToLink_QA_200.txtunder LSan on master: 148 of 200 commands leak. With #1338 + #1339 applied, all 148 → 0 (the deeperBegin()-time sites were indirect children of the leaked-PCCprofile /CIccPcsXform). This test pins theCheckPCSConnectionshalf; #1340 pins theiccApplyToLink -PCChalf.🤖 Generated with Claude Code