Skip to content

Commit ff4d600

Browse files
committed
Share one time initialization between testing frameworks
1 parent 078d2cb commit ff4d600

File tree

4 files changed

+48
-27
lines changed

4 files changed

+48
-27
lines changed

FWCore/TestProcessor/src/TestProcessor.cc

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -38,47 +38,22 @@
3838
#include "FWCore/ServiceRegistry/interface/ServiceRegistry.h"
3939
#include "FWCore/ServiceRegistry/interface/SystemBounds.h"
4040

41-
#include "FWCore/PluginManager/interface/PluginManager.h"
42-
#include "FWCore/PluginManager/interface/standard.h"
43-
4441
#include "FWCore/ParameterSetReader/interface/ProcessDescImpl.h"
4542
#include "FWCore/ParameterSet/interface/ProcessDesc.h"
4643
#include "FWCore/ParameterSet/interface/validateTopLevelParameterSets.h"
4744

4845
#include "FWCore/Utilities/interface/ExceptionCollector.h"
4946

50-
#include "FWCore/Concurrency/interface/ThreadsController.h"
5147
#include "FWCore/Concurrency/interface/FinalWaitingTask.h"
5248

53-
#include "DataFormats/Provenance/interface/ParentageRegistry.h"
49+
#include "oneTimeInitialization.h"
5450

5551
#define xstr(s) str(s)
5652
#define str(s) #s
5753

5854
namespace edm {
5955
namespace test {
6056

61-
namespace {
62-
63-
bool oneTimeInitializationImpl() {
64-
edmplugin::PluginManager::configure(edmplugin::standard::config());
65-
66-
static std::unique_ptr<edm::ThreadsController> tsiPtr = std::make_unique<edm::ThreadsController>(1);
67-
68-
// register the empty parentage vector , once and for all
69-
ParentageRegistry::instance()->insertMapped(Parentage());
70-
71-
// register the empty parameter set, once and for all.
72-
ParameterSet().registerIt();
73-
return true;
74-
}
75-
76-
bool oneTimeInitialization() {
77-
static const bool s_init{oneTimeInitializationImpl()};
78-
return s_init;
79-
}
80-
} // namespace
81-
8257
//
8358
// constructors and destructor
8459
//
@@ -88,7 +63,7 @@ namespace edm {
8863
historyAppender_(std::make_unique<HistoryAppender>()),
8964
moduleRegistry_(std::make_shared<ModuleRegistry>()) {
9065
//Setup various singletons
91-
(void)oneTimeInitialization();
66+
(void)testprocessor::oneTimeInitialization();
9267

9368
ProcessDescImpl desc(iConfig.pythonConfiguration(), false);
9469

FWCore/TestProcessor/src/TestSourceProcessor.cc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@
2727
#include "FWCore/Concurrency/interface/FinalWaitingTask.h"
2828

2929
#include "DataFormats/Provenance/interface/ParentageRegistry.h"
30+
31+
#include "oneTimeInitialization.h"
32+
3033
namespace {
3134
using namespace edm;
3235

@@ -104,6 +107,9 @@ namespace edm::test {
104107
: globalControl_(oneapi::tbb::global_control::max_allowed_parallelism, 1),
105108
arena_(1),
106109
historyAppender_(std::make_unique<HistoryAppender>()) {
110+
//Setup various singletons
111+
(void)testprocessor::oneTimeInitialization();
112+
107113
ProcessDescImpl desc(iConfig, false);
108114

109115
auto psetPtr = desc.parameterSet();
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
2+
#include "oneTimeInitialization.h"
3+
4+
#include "FWCore/PluginManager/interface/PluginManager.h"
5+
#include "FWCore/PluginManager/interface/standard.h"
6+
#include "FWCore/Concurrency/interface/ThreadsController.h"
7+
#include "FWCore/ParameterSet/interface/ParameterSet.h"
8+
#include "DataFormats/Provenance/interface/ParentageRegistry.h"
9+
10+
namespace {
11+
12+
bool oneTimeInitializationImpl() {
13+
edmplugin::PluginManager::configure(edmplugin::standard::config());
14+
15+
static std::unique_ptr<edm::ThreadsController> tsiPtr = std::make_unique<edm::ThreadsController>(1);
16+
17+
// register the empty parentage vector , once and for all
18+
edm::ParentageRegistry::instance()->insertMapped(edm::Parentage());
19+
20+
// register the empty parameter set, once and for all.
21+
edm::ParameterSet().registerIt();
22+
return true;
23+
}
24+
} //namespace
25+
26+
namespace edm::testprocessor {
27+
bool oneTimeInitialization() {
28+
static const bool s_init{oneTimeInitializationImpl()};
29+
return s_init;
30+
}
31+
} // namespace edm::testprocessor
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#if !defined(FWCore_TestProcessor_oneTimeInitialization_h)
2+
#define FWCore_TestProcessor_oneTimeInitialization_h
3+
4+
//Used to initialize the plugin manager
5+
namespace edm::testprocessor {
6+
bool oneTimeInitialization();
7+
}
8+
9+
#endif

0 commit comments

Comments
 (0)