From f3300da77834c9e14761106eabe34ede1424e5fd Mon Sep 17 00:00:00 2001
From: Julien Michel <julien.michel@orfeo-toolbox.org>
Date: Thu, 15 Jan 2009 15:24:13 +0100
Subject: [PATCH] BUG: Adding a test to prevent segfault when no input

---
 Code/Common/otbExtractROIBase.txx |  6 ++++++
 Testing/Code/IO/CMakeLists.txt    | 25 ++++++++++++++++---------
 Testing/Code/IO/otbIOTests16.cxx  |  1 +
 3 files changed, 23 insertions(+), 9 deletions(-)

diff --git a/Code/Common/otbExtractROIBase.txx b/Code/Common/otbExtractROIBase.txx
index 4a618e04a8..c999e4a5af 100644
--- a/Code/Common/otbExtractROIBase.txx
+++ b/Code/Common/otbExtractROIBase.txx
@@ -177,6 +177,12 @@ ExtractROIBase<TInputImage,TOutputImage>
         // Si SizeX(Y) est nulle, alors SizeX(Y) est egale � la SizeX(Y) de l'image
         typename Superclass::InputImageConstPointer  inputPtr  = this->GetInput();
 
+	// Check if input exists or not before doing anything
+	if(!inputPtr)
+	  {
+	  return;
+	  }
+
         // Recupere Region de l'image d'entree
 //        const InputImageRegionType& inputRegion = inputPtr->GetRequestedRegion();
         const InputImageRegionType& inputRegion = inputPtr->GetLargestPossibleRegion();
diff --git a/Testing/Code/IO/CMakeLists.txt b/Testing/Code/IO/CMakeLists.txt
index d5db260830..432a3c7a5d 100755
--- a/Testing/Code/IO/CMakeLists.txt
+++ b/Testing/Code/IO/CMakeLists.txt
@@ -1561,10 +1561,24 @@ ADD_TEST(ioTvKMLVectorDataIOFileReaderLines ${IO_TESTS15}
 
 # ---  RAD  ---
 
+IF(OTB_DATA_USE_LARGEINPUT)
+
 # Can read a RAD format (ci2)
 ADD_TEST(ioTuRADImageIOCanRead_RADCI2 ${IO_TESTS16}
         otbRADImageIOTestCanRead
-        ${INPUTDATA}/RADCI2_image_simu_poupees.rad )
+        ${LARGEDATA}/RAD_CI2/3017_HH.rad)
+
+# Convert a ci2.RAD file into ENVI format
+ADD_TEST(ioTvImageFileReaderRADCI22ENVI ${IO_TESTS16}
+--compare-image ${TOL}
+	${BASELINE}/ioImageFileReaderRADCI22ENVI.hdr 
+	${TEMP}/ioImageFileReaderRADCI22ENVI.hdr 
+        otbImageFileReaderRADComplexFloatExtract
+        /home3/mathieu/guillaume/CD_CNES/RAD_CI2/3017_HH.rad
+        ${TEMP}/ioImageFileReaderRADCI22ENVI.hdr )
+
+ENDIF(OTB_DATA_USE_LARGEINPUT)
+
 
 # Can read a RAD format (cr4)
 ADD_TEST(ioTuRADImageIOCanRead_RADCR4sngl ${IO_TESTS16}
@@ -1576,14 +1590,6 @@ ADD_TEST(ioTuRADImageIOCanRead_RADCR4mult ${IO_TESTS16}
         otbRADImageIOTestCanRead
         ${INPUTDATA}/RADCR4_multimage.rad )
 
-
-
-# Convert a ci2.RAD file into ENVI format
-#ADD_TEST(ioTvImageFileReaderRADCI22ENVI ${IO_TESTS16}
-#        otbImageFileReaderRADComplexFloat
-#        /home3/mathieu/guillaume/CD_CNES/RAD_CI2/3017_HH.rad
-#        ${TEMP}/ioImageFileReaderRAD2ENVI.hdr )
-
 # Convert a cr4.RAD file into tif
 ADD_TEST(ioTvImageFileReaderRADCR42TIF ${IO_TESTS16}
         otbImageFileReaderRADComplexFloat
@@ -1758,6 +1764,7 @@ otbImageFileReaderRADInt.cxx
 otbImageFileReaderRADFloat.cxx
 otbImageFileReaderRADComplexInt.cxx
 otbImageFileReaderRADComplexFloat.cxx
+otbImageFileReaderRADComplexFloatExtract.cxx
 otbImageFileReaderRADComplexDouble.cxx
 otbPointSetFileReaderNew.cxx
 otbPointSetFileReader.cxx
diff --git a/Testing/Code/IO/otbIOTests16.cxx b/Testing/Code/IO/otbIOTests16.cxx
index ad7df7eac4..255d1e6ce1 100644
--- a/Testing/Code/IO/otbIOTests16.cxx
+++ b/Testing/Code/IO/otbIOTests16.cxx
@@ -34,6 +34,7 @@ REGISTER_TEST(otbImageFileReaderRADInt);
 REGISTER_TEST(otbImageFileReaderRADFloat);
 REGISTER_TEST(otbImageFileReaderRADComplexDouble);
 REGISTER_TEST(otbImageFileReaderRADComplexFloat);
+REGISTER_TEST(otbImageFileReaderRADComplexFloatExtract);
 REGISTER_TEST(otbImageFileReaderRADComplexInt);
 REGISTER_TEST(otbPointSetFileReaderNew);
 REGISTER_TEST(otbPointSetFileReader);
-- 
GitLab