From 4982fc973e815714dc83a1093e627e6835588fdf Mon Sep 17 00:00:00 2001 From: Mickael Savinaud <mickael.savinaud@c-s.fr> Date: Wed, 23 Feb 2011 16:47:39 +0100 Subject: [PATCH] ENH: create otbIOTest22 only for tests about hdf files --- CMake/ImportGdal.cmake | 7 +- Testing/Code/IO/CMakeLists.txt | 154 ++++++++++++++++++------------- Testing/Code/IO/otbIOTests22.cxx | 29 ++++++ Testing/Code/IO/otbIOTests9.cxx | 2 +- 4 files changed, 123 insertions(+), 69 deletions(-) create mode 100644 Testing/Code/IO/otbIOTests22.cxx diff --git a/CMake/ImportGdal.cmake b/CMake/ImportGdal.cmake index 2dba86e20d..cf72e52e26 100644 --- a/CMake/ImportGdal.cmake +++ b/CMake/ImportGdal.cmake @@ -46,13 +46,12 @@ IF(OTB_USE_EXTERNAL_GDAL) OUTPUT_VARIABLE GDAL_FORMATS OUTPUT_STRIP_TRAILING_WHITESPACE ) - IF ( ${GDAL_FORMATS} MATCHES "hdf3" ) + IF ( ${GDAL_FORMATS} MATCHES "hdf" ) SET(CHECK_GDAL_BUILDED_WITH_HDF 1 CACHE INTERNAL "GDAL_BUILDED_WITH_HDF" FORCE) - MESSAGE(WARNING "ok" ) - ELSE ( ${GDAL_FORMATS} MATCHES "hdf3") + ELSE ( ${GDAL_FORMATS} MATCHES "hdf") MESSAGE(WARNING "CHECK_GDAL_BUILDED_WITH_HDF test failed : your GDAL is not builded with a hdf library. So the HDF tests will be deactivated. Formats supported by your GDAL: " [ ${GDAL_FORMATS} ] ) SET(CHECK_GDAL_BUILDED_WITH_HDF 0 CACHE INTERNAL "GDAL_BUILDED_WITH_HDF" FORCE) - ENDIF(${GDAL_FORMATS} MATCHES "hdf3") + ENDIF(${GDAL_FORMATS} MATCHES "hdf") ELSE (GDALCONFIG_EXECUTABLE) MESSAGE(WARNING "gdal-config not found") ENDIF (GDALCONFIG_EXECUTABLE) diff --git a/Testing/Code/IO/CMakeLists.txt b/Testing/Code/IO/CMakeLists.txt index 51148a11d9..057106b3a4 100644 --- a/Testing/Code/IO/CMakeLists.txt +++ b/Testing/Code/IO/CMakeLists.txt @@ -54,6 +54,10 @@ ENDIF(OTB_USE_CURL) SET(IO_TESTS20 ${CXX_TEST_PATH}/otbIOTests20) SET(IO_TESTS21 ${CXX_TEST_PATH}/otbIOTests21) + +IF(CHECK_GDAL_BUILDED_WITH_HDF) + SET(IO_TESTS22 ${CXX_TEST_PATH}/otbIOTests22) +ENDIF(CHECK_GDAL_BUILDED_WITH_HDF) # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ COMMON_TESTS3 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -1226,70 +1230,6 @@ ADD_TEST(ioTvStreamingImageFilterGDAL_TIFF ${IO_TESTS9} ${INPUTDATA}/poupeesTIF/IMAGERY.TIF ${TEMP}/ioStreamingImageFilterTestGDAL_PoupeesTif.png ) - -# Test multidataset -IF(CHECK_GDAL_BUILDED_WITH_HDF) -ADD_TEST(ioTvMultiDatasetReading1 ${IO_TESTS9} - --compare-ascii ${NOTOL} ${BASELINE_FILES}/ioTvMultiDatasetReading1.txt - ${TEMP}/ioTvMultiDatasetReading1.txt - otbVectorImageTest - ${INPUTDATA}/MOD09Q1G_EVI.A2006233.h07v03.005.2008338190308.hdf - ${TEMP}/ioTvMultiDatasetReading1.txt - 0 - ) -ADD_TEST(ioTvMultiDatasetReading2 ${IO_TESTS9} - --compare-ascii ${NOTOL} ${BASELINE_FILES}/ioTvMultiDatasetReading2.txt - ${TEMP}/ioTvMultiDatasetReading2.txt - otbVectorImageTest - ${INPUTDATA}/MOD09Q1G_EVI.A2006233.h07v03.005.2008338190308.hdf - ${TEMP}/ioTvMultiDatasetReading2.txt - 5 - ) -ADD_TEST(ioTvMultiDatasetReadingInName1 ${IO_TESTS9} - --compare-ascii ${NOTOL} ${BASELINE_FILES}/ioTvMultiDatasetReading1.txt - ${TEMP}/ioTvMultiDatasetReadingInName1.txt - otbVectorImageTest - ${INPUTDATA}/MOD09Q1G_EVI.A2006233.h07v03.005.2008338190308.hdf:0 - ${TEMP}/ioTvMultiDatasetReadingInName1.txt - ) -ADD_TEST(ioTvMultiDatasetReadingInName2 ${IO_TESTS9} - --compare-ascii ${NOTOL} ${BASELINE_FILES}/ioTvMultiDatasetReading2.txt - ${TEMP}/ioTvMultiDatasetReadingInName2.txt - otbVectorImageTest - ${INPUTDATA}/MOD09Q1G_EVI.A2006233.h07v03.005.2008338190308.hdf:5 - ${TEMP}/ioTvMultiDatasetReadingInName2.txt - ) - -ADD_TEST(ioTvMultiDatasetReadingInfo ${IO_TESTS9} - --compare-ascii ${NOTOL} ${BASELINE_FILES}/ioTvMultiDatasetReadingInfo.txt - ${TEMP}/ioTvMultiDatasetReadingInfoOut.txt - otbMultiDatasetReadingInfo - ${INPUTDATA}/MOD09Q1G_EVI.A2006233.h07v03.005.2008338190308.hdf - ${TEMP}/ioTvMultiDatasetReadingInfoOut.txt - ) - -# Test reading HDF files (hdf, hdf5, hdf4, h5, h4, he5, he4) -IF(CHECK_HDF4OPEN_SYMBOL) -ADD_TEST(ioTvMultiChannelROI_HDF4_2_TIF ${COMMON_TESTS2} - --compare-image ${EPSILON_9} ${BASELINE}/ioExtractROI_HDF2TIF_MOD09Q1G_20_25_100_150_channel_1.tif - ${TEMP}/ioExtractROI_HDF2TIF_MOD09Q1G_20_25_100_150_channel_1_OUT.tif - otbMultiChannelExtractROI - ${INPUTDATA}/MOD09Q1G_EVI.A2006233.h07v03.005.2008338190308.hdf:5 - ${TEMP}/ioExtractROI_HDF2TIF_MOD09Q1G_20_25_100_150_channel_1_OUT.tif - -startX 1400 -startY 3700 -sizeX 100 -sizeY 150 - -channels 1 ) -ENDIF(CHECK_HDF4OPEN_SYMBOL) - -ADD_TEST(ioTvMultiChannelROI_HDF5_2_TIF ${COMMON_TESTS2} - --compare-image ${EPSILON_9} ${BASELINE}/ioExtractROI_HDF2TIF_GSSTF_NCEP_100_20_200_100_channel_1.tif - ${TEMP}/ioExtractROI_HDF2TIF_GSSTF_NCEP_100_20_200_100_channel_1_OUT.tif - otbMultiChannelExtractROI - ${INPUTDATA}/GSSTF_NCEP.2b.2008.12.31.he5:3 - ${TEMP}/ioExtractROI_HDF2TIF_GSSTF_NCEP_100_20_200_100_channel_1_OUT.tif - -startX 100 -startY 20 -sizeX 200 -sizeY 100 - -channels 1 ) - -ENDIF(CHECK_GDAL_BUILDED_WITH_HDF) # --- STREAMING IMAGE FILE WRITER --- ADD_TEST(ioTvStreamingIFWriterBSQWithoutStreaming ${IO_TESTS2} @@ -2913,6 +2853,81 @@ ADD_TEST(ioTvGDALReadPxlComplex${INPUTFILE_PIXELTYPE} ${IO_TESTS21} ENDFOREACH(INPUTFILE_PIXELTYPE ${INPUTFILE_PIXELTYPES_LIST}) +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ otbIOTESTS22 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# Tests about multidataset file like hdf4 or hdf5 (hdf, hdf5, hdf4, h5, h4, he5, he4) + +IF(CHECK_GDAL_BUILDED_WITH_HDF) + +# Tests to check if we can open hdf files using a otb::VectorImage and IFReader->SetDatasetNumber() function. +# no access to data only PrintSelf() method. +ADD_TEST(ioTvMultiDatasetReading1 ${IO_TESTS22} + --compare-ascii ${NOTOL} ${BASELINE_FILES}/ioTvMultiDatasetReading1.txt + ${TEMP}/ioTvMultiDatasetReading1.txt + otbVectorImageTest + ${INPUTDATA}/MOD09Q1G_EVI.A2006233.h07v03.005.2008338190308.hdf + ${TEMP}/ioTvMultiDatasetReading1.txt + 0 + ) +ADD_TEST(ioTvMultiDatasetReading2 ${IO_TESTS22} + --compare-ascii ${NOTOL} ${BASELINE_FILES}/ioTvMultiDatasetReading2.txt + ${TEMP}/ioTvMultiDatasetReading2.txt + otbVectorImageTest + ${INPUTDATA}/MOD09Q1G_EVI.A2006233.h07v03.005.2008338190308.hdf + ${TEMP}/ioTvMultiDatasetReading2.txt + 5 + ) + +# Tests to check if we can open hdf files using a otb::VectorImage and filename:NumSubDataset syntax. +# no access to data only PrintSelf() method. +ADD_TEST(ioTvMultiDatasetReadingInName1 ${IO_TESTS22} + --compare-ascii ${NOTOL} ${BASELINE_FILES}/ioTvMultiDatasetReading1.txt + ${TEMP}/ioTvMultiDatasetReadingInName1.txt + otbVectorImageTest + ${INPUTDATA}/MOD09Q1G_EVI.A2006233.h07v03.005.2008338190308.hdf:0 + ${TEMP}/ioTvMultiDatasetReadingInName1.txt + ) +ADD_TEST(ioTvMultiDatasetReadingInName2 ${IO_TESTS22} + --compare-ascii ${NOTOL} ${BASELINE_FILES}/ioTvMultiDatasetReading2.txt + ${TEMP}/ioTvMultiDatasetReadingInName2.txt + otbVectorImageTest + ${INPUTDATA}/MOD09Q1G_EVI.A2006233.h07v03.005.2008338190308.hdf:5 + ${TEMP}/ioTvMultiDatasetReadingInName2.txt + ) + +# Test to check behavior of function readerGDAL->GetSubDatasetInfo() which return info about subdataset. +ADD_TEST(ioTvMultiDatasetReadingInfo ${IO_TESTS22} + --compare-ascii ${NOTOL} ${BASELINE_FILES}/ioTvMultiDatasetReadingInfo.txt + ${TEMP}/ioTvMultiDatasetReadingInfoOut.txt + otbMultiDatasetReadingInfo + ${INPUTDATA}/MOD09Q1G_EVI.A2006233.h07v03.005.2008338190308.hdf + ${TEMP}/ioTvMultiDatasetReadingInfoOut.txt + ) + +# Tests which read data in HDF files. +IF(CHECK_HDF4OPEN_SYMBOL) +ADD_TEST(ioTvMultiChannelROI_HDF4_2_TIF ${COMMON_TESTS2} + --compare-image ${EPSILON_9} ${BASELINE}/ioExtractROI_HDF2TIF_MOD09Q1G_20_25_100_150_channel_1.tif + ${TEMP}/ioExtractROI_HDF2TIF_MOD09Q1G_20_25_100_150_channel_1_OUT.tif + otbMultiChannelExtractROI + ${INPUTDATA}/MOD09Q1G_EVI.A2006233.h07v03.005.2008338190308.hdf:5 + ${TEMP}/ioExtractROI_HDF2TIF_MOD09Q1G_20_25_100_150_channel_1_OUT.tif + -startX 1400 -startY 3700 -sizeX 100 -sizeY 150 + -channels 1 ) +ENDIF(CHECK_HDF4OPEN_SYMBOL) + +ADD_TEST(ioTvMultiChannelROI_HDF5_2_TIF ${COMMON_TESTS2} + --compare-image ${EPSILON_9} ${BASELINE}/ioExtractROI_HDF2TIF_GSSTF_NCEP_100_20_200_100_channel_1.tif + ${TEMP}/ioExtractROI_HDF2TIF_GSSTF_NCEP_100_20_200_100_channel_1_OUT.tif + otbMultiChannelExtractROI + ${INPUTDATA}/GSSTF_NCEP.2b.2008.12.31.he5:3 + ${TEMP}/ioExtractROI_HDF2TIF_GSSTF_NCEP_100_20_200_100_channel_1_OUT.tif + -startX 100 -startY 20 -sizeX 200 -sizeY 100 + -channels 1 ) + +ENDIF(CHECK_GDAL_BUILDED_WITH_HDF) + #---------------------------------------------------------------------------------- SET(BasicIO_SRCS1 otbIOTests1.cxx @@ -3125,6 +3140,13 @@ otbComplexImageManipulationTest.cxx otbGDALReadPxlComplex.cxx ) +IF(CHECK_GDAL_BUILDED_WITH_HDF) +SET(BasicIO_SRCS22 +otbIOTests22.cxx +otbVectorImageTest.cxx +otbMultiDatasetReadingInfo.cxx +) +ENDIF(CHECK_GDAL_BUILDED_WITH_HDF) OTB_ADD_EXECUTABLE(otbIOTests1 "${BasicIO_SRCS1}" "OTBIO;OTBTesting") @@ -3170,3 +3192,7 @@ OTB_ADD_EXECUTABLE(otbIOTests20 "${BasicIO_SRCS20}" "OTBIO;OTBTesting") ENDIF( NOT OTB_DISABLE_CXX_TESTING AND BUILD_TESTING ) OTB_ADD_EXECUTABLE(otbIOTests21 "${BasicIO_SRCS21}" "OTBIO;OTBTesting") + +IF(CHECK_GDAL_BUILDED_WITH_HDF) + OTB_ADD_EXECUTABLE(otbIOTests22 "${BasicIO_SRCS22}" "OTBIO;OTBTesting") +ENDIF(CHECK_GDAL_BUILDED_WITH_HDF) \ No newline at end of file diff --git a/Testing/Code/IO/otbIOTests22.cxx b/Testing/Code/IO/otbIOTests22.cxx new file mode 100644 index 0000000000..bb0bc2d735 --- /dev/null +++ b/Testing/Code/IO/otbIOTests22.cxx @@ -0,0 +1,29 @@ +/*========================================================================= + + Program: ORFEO Toolbox + Language: C++ + Date: $Date$ + Version: $Revision$ + + + Copyright (c) Centre National d'Etudes Spatiales. All rights reserved. + See OTBCopyright.txt for details. + + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#if defined(_MSC_VER) +#pragma warning ( disable : 4786 ) +#endif + +#include "otbTestMain.h" + +void RegisterTests() +{ + REGISTER_TEST(otbVectorImageTest); + REGISTER_TEST(otbMultiDatasetReadingInfo); +} diff --git a/Testing/Code/IO/otbIOTests9.cxx b/Testing/Code/IO/otbIOTests9.cxx index d386086321..ce6d33744d 100644 --- a/Testing/Code/IO/otbIOTests9.cxx +++ b/Testing/Code/IO/otbIOTests9.cxx @@ -37,5 +37,5 @@ void RegisterTests() REGISTER_TEST(otbStreamingImageFilterTest); REGISTER_TEST(otbVectorImageFileReaderWriterTest); REGISTER_TEST(otbStreamingShortImageFileWriterTest); - REGISTER_TEST(otbMultiDatasetReadingInfo); + //REGISTER_TEST(otbMultiDatasetReadingInfo); } -- GitLab