Remove all *New tests
Summary
This MR is part of #1649 (closed) story. It removes all New tests code, and CMake test declarations.
Rationale
New test are a legacy from the beginning of OTB. They only contain a template class declaration and instanciation by calling the New()
method. The rationale behind New tests is that if you have template code and you do not at least do that, the code is actually never compiled (and thus checked for compilation errors). While this sounds reasonable, in fact most of classes also have a more complete testing, which starts with template declaration and instanciation, doing the job of the New test already.
New tests thus mostly provides additional *.o
to build and additional tests to run, with a marignal impact on code coverage.
This MR remove 344 *.o
and associated tests, and should speed up the build/test process.
Implementation Details
Remove cxx files:
find . -name *New.cxx | xargs git rm
Remove associated REGISTER_TESTS()
in test drivers:
find . -name *TestDriver.cxx | xargs sed -i '/.*New/d'
Remove build of cx files:
find . -name CMakeLists.txt | xargs sed -i '/New.cxx$/d'
Remove tests declaration (a few manual fixes required):
find . -name CMakeLists.txt | xargs sed -i '/add_test(NAME .*New/,+2d'
After that, there are still 25 new tests that are declared in other cxx tests files, which should be removed manually.
Copyright
The copyright owner is CNES and has signed the ORFEO ToolBox Contributor License Agreement.
***Check before merging:*** - All discussions are resolved - At least 2