[PATCH 9/9] covoar: Remove config file and test critical options are valid.

Cillian O'Donnell cpodonnell8 at gmail.com
Fri Aug 25 21:53:32 UTC 2017


---
 tester/covoar/covoar.cc | 164 +++++++++++++++++++-----------------------------
 tester/covoar/wscript   |   1 -
 2 files changed, 63 insertions(+), 102 deletions(-)

diff --git a/tester/covoar/covoar.cc b/tester/covoar/covoar.cc
index 005cb8e..d362255 100644
--- a/tester/covoar/covoar.cc
+++ b/tester/covoar/covoar.cc
@@ -80,73 +80,7 @@ void usage()
 }
 
 #define PrintableString(_s) \
-       ((!(_s)) ? "NOT SET" : (_s))
-
-/*
- *  Configuration File Support
- */
-#include "ConfigFile.h"
-Configuration::FileReader *CoverageConfiguration;
-Configuration::Options_t Options[] = {
-  { "explanations",         NULL },
-  { "format",               NULL },
-  { "symbolsFile",          NULL },
-  { "outputDirectory",      NULL },
-  { "executableExtension",  NULL },
-  { "coverageExtension",    NULL },
-  { "gcnosFile",            NULL },
-  { "target",               NULL },
-  { "verbose",              NULL },
-  { "projectName",          NULL },
-  { NULL,                   NULL }
-};
-
-bool isTrue(const char *value)
-{
-  if ( !value )                  return false;
-  if ( !strcmp(value, "true") )  return true;
-  if ( !strcmp(value, "TRUE") )  return true;
-  if ( !strcmp(value, "yes") )   return true;
-  if ( !strcmp(value, "YES") )   return true;
-  return false;
-}
-
-#define GET_BOOL(_opt, _val) \
-  if (isTrue(CoverageConfiguration->getOption(_opt))) \
-    _val = true;
-
-#define GET_STRING(_opt, _val) \
-  do { \
-    const char *_t; \
-    _t = CoverageConfiguration->getOption(_opt); \
-    if ( _t ) _val = _t; \
-  } while(0)
-
-
-void check_configuration(void)
-{
-  GET_BOOL( "verbose", Verbose );
-
-  GET_STRING( "format",               format );
-  GET_STRING( "target",               target );
-  GET_STRING( "explanations",         explanations );
-  GET_STRING( "symbolsFile",          symbolsFile );
-  GET_STRING( "outputDirectory",      outputDirectory );
-  GET_STRING( "executableExtension",  executableExtension );
-  GET_STRING( "coverageExtension",    coverageFileExtension );
-  GET_STRING( "gcnosFile",            gcnosFileName );
-  GET_STRING( "projectName",          projectName );
-
-  // Now calculate some values
-  if ( coverageFileExtension )
-    coverageExtensionLength = strlen( coverageFileExtension );
-
-  if ( executableExtension )
-    executableExtensionLength = strlen( executableExtension );
-
-  if ( format )
-    coverageFormat = Coverage::CoverageFormatToEnum( format );
-}
+((!(_s)) ? "NOT SET" : (_s))
 
 static void
 fatal_signal( int signum )
@@ -197,19 +131,17 @@ int main(
   rld::process::tempfile                         objdumpFile( ".dmp" );
   rld::process::tempfile                         err( ".err" );
   bool                                           debug = false;
+  std::string                                    option;
 
   setup_signals();
 
-  CoverageConfiguration = new Configuration::FileReader(Options);
-
   //
   // Process command line options.
   //
   progname = argv[0];
 
-  while ((opt = getopt(argc, argv, "C:1:L:e:c:g:E:f:s:T:O:p:v:d")) != -1) {
+  while ((opt = getopt(argc, argv, "1:L:e:c:g:E:f:s:T:O:p:v:d")) != -1) {
     switch (opt) {
-      case 'C': CoverageConfiguration->processFile( optarg ); break;
       case '1': singleExecutable      = optarg; break;
       case 'L': dynamicLibrary        = optarg; break;
       case 'e': executableExtension   = optarg; break;
@@ -228,11 +160,66 @@ int main(
         exit( -1 );
     }
   }
-
-  // Do not trust any arguments until after this point.
-  check_configuration();
-
-  // XXX We need to verify that all of the needed arguments are non-NULL.
+  try
+  {
+   /*
+	* Validate inputs.
+	*/
+
+   /*
+	* Target name must be set.
+	*/
+	if ( !target ) {
+	  option = "target -T";
+	  throw option;
+	}
+
+   /*
+	* Validate format.
+	*/
+	if ( !format ) {
+	  option = "format -f";
+	  throw option;
+	}
+
+   /*
+	* Has path to explanations.txt been specified.
+	*/
+	if ( !explanations ) {
+	  option = "explanations -E";
+	  throw option;
+	}
+
+   /*
+	* Has coverage file extension been specified.
+	*/
+	if ( !coverageFileExtension ) {
+	  option = "coverage extension -c";
+	  throw option;
+	}
+
+   /*
+	* Has executable extension been specified.
+	*/
+	if ( !executableExtension ) {
+	  option = "executable extension -e";
+	  throw option;
+	}
+
+   /*
+	* Check for project name.
+	*/
+	if ( !projectName ) {
+	  option = "project name -p";
+	  throw option;
+	}
+  }
+  catch( std::string option )
+  {
+	std::cout << "error missing option: " + option << std::endl;
+	usage();
+	throw;
+  }
 
   // If a single executable was specified, process the remaining
   // arguments as coverage file names.
@@ -361,31 +348,6 @@ int main(
   }
 
   //
-  // Validate inputs.
-  //
-
-  // Target name must be set.
-  if (!target) {
-    fprintf( stderr, "ERROR: target not specified\n" );
-    usage();
-    exit(-1);
-  }
-
-  // Validate format.
-  if (!format) {
-    fprintf( stderr, "ERROR: coverage format report not specified\n" );
-    usage();
-    exit(-1);
-  }
-
-  // Validate that we have a symbols of interest file.
-  if (!symbolsFile) {
-    fprintf( stderr, "ERROR: symbols of interest file not specified\n" );
-    usage();
-    exit(-1);
-  }
-
-  //
   // Create data to support analysis.
   //
 
diff --git a/tester/covoar/wscript b/tester/covoar/wscript
index d121a21..4d85562 100644
--- a/tester/covoar/wscript
+++ b/tester/covoar/wscript
@@ -68,7 +68,6 @@ def configure(conf):
 def build(bld):
     bld.stlib(target = 'ccovoar',
               source = ['app_common.cc',
-                        'ConfigFile.cc',
                         'CoverageFactory.cc',
                         'CoverageMap.cc',
                         'CoverageMapBase.cc',
-- 
2.7.4




More information about the devel mailing list