aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests/fef/featureoverride
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@yahoo-inc.com>2016-12-02 22:39:26 +0000
committerTor Egge <Tor.Egge@yahoo-inc.com>2016-12-02 22:39:26 +0000
commite5b2248d6733f3d43d21db25a89548422909620f (patch)
treef72f819179224c3b834818aeee8158e35bb662a8 /searchlib/src/tests/fef/featureoverride
parentaa838024ec24d39829c1dc18c9ee2cd0b57c9db3 (diff)
Allocate feature executors on a stash to get them close together in memory.
Diffstat (limited to 'searchlib/src/tests/fef/featureoverride')
-rw-r--r--searchlib/src/tests/fef/featureoverride/featureoverride.cpp32
1 files changed, 16 insertions, 16 deletions
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<FeatureExecutor::LP> executors;
+ vespalib::Stash stash;
+ std::vector<FeatureExecutor *> 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<feature_t> values;
values.push_back(1.0);
values.push_back(2.0);
values.push_back(3.0);
- return FESP(new ValueExecutor(values));
+ return stash.create<ValueExecutor>(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<FeatureOverrider>(*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<FeatureOverrider>(*fe, 0, 50.0);
+ fe = &f.stash.template create<FeatureOverrider>(*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<FeatureOverrider>(*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<FeatureOverrider>(*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<DoubleExecutor>(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<FeatureOverrider>(*fe2, 2, 10.0);
f.add(fe2, 3).run();
EXPECT_EQUAL(fe2->outputs().size(), 3u);