Skip to content

Commit

Permalink
ENH: Add test for itk::XMLFilterWatcher
Browse files Browse the repository at this point in the history
Add test for `itk::XMLFilterWatcher`: the watcher is applied to an image
reading filter, and the progress updates written to the standard output
by the filter are redirected to a text file through the CMake
`--redirectOutput` option.
  • Loading branch information
jhlegarreta authored and dzenanz committed Nov 14, 2023
1 parent 8439a2e commit 3c37fe3
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 1 deletion.
14 changes: 13 additions & 1 deletion Modules/Core/Common/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,9 @@ set(ITKCommon2Tests
itkImageRegionSplitterMultidimensionalTest.cxx
itkMetaDataObjectTest.cxx
# itkVectorMultiplyTest.cxx
itkXMLFileOutputWindowTest.cxx)
itkXMLFileOutputWindowTest.cxx
itkXMLFilterWatcherTest.cxx)

if(ITK_BUILD_SHARED_LIBS AND ITK_DYNAMIC_LOADING)
list(APPEND ITKCommon2Tests itkDownCastTest.cxx)
endif()
Expand Down Expand Up @@ -1667,6 +1669,16 @@ itk_add_test(
itkXMLFileOutputWindowTest
${ITK_TEST_OUTPUT_DIR}/itkXMLFileOutputWindowTest.xml)

itk_add_test(
NAME
itkXMLFilterWatcherTest
COMMAND
ITKCommon2TestDriver
--redirectOutput
${ITK_TEST_OUTPUT_DIR}/itkXMLFilterWatcherTest.txt
itkXMLFilterWatcherTest
DATA{${ITK_DATA_ROOT}/Input/cthead1.png})

if(ITK_BUILD_SHARED_LIBS AND ITK_DYNAMIC_LOADING)
macro(BuildClientTestLibrary _name _type)
add_library(ClientTestLibrary${_name} ${_type} ClientTestLibrary${_name}.cxx)
Expand Down
52 changes: 52 additions & 0 deletions Modules/Core/Common/test/itkXMLFilterWatcherTest.cxx
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
/*=========================================================================
*
* Copyright NumFOCUS
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0.txt
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*=========================================================================*/

#include "itkImage.h"
#include "itkImageFileReader.h"
#include "itkXMLFilterWatcher.h"
#include "itkTestingMacros.h"


int
itkXMLFilterWatcherTest(int argc, char * argv[])
{
if (argc != 2)
{
std::cerr << "Missing parameters." << std::endl;
std::cerr << "Usage: " << itkNameOfTestExecutableMacro(argv);
std::cerr << " inputFileName" << std::endl;
return EXIT_FAILURE;
}

constexpr unsigned int Dimension = 2;

using PixelType = float;
using ImageType = itk::Image<PixelType, Dimension>;

using FilterType = itk::ImageFileReader<ImageType>;

auto reader = FilterType::New();

reader->SetFileName(argv[1]);

itk::XMLFilterWatcher watcher(reader, "filter");

reader->Update();

return EXIT_SUCCESS;
}

0 comments on commit 3c37fe3

Please sign in to comment.