From 871bd8191f53af5ad40a3ca967556d1235a5ba6a Mon Sep 17 00:00:00 2001 From: Giulio Eulisse <10544+ktf@users.noreply.github.com> Date: Thu, 21 Oct 2021 00:06:11 +0200 Subject: [PATCH 1/2] Use Lifetime::QA for sampled quantities This will make sure that sampled data will not be used to do counting of in-fly timeframes. --- Utilities/DataSampling/src/DataSamplingPolicy.cxx | 5 +++-- .../DataSampling/test/test_DataSamplingPolicy.cxx | 14 +++++++------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Utilities/DataSampling/src/DataSamplingPolicy.cxx b/Utilities/DataSampling/src/DataSamplingPolicy.cxx index cfd6e97683904..c55d52746bd5e 100644 --- a/Utilities/DataSampling/src/DataSamplingPolicy.cxx +++ b/Utilities/DataSampling/src/DataSamplingPolicy.cxx @@ -69,6 +69,7 @@ DataSamplingPolicy DataSamplingPolicy::fromConfiguration(const ptree& config) } for (const auto& outputAsInputSpec : outputsAsInputSpecs) { outputSpecs.emplace_back(DataSpecUtils::asOutputSpec(outputAsInputSpec)); + outputSpecs.back().lifetime = Lifetime::QA; } } else { // otherwise default format will be used for (const auto& inputSpec : inputSpecs) { @@ -78,12 +79,12 @@ DataSamplingPolicy DataSamplingPolicy::fromConfiguration(const ptree& config) createPolicyDataOrigin(), createPolicyDataDescription(name, outputId++), DataSpecUtils::getOptionalSubSpec(inputSpec).value(), - inputSpec.lifetime}); + Lifetime::QA}); } else { outputSpecs.emplace_back(OutputSpec{ {inputSpec.binding}, {createPolicyDataOrigin(), createPolicyDataDescription(name, outputId++)}, - inputSpec.lifetime}); + Lifetime::QA}); } } } diff --git a/Utilities/DataSampling/test/test_DataSamplingPolicy.cxx b/Utilities/DataSampling/test/test_DataSamplingPolicy.cxx index e1eda88c69e00..0a98589ef2820 100644 --- a/Utilities/DataSampling/test/test_DataSamplingPolicy.cxx +++ b/Utilities/DataSampling/test/test_DataSamplingPolicy.cxx @@ -68,8 +68,8 @@ BOOST_AUTO_TEST_CASE(DataSamplingPolicyFromConfiguration) BOOST_CHECK((policy.prepareOutput(ConcreteDataMatcher{"TST", "CHLEB", 33})) == (Output{"DS", "my_policy0", 33})); BOOST_CHECK((policy.prepareOutput(ConcreteDataMatcher{"TST", "MLEKO", 33})) == (Output{"DS", "my_policy1", 33})); const auto& map = policy.getPathMap(); - BOOST_CHECK((*map.find(ConcreteDataMatcher{"TST", "CHLEB", 33})).second == (OutputSpec{"DS", "my_policy0", 33})); - BOOST_CHECK((*map.find(ConcreteDataMatcher{"TST", "MLEKO", 33})).second == (OutputSpec{"DS", "my_policy1", 33})); + BOOST_CHECK_EQUAL((*map.find(ConcreteDataMatcher{"TST", "CHLEB", 33})).second, (OutputSpec{"DS", "my_policy0", 33, Lifetime::QA})); + BOOST_CHECK_EQUAL((*map.find(ConcreteDataMatcher{"TST", "MLEKO", 33})).second, (OutputSpec{"DS", "my_policy1", 33, Lifetime::QA})); BOOST_CHECK_EQUAL(map.size(), 2); BOOST_CHECK(policy.match(ConcreteDataMatcher{"TST", "CHLEB", 33})); @@ -97,8 +97,8 @@ BOOST_AUTO_TEST_CASE(DataSamplingPolicyFromConfiguration) BOOST_CHECK((policy.prepareOutput(ConcreteDataMatcher{"TST", "CHLEB", 33})) == (Output{"TST", "CHLEB_S", 33})); BOOST_CHECK((policy.prepareOutput(ConcreteDataMatcher{"TST", "MLEKO", 33})) == (Output{"TST", "MLEKO_S", 33})); const auto& map = policy.getPathMap(); - BOOST_CHECK((*map.find(ConcreteDataMatcher{"TST", "CHLEB", 33})).second == (OutputSpec{"TST", "CHLEB_S", 33})); - BOOST_CHECK((*map.find(ConcreteDataMatcher{"TST", "MLEKO", 33})).second == (OutputSpec{"TST", "MLEKO_S", 33})); + BOOST_CHECK_EQUAL((*map.find(ConcreteDataMatcher{"TST", "CHLEB", 33})).second, (OutputSpec{"TST", "CHLEB_S", 33, Lifetime::QA})); + BOOST_CHECK_EQUAL((*map.find(ConcreteDataMatcher{"TST", "MLEKO", 33})).second, (OutputSpec{"TST", "MLEKO_S", 33, Lifetime::QA})); BOOST_CHECK_EQUAL(map.size(), 2); } // with custom outputs which are wildcards @@ -109,8 +109,8 @@ BOOST_AUTO_TEST_CASE(DataSamplingPolicyFromConfiguration) BOOST_CHECK((policy.prepareOutput(ConcreteDataMatcher{"TST", "CHLEB", 33})) == (Output{"TST", "CHLEB_S", 33})); BOOST_CHECK((policy.prepareOutput(ConcreteDataMatcher{"TST", "MLEKO", 33})) == (Output{"TST", "MLEKO_S", 33})); const auto& map = policy.getPathMap(); - BOOST_CHECK((*map.find(ConcreteDataMatcher{"TST", "CHLEB", 33})).second == (OutputSpec{{"TST", "CHLEB_S"}})); - BOOST_CHECK((*map.find(ConcreteDataMatcher{"TST", "MLEKO", 33})).second == (OutputSpec{{"TST", "MLEKO_S"}})); + BOOST_CHECK_EQUAL((*map.find(ConcreteDataMatcher{"TST", "CHLEB", 33})).second, (OutputSpec{{"TST", "CHLEB_S"}, Lifetime::QA})); + BOOST_CHECK_EQUAL((*map.find(ConcreteDataMatcher{"TST", "MLEKO", 33})).second, (OutputSpec{{"TST", "MLEKO_S"}, Lifetime::QA})); BOOST_CHECK_EQUAL(map.size(), 2); } } @@ -138,4 +138,4 @@ BOOST_AUTO_TEST_CASE(DataSamplingPolicyStaticMethods) BOOST_CHECK(DataSamplingPolicy::createPolicyDataDescription("asdf", 0) == DataDescription("asdf0")); BOOST_CHECK(DataSamplingPolicy::createPolicyDataDescription("asdfasdfasdfasdf", 0) == DataDescription("asdfasdfasdfas0")); BOOST_CHECK(DataSamplingPolicy::createPolicyDataDescription("asdfasdfasdfasdf", 10) == DataDescription("asdfasdfasdfas10")); -} \ No newline at end of file +} From 639bcc8588b3bbd4eb610fd4a54be1bccc389c1d Mon Sep 17 00:00:00 2001 From: Barthelemy Date: Thu, 21 Oct 2021 15:08:13 +0200 Subject: [PATCH 2/2] fix test --- Utilities/DataSampling/test/test_DataSampling.cxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Utilities/DataSampling/test/test_DataSampling.cxx b/Utilities/DataSampling/test/test_DataSampling.cxx index 95e4b1c5fc7a2..0e0620ddc2c1c 100644 --- a/Utilities/DataSampling/test/test_DataSampling.cxx +++ b/Utilities/DataSampling/test/test_DataSampling.cxx @@ -66,13 +66,13 @@ BOOST_AUTO_TEST_CASE(DataSamplingSimpleFlow) auto output = std::find_if(disp->outputs.begin(), disp->outputs.end(), [](const OutputSpec& out) { - return DataSpecUtils::match(out, ConcreteDataMatcher{"DS", "tpcclusters0", 0}) && out.lifetime == Lifetime::Timeframe; + return DataSpecUtils::match(out, ConcreteDataMatcher{"DS", "tpcclusters0", 0}) && out.lifetime == Lifetime::QA; }); BOOST_CHECK(output != disp->outputs.end()); output = std::find_if(disp->outputs.begin(), disp->outputs.end(), [](const OutputSpec& out) { - return DataSpecUtils::match(out, ConcreteDataMatcher{"DS", "tpcclusters1", 0}) && out.lifetime == Lifetime::Timeframe; + return DataSpecUtils::match(out, ConcreteDataMatcher{"DS", "tpcclusters1", 0}) && out.lifetime == Lifetime::QA; }); BOOST_CHECK(output != disp->outputs.end()); @@ -125,13 +125,13 @@ BOOST_AUTO_TEST_CASE(DataSamplingParallelFlow) auto output = std::find_if(disp->outputs.begin(), disp->outputs.end(), [](const OutputSpec& out) { - return DataSpecUtils::match(out, ConcreteDataMatcher{"DS", "tpcclusters0", 0}) && out.lifetime == Lifetime::Timeframe; + return DataSpecUtils::match(out, ConcreteDataMatcher{"DS", "tpcclusters0", 0}) && out.lifetime == Lifetime::QA; }); BOOST_CHECK(output != disp->outputs.end()); output = std::find_if(disp->outputs.begin(), disp->outputs.end(), [](const OutputSpec& out) { - return DataSpecUtils::match(out, ConcreteDataMatcher{"DS", "tpcclusters1", 0}) && out.lifetime == Lifetime::Timeframe; + return DataSpecUtils::match(out, ConcreteDataMatcher{"DS", "tpcclusters1", 0}) && out.lifetime == Lifetime::QA; }); BOOST_CHECK(output != disp->outputs.end());