[PATCH v2 10/13] Remove BranchInfoAvailable global variable
Ryan Long
ryan.long at oarcorp.com
Mon Aug 2 20:44:26 UTC 2021
- Removed BranchInfoAvailable from app_common
- Created member variable in CoverageReaderBase and ReportsBase and a function
to get the value of the member variable
---
tester/covoar/CoverageReaderBase.cc | 5 +++++
tester/covoar/CoverageReaderBase.h | 10 ++++++++++
tester/covoar/CoverageReaderQEMU.cc | 2 +-
tester/covoar/CoverageReaderTSIM.cc | 4 ++--
tester/covoar/ReportsBase.cc | 27 +++++++++++++++++----------
tester/covoar/ReportsBase.h | 15 ++++++++++++---
tester/covoar/ReportsHtml.cc | 8 +++++---
tester/covoar/ReportsHtml.h | 3 ++-
tester/covoar/ReportsText.cc | 8 +++++---
tester/covoar/ReportsText.h | 3 ++-
tester/covoar/app_common.cc | 1 -
tester/covoar/app_common.h | 1 -
tester/covoar/covoar.cc | 6 +++++-
13 files changed, 66 insertions(+), 27 deletions(-)
diff --git a/tester/covoar/CoverageReaderBase.cc b/tester/covoar/CoverageReaderBase.cc
index 3ebcc8d..e226964 100644
--- a/tester/covoar/CoverageReaderBase.cc
+++ b/tester/covoar/CoverageReaderBase.cc
@@ -16,4 +16,9 @@ namespace Coverage {
CoverageReaderBase::~CoverageReaderBase()
{
}
+
+ bool CoverageReaderBase::getBranchInfoAvailable() const
+ {
+ return branchInfoAvailable_m;
+ }
}
diff --git a/tester/covoar/CoverageReaderBase.h b/tester/covoar/CoverageReaderBase.h
index 81090c0..ba909e6 100644
--- a/tester/covoar/CoverageReaderBase.h
+++ b/tester/covoar/CoverageReaderBase.h
@@ -42,6 +42,16 @@ namespace Coverage {
const char* const file,
ExecutableInfo* const executableInformation
) = 0;
+
+ /*!
+ * This method retrieves the branchInfoAvailable_m variable
+ */
+ bool getBranchInfoAvailable() const;
+
+ /*!
+ * This member variable tells whether the branch info is available.
+ */
+ bool branchInfoAvailable_m = false;
};
}
diff --git a/tester/covoar/CoverageReaderQEMU.cc b/tester/covoar/CoverageReaderQEMU.cc
index d3c6abe..802d862 100644
--- a/tester/covoar/CoverageReaderQEMU.cc
+++ b/tester/covoar/CoverageReaderQEMU.cc
@@ -31,7 +31,7 @@ namespace Coverage {
CoverageReaderQEMU::CoverageReaderQEMU()
{
- BranchInfoAvailable = true;
+ branchInfoAvailable_m = true;
}
CoverageReaderQEMU::~CoverageReaderQEMU()
diff --git a/tester/covoar/CoverageReaderTSIM.cc b/tester/covoar/CoverageReaderTSIM.cc
index 03bf7a8..32e3aa7 100644
--- a/tester/covoar/CoverageReaderTSIM.cc
+++ b/tester/covoar/CoverageReaderTSIM.cc
@@ -90,11 +90,11 @@ namespace Coverage {
aCoverageMap->setWasExecuted( a + 3 );
if ( cover & 0x08 ) {
aCoverageMap->setWasTaken( a );
- BranchInfoAvailable = true;
+ branchInfoAvailable_m = true;
}
if ( cover & 0x10 ) {
aCoverageMap->setWasNotTaken( a );
- BranchInfoAvailable = true;
+ branchInfoAvailable_m = true;
}
}
}
diff --git a/tester/covoar/ReportsBase.cc b/tester/covoar/ReportsBase.cc
index 11c22c9..f4df64c 100644
--- a/tester/covoar/ReportsBase.cc
+++ b/tester/covoar/ReportsBase.cc
@@ -29,14 +29,16 @@ ReportsBase::ReportsBase(
Coverage::Explanations& allExplanations,
const std::string& projectName,
const std::string& outputDirectory,
- const DesiredSymbols& symbolsToAnalyze
+ const DesiredSymbols& symbolsToAnalyze,
+ bool branchInfoAvailable
): reportExtension_m( "" ),
symbolSetName_m( symbolSetName ),
timestamp_m( timestamp ),
allExplanations_m( allExplanations ),
projectName_m( projectName ),
outputDirectory_m( outputDirectory ),
- symbolsToAnalyze_m( symbolsToAnalyze )
+ symbolsToAnalyze_m( symbolsToAnalyze ),
+ branchInfoAvailable_m( branchInfoAvailable )
{
}
@@ -311,7 +313,7 @@ void ReportsBase::WriteBranchReport( const std::string& fileName )
if (
( symbolsToAnalyze_m.getNumberBranchesFound( symbolSetName_m ) == 0 ) ||
- ( BranchInfoAvailable == false )
+ ( branchInfoAvailable_m == false )
) {
hasBranches = false;
}
@@ -325,7 +327,7 @@ void ReportsBase::WriteBranchReport( const std::string& fileName )
// If no branches were found then branch coverage is not supported
if (
( symbolsToAnalyze_m.getNumberBranchesFound( symbolSetName_m ) != 0 ) &&
- ( BranchInfoAvailable == true )
+ ( branchInfoAvailable_m == true )
) {
// Process uncovered branches for each symbol in the set.
const std::vector<std::string>& symbols =
@@ -476,7 +478,8 @@ void ReportsBase::WriteSummaryReport(
const std::string& fileName,
const std::string& symbolSetName,
const std::string& outputDirectory,
- const Coverage::DesiredSymbols& symbolsToAnalyze
+ const Coverage::DesiredSymbols& symbolsToAnalyze,
+ bool branchInfoAvailable
)
{
// Calculate coverage statistics and output results.
@@ -546,7 +549,7 @@ void ReportsBase::WriteSummaryReport(
if (
( symbolsToAnalyze.getNumberBranchesFound( symbolSetName ) == 0 ) ||
- ( BranchInfoAvailable == false )
+ ( branchInfoAvailable == false )
) {
report << "No branch information available" << std::endl;
} else {
@@ -580,7 +583,8 @@ void GenerateReports(
bool verbose,
const std::string& projectName,
const std::string& outputDirectory,
- const Coverage::DesiredSymbols& symbolsToAnalyze
+ const Coverage::DesiredSymbols& symbolsToAnalyze,
+ bool branchInfoAvailable
)
{
typedef std::list<ReportsBase *> reportList_t;
@@ -599,7 +603,8 @@ void GenerateReports(
allExplanations,
projectName,
outputDirectory,
- symbolsToAnalyze
+ symbolsToAnalyze,
+ branchInfoAvailable
);
reportList.push_back( reports );
reports = new ReportsHtml(
@@ -608,7 +613,8 @@ void GenerateReports(
allExplanations,
projectName,
outputDirectory,
- symbolsToAnalyze
+ symbolsToAnalyze,
+ branchInfoAvailable
);
reportList.push_back( reports );
@@ -661,7 +667,8 @@ void GenerateReports(
"summary.txt",
symbolSetName,
outputDirectory,
- symbolsToAnalyze
+ symbolsToAnalyze,
+ branchInfoAvailable
);
}
diff --git a/tester/covoar/ReportsBase.h b/tester/covoar/ReportsBase.h
index a6cf3bc..8883ccb 100644
--- a/tester/covoar/ReportsBase.h
+++ b/tester/covoar/ReportsBase.h
@@ -33,7 +33,8 @@ class ReportsBase {
Coverage::Explanations& allExplanations,
const std::string& projectName,
const std::string& outputDirectory,
- const DesiredSymbols& symbolsToAnalyze
+ const DesiredSymbols& symbolsToAnalyze,
+ bool branchInfoAvailable
);
virtual ~ReportsBase();
@@ -95,7 +96,8 @@ class ReportsBase {
const std::string& fileName,
const std::string& symbolSetName,
const std::string& outputDirectory,
- const Coverage::DesiredSymbols& symbolsToAnalyze
+ const Coverage::DesiredSymbols& symbolsToAnalyze,
+ bool branchInfoAvailable
);
/*!
@@ -154,6 +156,11 @@ class ReportsBase {
const Coverage::DesiredSymbols& symbolsToAnalyze_m;
/*!
+ * This member variable tells whether the branch info is available
+ */
+ bool branchInfoAvailable_m = false;
+
+ /*!
* This method Opens a report file and verifies that it opened
* correctly. Upon failure NULL is returned.
*
@@ -430,6 +437,7 @@ class ReportsBase {
* @param[in] projectName specifies the name of the project
* @param[in] outputDirectory specifies the directory for the output
* @param[in] symbolsToAnalyze the symbols to be analyzed
+ * @param[in] branchInfoAvailable tells if branch info is available
*/
void GenerateReports(
const std::string& symbolSetName,
@@ -437,7 +445,8 @@ void GenerateReports(
bool verbose,
const std::string& projectName,
const std::string& outputDirectory,
- const Coverage::DesiredSymbols& symbolsToAnalyze
+ const Coverage::DesiredSymbols& symbolsToAnalyze,
+ bool branchInfoAvailable
);
}
diff --git a/tester/covoar/ReportsHtml.cc b/tester/covoar/ReportsHtml.cc
index d6c5217..1b75eb0 100644
--- a/tester/covoar/ReportsHtml.cc
+++ b/tester/covoar/ReportsHtml.cc
@@ -43,14 +43,16 @@ namespace Coverage {
Coverage::Explanations& allExplanations,
const std::string& projectName,
const std::string& outputDirectory,
- const Coverage::DesiredSymbols& symbolsToAnalyze
+ const Coverage::DesiredSymbols& symbolsToAnalyze,
+ bool branchInfoAvailable
): ReportsBase(
timestamp,
symbolSetName,
allExplanations,
projectName,
outputDirectory,
- symbolsToAnalyze
+ symbolsToAnalyze,
+ branchInfoAvailable
),
lastState_m( A_SOURCE )
{
@@ -442,7 +444,7 @@ namespace Coverage {
bool ReportsHtml::PutNoBranchInfo( std::ofstream& report )
{
if (
- BranchInfoAvailable &&
+ branchInfoAvailable_m &&
symbolsToAnalyze_m.getNumberBranchesFound( symbolSetName_m ) != 0
) {
report << "All branch paths taken." << std::endl;
diff --git a/tester/covoar/ReportsHtml.h b/tester/covoar/ReportsHtml.h
index e9df060..406eefc 100644
--- a/tester/covoar/ReportsHtml.h
+++ b/tester/covoar/ReportsHtml.h
@@ -31,7 +31,8 @@ class ReportsHtml: public ReportsBase {
Coverage::Explanations& allExplanations,
const std::string& projectName,
const std::string& outputDirectory,
- const Coverage::DesiredSymbols& symbolsToAnalyze
+ const Coverage::DesiredSymbols& symbolsToAnalyze,
+ bool branchInfoAvailable
);
~ReportsHtml();
diff --git a/tester/covoar/ReportsText.cc b/tester/covoar/ReportsText.cc
index ab2b5f7..6541be2 100644
--- a/tester/covoar/ReportsText.cc
+++ b/tester/covoar/ReportsText.cc
@@ -22,14 +22,16 @@ ReportsText::ReportsText(
Coverage::Explanations& allExplanations,
const std::string& projectName,
const std::string& outputDirectory,
- const DesiredSymbols& symbolsToAnalyze
+ const DesiredSymbols& symbolsToAnalyze,
+ bool branchInfoAvailable
): ReportsBase(
timestamp,
symbolSetName,
allExplanations,
projectName,
outputDirectory,
- symbolsToAnalyze
+ symbolsToAnalyze,
+ branchInfoAvailable
)
{
reportExtension_m = ".txt";
@@ -62,7 +64,7 @@ void ReportsText::PutAnnotatedLine(
bool ReportsText::PutNoBranchInfo( std::ofstream& report )
{
if (
- BranchInfoAvailable &&
+ branchInfoAvailable_m &&
symbolsToAnalyze_m.getNumberBranchesFound( symbolSetName_m ) != 0
) {
report << "All branch paths taken." << std::endl;
diff --git a/tester/covoar/ReportsText.h b/tester/covoar/ReportsText.h
index 0d993c0..1aa30b0 100644
--- a/tester/covoar/ReportsText.h
+++ b/tester/covoar/ReportsText.h
@@ -27,7 +27,8 @@ class ReportsText: public ReportsBase {
Coverage::Explanations& allExplanations,
const std::string& projectName,
const std::string& outputDirectory,
- const DesiredSymbols& symbolsToAnalyze
+ const DesiredSymbols& symbolsToAnalyze,
+ bool branchInfoAvailable
);
virtual ~ReportsText();
diff --git a/tester/covoar/app_common.cc b/tester/covoar/app_common.cc
index 847fbf8..8f05464 100644
--- a/tester/covoar/app_common.cc
+++ b/tester/covoar/app_common.cc
@@ -56,7 +56,6 @@
/*
* Global variables for the program
*/
-bool BranchInfoAvailable = false;
Target::TargetBase* TargetInfo = NULL;
diff --git a/tester/covoar/app_common.h b/tester/covoar/app_common.h
index 0cef74a..6649905 100644
--- a/tester/covoar/app_common.h
+++ b/tester/covoar/app_common.h
@@ -12,7 +12,6 @@
#include "Explanations.h"
#include "TargetBase.h"
-extern bool BranchInfoAvailable;
extern Target::TargetBase* TargetInfo;
diff --git a/tester/covoar/covoar.cc b/tester/covoar/covoar.cc
index 16cc4e1..ef22362 100644
--- a/tester/covoar/covoar.cc
+++ b/tester/covoar/covoar.cc
@@ -183,6 +183,7 @@ int covoar(
std::string projectName;
std::string outputDirectory = ".";
Coverage::DesiredSymbols symbolsToAnalyze;
+ bool branchInfoAvailable = false;
Coverage::ObjdumpProcessor objdumpProcessor( symbolsToAnalyze );
//
@@ -486,13 +487,16 @@ int covoar(
std::cerr << "Generate Reports" << std::endl;
for (const auto& setName : symbolsToAnalyze.getSetNames()) {
+ branchInfoAvailable = coverageReader->getBranchInfoAvailable();
+
Coverage::GenerateReports(
setName,
allExplanations,
verbose,
projectName,
outputDirectory,
- symbolsToAnalyze
+ symbolsToAnalyze,
+ branchInfoAvailable
);
}
--
1.8.3.1
More information about the devel
mailing list