13#include "../src/ComputingResourceHelpers.h"
14#include "../src/DeviceSpecHelpers.h"
15#include "../src/GraphvizHelpers.h"
16#include "../src/SimpleResourceManager.h"
21#include <catch_amalgamated.hpp>
29 std::istringstream
a(as);
30 std::istringstream
b(bs);
34 while (
a.good() &&
b.good()) {
35 a.getline(bufferA, 1024);
36 b.getline(bufferB, 1024);
37 REQUIRE(std::string(bufferA) == std::string(bufferB));
89 std::ostringstream
str;
90 auto expectedResult = R
"EXPECTED(digraph structs {
100 std::vector<DeviceSpec> devices;
101 for (
auto& device : devices) {
102 REQUIRE(device.id !=
"");
115 "A" [label="{{}|A(2)|{<from_A_to_B>from_A_to_B|<from_A_to_C>from_A_to_C}}"];
116 "B" [label="{{<from_A_to_B>from_A_to_B}|B(2)|{<from_B_to_D>from_B_to_D}}"];
117 "C" [label="{{<from_A_to_C>from_A_to_C}|C(2)|{<from_C_to_D>from_C_to_D}}"];
118 "D" [label="{{<from_B_to_D>from_B_to_D|<from_C_to_D>from_C_to_D}|D(2)|{}}"];
119 "A":"from_A_to_B"-> "B":"from_A_to_B" [label="22000"]
120 "A":"from_A_to_C"-> "C":"from_A_to_C" [label="22001"]
121 "B":"from_B_to_D"-> "D":"from_B_to_D" [label="22002"]
122 "C":"from_C_to_D"-> "D":"from_C_to_D" [label="22003"]
130 std::ostringstream
str;
131 auto expectedResult = R
"EXPECTED(digraph structs {
140 std::vector<DeviceSpec> devices;
141 for (
auto& device : devices) {
142 REQUIRE(device.id !=
"");
155 "A" [label="{{}|A(3)|{<from_A_to_B_t0>from_A_to_B_t0|<from_A_to_B_t1>from_A_to_B_t1|<from_A_to_B_t2>from_A_to_B_t2}}"];
156 "B_t0" [label="{{<from_A_to_B_t0>from_A_to_B_t0}|B_t0(3)|{<from_B_t0_to_C_t0>from_B_t0_to_C_t0|<from_B_t0_to_C_t1>from_B_t0_to_C_t1}}"];
157 "B_t1" [label="{{<from_A_to_B_t1>from_A_to_B_t1}|B_t1(3)|{<from_B_t1_to_C_t0>from_B_t1_to_C_t0|<from_B_t1_to_C_t1>from_B_t1_to_C_t1}}"];
158 "B_t2" [label="{{<from_A_to_B_t2>from_A_to_B_t2}|B_t2(3)|{<from_B_t2_to_C_t0>from_B_t2_to_C_t0|<from_B_t2_to_C_t1>from_B_t2_to_C_t1}}"];
159 "C_t0" [label="{{<from_B_t0_to_C_t0>from_B_t0_to_C_t0|<from_B_t1_to_C_t0>from_B_t1_to_C_t0|<from_B_t2_to_C_t0>from_B_t2_to_C_t0}|C_t0(3)|{}}"];
160 "C_t1" [label="{{<from_B_t0_to_C_t1>from_B_t0_to_C_t1|<from_B_t1_to_C_t1>from_B_t1_to_C_t1|<from_B_t2_to_C_t1>from_B_t2_to_C_t1}|C_t1(3)|{}}"];
161 "A":"from_A_to_B_t0"-> "B_t0":"from_A_to_B_t0" [label="22000"]
162 "A":"from_A_to_B_t1"-> "B_t1":"from_A_to_B_t1" [label="22001"]
163 "A":"from_A_to_B_t2"-> "B_t2":"from_A_to_B_t2" [label="22002"]
164 "B_t0":"from_B_t0_to_C_t0"-> "C_t0":"from_B_t0_to_C_t0" [label="22003"]
165 "B_t1":"from_B_t1_to_C_t0"-> "C_t0":"from_B_t1_to_C_t0" [label="22005"]
166 "B_t2":"from_B_t2_to_C_t0"-> "C_t0":"from_B_t2_to_C_t0" [label="22007"]
167 "B_t0":"from_B_t0_to_C_t1"-> "C_t1":"from_B_t0_to_C_t1" [label="22004"]
168 "B_t1":"from_B_t1_to_C_t1"-> "C_t1":"from_B_t1_to_C_t1" [label="22006"]
169 "B_t2":"from_B_t2_to_C_t1"-> "C_t1":"from_B_t2_to_C_t1" [label="22008"]
WorkflowSpec defineDataProcessing(ConfigContext const &configcontext)
std::unique_ptr< ConfigContext > makeEmptyConfigContext()
GLboolean GLboolean GLboolean b
GLboolean GLboolean GLboolean GLboolean a
Defining PrimaryVertex explicitly as messageable.
TEST_CASE("test_prepareArguments")
std::vector< DataProcessorSpec > WorkflowSpec
DataProcessorSpec timePipeline(DataProcessorSpec original, size_t count)
std::vector< InputSpec > Inputs
std::vector< OutputSpec > Outputs
static std::vector< CallbacksPolicy > createDefaultPolicies()
static std::vector< ChannelConfigurationPolicy > createDefaultPolicies(ConfigContext const &configContext)
Default policies to use, based on the contents of the @configContex content.
static std::vector< CompletionPolicy > createDefaultPolicies()
Helper to create the default configuration.
static ComputingResource getLocalhostResource()
static void dataProcessorSpecs2DeviceSpecs(const WorkflowSpec &workflow, std::vector< ChannelConfigurationPolicy > const &channelPolicies, std::vector< CompletionPolicy > const &completionPolicies, std::vector< DispatchPolicy > const &dispatchPolicies, std::vector< ResourcePolicy > const &resourcePolicies, std::vector< CallbacksPolicy > const &callbacksPolicies, std::vector< SendingPolicy > const &sendingPolicy, std::vector< ForwardingPolicy > const &forwardingPolicies, std::vector< DeviceSpec > &devices, ResourceManager &resourceManager, std::string const &uniqueWorkflowId, ConfigContext const &configContext, bool optimizeTopology=false, unsigned short resourcesMonitoringInterval=0, std::string const &channelPrefix="", OverrideServiceSpecs const &overrideServices={})
static void dumpDeviceSpec2Graphviz(std::ostream &, const Devices &specs)
Helper to dump a set of devices as a graphviz file.
static void dumpDataProcessorSpec2Graphviz(std::ostream &, const WorkflowSpec &specs, std::vector< std::pair< int, int > > const &edges={})
Helper to dump a workflow as a graphviz file.
void lineByLineComparision(const std::string &as, const std::string &bs)
WorkflowSpec defineDataProcessing2()