Skip to content

Commit be61143

Browse files
committed
COMP: Auto-remove transient test outputs via FIXTURES_CLEANUP companion tests
Wire the existing itk_add_file_test_cleanup() helper into the tests whose outputs were just made unique. Each gains a FIXTURES_CLEANUP companion test that removes its ${ITK_TEST_OUTPUT_DIR} outputs after the test runs. The controlling option ITK_REMOVE_TEST_FILES_ON_SUCCESS defaults to ON, so cleanup is active by default; set it OFF to retain outputs for debugging. Per CMake, FIXTURES_CLEANUP runs regardless of whether the fixture test passed, failed, or was skipped.
1 parent ff49058 commit be61143

127 files changed

Lines changed: 5690 additions & 4 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CMake/ITKModuleTest.cmake

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -343,12 +343,16 @@ function(itk_memcheck_ignore)
343343
endfunction()
344344

345345
#-----------------------------------------------------------------------------
346-
# Option to automatically remove large test output files after completion.
347-
# BigIO write-read tests can produce multi-gigabyte temporary files
348-
# that exhaust disk space on CI runners and local builds.
346+
# Removing transient test outputs is the default behavior: each wired test
347+
# gets a companion cleanup test that deletes its ${ITK_TEST_OUTPUT_DIR}
348+
# outputs, which otherwise accumulate (BigIO write-read tests alone produce
349+
# multi-gigabyte files that exhaust disk on CI runners and local builds).
350+
# Cleanup runs unconditionally after the test (pass, fail, or skip); a
351+
# developer who needs to inspect outputs must opt out by configuring with
352+
# -DITK_REMOVE_TEST_FILES_ON_SUCCESS=OFF, which retains all test outputs.
349353
option(
350354
ITK_REMOVE_TEST_FILES_ON_SUCCESS
351-
"Remove large test output files after test completion. Set OFF to retain files for debugging."
355+
"Remove transient test outputs after each test (default ON; removed even on failure). Set OFF to retain all outputs for debugging."
352356
ON
353357
)
354358
mark_as_advanced(ITK_REMOVE_TEST_FILES_ON_SUCCESS)

Modules/Bridge/VtkGlue/test/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,10 @@ if(NOT VTK_RENDERING_BACKEND STREQUAL "None")
8383
DATA{${ITK_DATA_ROOT}/Input/peppers.png}
8484
${ITK_TEST_OUTPUT_DIR}
8585
)
86+
itk_add_file_test_cleanup(
87+
QuickViewTest
88+
${ITK_TEST_OUTPUT_DIR}/QuickViewTest0.png
89+
)
8690
set_property(
8791
TEST
8892
QuickViewTest

Modules/Core/Common/test/CMakeLists.txt

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,10 @@ itk_add_test(
173173
itkColorTableTest
174174
8
175175
)
176+
itk_add_file_test_cleanup(
177+
itkColorTableTest1
178+
${TEMP}/itkColorTableTest1.txt
179+
)
176180
set_tests_properties(
177181
itkColorTableTest1
178182
PROPERTIES
@@ -188,6 +192,10 @@ itk_add_test(
188192
itkColorTableTest
189193
16
190194
)
195+
itk_add_file_test_cleanup(
196+
itkColorTableTest2
197+
${TEMP}/itkColorTableTest2.txt
198+
)
191199
set_tests_properties(
192200
itkColorTableTest2
193201
PROPERTIES
@@ -209,6 +217,10 @@ itk_add_test(
209217
itkMultipleLogOutputTest
210218
${TEMP}/test_multi.txt
211219
)
220+
itk_add_file_test_cleanup(
221+
itkMultipleLogOutputTest
222+
${TEMP}/test_multi.txt
223+
)
212224
itk_add_test(
213225
NAME itkFixedArrayTest2
214226
COMMAND
@@ -257,6 +269,10 @@ itk_add_test(
257269
0
258270
${ITK_TEST_OUTPUT_DIR}/itkSobelOperatorImageConvolutionHorizTest.tiff
259271
)
272+
itk_add_file_test_cleanup(
273+
itkSobelOperatorImageConvolutionHorizTest
274+
${ITK_TEST_OUTPUT_DIR}/itkSobelOperatorImageConvolutionHorizTest.tiff
275+
)
260276
itk_add_test(
261277
NAME itkSobelOperatorImageFilterHorizTest
262278
COMMAND
@@ -269,6 +285,10 @@ itk_add_test(
269285
0
270286
${ITK_TEST_OUTPUT_DIR}/itkSobelOperatorImageFilterHorizTest.tiff
271287
)
288+
itk_add_file_test_cleanup(
289+
itkSobelOperatorImageFilterHorizTest
290+
${ITK_TEST_OUTPUT_DIR}/itkSobelOperatorImageFilterHorizTest.tiff
291+
)
272292
itk_add_test(
273293
NAME itkSobelOperatorImageConvolutionVertTest
274294
COMMAND
@@ -281,6 +301,10 @@ itk_add_test(
281301
1
282302
${ITK_TEST_OUTPUT_DIR}/itkSobelOperatorImageConvolutionVertTest.tiff
283303
)
304+
itk_add_file_test_cleanup(
305+
itkSobelOperatorImageConvolutionVertTest
306+
${ITK_TEST_OUTPUT_DIR}/itkSobelOperatorImageConvolutionVertTest.tiff
307+
)
284308

285309
# A simplified data test for debugging sobel operator failures
286310
itk_add_test(
@@ -295,6 +319,10 @@ itk_add_test(
295319
1
296320
${ITK_TEST_OUTPUT_DIR}/itkSobelOperatorImageConvolutionVertCircleTest.tiff
297321
)
322+
itk_add_file_test_cleanup(
323+
itkSobelOperatorImageConvolutionVertCircleTest
324+
${ITK_TEST_OUTPUT_DIR}/itkSobelOperatorImageConvolutionVertCircleTest.tiff
325+
)
298326

299327
itk_add_test(
300328
NAME itkSobelOperatorImageFilterVertTest
@@ -308,6 +336,10 @@ itk_add_test(
308336
1
309337
${ITK_TEST_OUTPUT_DIR}/itkSobelOperatorImageFilterVertTest.tiff
310338
)
339+
itk_add_file_test_cleanup(
340+
itkSobelOperatorImageFilterVertTest
341+
${ITK_TEST_OUTPUT_DIR}/itkSobelOperatorImageFilterVertTest.tiff
342+
)
311343

312344
itk_add_test(
313345
NAME itkConstNeighborhoodIteratorTest
@@ -317,6 +349,10 @@ itk_add_test(
317349
${TEMP}/itkConstNeighborhoodIteratorTest.txt
318350
itkConstNeighborhoodIteratorTest
319351
)
352+
itk_add_file_test_cleanup(
353+
itkConstNeighborhoodIteratorTest
354+
${TEMP}/itkConstNeighborhoodIteratorTest.txt
355+
)
320356
set_tests_properties(
321357
itkConstNeighborhoodIteratorTest
322358
PROPERTIES
@@ -332,6 +368,10 @@ itk_add_test(
332368
${TEMP}/itkShapedNeighborhoodIteratorTest.txt
333369
itkShapedNeighborhoodIteratorTest
334370
)
371+
itk_add_file_test_cleanup(
372+
itkShapedNeighborhoodIteratorTest
373+
${TEMP}/itkShapedNeighborhoodIteratorTest.txt
374+
)
335375
set_tests_properties(
336376
itkShapedNeighborhoodIteratorTest
337377
PROPERTIES
@@ -432,6 +472,10 @@ itk_add_test(
432472
DATA{${ITK_DATA_ROOT}/Input/vol-raw-big.nrrd}
433473
${ITK_TEST_OUTPUT_DIR}/vol-raw-big-dup2.nrrd
434474
)
475+
itk_add_file_test_cleanup(
476+
itkImageDuplicatorTest2
477+
${ITK_TEST_OUTPUT_DIR}/vol-raw-big-dup2.nrrd
478+
)
435479
itk_add_test(
436480
NAME itkImageIteratorsForwardBackwardTest
437481
COMMAND
@@ -457,6 +501,10 @@ itk_add_test(
457501
itkImageRandomIteratorTest2
458502
${ITK_TEST_OUTPUT_DIR}/itkImageRandomIteratorTest2Output.mha
459503
)
504+
itk_add_file_test_cleanup(
505+
itkImageRandomIteratorTest2
506+
${ITK_TEST_OUTPUT_DIR}/itkImageRandomIteratorTest2Output.mha
507+
)
460508
itk_add_test(
461509
NAME itkImageSliceIteratorTest
462510
COMMAND
@@ -489,27 +537,43 @@ itk_add_test(
489537
itkLoggerTest
490538
${TEMP}/test_logger.txt
491539
)
540+
itk_add_file_test_cleanup(
541+
itkLoggerTest
542+
${TEMP}/test_logger.txt
543+
)
492544
itk_add_test(
493545
NAME itkLoggerOutputTest
494546
COMMAND
495547
ITKCommon2TestDriver
496548
itkLoggerOutputTest
497549
${TEMP}/test_loggerOutput.txt
498550
)
551+
itk_add_file_test_cleanup(
552+
itkLoggerOutputTest
553+
${TEMP}/test_loggerOutput.txt
554+
)
499555
itk_add_test(
500556
NAME itkLoggerManagerTest
501557
COMMAND
502558
ITKCommon2TestDriver
503559
itkLoggerManagerTest
504560
${TEMP}/test_LoggerManager.txt
505561
)
562+
itk_add_file_test_cleanup(
563+
itkLoggerManagerTest
564+
${TEMP}/test_LoggerManager.txt
565+
)
506566
itk_add_test(
507567
NAME itkLoggerThreadWrapperTest
508568
COMMAND
509569
ITKCommon2TestDriver
510570
itkLoggerThreadWrapperTest
511571
${TEMP}/test_LoggerThreadWrapper.txt
512572
)
573+
itk_add_file_test_cleanup(
574+
itkLoggerThreadWrapperTest
575+
${TEMP}/test_LoggerThreadWrapper.txt
576+
)
513577
itk_add_test(
514578
NAME itkMatrixTest
515579
COMMAND
@@ -562,6 +626,10 @@ itk_add_test(
562626
itkPointSetToImageFilterTest1
563627
${ITK_TEST_OUTPUT_DIR}/itkPointSetToImageFilterTest1.png
564628
)
629+
itk_add_file_test_cleanup(
630+
itkPointSetToImageFilterTest1
631+
${ITK_TEST_OUTPUT_DIR}/itkPointSetToImageFilterTest1.png
632+
)
565633
itk_add_test(
566634
NAME itkPointSetToImageFilterTest2
567635
COMMAND
@@ -573,6 +641,10 @@ itk_add_test(
573641
DATA{${ITK_DATA_ROOT}/Input/VascularTreePointSet.txt}
574642
${ITK_TEST_OUTPUT_DIR}/itkPointSetToImageFilterTest2.mha
575643
)
644+
itk_add_file_test_cleanup(
645+
itkPointSetToImageFilterTest2
646+
${ITK_TEST_OUTPUT_DIR}/itkPointSetToImageFilterTest2.mha
647+
)
576648
itk_add_test(
577649
NAME itkDataObjectTest
578650
COMMAND
@@ -978,6 +1050,10 @@ itk_add_test(
9781050
${TEMP}/itkSliceIteratorTest.txt
9791051
itkSliceIteratorTest
9801052
)
1053+
itk_add_file_test_cleanup(
1054+
itkSliceIteratorTest
1055+
${TEMP}/itkSliceIteratorTest.txt
1056+
)
9811057
set_tests_properties(
9821058
itkSliceIteratorTest
9831059
PROPERTIES
@@ -997,13 +1073,21 @@ itk_add_test(
9971073
itkStdStreamLogOutputTest
9981074
${TEMP}/testStreamLogOutput.txt
9991075
)
1076+
itk_add_file_test_cleanup(
1077+
itkStdStreamLogOutputTest
1078+
${TEMP}/testStreamLogOutput.txt
1079+
)
10001080
itk_add_test(
10011081
NAME itkThreadLoggerTest
10021082
COMMAND
10031083
ITKCommon2TestDriver
10041084
itkThreadLoggerTest
10051085
${TEMP}/test_threadLogger.txt
10061086
)
1087+
itk_add_file_test_cleanup(
1088+
itkThreadLoggerTest
1089+
${TEMP}/test_threadLogger.txt
1090+
)
10071091
itk_add_test(
10081092
NAME itkThreadDefsTest
10091093
COMMAND
@@ -1023,13 +1107,21 @@ itk_add_test(
10231107
itkSymmetricSecondRankTensorImageReadTest
10241108
${ITK_TEST_OUTPUT_DIR}/testSymmetricTensor.nrrd
10251109
)
1110+
itk_add_file_test_cleanup(
1111+
itkSymmetricSecondRankTensorImageReadTest
1112+
${ITK_TEST_OUTPUT_DIR}/testSymmetricTensor.nrrd
1113+
)
10261114
itk_add_test(
10271115
NAME itkSymmetricSecondRankTensorImageWriteReadTest
10281116
COMMAND
10291117
ITKCommon1TestDriver
10301118
itkSymmetricSecondRankTensorImageWriteReadTest
10311119
${ITK_TEST_OUTPUT_DIR}/testSymmetricTensorWriteRead.mha
10321120
)
1121+
itk_add_file_test_cleanup(
1122+
itkSymmetricSecondRankTensorImageWriteReadTest
1123+
${ITK_TEST_OUTPUT_DIR}/testSymmetricTensorWriteRead.mha
1124+
)
10331125
itk_add_test(
10341126
NAME itkSymmetricSecondRankTensorTest
10351127
COMMAND
@@ -1072,6 +1164,10 @@ itk_add_test(
10721164
${ITK_TEST_OUTPUT_DIR}/itkStreamingImageFilterTest3_1.png
10731165
10
10741166
)
1167+
itk_add_file_test_cleanup(
1168+
itkStreamingImageFilterTest3_1
1169+
${ITK_TEST_OUTPUT_DIR}/itkStreamingImageFilterTest3_1.png
1170+
)
10751171
itk_add_test(
10761172
NAME itkStreamingImageFilterTest3_2
10771173
COMMAND
@@ -1084,6 +1180,10 @@ itk_add_test(
10841180
${ITK_TEST_OUTPUT_DIR}/itkStreamingImageFilterTest3_2.png
10851181
1000
10861182
)
1183+
itk_add_file_test_cleanup(
1184+
itkStreamingImageFilterTest3_2
1185+
${ITK_TEST_OUTPUT_DIR}/itkStreamingImageFilterTest3_2.png
1186+
)
10871187
itk_add_test(
10881188
NAME itkVariableLengthVectorTest
10891189
COMMAND
@@ -1286,6 +1386,10 @@ itk_add_test(
12861386
itkXMLFileOutputWindowTest
12871387
${ITK_TEST_OUTPUT_DIR}/itkXMLFileOutputWindowTest.xml
12881388
)
1389+
itk_add_file_test_cleanup(
1390+
itkXMLFileOutputWindowTestFilename
1391+
${ITK_TEST_OUTPUT_DIR}/itkXMLFileOutputWindowTest.xml
1392+
)
12891393

12901394
itk_add_test(
12911395
NAME itkXMLFilterWatcherTest
@@ -1296,6 +1400,10 @@ itk_add_test(
12961400
itkXMLFilterWatcherTest
12971401
DATA{${ITK_DATA_ROOT}/Input/cthead1.png}
12981402
)
1403+
itk_add_file_test_cleanup(
1404+
itkXMLFilterWatcherTest
1405+
${ITK_TEST_OUTPUT_DIR}/itkXMLFilterWatcherTest.txt
1406+
)
12991407

13001408
if(ITK_BUILD_SHARED_LIBS AND ITK_DYNAMIC_LOADING)
13011409
macro(BuildClientTestLibrary _name _type)

Modules/Core/ImageAdaptors/test/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ itk_add_test(
3030
${ITK_TEST_OUTPUT_DIR}/VectorImage.nrrd
3131
${ITK_TEST_OUTPUT_DIR}/VectorImage.mhd
3232
)
33+
itk_add_file_test_cleanup(
34+
itkVectorImageTest
35+
${ITK_TEST_OUTPUT_DIR}/VectorImage.nrrd
36+
${ITK_TEST_OUTPUT_DIR}/VectorImage.mhd
37+
)
3338
itk_add_test(
3439
NAME itkComplexConjugateImageAdaptorTest
3540
COMMAND

0 commit comments

Comments
 (0)