itk_module_test()
set(
  ITKIntegratedTestTests
  itkFilterImageAddTest.cxx # missing itk_add_test() call
  itkNumericsPrintTest.cxx
  itkReleaseDataFilterTest.cxx # missing itk_add_test() call
  itkStatisticsPrintTest.cxx
  itkCommonPrintTest.cxx
  itkIOPrintTest.cxx
  itkBasicFiltersPrintTest.cxx
  itkSpatialObjectPrintTest.cxx
  itkShrinkImagePreserveObjectPhysicalLocations.cxx
)

createtestdriver(ITKIntegratedTest "${ITKIntegratedTest-Test_LIBRARIES}" "${ITKIntegratedTestTests}")

set(TEMP ${ITK_TEST_OUTPUT_DIR})

# temporary solution for all print tests. Each module should have its own print test later.
add_executable(itkAlgorithmsPrintTest itkAlgorithmsPrintTest.cxx)
target_link_options(
  itkAlgorithmsPrintTest
  PRIVATE
    "$<$<AND:$<C_COMPILER_ID:AppleClang>,$<VERSION_GREATER_EQUAL:$<C_COMPILER_VERSION>,15.0>>:LINKER:-no_warn_duplicate_libraries>"
)
itk_module_target_label(itkAlgorithmsPrintTest)
target_link_libraries(
  itkAlgorithmsPrintTest
  PUBLIC
    ${ITKIntegratedTest-Test_LIBRARIES}
)
itk_add_test(NAME itkAlgorithmsPrintTest COMMAND itkAlgorithmsPrintTest)

add_executable(itkAlgorithmsPrintTest2 itkAlgorithmsPrintTest2.cxx)
target_link_options(
  itkAlgorithmsPrintTest2
  PRIVATE
    "$<$<AND:$<C_COMPILER_ID:AppleClang>,$<VERSION_GREATER_EQUAL:$<C_COMPILER_VERSION>,15.0>>:LINKER:-no_warn_duplicate_libraries>"
)
itk_module_target_label(itkAlgorithmsPrintTest2)
target_link_libraries(
  itkAlgorithmsPrintTest2
  PUBLIC
    ${ITKIntegratedTest-Test_LIBRARIES}
)
itk_add_test(NAME itkAlgorithmsPrintTest2 COMMAND itkAlgorithmsPrintTest)

add_executable(itkAlgorithmsPrintTest3 itkAlgorithmsPrintTest3.cxx)
target_link_options(
  itkAlgorithmsPrintTest3
  PRIVATE
    "$<$<AND:$<C_COMPILER_ID:AppleClang>,$<VERSION_GREATER_EQUAL:$<C_COMPILER_VERSION>,15.0>>:LINKER:-no_warn_duplicate_libraries>"
)
itk_module_target_label(itkAlgorithmsPrintTest3)
target_link_libraries(
  itkAlgorithmsPrintTest3
  PUBLIC
    ${ITKIntegratedTest-Test_LIBRARIES}
)
itk_add_test(NAME itkAlgorithmsPrintTest3 COMMAND itkAlgorithmsPrintTest)

add_executable(itkAlgorithmsPrintTest4 itkAlgorithmsPrintTest4.cxx)
target_link_options(
  itkAlgorithmsPrintTest4
  PRIVATE
    "$<$<AND:$<C_COMPILER_ID:AppleClang>,$<VERSION_GREATER_EQUAL:$<C_COMPILER_VERSION>,15.0>>:LINKER:-no_warn_duplicate_libraries>"
)
itk_module_target_label(itkAlgorithmsPrintTest4)
target_link_libraries(
  itkAlgorithmsPrintTest4
  PUBLIC
    ${ITKIntegratedTest-Test_LIBRARIES}
)
itk_add_test(NAME itkAlgorithmsPrintTest4 COMMAND itkAlgorithmsPrintTest)

#-------------------------------------------------------------------------
itk_add_test(
  NAME itkStatisticsPrintTest
  COMMAND
    ITKIntegratedTestTestDriver
    itkStatisticsPrintTest
)
itk_add_test(
  NAME itkSpatialObjectPrintTest
  COMMAND
    ITKIntegratedTestTestDriver
    itkSpatialObjectPrintTest
)
itk_add_test(
  NAME itkIOPrintTest
  COMMAND
    ITKIntegratedTestTestDriver
    itkIOPrintTest
)

itk_add_test(
  NAME itkCommonPrintTest
  COMMAND
    ITKIntegratedTestTestDriver
    --redirectOutput
    ${TEMP}/itkCommonPrintTest.txt
    itkCommonPrintTest
)
set_tests_properties(
  itkCommonPrintTest
  PROPERTIES
    ATTACHED_FILES_ON_FAIL
      ${TEMP}/itkCommonPrintTest.txt
)

itk_add_test(
  NAME itkBasicFiltersPrintTest
  COMMAND
    ITKIntegratedTestTestDriver
    --redirectOutput
    ${TEMP}/itkBasicFiltersPrintTest.txt
    itkBasicFiltersPrintTest
)
set_tests_properties(
  itkBasicFiltersPrintTest
  PROPERTIES
    ATTACHED_FILES_ON_FAIL
      ${TEMP}/itkBasicFiltersPrintTest.txt
)

itk_add_test(
  NAME itkNumericsPrintTest
  COMMAND
    ITKIntegratedTestTestDriver
    itkNumericsPrintTest
)

itk_add_test(
  NAME itkShrinkImagePreserveObjectPhysicalLocations
  COMMAND
    ITKIntegratedTestTestDriver
    itkShrinkImagePreserveObjectPhysicalLocations
)
