diff options
Diffstat (limited to 'Source/CTest/cmParseCoberturaCoverage.cxx')
-rw-r--r-- | Source/CTest/cmParseCoberturaCoverage.cxx | 158 |
1 files changed, 63 insertions, 95 deletions
diff --git a/Source/CTest/cmParseCoberturaCoverage.cxx b/Source/CTest/cmParseCoberturaCoverage.cxx index d3b99fb..3bdae17 100644 --- a/Source/CTest/cmParseCoberturaCoverage.cxx +++ b/Source/CTest/cmParseCoberturaCoverage.cxx @@ -5,117 +5,97 @@ #include <cmsys/Directory.hxx> #include <cmsys/FStream.hxx> -class cmParseCoberturaCoverage::XMLParser: public cmXMLParser +class cmParseCoberturaCoverage::XMLParser : public cmXMLParser { public: XMLParser(cmCTest* ctest, cmCTestCoverageHandlerContainer& cont) - : CTest(ctest), Coverage(cont) + : CTest(ctest) + , Coverage(cont) { - this->InSources = false; - this->InSource = false; - this->SkipThisClass = false; - this->FilePaths.push_back(this->Coverage.SourceDir); - this->FilePaths.push_back(this->Coverage.BinaryDir); - this->CurFileName = ""; + this->InSources = false; + this->InSource = false; + this->SkipThisClass = false; + this->FilePaths.push_back(this->Coverage.SourceDir); + this->FilePaths.push_back(this->Coverage.BinaryDir); + this->CurFileName = ""; } - virtual ~XMLParser() - { - } + virtual ~XMLParser() {} protected: - - virtual void EndElement(const std::string& name) { - if(name == "source") - { - this->InSource=false; - } - else if (name == "sources") - { - this->InSources=false; - } - else if(name == "class") - { + if (name == "source") { + this->InSource = false; + } else if (name == "sources") { + this->InSources = false; + } else if (name == "class") { this->SkipThisClass = false; - } + } } virtual void CharacterDataHandler(const char* data, int length) { - std::string tmp; - tmp.insert(0,data,length); - if (this->InSources && this->InSource) - { - this->FilePaths.push_back(tmp); - cmCTestOptionalLog(this->CTest, HANDLER_VERBOSE_OUTPUT, - "Adding Source: " << tmp << std::endl, this->Coverage.Quiet); - } + std::string tmp; + tmp.insert(0, data, length); + if (this->InSources && this->InSource) { + this->FilePaths.push_back(tmp); + cmCTestOptionalLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "Adding Source: " << tmp << std::endl, + this->Coverage.Quiet); + } } virtual void StartElement(const std::string& name, const char** atts) { std::string FoundSource; std::string finalpath = ""; - if(name == "source") - { + if (name == "source") { this->InSource = true; - } - else if(name == "sources") - { + } else if (name == "sources") { this->InSources = true; - } - else if(name == "class") - { + } else if (name == "class") { int tagCount = 0; - while(true) - { - if(strcmp(atts[tagCount], "filename") == 0) - { + while (true) { + if (strcmp(atts[tagCount], "filename") == 0) { cmCTestOptionalLog(this->CTest, HANDLER_VERBOSE_OUTPUT, - "Reading file: " << atts[tagCount+1]<< std::endl, - this->Coverage.Quiet); - std::string filename = atts[tagCount+1]; + "Reading file: " << atts[tagCount + 1] + << std::endl, + this->Coverage.Quiet); + std::string filename = atts[tagCount + 1]; this->CurFileName = ""; // Check if this is an absolute path that falls within our // source or binary directories. - for(size_t i=0;i < FilePaths.size();i++) - { - if (filename.find(FilePaths[i]) == 0) - { + for (size_t i = 0; i < FilePaths.size(); i++) { + if (filename.find(FilePaths[i]) == 0) { this->CurFileName = filename; break; - } } + } - if (this->CurFileName == "") - { + if (this->CurFileName == "") { // Check if this is a path that is relative to our source or // binary directories. - for(size_t i=0;i < FilePaths.size();i++) - { + for (size_t i = 0; i < FilePaths.size(); i++) { finalpath = FilePaths[i] + "/" + filename; - if(cmSystemTools::FileExists(finalpath.c_str())) - { + if (cmSystemTools::FileExists(finalpath.c_str())) { this->CurFileName = finalpath; break; - } } } + } cmsys::ifstream fin(this->CurFileName.c_str()); - if(this->CurFileName == "" || !fin ) - { - this->CurFileName = this->Coverage.BinaryDir + "/" + - atts[tagCount+1]; + if (this->CurFileName == "" || !fin) { + this->CurFileName = + this->Coverage.BinaryDir + "/" + atts[tagCount + 1]; fin.open(this->CurFileName.c_str()); - if (!fin) - { + if (!fin) { cmCTestOptionalLog(this->CTest, HANDLER_VERBOSE_OUTPUT, - "Skipping system file " << filename << std::endl, - this->Coverage.Quiet); + "Skipping system file " << filename + << std::endl, + this->Coverage.Quiet); this->SkipThisClass = true; break; @@ -124,8 +104,7 @@ protected: std::string line; FileLinesType& curFileLines = this->Coverage.TotalCoverage[this->CurFileName]; - while(cmSystemTools::GetLineFromStream(fin, line)) - { + while (cmSystemTools::GetLineFromStream(fin, line)) { curFileLines.push_back(-1); } @@ -133,34 +112,26 @@ protected: } ++tagCount; } - } - else if(name == "line") - { + } else if (name == "line") { int tagCount = 0; int curNumber = -1; int curHits = -1; - while(true) - { - if(this->SkipThisClass) - { + while (true) { + if (this->SkipThisClass) { break; - } - if(strcmp(atts[tagCount], "hits") == 0) - { - curHits = atoi(atts[tagCount+1]); } - else if(strcmp(atts[tagCount], "number") == 0) - { - curNumber = atoi(atts[tagCount+1]); + if (strcmp(atts[tagCount], "hits") == 0) { + curHits = atoi(atts[tagCount + 1]); + } else if (strcmp(atts[tagCount], "number") == 0) { + curNumber = atoi(atts[tagCount + 1]); } - if(curHits > -1 && curNumber > 0) - { + if (curHits > -1 && curNumber > 0) { FileLinesType& curFileLines = this->Coverage.TotalCoverage[this->CurFileName]; - { - curFileLines[curNumber-1] = curHits; - } + { + curFileLines[curNumber - 1] = curHits; + } break; } ++tagCount; @@ -169,24 +140,21 @@ protected: } private: - bool InSources; bool InSource; bool SkipThisClass; std::vector<std::string> FilePaths; typedef cmCTestCoverageHandlerContainer::SingleFileCoverageVector - FileLinesType; + FileLinesType; cmCTest* CTest; cmCTestCoverageHandlerContainer& Coverage; std::string CurFileName; - }; - cmParseCoberturaCoverage::cmParseCoberturaCoverage( - cmCTestCoverageHandlerContainer& cont, - cmCTest* ctest) - :Coverage(cont), CTest(ctest) + cmCTestCoverageHandlerContainer& cont, cmCTest* ctest) + : Coverage(cont) + , CTest(ctest) { } |