[llvm] r313416 - [llvm-cov] Make some summary info fields private. NFC.
Vedant Kumar via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 15 16:00:01 PDT 2017
Author: vedantk
Date: Fri Sep 15 16:00:01 2017
New Revision: 313416
URL: http://llvm.org/viewvc/llvm-project?rev=313416&view=rev
Log:
[llvm-cov] Make some summary info fields private. NFC.
There's a bug in the way the line and region summary objects are merged.
It would have been less likely to occur if those objects kept some data
private.
Modified:
llvm/trunk/tools/llvm-cov/CoverageExporterJson.cpp
llvm/trunk/tools/llvm-cov/CoverageReport.cpp
llvm/trunk/tools/llvm-cov/CoverageSummaryInfo.cpp
llvm/trunk/tools/llvm-cov/CoverageSummaryInfo.h
llvm/trunk/tools/llvm-cov/SourceCoverageViewHTML.cpp
Modified: llvm/trunk/tools/llvm-cov/CoverageExporterJson.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-cov/CoverageExporterJson.cpp?rev=313416&r1=313415&r2=313416&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-cov/CoverageExporterJson.cpp (original)
+++ llvm/trunk/tools/llvm-cov/CoverageExporterJson.cpp Fri Sep 15 16:00:01 2017
@@ -362,8 +362,8 @@ class CoverageExporterJson {
// Start Line Coverage Summary.
emitDictStart();
- emitDictElement("count", Summary.LineCoverage.NumLines);
- emitDictElement("covered", Summary.LineCoverage.Covered);
+ emitDictElement("count", Summary.LineCoverage.getNumLines());
+ emitDictElement("covered", Summary.LineCoverage.getCovered());
emitDictElement("percent", Summary.LineCoverage.getPercentCovered());
// End Line Coverage Summary.
emitDictEnd();
@@ -372,8 +372,8 @@ class CoverageExporterJson {
// Start Function Coverage Summary.
emitDictStart();
- emitDictElement("count", Summary.FunctionCoverage.NumFunctions);
- emitDictElement("covered", Summary.FunctionCoverage.Executed);
+ emitDictElement("count", Summary.FunctionCoverage.getNumFunctions());
+ emitDictElement("covered", Summary.FunctionCoverage.getExecuted());
emitDictElement("percent", Summary.FunctionCoverage.getPercentCovered());
// End Function Coverage Summary.
emitDictEnd();
@@ -382,8 +382,8 @@ class CoverageExporterJson {
// Start Instantiation Coverage Summary.
emitDictStart();
- emitDictElement("count", Summary.InstantiationCoverage.NumFunctions);
- emitDictElement("covered", Summary.InstantiationCoverage.Executed);
+ emitDictElement("count", Summary.InstantiationCoverage.getNumFunctions());
+ emitDictElement("covered", Summary.InstantiationCoverage.getExecuted());
emitDictElement("percent",
Summary.InstantiationCoverage.getPercentCovered());
// End Function Coverage Summary.
@@ -393,11 +393,11 @@ class CoverageExporterJson {
// Start Region Coverage Summary.
emitDictStart();
- emitDictElement("count", Summary.RegionCoverage.NumRegions);
- emitDictElement("covered", Summary.RegionCoverage.Covered);
+ emitDictElement("count", Summary.RegionCoverage.getNumRegions());
+ emitDictElement("covered", Summary.RegionCoverage.getCovered());
emitDictElement("notcovered",
- Summary.RegionCoverage.NumRegions -
- Summary.RegionCoverage.Covered);
+ Summary.RegionCoverage.getNumRegions() -
+ Summary.RegionCoverage.getCovered());
emitDictElement("percent", Summary.RegionCoverage.getPercentCovered());
// End Region Coverage Summary.
emitDictEnd();
Modified: llvm/trunk/tools/llvm-cov/CoverageReport.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-cov/CoverageReport.cpp?rev=313416&r1=313415&r2=313416&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-cov/CoverageReport.cpp (original)
+++ llvm/trunk/tools/llvm-cov/CoverageReport.cpp Fri Sep 15 16:00:01 2017
@@ -185,11 +185,12 @@ void CoverageReport::render(const FileCo
if (Options.ShowRegionSummary) {
OS << format("%*u", FileReportColumns[1],
- (unsigned)File.RegionCoverage.NumRegions);
- Options.colored_ostream(OS, FileCoverageColor) << format(
- "%*u", FileReportColumns[2], (unsigned)(File.RegionCoverage.NumRegions -
- File.RegionCoverage.Covered));
- if (File.RegionCoverage.NumRegions)
+ (unsigned)File.RegionCoverage.getNumRegions());
+ Options.colored_ostream(OS, FileCoverageColor)
+ << format("%*u", FileReportColumns[2],
+ (unsigned)(File.RegionCoverage.getNumRegions() -
+ File.RegionCoverage.getCovered()));
+ if (File.RegionCoverage.getNumRegions())
Options.colored_ostream(OS, FileCoverageColor)
<< format("%*.2f", FileReportColumns[3] - 1,
File.RegionCoverage.getPercentCovered())
@@ -199,11 +200,11 @@ void CoverageReport::render(const FileCo
}
OS << format("%*u", FileReportColumns[4],
- (unsigned)File.FunctionCoverage.NumFunctions);
+ (unsigned)File.FunctionCoverage.getNumFunctions());
OS << format("%*u", FileReportColumns[5],
- (unsigned)(File.FunctionCoverage.NumFunctions -
- File.FunctionCoverage.Executed));
- if (File.FunctionCoverage.NumFunctions)
+ (unsigned)(File.FunctionCoverage.getNumFunctions() -
+ File.FunctionCoverage.getExecuted()));
+ if (File.FunctionCoverage.getNumFunctions())
Options.colored_ostream(OS, FuncCoverageColor)
<< format("%*.2f", FileReportColumns[6] - 1,
File.FunctionCoverage.getPercentCovered())
@@ -213,11 +214,11 @@ void CoverageReport::render(const FileCo
if (Options.ShowInstantiationSummary) {
OS << format("%*u", FileReportColumns[7],
- (unsigned)File.InstantiationCoverage.NumFunctions);
+ (unsigned)File.InstantiationCoverage.getNumFunctions());
OS << format("%*u", FileReportColumns[8],
- (unsigned)(File.InstantiationCoverage.NumFunctions -
- File.InstantiationCoverage.Executed));
- if (File.InstantiationCoverage.NumFunctions)
+ (unsigned)(File.InstantiationCoverage.getNumFunctions() -
+ File.InstantiationCoverage.getExecuted()));
+ if (File.InstantiationCoverage.getNumFunctions())
Options.colored_ostream(OS, InstantiationCoverageColor)
<< format("%*.2f", FileReportColumns[9] - 1,
File.InstantiationCoverage.getPercentCovered())
@@ -227,11 +228,11 @@ void CoverageReport::render(const FileCo
}
OS << format("%*u", FileReportColumns[10],
- (unsigned)File.LineCoverage.NumLines);
+ (unsigned)File.LineCoverage.getNumLines());
Options.colored_ostream(OS, LineCoverageColor) << format(
- "%*u", FileReportColumns[11],
- (unsigned)(File.LineCoverage.NumLines - File.LineCoverage.Covered));
- if (File.LineCoverage.NumLines)
+ "%*u", FileReportColumns[11], (unsigned)(File.LineCoverage.getNumLines() -
+ File.LineCoverage.getCovered()));
+ if (File.LineCoverage.getNumLines())
Options.colored_ostream(OS, LineCoverageColor)
<< format("%*.2f", FileReportColumns[12] - 1,
File.LineCoverage.getPercentCovered())
@@ -251,22 +252,22 @@ void CoverageReport::render(const Functi
OS << column(DC.demangle(Function.Name), FunctionReportColumns[0],
Column::RightTrim)
<< format("%*u", FunctionReportColumns[1],
- (unsigned)Function.RegionCoverage.NumRegions);
+ (unsigned)Function.RegionCoverage.getNumRegions());
Options.colored_ostream(OS, FuncCoverageColor)
<< format("%*u", FunctionReportColumns[2],
- (unsigned)(Function.RegionCoverage.NumRegions -
- Function.RegionCoverage.Covered));
+ (unsigned)(Function.RegionCoverage.getNumRegions() -
+ Function.RegionCoverage.getCovered()));
Options.colored_ostream(
OS, determineCoveragePercentageColor(Function.RegionCoverage))
<< format("%*.2f", FunctionReportColumns[3] - 1,
Function.RegionCoverage.getPercentCovered())
<< '%';
OS << format("%*u", FunctionReportColumns[4],
- (unsigned)Function.LineCoverage.NumLines);
+ (unsigned)Function.LineCoverage.getNumLines());
Options.colored_ostream(OS, LineCoverageColor)
<< format("%*u", FunctionReportColumns[5],
- (unsigned)(Function.LineCoverage.NumLines -
- Function.LineCoverage.Covered));
+ (unsigned)(Function.LineCoverage.getNumLines() -
+ Function.LineCoverage.getCovered()));
Options.colored_ostream(
OS, determineCoveragePercentageColor(Function.LineCoverage))
<< format("%*.2f", FunctionReportColumns[6] - 1,
@@ -391,7 +392,7 @@ void CoverageReport::renderFileReports(r
bool EmptyFiles = false;
for (const FileCoverageSummary &FCS : FileReports) {
- if (FCS.FunctionCoverage.NumFunctions)
+ if (FCS.FunctionCoverage.getNumFunctions())
render(FCS, OS);
else
EmptyFiles = true;
@@ -402,7 +403,7 @@ void CoverageReport::renderFileReports(r
<< "Files which contain no functions:\n";
for (const FileCoverageSummary &FCS : FileReports)
- if (!FCS.FunctionCoverage.NumFunctions)
+ if (!FCS.FunctionCoverage.getNumFunctions())
render(FCS, OS);
}
Modified: llvm/trunk/tools/llvm-cov/CoverageSummaryInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-cov/CoverageSummaryInfo.cpp?rev=313416&r1=313415&r2=313416&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-cov/CoverageSummaryInfo.cpp (original)
+++ llvm/trunk/tools/llvm-cov/CoverageSummaryInfo.cpp Fri Sep 15 16:00:01 2017
@@ -87,10 +87,8 @@ FunctionCoverageSummary::get(const Insta
Summary.RegionCoverage = Summaries[0].RegionCoverage;
Summary.LineCoverage = Summaries[0].LineCoverage;
for (const auto &FCS : Summaries.drop_front()) {
- Summary.RegionCoverage.Covered =
- std::max(FCS.RegionCoverage.Covered, Summary.RegionCoverage.Covered);
- Summary.LineCoverage.Covered =
- std::max(FCS.LineCoverage.Covered, Summary.LineCoverage.Covered);
+ Summary.RegionCoverage.merge(FCS.RegionCoverage);
+ Summary.LineCoverage.merge(FCS.LineCoverage);
}
return Summary;
}
Modified: llvm/trunk/tools/llvm-cov/CoverageSummaryInfo.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-cov/CoverageSummaryInfo.h?rev=313416&r1=313415&r2=313416&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-cov/CoverageSummaryInfo.h (original)
+++ llvm/trunk/tools/llvm-cov/CoverageSummaryInfo.h Fri Sep 15 16:00:01 2017
@@ -21,13 +21,14 @@
namespace llvm {
/// \brief Provides information about region coverage for a function/file.
-struct RegionCoverageInfo {
+class RegionCoverageInfo {
/// \brief The number of regions that were executed at least once.
size_t Covered;
/// \brief The total number of regions in a function/file.
size_t NumRegions;
+public:
RegionCoverageInfo() : Covered(0), NumRegions(0) {}
RegionCoverageInfo(size_t Covered, size_t NumRegions)
@@ -39,6 +40,14 @@ struct RegionCoverageInfo {
return *this;
}
+ void merge(const RegionCoverageInfo &RHS) {
+ Covered = std::max(Covered, RHS.Covered);
+ }
+
+ size_t getCovered() const { return Covered; }
+
+ size_t getNumRegions() const { return NumRegions; }
+
bool isFullyCovered() const { return Covered == NumRegions; }
double getPercentCovered() const {
@@ -49,13 +58,14 @@ struct RegionCoverageInfo {
};
/// \brief Provides information about line coverage for a function/file.
-struct LineCoverageInfo {
+class LineCoverageInfo {
/// \brief The number of lines that were executed at least once.
size_t Covered;
/// \brief The total number of lines in a function/file.
size_t NumLines;
+public:
LineCoverageInfo() : Covered(0), NumLines(0) {}
LineCoverageInfo(size_t Covered, size_t NumLines)
@@ -67,6 +77,14 @@ struct LineCoverageInfo {
return *this;
}
+ void merge(const LineCoverageInfo &RHS) {
+ Covered = std::max(Covered, RHS.Covered);
+ }
+
+ size_t getCovered() const { return Covered; }
+
+ size_t getNumLines() const { return NumLines; }
+
bool isFullyCovered() const { return Covered == NumLines; }
double getPercentCovered() const {
@@ -77,13 +95,14 @@ struct LineCoverageInfo {
};
/// \brief Provides information about function coverage for a file.
-struct FunctionCoverageInfo {
+class FunctionCoverageInfo {
/// \brief The number of functions that were executed.
size_t Executed;
/// \brief The total number of functions in this file.
size_t NumFunctions;
+public:
FunctionCoverageInfo() : Executed(0), NumFunctions(0) {}
FunctionCoverageInfo(size_t Executed, size_t NumFunctions)
@@ -95,6 +114,10 @@ struct FunctionCoverageInfo {
++NumFunctions;
}
+ size_t getExecuted() const { return Executed; }
+
+ size_t getNumFunctions() const { return NumFunctions; }
+
bool isFullyCovered() const { return Executed == NumFunctions; }
double getPercentCovered() const {
Modified: llvm/trunk/tools/llvm-cov/SourceCoverageViewHTML.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-cov/SourceCoverageViewHTML.cpp?rev=313416&r1=313415&r2=313416&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-cov/SourceCoverageViewHTML.cpp (original)
+++ llvm/trunk/tools/llvm-cov/SourceCoverageViewHTML.cpp Fri Sep 15 16:00:01 2017
@@ -346,18 +346,19 @@ void CoveragePrinterHTML::emitFileSummar
}
Columns.emplace_back(tag("td", tag("pre", Filename)));
- AddCoverageTripleToColumn(FCS.FunctionCoverage.Executed,
- FCS.FunctionCoverage.NumFunctions,
+ AddCoverageTripleToColumn(FCS.FunctionCoverage.getExecuted(),
+ FCS.FunctionCoverage.getNumFunctions(),
FCS.FunctionCoverage.getPercentCovered());
if (Opts.ShowInstantiationSummary)
- AddCoverageTripleToColumn(FCS.InstantiationCoverage.Executed,
- FCS.InstantiationCoverage.NumFunctions,
+ AddCoverageTripleToColumn(FCS.InstantiationCoverage.getExecuted(),
+ FCS.InstantiationCoverage.getNumFunctions(),
FCS.InstantiationCoverage.getPercentCovered());
- AddCoverageTripleToColumn(FCS.LineCoverage.Covered, FCS.LineCoverage.NumLines,
+ AddCoverageTripleToColumn(FCS.LineCoverage.getCovered(),
+ FCS.LineCoverage.getNumLines(),
FCS.LineCoverage.getPercentCovered());
if (Opts.ShowRegionSummary)
- AddCoverageTripleToColumn(FCS.RegionCoverage.Covered,
- FCS.RegionCoverage.NumRegions,
+ AddCoverageTripleToColumn(FCS.RegionCoverage.getCovered(),
+ FCS.RegionCoverage.getNumRegions(),
FCS.RegionCoverage.getPercentCovered());
OS << tag("tr", join(Columns.begin(), Columns.end(), ""), "light-row");
@@ -407,7 +408,7 @@ Error CoveragePrinterHTML::createIndexFi
CoverageReport::prepareFileReports(Coverage, Totals, SourceFiles, Opts);
bool EmptyFiles = false;
for (unsigned I = 0, E = FileReports.size(); I < E; ++I) {
- if (FileReports[I].FunctionCoverage.NumFunctions)
+ if (FileReports[I].FunctionCoverage.getNumFunctions())
emitFileSummary(OSRef, SourceFiles[I], FileReports[I]);
else
EmptyFiles = true;
@@ -424,7 +425,7 @@ Error CoveragePrinterHTML::createIndexFi
"by the preprocessor.)\n");
OSRef << BeginCenteredDiv << BeginTable;
for (unsigned I = 0, E = FileReports.size(); I < E; ++I)
- if (!FileReports[I].FunctionCoverage.NumFunctions) {
+ if (!FileReports[I].FunctionCoverage.getNumFunctions()) {
std::string Link = buildLinkToFile(SourceFiles[I], FileReports[I]);
OSRef << tag("tr", tag("td", tag("pre", Link)), "light-row") << '\n';
}
More information about the llvm-commits
mailing list