[PATCH v1 06/13] Remove projectName global variable

Ryan Long ryan.long at oarcorp.com
Sun Aug 1 23:23:40 UTC 2021


- Replaced projectName in app_common with a local variable in covoar()
- Changed datatype to string
  - Changed conditionals to reflect this
- Created projectName_m member variable for ReportsBase
- Added parameter to Reports* constructors to initialize projectName_m
---
 tester/covoar/ReportsBase.cc | 23 ++++++++++++++++++-----
 tester/covoar/ReportsBase.h  | 12 ++++++++++--
 tester/covoar/ReportsHtml.cc | 33 +++++++++++++++++----------------
 tester/covoar/ReportsHtml.h  |  3 ++-
 tester/covoar/ReportsText.cc |  5 +++--
 tester/covoar/ReportsText.h  |  3 ++-
 tester/covoar/app_common.cc  |  1 -
 tester/covoar/app_common.h   |  1 -
 tester/covoar/covoar.cc      | 10 ++++++++--
 9 files changed, 60 insertions(+), 31 deletions(-)

diff --git a/tester/covoar/ReportsBase.cc b/tester/covoar/ReportsBase.cc
index 8947f58..b2da71a 100644
--- a/tester/covoar/ReportsBase.cc
+++ b/tester/covoar/ReportsBase.cc
@@ -26,11 +26,13 @@ namespace Coverage {
 ReportsBase::ReportsBase(
   time_t                  timestamp,
   const std::string&      symbolSetName,
-  Coverage::Explanations& allExplanations
+  Coverage::Explanations& allExplanations,
+  const std::string&      projectName
 ): reportExtension_m( "" ),
    symbolSetName_m( symbolSetName ),
    timestamp_m( timestamp ),
-   allExplanations_m( allExplanations )
+   allExplanations_m( allExplanations ),
+   projectName_m( projectName )
 {
 }
 
@@ -565,7 +567,8 @@ void  ReportsBase::WriteSummaryReport(
 void GenerateReports(
   const std::string&      symbolSetName,
   Coverage::Explanations& allExplanations,
-  bool                    verbose
+  bool                    verbose,
+  const std::string&      projectName
 )
 {
   typedef std::list<ReportsBase *> reportList_t;
@@ -578,9 +581,19 @@ void GenerateReports(
 
 
   timestamp = time( NULL ); /* get current cal time */
-  reports = new ReportsText( timestamp, symbolSetName, allExplanations );
+  reports = new ReportsText(
+    timestamp,
+    symbolSetName,
+    allExplanations,
+    projectName
+  );
   reportList.push_back( reports );
-  reports = new ReportsHtml( timestamp, symbolSetName, allExplanations );
+  reports = new ReportsHtml(
+    timestamp,
+    symbolSetName,
+    allExplanations,
+    projectName
+  );
   reportList.push_back( reports );
 
   for ( ritr = reportList.begin(); ritr != reportList.end(); ritr++ ) {
diff --git a/tester/covoar/ReportsBase.h b/tester/covoar/ReportsBase.h
index 41ac7ef..38b7c29 100644
--- a/tester/covoar/ReportsBase.h
+++ b/tester/covoar/ReportsBase.h
@@ -30,7 +30,8 @@ class ReportsBase {
     ReportsBase(
       time_t                  timestamp,
       const std::string&      symbolSetName,
-      Coverage::Explanations& allExplanations
+      Coverage::Explanations& allExplanations,
+      const std::string&      projectName
     );
     virtual ~ReportsBase();
 
@@ -130,6 +131,11 @@ class ReportsBase {
     Coverage::Explanations& allExplanations_m;
 
     /*!
+     *  This variable stores the name of the project.
+     */
+    std::string projectName_m;
+
+    /*!
      *  This method Opens a report file and verifies that it opened
      *  correctly.  Upon failure NULL is returned.
      *
@@ -401,11 +407,13 @@ class ReportsBase {
  *  @param[in] symbolSetName is the name of the symbol set to report on.
  *  @param[in] allExplanations is the explanations to report on.
  *  @param[in] verbose specifies whether to be verbose with output
+ *  @param[in] projectName specifies the name of the project
  */
 void GenerateReports(
   const std::string&      symbolSetName,
   Coverage::Explanations& allExplanations,
-  bool                    verbose
+  bool                    verbose,
+  const std::string&      projectName
 );
 
 }
diff --git a/tester/covoar/ReportsHtml.cc b/tester/covoar/ReportsHtml.cc
index 4c024d5..4f384d5 100644
--- a/tester/covoar/ReportsHtml.cc
+++ b/tester/covoar/ReportsHtml.cc
@@ -40,8 +40,9 @@ namespace Coverage {
   ReportsHtml::ReportsHtml(
     time_t                  timestamp,
     const std::string&      symbolSetName,
-    Coverage::Explanations& allExplanations
-  ): ReportsBase( timestamp, symbolSetName, allExplanations )
+    Coverage::Explanations& allExplanations,
+    const std::string&      projectName
+  ): ReportsBase( timestamp, symbolSetName, allExplanations, projectName )
   {
     reportExtension_m = ".html";
     lastState_m = A_SOURCE;
@@ -71,8 +72,8 @@ namespace Coverage {
     aFile << "<title>Index</title>" << std::endl
           << "<div class=\"heading-title\">";
 
-    if ( projectName ) {
-      aFile << projectName << "<br>";
+    if ( !projectName_m.empty() ) {
+      aFile << projectName_m << "<br>";
     }
 
     aFile << "Coverage Analysis Reports</div>" << std::endl
@@ -129,8 +130,8 @@ namespace Coverage {
     aFile << "<title>Annotated Report</title>" << std::endl
           << "<div class=\"heading-title\">";
 
-    if ( projectName ) {
-      aFile << projectName << "<br>";
+    if ( !projectName_m.empty() ) {
+      aFile << projectName_m << "<br>";
     }
 
     aFile << "Annotated Report</div>" << std::endl
@@ -153,8 +154,8 @@ namespace Coverage {
     aFile << "<title>Branch Report</title>" << std::endl
           << "<div class=\"heading-title\">";
 
-    if ( projectName ) {
-      aFile << projectName << "<br>";
+    if ( !projectName_m.empty() ) {
+      aFile << projectName_m << "<br>";
     }
 
     aFile << "Branch Report</div>" << std::endl
@@ -199,8 +200,8 @@ namespace Coverage {
     aFile << "<title>Coverage Report</title>" << std::endl
           << "<div class=\"heading-title\">";
 
-    if ( projectName ) {
-      aFile << projectName << "<br>";
+    if ( !projectName_m.empty() ) {
+      aFile << projectName_m << "<br>";
     }
 
     aFile << "Coverage Report</div>" << std::endl
@@ -242,8 +243,8 @@ namespace Coverage {
     aFile << "<title> Report</title>" << std::endl
           << "<div class=\"heading-title\">";
 
-    if ( projectName ) {
-      aFile << projectName << "<br>";
+    if ( !projectName_m.empty() ) {
+      aFile << projectName_m << "<br>";
     }
 
     aFile << "No Range Report</div>" << std::endl
@@ -275,8 +276,8 @@ namespace Coverage {
     aFile << "<title>Uncovered Range Size Report</title>" << std::endl
           << "<div class=\"heading-title\">";
 
-    if ( projectName ) {
-      aFile << projectName << "<br>";
+    if ( !projectName_m.empty() ) {
+      aFile << projectName_m << "<br>";
     }
 
     aFile << "Uncovered Range Size Report</div>" << std::endl
@@ -312,8 +313,8 @@ namespace Coverage {
     aFile << "<title>Symbol Summary Report</title>" << std::endl
           << "<div class=\"heading-title\">";
 
-    if ( projectName ) {
-      aFile << projectName << "<br>";
+    if ( !projectName_m.empty() ) {
+      aFile << projectName_m << "<br>";
     }
 
     aFile << "Symbol Summary Report</div>" << std::endl
diff --git a/tester/covoar/ReportsHtml.h b/tester/covoar/ReportsHtml.h
index 711c48b..46698f0 100644
--- a/tester/covoar/ReportsHtml.h
+++ b/tester/covoar/ReportsHtml.h
@@ -28,7 +28,8 @@ class ReportsHtml: public ReportsBase {
     ReportsHtml(
       time_t                  timestamp,
       const std::string&      symbolSetName,
-      Coverage::Explanations& allExplanations
+      Coverage::Explanations& allExplanations,
+      const std::string&      projectName
     );
    ~ReportsHtml();
 
diff --git a/tester/covoar/ReportsText.cc b/tester/covoar/ReportsText.cc
index 0b0d9df..7318de3 100644
--- a/tester/covoar/ReportsText.cc
+++ b/tester/covoar/ReportsText.cc
@@ -19,8 +19,9 @@ namespace Coverage {
 ReportsText::ReportsText(
   time_t                  timestamp,
   const std::string&      symbolSetName,
-  Coverage::Explanations& allExplanations
-): ReportsBase( timestamp, symbolSetName, allExplanations )
+  Coverage::Explanations& allExplanations,
+  const std::string&      projectName
+): ReportsBase( timestamp, symbolSetName, allExplanations, projectName )
 {
   reportExtension_m = ".txt";
 }
diff --git a/tester/covoar/ReportsText.h b/tester/covoar/ReportsText.h
index 48528b0..c44591d 100644
--- a/tester/covoar/ReportsText.h
+++ b/tester/covoar/ReportsText.h
@@ -24,7 +24,8 @@ class ReportsText: public ReportsBase {
     ReportsText(
       time_t                  timestamp,
       const std::string&      symbolSetName,
-      Coverage::Explanations& allExplanations
+      Coverage::Explanations& allExplanations,
+      const std::string&      projectName
     );
     virtual ~ReportsText();
 
diff --git a/tester/covoar/app_common.cc b/tester/covoar/app_common.cc
index 587af1a..cedffdd 100644
--- a/tester/covoar/app_common.cc
+++ b/tester/covoar/app_common.cc
@@ -60,7 +60,6 @@ Coverage::DesiredSymbols*   SymbolsToAnalyze    = NULL;
 const char*                 outputDirectory     = ".";
 bool                        BranchInfoAvailable = false;
 Target::TargetBase*         TargetInfo          = NULL;
-const char*                 projectName         = NULL;
 char                        inputBuffer[MAX_LINE_LENGTH];
 char                        inputBuffer2[MAX_LINE_LENGTH];
 
diff --git a/tester/covoar/app_common.h b/tester/covoar/app_common.h
index 6cb8577..533a926 100644
--- a/tester/covoar/app_common.h
+++ b/tester/covoar/app_common.h
@@ -16,7 +16,6 @@ extern Coverage::DesiredSymbols*    SymbolsToAnalyze;
 extern const char*                  outputDirectory;
 extern bool                         BranchInfoAvailable;
 extern Target::TargetBase*          TargetInfo;
-extern const char*                  projectName;
 
 #define MAX_LINE_LENGTH             512
 extern char                         inputBuffer[MAX_LINE_LENGTH];
diff --git a/tester/covoar/covoar.cc b/tester/covoar/covoar.cc
index 3894867..5f8de5b 100644
--- a/tester/covoar/covoar.cc
+++ b/tester/covoar/covoar.cc
@@ -178,6 +178,7 @@ int covoar(
   Coverage::ObjdumpProcessor    objdumpProcessor;
   bool                          verbose = false;
   std::string                   dynamicLibrary;
+  std::string                   projectName;
 
   //
   // Process command line options.
@@ -223,7 +224,7 @@ int covoar(
   /*
    * Check for project name.
    */
-  if ( !projectName )
+  if ( projectName.empty() )
     throw option_error( "project name -p" );
 
   //
@@ -474,7 +475,12 @@ int covoar(
     std::cerr << "Generate Reports" << std::endl;
 
   for (const auto& setName : SymbolsToAnalyze->getSetNames()) {
-    Coverage::GenerateReports( setName, allExplanations, verbose );
+    Coverage::GenerateReports(
+      setName,
+      allExplanations,
+      verbose,
+      projectName
+    );
   }
 
   // Write explanations that were not found.
-- 
1.8.3.1



More information about the devel mailing list