23 {
InputSpec{
"foo",
"A",
"COLLISIONCONTEXT", 1, Lifetime::Condition, {
24 ConfigParamSpec{
"aUrl", VariantType::String,
"foo/bar", {
"A InputSpec option"}},
25 ConfigParamSpec{
"bUrl", VariantType::String,
"foo/foo", {
"Another InputSpec option"}},
27 {
OutputSpec{{
"bar"},
"C",
"D", 2, Lifetime::Timeframe}},
33 ConfigParamSpec{
"aString", VariantType::String,
"some string", {
"A String"}}}},
51 {{
"label a"}, {
"label \"b\""}},
52 {{
"key1",
"v\"al'1"}, {
"",
"val2"}, {
"key3",
""}, {
"",
""}}}};
54 std::vector<DataProcessorInfo> dataProcessorInfoOut{
55 {.name =
"A", .executable =
"test_Framework_test_SerializationWorkflow", .cmdLineArgs = {
"foo"}, .workflowOptions = {
ConfigParamSpec{
"aBool", VariantType::Bool,
true, {
"A Bool"}}}},
56 {.
name =
"B", .executable =
"test_Framework_test_SerializationWorkflow", .cmdLineArgs = {
"b-bar",
"bfoof",
"fbdbfaso"}},
57 {.name =
"C", .executable =
"test_Framework_test_SerializationWorkflow"},
58 {.name =
"D", .executable =
"test_Framework_test_SerializationWorkflow"},
61 CommandInfo commandInfoOut{
"o2-dpl-workflow -b --option 1 --option 2"};
63 std::vector<DataProcessorInfo> dataProcessorInfoIn{};
66 std::ostringstream firstDump;
68 std::istringstream is;
69 is.str(firstDump.str());
73 std::ostringstream secondDump;
76 REQUIRE(w0.size() == 4);
77 REQUIRE(w0.size() == w1.size());
78 REQUIRE(firstDump.str() == secondDump.str());
79 REQUIRE(commandInfoIn.
command == commandInfoOut.command);
82 REQUIRE(std::get_if<ConcreteDataMatcher>(&w1[0].inputs[0].matcher) !=
nullptr);
93 .inputs = {{
"clbPayload",
"CLP"}, {
"clbWrapper",
"CLW"}},
96 std::vector<DataProcessorInfo> dataProcessorInfoOut{
97 {.name =
"A", .executable =
"test_Framework_test_SerializationWorkflow"},
100 CommandInfo commandInfoOut{
"o2-dpl-workflow -b --option 1 --option 2"};
102 std::vector<DataProcessorInfo> dataProcessorInfoIn{};
105 std::ostringstream firstDump;
107 std::istringstream is;
108 is.str(firstDump.str());
112 std::ostringstream secondDump;
115 REQUIRE(w0.size() == 1);
116 REQUIRE(w0.size() == w1.size());
117 REQUIRE(firstDump.str() == secondDump.str());
118 REQUIRE(commandInfoIn.
command == commandInfoOut.command);
129 .outputs = {
OutputSpec{
OutputLabel{
"o1"},
o2::header::DataOrigin{
"TST"},
"OUTPUT1", 0, Lifetime::Timeframe, {{
"param1", VariantType::Bool,
true,
ConfigParamSpec::HelpString{
"\"\""}}, {
"param2", VariantType::Bool,
true,
ConfigParamSpec::HelpString{
"\"\""}}}},
132 std::vector<DataProcessorInfo> dataProcessorInfoOut{
133 {.name =
"S1", .executable =
"test_Framework_test_SerializationWorkflow"},
138 std::vector<DataProcessorInfo> dataProcessorInfoIn{};
141 std::ostringstream firstDump;
143 std::istringstream is;
144 is.str(firstDump.str());
149 REQUIRE(wsi[0].outputs[0].metadata.size() == 2);
150 REQUIRE(wsi[0].outputs[1].metadata.size() == 0);
151 REQUIRE(wso[0].outputs[0].metadata.size() == wsi[0].outputs[0].metadata.size());
152 REQUIRE(wso[0].outputs[1].metadata.size() == wsi[0].outputs[1].metadata.size());
153 REQUIRE(wso[0].outputs[0].metadata[0] == wsi[0].outputs[0].metadata[0]);
154 REQUIRE(wso[0].outputs[0].metadata[1] == wsi[0].outputs[0].metadata[1]);