From e5b2248d6733f3d43d21db25a89548422909620f Mon Sep 17 00:00:00 2001 From: Tor Egge Date: Fri, 2 Dec 2016 22:39:26 +0000 Subject: Allocate feature executors on a stash to get them close together in memory. --- .../tests/fef/featureoverride/featureoverride.cpp | 32 +++++++++++----------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'searchlib/src/tests/fef/featureoverride') diff --git a/searchlib/src/tests/fef/featureoverride/featureoverride.cpp b/searchlib/src/tests/fef/featureoverride/featureoverride.cpp index b0929f50fa9..e5484443bbe 100644 --- a/searchlib/src/tests/fef/featureoverride/featureoverride.cpp +++ b/searchlib/src/tests/fef/featureoverride/featureoverride.cpp @@ -16,16 +16,16 @@ using namespace search::fef::test; using namespace search::features; using search::feature_t; -typedef FeatureExecutor::LP FESP; typedef Blueprint::SP BPSP; struct Fixture { MatchDataLayout mdl; - std::vector executors; + vespalib::Stash stash; + std::vector executors; MatchData::UP md; Fixture() : mdl(), executors(), md() {} - Fixture &add(FeatureExecutor::LP &executor, size_t outCnt) { + Fixture &add(FeatureExecutor *executor, size_t outCnt) { executor->inputs_done(); for (uint32_t outIdx = 0; outIdx < outCnt; ++outIdx) { executor->bindOutput(mdl.allocFeature()); @@ -44,19 +44,19 @@ struct Fixture feature_t resolveFeature(FeatureHandle handle) { return *md->resolveFeature(handle); } - FESP createValueExecutor() { + FeatureExecutor &createValueExecutor() { std::vector values; values.push_back(1.0); values.push_back(2.0); values.push_back(3.0); - return FESP(new ValueExecutor(values)); + return stash.create(values); } }; TEST_F("test decorator - single override", Fixture) { - FESP fe = f.createValueExecutor(); - fe = FESP(new FeatureOverrider(fe, 1, 50.0)); + FeatureExecutor *fe = &f.createValueExecutor(); + fe = &f.stash.template create(*fe, 1, 50.0); f.add(fe, 3).run(); EXPECT_EQUAL(fe->outputs().size(), 3u); @@ -67,9 +67,9 @@ TEST_F("test decorator - single override", Fixture) TEST_F("test decorator - multiple overrides", Fixture) { - FESP fe = f.createValueExecutor(); - fe = FESP(new FeatureOverrider(fe, 0, 50.0)); - fe = FESP(new FeatureOverrider(fe, 2, 100.0)); + FeatureExecutor *fe = &f.createValueExecutor(); + fe = &f.stash.template create(*fe, 0, 50.0); + fe = &f.stash.template create(*fe, 2, 100.0); f.add(fe, 3).run(); EXPECT_EQUAL(fe->outputs().size(), 3u); @@ -80,8 +80,8 @@ TEST_F("test decorator - multiple overrides", Fixture) TEST_F("test decorator - non-existing override", Fixture) { - FESP fe = f.createValueExecutor(); - fe = FESP(new FeatureOverrider(fe, 1000, 50.0)); + FeatureExecutor *fe = &f.createValueExecutor(); + fe = &f.stash.template create(*fe, 1000, 50.0); f.add(fe, 3).run(); EXPECT_EQUAL(fe->outputs().size(), 3u); @@ -93,17 +93,17 @@ TEST_F("test decorator - non-existing override", Fixture) TEST_F("test decorator - transitive override", Fixture) { FeatureExecutor::SharedInputs inputs; - FESP fe = f.createValueExecutor(); - fe = FESP(new FeatureOverrider(fe, 1, 50.0)); + FeatureExecutor *fe = &f.createValueExecutor(); + fe = &f.stash.template create(*fe, 1, 50.0); f.add(fe, 3); EXPECT_EQUAL(fe->outputs().size(), 3u); - FESP fe2 = FESP(new DoubleExecutor(3)); + FeatureExecutor *fe2 = &f.stash.template create(3); fe2->bind_shared_inputs(inputs); fe2->addInput(fe->outputs()[0]); fe2->addInput(fe->outputs()[1]); fe2->addInput(fe->outputs()[2]); - fe2 = FESP(new FeatureOverrider(fe2, 2, 10.0)); + fe2 = &f.stash.template create(*fe2, 2, 10.0); f.add(fe2, 3).run(); EXPECT_EQUAL(fe2->outputs().size(), 3u); -- cgit v1.2.3