diff --git a/Testing/Code/otbTestHelper.cxx b/Testing/Code/otbTestHelper.cxx index 4cd34420361143e9e90e307d4603fa99f8bcf539..2e0428d7ce26d3a69f41043c31fcfcb7f3450ef5 100644 --- a/Testing/Code/otbTestHelper.cxx +++ b/Testing/Code/otbTestHelper.cxx @@ -106,24 +106,40 @@ int TestHelper::RegressionTestAsciiFile(const char * testAsciiFileName, const ch TypeEtat etatPrec(ETAT_NUM), etatCour(ETAT_NUM); + std::vector<std::string> listLineFileRef; + std::vector<std::string> listLineFileTest; + while (std::getline(fluxfileref, strfileref) != 0) + { + listLineFileRef.push_back(strfileref); + } + while (std::getline(fluxfiletest, strfiletest) != 0) + { + listLineFileTest.push_back(strfiletest); + } + std::vector<std::string> listStrDiffLineFileRef; std::vector<std::string> listStrDiffLineFileTest; - while (std::getline(fluxfileref, strfileref) != 0) + std::vector<std::string>::iterator itRef = listLineFileRef.begin(); + std::vector<std::string>::iterator itTest = listLineFileTest.begin(); +// while (std::getline(fluxfileref, strfileref) != 0) + while ((itRef != listLineFileRef.end()) && (itTest != listLineFileTest.end())) { + strfileref = *itRef; + strfiletest = *itTest; otb::StringStream buffstreamRef, buffstreamTest; buffstreamRef << strfileref; //check if we've reach end of test file - if (std::getline(fluxfiletest, strfiletest) == 0) - { - std::string strRef = ""; - - buffstreamRef >> strRef; - fluxfilediff << "Line missing in test file: " << numLine << " : " << strRef << std::endl; - nbdiff++; - } - else +// if (std::getline(fluxfiletest, strfiletest) == 0) +// { +// std::string strRef = ""; +// +// buffstreamRef >> strRef; +// fluxfilediff << "Line missing in test file: " << numLine << " : " << strRef << std::endl; +// nbdiff++; +// } +// else { bool foundexpr = false; @@ -329,11 +345,30 @@ int TestHelper::RegressionTestAsciiFile(const char * testAsciiFileName, const ch } } + ++itRef; + ++itTest; + } + while (itRef != listLineFileRef.end()) + { + strfileref = *itRef; + int nblinediff(0); + otb::StringStream buffstreamRef; + std::string strRef = ""; + buffstreamRef << strfileref; + buffstreamRef >> strRef; + fluxfilediff << "Additional line in ref file: " << numLine << " : " << strRef << std::endl; + nblinediff++; + nbdiff++; + if (nblinediff != 0 && m_ReportErrors) + { + listStrDiffLineFileRef.push_back(strfileref); + } } - while (std::getline(fluxfiletest, strfiletest) != 0) + while (itTest != listLineFileTest.end()) { + strfiletest = *itTest; int nblinediff(0); otb::StringStream buffstreamTest; std::string strTest = ""; @@ -344,7 +379,6 @@ int TestHelper::RegressionTestAsciiFile(const char * testAsciiFileName, const ch nbdiff++; if (nblinediff != 0 && m_ReportErrors) { - listStrDiffLineFileRef.push_back(strfileref); listStrDiffLineFileTest.push_back(strfiletest); } }