summaryrefslogtreecommitdiff
path: root/rtems-coverage
diff options
context:
space:
mode:
authorJennifer Averett <Jennifer.Averett@OARcorp.com>2010-05-14 17:26:35 +0000
committerJennifer Averett <Jennifer.Averett@OARcorp.com>2010-05-14 17:26:35 +0000
commit69984ed8bbf09c89a1fff6754e4d0c6b016b432b (patch)
treeb12ddb91ffa12ad4ea9c155ffd0c5e13b0a6e137 /rtems-coverage
parent2d88955f3606f79bb63d7485737e3aec143a0fc2 (diff)
2010-05-14 Jennifer Averett <Jennifer.Averett@OARcorp.com>
* CoverageRanges.cc, CoverageRanges.h, DesiredSymbols.cc, DesiredSymbols.h, ReportsBase.cc, ReportsBase.h, ReportsHtml.cc, ReportsHtml.h, ReportsText.cc, ReportsText.h, covoar.cc, covoar.css: Added an instruction count to the range information. Added method calculateStatistics to fill in missing statistics information. Modified branch stat info to include branchesExecuted and branchesNotExecuted. Added verbose output to report generation. Added heading to html reports.
Diffstat (limited to 'rtems-coverage')
-rw-r--r--rtems-coverage/ChangeLog11
-rw-r--r--rtems-coverage/CoverageRanges.cc12
-rw-r--r--rtems-coverage/CoverageRanges.h4
-rw-r--r--rtems-coverage/DesiredSymbols.cc86
-rw-r--r--rtems-coverage/DesiredSymbols.h23
-rw-r--r--rtems-coverage/ReportsBase.cc40
-rw-r--r--rtems-coverage/ReportsBase.h3
-rw-r--r--rtems-coverage/ReportsHtml.cc82
-rw-r--r--rtems-coverage/ReportsHtml.h3
-rw-r--r--rtems-coverage/ReportsText.cc14
-rw-r--r--rtems-coverage/ReportsText.h3
-rw-r--r--rtems-coverage/covoar.cc9
-rw-r--r--rtems-coverage/covoar.css3
13 files changed, 219 insertions, 74 deletions
diff --git a/rtems-coverage/ChangeLog b/rtems-coverage/ChangeLog
index d5a0301..0f3fa59 100644
--- a/rtems-coverage/ChangeLog
+++ b/rtems-coverage/ChangeLog
@@ -1,3 +1,14 @@
+2010-05-14 Jennifer Averett <Jennifer.Averett@OARcorp.com>
+
+ * CoverageRanges.cc, CoverageRanges.h, DesiredSymbols.cc,
+ DesiredSymbols.h, ReportsBase.cc, ReportsBase.h, ReportsHtml.cc,
+ ReportsHtml.h, ReportsText.cc, ReportsText.h, covoar.cc, covoar.css:
+ Added an instruction count to the range information. Added method
+ calculateStatistics to fill in missing statistics information.
+ Modified branch stat info to include branchesExecuted and
+ branchesNotExecuted. Added verbose output to report generation. Added
+ heading to html reports.
+
2010-05-13 Jennifer Averett <Jennifer.Averett@OARcorp.com
* DesiredSymbols.cc, DesiredSymbols.h, covoar.cc: Added a statistics
diff --git a/rtems-coverage/CoverageRanges.cc b/rtems-coverage/CoverageRanges.cc
index 646ace8..9e60938 100644
--- a/rtems-coverage/CoverageRanges.cc
+++ b/rtems-coverage/CoverageRanges.cc
@@ -30,16 +30,18 @@ namespace Coverage {
void CoverageRanges::add(
uint32_t lowAddressArg,
uint32_t highAddressArg,
- uncoveredReason_t why
+ uncoveredReason_t why,
+ uint32_t numInstructions
)
{
coverageRange_t c;
id_m++;
- c.id = id_m;
- c.lowAddress = lowAddressArg;
- c.highAddress = highAddressArg;
- c.reason = why;
+ c.id = id_m;
+ c.lowAddress = lowAddressArg;
+ c.highAddress = highAddressArg;
+ c.reason = why;
+ c.instructionCount = numInstructions;
set.push_back(c);
}
diff --git a/rtems-coverage/CoverageRanges.h b/rtems-coverage/CoverageRanges.h
index 7b7d785..144e43c 100644
--- a/rtems-coverage/CoverageRanges.h
+++ b/rtems-coverage/CoverageRanges.h
@@ -47,6 +47,7 @@ namespace Coverage {
std::string lowSourceLine;
uint32_t highAddress;
std::string highSourceLine;
+ uint32_t instructionCount;
uncoveredReason_t reason;
} coverageRange_t;
@@ -77,7 +78,8 @@ namespace Coverage {
void add(
uint32_t lowAddressArg,
uint32_t highAddressArg,
- uncoveredReason_t why
+ uncoveredReason_t why,
+ uint32_t numInstructions
);
diff --git a/rtems-coverage/DesiredSymbols.cc b/rtems-coverage/DesiredSymbols.cc
index 37ab56c..f6b5a7a 100644
--- a/rtems-coverage/DesiredSymbols.cc
+++ b/rtems-coverage/DesiredSymbols.cc
@@ -132,10 +132,71 @@ namespace Coverage {
}
}
+ void DesiredSymbols::caculateStatistics( void )
+ {
+ uint32_t a;
+ uint32_t endAddress;
+ DesiredSymbols::symbolSet_t::iterator sitr;
+ CoverageMapBase* theCoverageMap;
+
+ // Look at each symbol.
+ for (sitr = SymbolsToAnalyze->set.begin();
+ sitr != SymbolsToAnalyze->set.end();
+ sitr++) {
+
+ // If the unified coverage map does not exist, the symbol was
+ // never referenced by any executable. Just skip it.
+ theCoverageMap = sitr->second.unifiedCoverageMap;
+ if (!theCoverageMap)
+ continue;
+
+ // Increment the total sizeInBytes byt the bytes in the symbol
+ stats.sizeInBytes += sitr->second.stats.sizeInBytes;
+
+ // Now scan through the coverage map of this symbol.
+ endAddress = sitr->second.stats.sizeInBytes - 1;
+ a = 0;
+ while (a <= endAddress) {
+
+ // If we are at the start of instruction increment
+ // instruction type counters as needed.
+ if ( theCoverageMap->isStartOfInstruction( a ) ) {
+
+ stats.sizeInInstructions++;
+ sitr->second.stats.sizeInInstructions++;
+
+ if (!theCoverageMap->wasExecuted( a ) ) {
+ stats.uncoveredInstructions++;
+ sitr->second.stats.uncoveredInstructions++;
+
+ if ( theCoverageMap->isBranch( a )) {
+ stats.branchesNotExecuted++;
+ sitr->second.stats.branchesNotExecuted++;
+ }
+ } else if (theCoverageMap->isBranch( a )) {
+ stats.branchesExecuted++;
+ sitr->second.stats.branchesExecuted++;
+ }
+
+ }
+
+
+ if (!theCoverageMap->wasExecuted( a )) {
+ stats.uncoveredBytes++;
+ sitr->second.stats.uncoveredBytes++;
+ }
+ a++;
+
+ }
+ }
+ }
+
+
void DesiredSymbols::computeUncovered( void )
{
uint32_t a, la, ha;
uint32_t endAddress;
+ uint32_t count;
DesiredSymbols::symbolSet_t::iterator sitr;
CoverageRanges* theBranches;
CoverageMapBase* theCoverageMap;
@@ -162,22 +223,29 @@ namespace Coverage {
endAddress = sitr->second.stats.sizeInBytes - 1;
a = 0;
while (a <= endAddress) {
-
+
// If an address was NOT executed, find consecutive unexecuted
// addresses and add them to the uncovered ranges.
if (!theCoverageMap->wasExecuted( a )) {
+
la = a;
+ count = 1;
for (ha=a+1;
ha<=endAddress && !theCoverageMap->wasExecuted( ha );
ha++)
- ;
+ {
+ if ( theCoverageMap->isStartOfInstruction( ha ) )
+ count++;
+ }
ha--;
stats.uncoveredRanges++;
+ sitr->second.stats.uncoveredRanges++;
theRanges->add(
sitr->second.baseAddress + la,
sitr->second.baseAddress + ha,
- CoverageRanges::UNCOVERED_REASON_NOT_EXECUTED
+ CoverageRanges::UNCOVERED_REASON_NOT_EXECUTED,
+ count
);
a = ha + 1;
}
@@ -185,7 +253,6 @@ namespace Coverage {
// If an address is a branch instruction, add any uncovered branches
// to the uncoverd branches.
else if (theCoverageMap->isBranch( a )) {
- stats.branchesFound++;
la = a;
for (ha=a+1;
ha<=endAddress && !theCoverageMap->isStartOfInstruction( ha );
@@ -195,10 +262,12 @@ namespace Coverage {
if (theCoverageMap->wasAlwaysTaken( la )) {
stats.branchesAlwaysTaken++;
+ sitr->second.stats.branchesAlwaysTaken++;
theBranches->add(
sitr->second.baseAddress + la,
sitr->second.baseAddress + ha,
- CoverageRanges::UNCOVERED_REASON_BRANCH_ALWAYS_TAKEN
+ CoverageRanges::UNCOVERED_REASON_BRANCH_ALWAYS_TAKEN,
+ 1
);
if (Verbose)
fprintf(
@@ -212,10 +281,12 @@ namespace Coverage {
else if (theCoverageMap->wasNeverTaken( la )) {
stats.branchesNeverTaken++;
+ sitr->second.stats.branchesNeverTaken++;
theBranches->add(
sitr->second.baseAddress + la,
sitr->second.baseAddress + ha,
- CoverageRanges::UNCOVERED_REASON_BRANCH_NEVER_TAKEN
+ CoverageRanges::UNCOVERED_REASON_BRANCH_NEVER_TAKEN,
+ 1
);
if (Verbose)
fprintf(
@@ -234,6 +305,7 @@ namespace Coverage {
}
}
+
void DesiredSymbols::createCoverageMap(
const std::string& symbolName,
uint32_t size
@@ -480,7 +552,7 @@ namespace Coverage {
};
uint32_t DesiredSymbols::getNumberBranchesFound( void ) const {
- return stats.branchesFound;
+ return (stats.branchesNotExecuted + stats.branchesExecuted);
};
uint32_t DesiredSymbols::getNumberBranchesNeverTaken( void ) const {
diff --git a/rtems-coverage/DesiredSymbols.h b/rtems-coverage/DesiredSymbols.h
index be6a2e2..ddcca51 100644
--- a/rtems-coverage/DesiredSymbols.h
+++ b/rtems-coverage/DesiredSymbols.h
@@ -37,9 +37,10 @@ namespace Coverage {
int branchesAlwaysTaken;
/*!
- * This member variable contains the total number of branches found.
+ * This member variable contains the total number of branches where
+ * one or more paths were executed.
*/
- int branchesFound;
+ int branchesExecuted;
/*!
* This member variable contains the total number of branches never
@@ -48,6 +49,12 @@ namespace Coverage {
int branchesNeverTaken;
/*!
+ * This member variable contains the total number of branches not
+ * executed AT ALL.
+ */
+ int branchesNotExecuted;
+
+ /*!
* This member contains the size in Bytes.
*/
uint32_t sizeInBytes;
@@ -92,8 +99,9 @@ namespace Coverage {
*/
Statistics():
branchesAlwaysTaken(0),
- branchesFound(0),
+ branchesExecuted(0),
branchesNeverTaken(0),
+ branchesNotExecuted(0),
sizeInBytes(0),
sizeInInstructions(0),
uncoveredBytes(0),
@@ -102,8 +110,6 @@ namespace Coverage {
{
}
-
-
};
/*! @class SymbolInformation
@@ -194,6 +200,13 @@ namespace Coverage {
~DesiredSymbols();
/*!
+ * This method loops through the coverage map and
+ * calculates the statistics that have not already
+ * been filled in.
+ */
+ void caculateStatistics( void );
+
+ /*!
* This method analyzes each symbols coverage map to determine any
* uncovered ranges or branches.
*/
diff --git a/rtems-coverage/ReportsBase.cc b/rtems-coverage/ReportsBase.cc
index 0d3db99..14729e7 100644
--- a/rtems-coverage/ReportsBase.cc
+++ b/rtems-coverage/ReportsBase.cc
@@ -373,7 +373,6 @@ void ReportsBase::WriteSymbolSummaryReport(
{
Coverage::DesiredSymbols::symbolSet_t::iterator ditr;
FILE* report;
- Coverage::CoverageRanges::ranges_t::iterator ritr;
Coverage::CoverageRanges* theRanges;
unsigned int count;
@@ -383,23 +382,14 @@ void ReportsBase::WriteSymbolSummaryReport(
return;
}
- // Process uncovered ranges for each symbol.
+ // Process each symbol.
count = 0;
for (ditr = SymbolsToAnalyze->set.begin();
ditr != SymbolsToAnalyze->set.end();
ditr++) {
- theRanges = ditr->second.uncoveredRanges;
-
- if (theRanges && !theRanges->set.empty()) {
-
- for (ritr = theRanges->set.begin() ;
- ritr != theRanges->set.end() ;
- ritr++ ) {
- PutSymbolSummaryLine( report, count, ditr, ritr );
- count++;
- }
- }
+ PutSymbolSummaryLine( report, count, ditr );
+ count++;
}
CloseSymbolSummaryFile( report );
@@ -423,21 +413,45 @@ void GenerateReports()
reports = *ritr;
reportName = "index" + reports->ReportExtension();
+ if (Verbose)
+ fprintf(
+ stderr, "Generate %s\n", reportName.c_str()
+ );
reports->WriteIndex( reportName.c_str() );
reportName = "annotated" + reports->ReportExtension();
+ if (Verbose)
+ fprintf(
+ stderr, "Generate %s\n", reportName.c_str()
+ );
reports->WriteAnnotatedReport( reportName.c_str() );
reportName = "branch" + reports->ReportExtension();
+ if (Verbose)
+ fprintf(
+ stderr, "Generate %s\n", reportName.c_str()
+ );
reports->WriteBranchReport(reportName.c_str() );
reportName = "uncovered" + reports->ReportExtension();
+ if (Verbose)
+ fprintf(
+ stderr, "Generate %s\n", reportName.c_str()
+ );
reports->WriteCoverageReport(reportName.c_str() );
reportName = "sizes" + reports->ReportExtension();
+ if (Verbose)
+ fprintf(
+ stderr, "Generate %s\n", reportName.c_str()
+ );
reports->WriteSizeReport(reportName.c_str() );
reportName = "symbolSummary" + reports->ReportExtension();
+ if (Verbose)
+ fprintf(
+ stderr, "Generate %s\n", reportName.c_str()
+ );
reports->WriteSymbolSummaryReport(reportName.c_str() );
}
diff --git a/rtems-coverage/ReportsBase.h b/rtems-coverage/ReportsBase.h
index f06c785..dec45ba 100644
--- a/rtems-coverage/ReportsBase.h
+++ b/rtems-coverage/ReportsBase.h
@@ -314,8 +314,7 @@ class ReportsBase {
virtual bool PutSymbolSummaryLine(
FILE* report,
unsigned int number,
- Coverage::DesiredSymbols::symbolSet_t::iterator symbol,
- Coverage::CoverageRanges::ranges_t::iterator range
+ Coverage::DesiredSymbols::symbolSet_t::iterator symbol
)=0;
};
diff --git a/rtems-coverage/ReportsHtml.cc b/rtems-coverage/ReportsHtml.cc
index 8e9a45f..31dc0f7 100644
--- a/rtems-coverage/ReportsHtml.cc
+++ b/rtems-coverage/ReportsHtml.cc
@@ -100,7 +100,6 @@ namespace Coverage {
"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=us-ascii\" >\n"
"<link rel=\"stylesheet\" type=\"text/css\" href=\"covoar.css\" media=\"screen\" >\n"
"<script type=\"text/javascript\" src=\"table.js\"></script>\n"
- "<body>\n"
);
return aFile;
@@ -117,6 +116,8 @@ namespace Coverage {
fprintf(
aFile,
+ "<pre class=\"heading-title\">Annotated Report</pre>\n"
+ "<body>\n"
"<pre class=\"code\">\n"
);
@@ -137,7 +138,9 @@ namespace Coverage {
// Put header information into the file
fprintf(
aFile,
- "<table class=\"covoar table-autosort:0 table-autofilter"
+ "<pre class=\"heading-title\">Branch Report</pre>\n"
+ "<body>\n"
+ "<table class=\"covoar table-autosort:0 table-autofilter"
TABLE_HEADER_CLASS "\">\n"
"<thead>\n"
"<tr>\n"
@@ -168,6 +171,8 @@ namespace Coverage {
// Put header information into the file
fprintf(
aFile,
+ "<pre class=\"heading-title\">Coverage Report</pre>\n"
+ "<body>\n"
"<table class=\"covoar table-autosort:0 table-autofilter"
TABLE_HEADER_CLASS "\">\n"
"<thead>\n"
@@ -197,6 +202,8 @@ namespace Coverage {
// Put header information into the file
fprintf(
aFile,
+ "<pre class=\"heading-title\">Size Report</pre>\n"
+ "<body>\n"
"<table class=\"covoar table-autosort:0 table-autofilter"
TABLE_HEADER_CLASS "\">\n"
"<thead>\n"
@@ -222,6 +229,8 @@ namespace Coverage {
// Put header information into the file
fprintf(
aFile,
+ "<pre class=\"heading-title\">Symbol Summary Report</pre>\n"
+ "<body>\n"
"<table class=\"covoar table-autosort:0 table-autofilter"
TABLE_HEADER_CLASS "\">\n"
"<thead>\n"
@@ -359,7 +368,8 @@ namespace Coverage {
// Size in instructions
fprintf(
report,
- "<td class=\"covoar-td\" align=\"center\">XXX</td>\n"
+ "<td class=\"covoar-td\" align=\"center\">%d</td>\n",
+ rangePtr->instructionCount
);
// Reason Branch was uncovered
@@ -527,7 +537,8 @@ namespace Coverage {
// Size in instructions
fprintf(
report,
- "<td class=\"covoar-td\" align=\"center\">XXX</td>\n"
+ "<td class=\"covoar-td\" align=\"center\">%d</td>\n",
+ rangePtr->instructionCount
);
// See if an explanation is available
@@ -603,10 +614,10 @@ namespace Coverage {
bool ReportsHtml::PutSymbolSummaryLine(
FILE* report,
unsigned int count,
- Coverage::DesiredSymbols::symbolSet_t::iterator symbol,
- Coverage::CoverageRanges::ranges_t::iterator range
+ Coverage::DesiredSymbols::symbolSet_t::iterator symbol
)
{
+
// Mark the background color different for odd and even lines.
if ( ( count%2 ) == 0 )
fprintf( report, "<tr class=\"covoar-tr covoar-tr-even\">\n");
@@ -623,65 +634,86 @@ namespace Coverage {
// Total Size in Bytes
fprintf(
report,
- "<td class=\"covoar-td\" align=\"center\">XXX</td>\n"
+ "<td class=\"covoar-td\" align=\"center\">%d</td>\n",
+ symbol->second.stats.sizeInBytes
);
// Total Size in Instructions
fprintf(
report,
- "<td class=\"covoar-td\" align=\"center\">XXX</td>\n"
+ "<td class=\"covoar-td\" align=\"center\">%d</td>\n",
+ symbol->second.stats.sizeInInstructions
);
// Total Uncovered Ranges
fprintf(
report,
"<td class=\"covoar-td\" align=\"center\">%d</td>\n",
- symbol->second.uncoveredRanges->set.size()
+ symbol->second.stats.uncoveredRanges
);
// Uncovered Size in Bytes
fprintf(
report,
- "<td class=\"covoar-td\" align=\"center\">XXX</td>\n"
+ "<td class=\"covoar-td\" align=\"center\">%d</td>\n",
+ symbol->second.stats.uncoveredBytes
);
// Uncovered Size in Instructions
fprintf(
report,
- "<td class=\"covoar-td\" align=\"center\">XXX</td>\n"
+ "<td class=\"covoar-td\" align=\"center\">%d</td>\n",
+ symbol->second.stats.uncoveredInstructions
);
// Total number of branches
fprintf(
report,
"<td class=\"covoar-td\" align=\"center\">%d</td>\n",
- symbol->second.uncoveredBranches->set.size()
+ symbol->second.stats.branchesNotExecuted + symbol->second.stats.branchesExecuted
);
// Total Always Taken
fprintf(
report,
- "<td class=\"covoar-td\" align=\"center\">XXX</td>\n"
+ "<td class=\"covoar-td\" align=\"center\">%d</td>\n",
+ symbol->second.stats.branchesAlwaysTaken
);
// Total Never Taken
fprintf(
report,
- "<td class=\"covoar-td\" align=\"center\">XXX</td>\n"
- );
-
+ "<td class=\"covoar-td\" align=\"center\">%d</td>\n",
+ symbol->second.stats.branchesNeverTaken
+ );
- // % Uncovered Instructions
- fprintf(
- report,
- "<td class=\"covoar-td\" align=\"center\">XXX</td>\n"
- );
+ // % Uncovered Instructions
+ if ( symbol->second.stats.sizeInInstructions == 0 )
+ fprintf(
+ report,
+ "<td class=\"covoar-td\" align=\"center\">N/A</td>\n"
+ );
+ else
+ fprintf(
+ report,
+ "<td class=\"covoar-td\" align=\"center\">%.2f</td>\n",
+ (symbol->second.stats.uncoveredInstructions*100.0)/
+ symbol->second.stats.sizeInInstructions
+ );
// % Uncovered Bytes
- fprintf(
- report,
- "<td class=\"covoar-td\" align=\"center\">XXX</td>\n"
- );
+ if ( symbol->second.stats.sizeInBytes == 0 )
+ fprintf(
+ report,
+ "<td class=\"covoar-td\" align=\"center\">N/A</td>\n"
+ );
+ else
+ fprintf(
+ report,
+ "<td class=\"covoar-td\" align=\"center\">%.2f</td>\n",
+ (symbol->second.stats.uncoveredBytes*100.0)/
+ symbol->second.stats.sizeInBytes
+ );
fprintf( report, "</tr>\n");
return true;
diff --git a/rtems-coverage/ReportsHtml.h b/rtems-coverage/ReportsHtml.h
index 89bc7c6..1be15aa 100644
--- a/rtems-coverage/ReportsHtml.h
+++ b/rtems-coverage/ReportsHtml.h
@@ -151,8 +151,7 @@ class ReportsHtml: public ReportsBase {
virtual bool PutSymbolSummaryLine(
FILE* report,
unsigned int number,
- Coverage::DesiredSymbols::symbolSet_t::iterator symbol,
- Coverage::CoverageRanges::ranges_t::iterator range
+ Coverage::DesiredSymbols::symbolSet_t::iterator symbol
);
virtual FILE* OpenFile(
diff --git a/rtems-coverage/ReportsText.cc b/rtems-coverage/ReportsText.cc
index a0cc989..4ef2e28 100644
--- a/rtems-coverage/ReportsText.cc
+++ b/rtems-coverage/ReportsText.cc
@@ -206,19 +206,11 @@ bool ReportsText::PutSizeLine(
}
bool ReportsText::PutSymbolSummaryLine(
- FILE* report,
- unsigned int number,
- Coverage::DesiredSymbols::symbolSet_t::iterator symbol,
- Coverage::CoverageRanges::ranges_t::iterator range
+ FILE* report,
+ unsigned int number,
+ Coverage::DesiredSymbols::symbolSet_t::iterator symbol
)
{
- fprintf(
- report,
- "%d\t%s\t%s\n",
- range->highAddress - range->lowAddress + 1,
- symbol->first.c_str(),
- range->lowSourceLine.c_str()
- );
return true;
}
diff --git a/rtems-coverage/ReportsText.h b/rtems-coverage/ReportsText.h
index 2b3e9f0..8815609 100644
--- a/rtems-coverage/ReportsText.h
+++ b/rtems-coverage/ReportsText.h
@@ -97,8 +97,7 @@ class ReportsText: public ReportsBase {
virtual bool PutSymbolSummaryLine(
FILE* report,
unsigned int number,
- Coverage::DesiredSymbols::symbolSet_t::iterator symbol,
- Coverage::CoverageRanges::ranges_t::iterator range
+ Coverage::DesiredSymbols::symbolSet_t::iterator symbol
);
};
diff --git a/rtems-coverage/covoar.cc b/rtems-coverage/covoar.cc
index 3c58cea..f89c7f4 100644
--- a/rtems-coverage/covoar.cc
+++ b/rtems-coverage/covoar.cc
@@ -350,6 +350,11 @@ int main(
fprintf( stderr, "Computing uncovered ranges and branches\n" );
SymbolsToAnalyze->computeUncovered();
+ // Calculate remainder of statistics.
+ if (Verbose)
+ fprintf( stderr, "Calculate statistics\n" );
+ SymbolsToAnalyze->caculateStatistics();
+
// Look up the source lines for any uncovered ranges and branches.
if (Verbose)
fprintf(
@@ -360,6 +365,10 @@ int main(
//
// Report the coverage data.
//
+ if (Verbose)
+ fprintf(
+ stderr, "Generate Reports\n"
+ );
Coverage::GenerateReports();
// Write explanations that were not found.
diff --git a/rtems-coverage/covoar.css b/rtems-coverage/covoar.css
index 55fdf21..e184efb 100644
--- a/rtems-coverage/covoar.css
+++ b/rtems-coverage/covoar.css
@@ -224,8 +224,9 @@ select.table-autofilter {
.heading-title {
text-align: center;
color: rgb(0,0,0);
- font-size: 0.9em;
+ font-size: 4.0em;
font-weight: bold;
+ line-height: 0.9;
padding-top: 5px;
padding-left: 0px;
text-align: center;