예제 #1
0
int real_main(int argc, char* argv[])
{
   OptionList options;

   options.parse(argc, argv, "f:L:l:c:t:s");

   if(options.args.size() == 0)
   {
      usage("testngppst-runner");
   }

   //showOptions(options);
   
   StringList listeners;
   getListeners(listeners, options);   

   StringList searchingPathsOfListeners;
   getSearchingPathsOfListeners(searchingPathsOfListeners, options);   

   StringList fixtures;
	getSpecifiedFixtures(fixtures, options);

   bool usesSandbox = useSandbox(options);
   
   unsigned int maxConcurrent = 0;
   if(usesSandbox)
   {
      maxConcurrent = getMaxConcurrent(options);
   }
   
   std::string tagsFilterOption = getSingleOption("t", options, "*");
                                                 
   return TestRunner().runTests(useSandbox(options), maxConcurrent, options.args, listeners
                         , searchingPathsOfListeners, fixtures, tagsFilterOption);
}
예제 #2
0
unsigned int
OptionList::
getSingleUnsignedOption
      ( const std::string& option
      , const unsigned int defaultValue)
{
    std::ostringstream oss;
    oss << defaultValue;

    std::string result = getSingleOption(option, oss.str());

    return atoi(result.c_str());
}
예제 #3
0
static 
unsigned int getMaxConcurrent(OptionList& options)
{
   std::string s = getSingleOption("c", options, "1");
   errno = 0;
   int result = ::strtol(s.c_str(),0,10);
   if(result < 0 || (result == 0 && errno == ERANGE))
   {
       std::cerr << "error: invalid value of option -c : " 
                 << s << std::endl;
       exit(1);
   }

   std::cout << "maximum # of sandboxes = " << result << std::endl;

   return result;
}