BUG: Spare test fixtures from dashboard post-build cleanup (#6322 regression)#6325
Conversation
|
| Filename | Overview |
|---|---|
| itk_common.cmake | Scopes post-build cleanup to compiler intermediate directories (CMakeFiles/ and .dir/) for objects and lib/ for archives, preventing deletion of Wavefront .obj mesh fixtures and the DCMTK Makefile.lib before ctest_test. |
Reviews (2): Last reviewed commit: "BUG: Spare test fixtures from dashboard ..." | Re-trigger Greptile
The post-build intermediate cleanup added in InsightSoftwareConsortium#6322 globs *.obj and *.lib recursively under CTEST_BINARY_DIRECTORY and deletes the matches before ctest_test. Both extensions are overloaded: *.obj also names Wavefront mesh fixtures (ITKIOMeshOBJ Baseline/bunny.obj, box.obj; Cuberille mesh.obj) and *.lib names a DCMTK Makefile template. GLOB_RECURSE descends into ExternalData/, so those fixtures were removed between build and test, failing itkOBJMeshIOTest1/2 and itkMeshFileReadWriteOBJ* on every dashboard client (ARMBUILD, Azure ITK.* pipelines). Scope the deletion by path: match compiled objects only under CMakeFiles/ and archives only under lib/, where every compiler-emitted object and archive lives on all platforms. Verified against a real build tree: 5579 compiled objects and 148 archives still removed; all seven *.obj mesh fixtures and the DCMTK Makefile.lib spared.
6d15de2 to
27b2484
Compare
This comment was marked as outdated.
This comment was marked as outdated.
|
Local build verification on Windows (MSVC,
No |
cf0cf0e
into
InsightSoftwareConsortium:dashboard
Fixes a regression from #6322: the post-build cleanup deletes Wavefront
.objmesh fixtures and a DCMTKMakefile.libbeforectest_test, breakingitkOBJMeshIOTest1/2anditkMeshFileReadWriteOBJ*on every dashboard client (ARMBUILD, Azure ITK.* pipelines). Targets thedashboardbranch — this is live on all PR CI right now.Root cause
#6322 added a post-build, pre-test cleanup in
itk_common.cmake:*.objand*.libare overloaded extensions:*.obj— MSVC compiled object and Wavefront mesh (ITKIOMeshOBJBaseline/bunny.obj,box.obj;Cuberillemesh.obj).*.lib— MSVC static/import lib andModules/ThirdParty/DCMTK/.../config/templates/Makefile.lib.GLOB_RECURSEdescends intobuild/ExternalData/, so the mesh fixtures were deleted betweenctest_buildandctest_test:The
*.o/*.aparts were harmless (no test data uses those extensions); only the*.obj/*.libadditions collided.The fix
Scope the deletion by path — compiled objects always live under
CMakeFiles/, archives underlib/, on every platform:Verified against a real configured ITK build tree:
*.objmesh fixtures and the DCMTKMakefile.libspared.