From eb31ab31fea1cccd529de9eeeb6385f51c9726b3 Mon Sep 17 00:00:00 2001 From: Giulio Eulisse <10544+ktf@users.noreply.github.com> Date: Thu, 22 Oct 2020 14:27:29 +0200 Subject: [PATCH] DPL: fix parsing of inputspec metadata --- .../Core/src/WorkflowSerializationHelpers.cxx | 2 + .../Core/test/test_WorkflowSerialization.cxx | 54 ++++++++++--------- 2 files changed, 31 insertions(+), 25 deletions(-) diff --git a/Framework/Core/src/WorkflowSerializationHelpers.cxx b/Framework/Core/src/WorkflowSerializationHelpers.cxx index 1b892d19405c5..20bb11ee7407e 100644 --- a/Framework/Core/src/WorkflowSerializationHelpers.cxx +++ b/Framework/Core/src/WorkflowSerializationHelpers.cxx @@ -230,6 +230,8 @@ struct WorkflowImporter : public rapidjson::BaseReaderHandler, outputHasSubSpec = false; } else if (in(State::IN_OPTIONS)) { push(State::IN_OPTION); + } else if (in(State::IN_INPUT_OPTIONS)) { + push(State::IN_OPTION); } else if (in(State::IN_WORKFLOW_OPTIONS)) { push(State::IN_OPTION); } else if (in(State::IN_METADATA)) { diff --git a/Framework/Core/test/test_WorkflowSerialization.cxx b/Framework/Core/test/test_WorkflowSerialization.cxx index 511d4ccca5307..4618b5e28813c 100644 --- a/Framework/Core/test/test_WorkflowSerialization.cxx +++ b/Framework/Core/test/test_WorkflowSerialization.cxx @@ -20,31 +20,35 @@ using namespace o2::framework; BOOST_AUTO_TEST_CASE(TestVerifyWorkflow) { using namespace o2::framework; - WorkflowSpec w0{ - DataProcessorSpec{"A", - {InputSpec{"foo", "A", "COLLISIONCONTEXT", 1, Lifetime::Condition, {ConfigParamSpec{"aUrl", VariantType::String, "foo/bar", {"A InputSpec option"}}}}}, - {OutputSpec{{"bar"}, "C", "D", 2, Lifetime::Timeframe}}, - AlgorithmSpec{[](ProcessingContext& ctx) {}}, - {ConfigParamSpec{"aInt", VariantType::Int, 0, {"An Int"}}, - ConfigParamSpec{"aFloat", VariantType::Float, 1.3, {"A Float"}}, - ConfigParamSpec{"aBool", VariantType::Bool, true, {"A Bool"}}, - ConfigParamSpec{"aString", VariantType::String, "some string", {"A String"}}}}, - DataProcessorSpec{"B", - {InputSpec{"foo", "C", "D"}}, - {OutputSpec{{"bar1"}, "E", "F", 0}, - OutputSpec{{"bar2"}, "E", "F", 1}}, - AlgorithmSpec{[](ProcessingContext& ctx) {}}, - {}}, - DataProcessorSpec{"C", - {}, - {OutputSpec{{"bar"}, "G", "H"}}, - AlgorithmSpec{[](ProcessingContext& ctx) {}}, - {}}, - DataProcessorSpec{"D", - {InputSpec{"foo", {"C", "D"}}}, - {OutputSpec{{"bar"}, {"I", "L"}}}, - AlgorithmSpec{[](ProcessingContext& ctx) {}}, - {}}}; + WorkflowSpec w0{ // + DataProcessorSpec{"A", // + {InputSpec{"foo", "A", "COLLISIONCONTEXT", 1, Lifetime::Condition, { + ConfigParamSpec{"aUrl", VariantType::String, "foo/bar", {"A InputSpec option"}}, // + ConfigParamSpec{"bUrl", VariantType::String, "foo/foo", {"Another InputSpec option"}}, // + }}}, // + {OutputSpec{{"bar"}, "C", "D", 2, Lifetime::Timeframe}}, // + AlgorithmSpec{[](ProcessingContext& ctx) {}}, // + { // + ConfigParamSpec{"aInt", VariantType::Int, 0, {"An Int"}}, // + ConfigParamSpec{"aFloat", VariantType::Float, 1.3, {"A Float"}}, // + ConfigParamSpec{"aBool", VariantType::Bool, true, {"A Bool"}}, // + ConfigParamSpec{"aString", VariantType::String, "some string", {"A String"}}}}, // // + DataProcessorSpec{"B", // + {InputSpec{"foo", "C", "D"}}, // + { // + OutputSpec{{"bar1"}, "E", "F", 0}, // + OutputSpec{{"bar2"}, "E", "F", 1}}, // + AlgorithmSpec{[](ProcessingContext& ctx) {}}, // + {}}, // + DataProcessorSpec{"C", {}, // + { // + OutputSpec{{"bar"}, "G", "H"}}, // + AlgorithmSpec{[](ProcessingContext& ctx) {}}, // + {}}, // + DataProcessorSpec{"D", {InputSpec{"foo", {"C", "D"}}}, // + {OutputSpec{{"bar"}, {"I", "L"}}}, // + AlgorithmSpec{[](ProcessingContext& ctx) {}}, // + {}}}; // std::vector metadataOut{ {"A", "test_Framework_test_SerializationWorkflow", {"foo"}, {ConfigParamSpec{"aBool", VariantType::Bool, true, {"A Bool"}}}},