Skip to content

Commit 3ff89cf

Browse files
committed
add test for true async
1 parent ea1f241 commit 3ff89cf

File tree

3 files changed

+28
-2
lines changed

3 files changed

+28
-2
lines changed

Core/test/DummyClient.h

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
66
#include "SonicCMS/Core/interface/SonicClientSync.h"
77
#include "SonicCMS/Core/interface/SonicClientPseudoAsync.h"
8+
#include "SonicCMS/Core/interface/SonicClientAsync.h"
89

910
#include <vector>
1011
#include <thread>
@@ -42,6 +43,13 @@ class DummyClient : public Client {
4243

4344
typedef DummyClient<SonicClientSync<int>> DummyClientSync;
4445
typedef DummyClient<SonicClientPseudoAsync<int>> DummyClientPseudoAsync;
45-
//test of true Async omitted
46+
typedef DummyClient<SonicClientAsync<int>> DummyClientAsync;
47+
48+
//specialization for true async
49+
template <>
50+
void DummyClientAsync::predictImpl() {
51+
this->output_ = this->input_*factor_;
52+
this->finish();
53+
}
4654

4755
#endif

Core/test/SonicDummyProducer.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,17 @@ namespace edmtest {
4444

4545
typedef SonicDummyProducer<DummyClientSync> SonicDummyProducerSync;
4646
typedef SonicDummyProducer<DummyClientPseudoAsync> SonicDummyProducerPseudoAsync;
47+
typedef SonicDummyProducer<DummyClientAsync> SonicDummyProducerAsync;
4748

4849
template<> std::string SonicDummyProducerSync::getCfiName() { return "SonicDummyProducerSync"; }
4950
template<> std::string SonicDummyProducerPseudoAsync::getCfiName() { return "SonicDummyProducerPseudoAsync"; }
51+
template<> std::string SonicDummyProducerAsync::getCfiName() { return "SonicDummyProducerAsync"; }
5052
}
5153

5254
using edmtest::SonicDummyProducerSync;
5355
DEFINE_FWK_MODULE(SonicDummyProducerSync);
5456
using edmtest::SonicDummyProducerPseudoAsync;
5557
DEFINE_FWK_MODULE(SonicDummyProducerPseudoAsync);
58+
using edmtest::SonicDummyProducerAsync;
59+
DEFINE_FWK_MODULE(SonicDummyProducerAsync);
5660

Core/test/sonicTest_cfg.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,15 @@
2727
),
2828
)
2929

30-
process.task = cms.Task(process.dummySync,process.dummyPseudoAsync)
30+
process.dummyAsync = cms.EDProducer("SonicDummyProducerAsync",
31+
input = cms.int32(3),
32+
Client = cms.PSet(
33+
factor = cms.int32(5),
34+
wait = cms.int32(10),
35+
),
36+
)
37+
38+
process.task = cms.Task(process.dummySync,process.dummyPseudoAsync,process.dummyAsync)
3139

3240
process.testerSync = cms.EDAnalyzer("IntTestAnalyzer",
3341
valueMustMatch = cms.untracked.int32(-1),
@@ -39,5 +47,11 @@
3947
moduleLabel = cms.untracked.string("dummyPseudoAsync"),
4048
)
4149

50+
process.testerAsync = cms.EDAnalyzer("IntTestAnalyzer",
51+
valueMustMatch = cms.untracked.int32(15),
52+
moduleLabel = cms.untracked.string("dummyAsync"),
53+
)
54+
4255
process.p1 = cms.Path(process.testerSync, process.task)
4356
process.p2 = cms.Path(process.testerPseudoAsync, process.task)
57+
process.p3 = cms.Path(process.testerAsync, process.task)

0 commit comments

Comments
 (0)