LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
testing::BasicEnvironmentConfiguration Struct Reference

Class holding a configuration for a test environment. More...

#include "unit_test_base.h"

Inheritance diagram for testing::BasicEnvironmentConfiguration:
testing::BasicGeometryEnvironmentConfiguration< CHANNELMAP >

Public Member Functions

 BasicEnvironmentConfiguration ()
 Default constructor; this is what is used in Boost unit test. More...
 
 BasicEnvironmentConfiguration (int argc, char **argv)
 Constructor: acquires parameters from the command line. More...
 
 BasicEnvironmentConfiguration (std::string name)
 Constructor; accepts the name as parameter. More...
 
 BasicEnvironmentConfiguration (int argc, char **argv, std::string name)
 
Access to configuration

Name of the application

std::string ApplicationName () const
 Path to the configuration file. More...
 
std::string ConfigurationPath () const
 Path to the configuration file. More...
 
std::string TesterParameterSetPath (std::string name) const
 FHiCL path for the configuration of the test algorithm. More...
 
std::string MainTesterParameterSetName () const
 Name of the test algorithm instance. More...
 
std::string MainTesterParameterSetPath () const
 FHiCL path for the configuration of the test algorithm. More...
 
std::string ServiceParameterSetPath (std::string name) const
 FHiCL path for the configuration of the service. More...
 
std::string DefaultTesterConfiguration (std::string tester_name) const
 A string describing default parameter set to configure specified test. More...
 
std::string DefaultServiceConfiguration (std::string service_name) const
 A string describing the default parameter set to configure the test. More...
 
std::string DefaultConfiguration () const
 A string describing the full default parameter set. More...
 
std::string ExecutablePath () const
 Returns the name of the executable as started. More...
 
std::vector< std::string > const & EexcutableArguments () const
 Returns the list of non-Boost-test arguments on the command line. More...
 
Set configuration
void SetApplicationName (std::string name)
 Sets the name of the application. More...
 
void SetConfigurationPath (std::string path)
 Sets the path to the configuration file. More...
 
void SetMainTesterParameterSetName (std::string name)
 Sets the FHiCL name for the configuration of the test algorithm. More...
 
void SetTesterParameterSetPath (std::string test_name, std::string path)
 Sets the FHiCL path for the configuration of a test algorithm. More...
 
void SetMainTesterParameterSetPath (std::string path)
 Sets the FHiCL path for the configuration of the main test algorithm. More...
 
void SetServiceParameterSetPath (std::string service_name, std::string path)
 Sets the FHiCL path for the configuration of a test algorithm. More...
 
void AddDefaultServiceConfiguration (std::string service_name, std::string service_cfg)
 Adds a default configuration for the specified service. More...
 
void AddDefaultTesterConfiguration (std::string tester_name, std::string tester_cfg)
 Adds a default configuration for the specified tester. More...
 
void AddDefaultTesterConfiguration (std::string tester_cfg)
 Adds a default configuration for the main tester. More...
 

Protected Types

using ConfigurationMap_t = std::map< std::string, std::string >
 
using PathMap_t = std::map< std::string, std::string >
 

Protected Member Functions

void ParseCommandLine (int argc, char **argv)
 Extracts arguments from the command line, uses first one as config path. More...
 
void DefaultInit ()
 Initialize with some default values. More...
 
std::string BuildDefaultServiceConfiguration () const
 A string describing the full default parameter set. More...
 
std::string BuildDefaultTestConfiguration () const
 A string describing the full default parameter set. More...
 
std::string BuildDefaultConfiguration () const
 A string describing the full default parameter set. More...
 

Static Protected Member Functions

static std::string DefaultApplicationName ()
 Returns the default test name. More...
 
static std::string BuildServiceConfiguration (ConfigurationMap_t const &services)
 A string with the service section from service parameter sets. More...
 
static std::string BuildTestConfiguration (ConfigurationMap_t const &analyzers)
 A string with the physics section from analyzer parameter sets. More...
 
static std::string BuildConfiguration (ConfigurationMap_t const &services, ConfigurationMap_t const &modules)
 A string describing the full default parameter set. More...
 

Protected Attributes

std::string appl_name
 name of the application More...
 
std::string config_path
 configuration file path More...
 
std::string main_test_name
 name of main test algorithm More...
 
std::string main_test_path
 path of main test algorithm configuration More...
 
ConfigurationMap_t services_default_cfg
 Configuration of all the services. More...
 
ConfigurationMap_t analyzers_default_cfg
 Configuration of all the analyzer modules. More...
 
PathMap_t test_paths
 Set of paths for tester configuration. More...
 
PathMap_t service_paths
 Set of paths for service configuration. More...
 

Private Attributes

details::CommandLineArguments arguments
 command line arguments More...
 

Detailed Description

Class holding a configuration for a test environment.


This class needs to be fully constructed by the default constructor in order to be useful as Boost unit test fixture. It is supposed to be passed as a template parameter to another class that can store an instance of it and extract configuration information from it.

Definition at line 126 of file unit_test_base.h.

Member Typedef Documentation

using testing::BasicEnvironmentConfiguration::ConfigurationMap_t = std::map<std::string, std::string>
protected

Definition at line 262 of file unit_test_base.h.

using testing::BasicEnvironmentConfiguration::PathMap_t = std::map<std::string, std::string>
protected

Definition at line 263 of file unit_test_base.h.

Constructor & Destructor Documentation

testing::BasicEnvironmentConfiguration::BasicEnvironmentConfiguration ( )
inline

Default constructor; this is what is used in Boost unit test.

Definition at line 129 of file unit_test_base.h.

129 { DefaultInit(); }
void DefaultInit()
Initialize with some default values.
testing::BasicEnvironmentConfiguration::BasicEnvironmentConfiguration ( int  argc,
char **  argv 
)
inline

Constructor: acquires parameters from the command line.

Definition at line 132 of file unit_test_base.h.

133  {
134  ParseCommandLine(argc, argv);
135  }
void ParseCommandLine(int argc, char **argv)
Extracts arguments from the command line, uses first one as config path.
BasicEnvironmentConfiguration()
Default constructor; this is what is used in Boost unit test.
testing::BasicEnvironmentConfiguration::BasicEnvironmentConfiguration ( std::string  name)
inline

Constructor; accepts the name as parameter.

Definition at line 138 of file unit_test_base.h.

References mf::SetApplicationName().

139  {
140  SetApplicationName(name);
141  }
void SetApplicationName(std::string name)
Sets the name of the application.
BasicEnvironmentConfiguration()
Default constructor; this is what is used in Boost unit test.
testing::BasicEnvironmentConfiguration::BasicEnvironmentConfiguration ( int  argc,
char **  argv,
std::string  name 
)
inline

Definition at line 143 of file unit_test_base.h.

References mf::SetApplicationName().

144  : BasicEnvironmentConfiguration(argc, argv)
145  {
146  SetApplicationName(name);
147  }
void SetApplicationName(std::string name)
Sets the name of the application.
BasicEnvironmentConfiguration()
Default constructor; this is what is used in Boost unit test.

Member Function Documentation

void testing::BasicEnvironmentConfiguration::AddDefaultServiceConfiguration ( std::string  service_name,
std::string  service_cfg 
)
inline

Adds a default configuration for the specified service.

Definition at line 239 of file unit_test_base.h.

Referenced by testing::BasicGeometryEnvironmentConfiguration< CHANNELMAP >::SetDefaultGeometryConfiguration().

240  {
241  services_default_cfg[service_name] = service_cfg;
242  }
ConfigurationMap_t services_default_cfg
Configuration of all the services.
void testing::BasicEnvironmentConfiguration::AddDefaultTesterConfiguration ( std::string  tester_name,
std::string  tester_cfg 
)
inline

Adds a default configuration for the specified tester.

Definition at line 245 of file unit_test_base.h.

246  {
247  analyzers_default_cfg[tester_name] = tester_cfg;
248  }
ConfigurationMap_t analyzers_default_cfg
Configuration of all the analyzer modules.
void testing::BasicEnvironmentConfiguration::AddDefaultTesterConfiguration ( std::string  tester_cfg)
inline

Adds a default configuration for the main tester.

Definition at line 251 of file unit_test_base.h.

References util::empty().

252  {
254  throw std::logic_error("Request adding configuration of non-existent main tester");
255  }
257  }
std::string MainTesterParameterSetName() const
Name of the test algorithm instance.
void AddDefaultTesterConfiguration(std::string tester_name, std::string tester_cfg)
Adds a default configuration for the specified tester.
decltype(auto) constexpr empty(T &&obj)
ADL-aware version of std::empty.
Definition: StdUtils.h:109
std::string testing::BasicEnvironmentConfiguration::ApplicationName ( ) const
inline

Path to the configuration file.

Definition at line 152 of file unit_test_base.h.

152 { return appl_name; }
std::string appl_name
name of the application
static std::string testing::BasicEnvironmentConfiguration::BuildConfiguration ( ConfigurationMap_t const &  services,
ConfigurationMap_t const &  modules 
)
inlinestaticprotected

A string describing the full default parameter set.

Definition at line 364 of file unit_test_base.h.

366  {
367  std::string cfg;
368  cfg += BuildServiceConfiguration(services);
369  cfg += BuildTestConfiguration(modules);
370  return cfg;
371  } // BuildConfiguration()
static std::string BuildServiceConfiguration(ConfigurationMap_t const &services)
A string with the service section from service parameter sets.
static std::string BuildTestConfiguration(ConfigurationMap_t const &analyzers)
A string with the physics section from analyzer parameter sets.
std::string testing::BasicEnvironmentConfiguration::BuildDefaultConfiguration ( ) const
inlineprotected

A string describing the full default parameter set.

Definition at line 327 of file unit_test_base.h.

328  {
330  }
ConfigurationMap_t services_default_cfg
Configuration of all the services.
static std::string BuildConfiguration(ConfigurationMap_t const &services, ConfigurationMap_t const &modules)
A string describing the full default parameter set.
ConfigurationMap_t analyzers_default_cfg
Configuration of all the analyzer modules.
std::string testing::BasicEnvironmentConfiguration::BuildDefaultServiceConfiguration ( ) const
inlineprotected

A string describing the full default parameter set.

Definition at line 315 of file unit_test_base.h.

316  {
318  }
ConfigurationMap_t services_default_cfg
Configuration of all the services.
static std::string BuildServiceConfiguration(ConfigurationMap_t const &services)
A string with the service section from service parameter sets.
std::string testing::BasicEnvironmentConfiguration::BuildDefaultTestConfiguration ( ) const
inlineprotected

A string describing the full default parameter set.

Definition at line 321 of file unit_test_base.h.

322  {
324  }
static std::string BuildTestConfiguration(ConfigurationMap_t const &analyzers)
A string with the physics section from analyzer parameter sets.
ConfigurationMap_t analyzers_default_cfg
Configuration of all the analyzer modules.
static std::string testing::BasicEnvironmentConfiguration::BuildServiceConfiguration ( ConfigurationMap_t const &  services)
inlinestaticprotected

A string with the service section from service parameter sets.

Definition at line 333 of file unit_test_base.h.

334  {
335  std::string cfg;
336  cfg += "\nservices: {";
337  for (auto const& service_info : services) {
338  cfg += "\n " + service_info.first + ": {";
339  cfg += "\n" + service_info.second;
340  cfg += "\n } # " + service_info.first;
341  } // for services
342  cfg += "\n} # services"
343  "\n";
344  return cfg;
345  } // BuildServiceConfiguration()
static std::string testing::BasicEnvironmentConfiguration::BuildTestConfiguration ( ConfigurationMap_t const &  analyzers)
inlinestaticprotected

A string with the physics section from analyzer parameter sets.

Definition at line 348 of file unit_test_base.h.

349  {
350  std::string cfg;
351  cfg += "\nphysics: {"
352  "\n analyzers: {";
353  for (auto const& module_info : analyzers) {
354  cfg += "\n " + module_info.first + ": {";
355  cfg += "\n" + module_info.second;
356  cfg += "\n } # " + module_info.first;
357  } // for analyzers
358  cfg += "\n } # analyzers"
359  "\n} # physics";
360  return cfg;
361  } // BuildServiceConfiguration()
std::string testing::BasicEnvironmentConfiguration::ConfigurationPath ( ) const
inline

Path to the configuration file.

Definition at line 155 of file unit_test_base.h.

155 { return config_path; }
std::string config_path
configuration file path
static std::string testing::BasicEnvironmentConfiguration::DefaultApplicationName ( )
inlinestaticprotected

Returns the default test name.

Definition at line 271 of file unit_test_base.h.

271 { return "Test"; }
std::string testing::BasicEnvironmentConfiguration::DefaultConfiguration ( ) const
inline

A string describing the full default parameter set.

Definition at line 195 of file unit_test_base.h.

195 { return BuildDefaultConfiguration(); }
std::string BuildDefaultConfiguration() const
A string describing the full default parameter set.
void testing::BasicEnvironmentConfiguration::DefaultInit ( )
inlineprotected

Initialize with some default values.

Definition at line 291 of file unit_test_base.h.

References mf::SetApplicationName().

292  {
295  // a destination which will react to all messages from DEBUG up:
297  R"(
298  debugModules: [ '*' ]
299  destinations : {
300  stdout: {
301  type: cout
302  threshold: DEBUG
303  categories: {
304  default: {
305  limit: -1
306  }
307  } // categories
308  } // stdout
309  statistics: {type:cout}
310  } // destinations
311  )");
312  } // DefaultInit()
void SetApplicationName(std::string name)
Sets the name of the application.
void SetMainTesterParameterSetName(std::string name)
Sets the FHiCL name for the configuration of the test algorithm.
static std::string DefaultApplicationName()
Returns the default test name.
void AddDefaultServiceConfiguration(std::string service_name, std::string service_cfg)
Adds a default configuration for the specified service.
std::string testing::BasicEnvironmentConfiguration::DefaultServiceConfiguration ( std::string  service_name) const
inline

A string describing the default parameter set to configure the test.

Definition at line 189 of file unit_test_base.h.

Referenced by testing::BasicGeometryEnvironmentConfiguration< CHANNELMAP >::DefaultGeometryConfiguration().

190  {
191  return services_default_cfg.at(service_name);
192  }
ConfigurationMap_t services_default_cfg
Configuration of all the services.
std::string testing::BasicEnvironmentConfiguration::DefaultTesterConfiguration ( std::string  tester_name) const
inline

A string describing default parameter set to configure specified test.

Definition at line 183 of file unit_test_base.h.

184  {
185  return analyzers_default_cfg.at(tester_name);
186  }
ConfigurationMap_t analyzers_default_cfg
Configuration of all the analyzer modules.
std::vector<std::string> const& testing::BasicEnvironmentConfiguration::EexcutableArguments ( ) const
inline

Returns the list of non-Boost-test arguments on the command line.

Definition at line 201 of file unit_test_base.h.

201 { return arguments.Arguments(); }
details::CommandLineArguments arguments
command line arguments
std::vector< std::string > const & Arguments() const
Returns the list of non-Boost-test arguments on the command line.
std::string testing::BasicEnvironmentConfiguration::ExecutablePath ( ) const
inline

Returns the name of the executable as started.

Definition at line 198 of file unit_test_base.h.

198 { return arguments.Executable(); }
details::CommandLineArguments arguments
command line arguments
std::string Executable() const
Returns the name of the executable as started.
std::string testing::BasicEnvironmentConfiguration::MainTesterParameterSetName ( ) const
inline

Name of the test algorithm instance.

Definition at line 165 of file unit_test_base.h.

165 { return main_test_name; }
std::string main_test_name
name of main test algorithm
std::string testing::BasicEnvironmentConfiguration::MainTesterParameterSetPath ( ) const
inline

FHiCL path for the configuration of the test algorithm.

Definition at line 168 of file unit_test_base.h.

169  {
170  return MainTesterParameterSetName().empty() ?
171  "" :
173  }
std::string TesterParameterSetPath(std::string name) const
FHiCL path for the configuration of the test algorithm.
std::string MainTesterParameterSetName() const
Name of the test algorithm instance.
void testing::BasicEnvironmentConfiguration::ParseCommandLine ( int  argc,
char **  argv 
)
inlineprotected

Extracts arguments from the command line, uses first one as config path.

Definition at line 284 of file unit_test_base.h.

285  {
286  arguments.ParseArguments(argc, argv);
287  if (arguments.hasArgument(0)) SetConfigurationPath(arguments.Argument(0)); // first argument
288  }
void ParseArguments(int argc, char **argv)
Parses arguments.
details::CommandLineArguments arguments
command line arguments
bool hasArgument(size_t iArg) const
Returns whether we have arguments up to the iArg-th (0-based)
std::string const & Argument(size_t iArg) const
Returns the value of the iArg-th (0-based; no range check!)
void SetConfigurationPath(std::string path)
Sets the path to the configuration file.
std::string testing::BasicEnvironmentConfiguration::ServiceParameterSetPath ( std::string  name) const
inline

FHiCL path for the configuration of the service.

Definition at line 176 of file unit_test_base.h.

Referenced by testing::BasicGeometryEnvironmentConfiguration< CHANNELMAP >::GeometryParameterSetPath().

177  {
178  auto iPath = service_paths.find(name);
179  return (iPath == service_paths.end()) ? ("services." + name) : iPath->second;
180  } // ServiceParameterSetPath()
PathMap_t service_paths
Set of paths for service configuration.
void testing::BasicEnvironmentConfiguration::SetApplicationName ( std::string  name)
inline

Sets the name of the application.

Definition at line 209 of file unit_test_base.h.

209 { appl_name = name; }
std::string appl_name
name of the application
void testing::BasicEnvironmentConfiguration::SetConfigurationPath ( std::string  path)
inline

Sets the path to the configuration file.

Definition at line 212 of file unit_test_base.h.

212 { config_path = path; }
std::string config_path
configuration file path
void testing::BasicEnvironmentConfiguration::SetMainTesterParameterSetName ( std::string  name)
inline

Sets the FHiCL name for the configuration of the test algorithm.

Definition at line 215 of file unit_test_base.h.

215 { main_test_name = name; }
std::string main_test_name
name of main test algorithm
void testing::BasicEnvironmentConfiguration::SetMainTesterParameterSetPath ( std::string  path)
inline

Sets the FHiCL path for the configuration of the main test algorithm.

Definition at line 224 of file unit_test_base.h.

References util::empty().

225  {
227  throw std::logic_error("Request setting configuration of non-existent main tester");
228  }
230  }
std::string MainTesterParameterSetName() const
Name of the test algorithm instance.
void SetTesterParameterSetPath(std::string test_name, std::string path)
Sets the FHiCL path for the configuration of a test algorithm.
decltype(auto) constexpr empty(T &&obj)
ADL-aware version of std::empty.
Definition: StdUtils.h:109
void testing::BasicEnvironmentConfiguration::SetServiceParameterSetPath ( std::string  service_name,
std::string  path 
)
inline

Sets the FHiCL path for the configuration of a test algorithm.

Definition at line 233 of file unit_test_base.h.

Referenced by testing::BasicGeometryEnvironmentConfiguration< CHANNELMAP >::SetGeometryParameterSetPath().

234  {
235  service_paths[service_name] = path;
236  }
PathMap_t service_paths
Set of paths for service configuration.
void testing::BasicEnvironmentConfiguration::SetTesterParameterSetPath ( std::string  test_name,
std::string  path 
)
inline

Sets the FHiCL path for the configuration of a test algorithm.

Definition at line 218 of file unit_test_base.h.

219  {
220  test_paths[test_name] = path;
221  }
PathMap_t test_paths
Set of paths for tester configuration.
std::string testing::BasicEnvironmentConfiguration::TesterParameterSetPath ( std::string  name) const
inline

FHiCL path for the configuration of the test algorithm.

Definition at line 158 of file unit_test_base.h.

159  {
160  auto iPath = test_paths.find(name);
161  return (iPath == test_paths.end()) ? ("physics.analyzers." + name) : iPath->second;
162  }
PathMap_t test_paths
Set of paths for tester configuration.

Member Data Documentation

ConfigurationMap_t testing::BasicEnvironmentConfiguration::analyzers_default_cfg
protected

Configuration of all the analyzer modules.

Definition at line 276 of file unit_test_base.h.

std::string testing::BasicEnvironmentConfiguration::appl_name
protected

name of the application

Definition at line 265 of file unit_test_base.h.

details::CommandLineArguments testing::BasicEnvironmentConfiguration::arguments
private

command line arguments

Definition at line 374 of file unit_test_base.h.

std::string testing::BasicEnvironmentConfiguration::config_path
protected

configuration file path

Definition at line 266 of file unit_test_base.h.

std::string testing::BasicEnvironmentConfiguration::main_test_name
protected

name of main test algorithm

Definition at line 267 of file unit_test_base.h.

std::string testing::BasicEnvironmentConfiguration::main_test_path
protected

path of main test algorithm configuration

Definition at line 268 of file unit_test_base.h.

PathMap_t testing::BasicEnvironmentConfiguration::service_paths
protected

Set of paths for service configuration.

Definition at line 281 of file unit_test_base.h.

ConfigurationMap_t testing::BasicEnvironmentConfiguration::services_default_cfg
protected

Configuration of all the services.

Definition at line 274 of file unit_test_base.h.

PathMap_t testing::BasicEnvironmentConfiguration::test_paths
protected

Set of paths for tester configuration.

Definition at line 279 of file unit_test_base.h.


The documentation for this struct was generated from the following file: