aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests/queryeval/blueprint
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-03-05 06:04:04 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2019-03-05 12:16:43 +0000
commitf1c2464fd83e6623000ad6eb59272b189fffb78e (patch)
tree55288880cd7f6a05125079aaa432c5740fae28ef /searchlib/src/tests/queryeval/blueprint
parentede6354f72951bde6247519e03d6445d3f155985 (diff)
Transform to slime.
Diffstat (limited to 'searchlib/src/tests/queryeval/blueprint')
-rw-r--r--searchlib/src/tests/queryeval/blueprint/blueprint_test.cpp68
1 files changed, 68 insertions, 0 deletions
diff --git a/searchlib/src/tests/queryeval/blueprint/blueprint_test.cpp b/searchlib/src/tests/queryeval/blueprint/blueprint_test.cpp
index e5ee83507ae..0d34b41d5c7 100644
--- a/searchlib/src/tests/queryeval/blueprint/blueprint_test.cpp
+++ b/searchlib/src/tests/queryeval/blueprint/blueprint_test.cpp
@@ -5,6 +5,7 @@
#include <vespa/searchlib/queryeval/intermediate_blueprints.h>
#include <vespa/vespalib/objects/objectdumper.h>
#include <vespa/vespalib/objects/visit.h>
+#include <vespa/vespalib/data/slime/slime.h>
#include <algorithm>
#include <vespa/log/log.h>
@@ -178,6 +179,7 @@ public:
void testSearchCreation();
void testBlueprintMakeNew();
void requireThatAsStringWorks();
+ void requireThatAsSlimeWorks();
void requireThatVisitMembersWorks();
void requireThatDocIdLimitInjectionWorks();
int Main() override;
@@ -698,6 +700,59 @@ getExpectedBlueprint()
"}\n";
}
+vespalib::string
+getExpectedSlimeBlueprint() {
+ return "{"
+ " '(anonymous namespace)::MyOr': {"
+ " isTermLike: true,"
+ " fields: {"
+ " '[type]': 'FieldList',"
+ " '[0]': {"
+ " '[type]': 'Field',"
+ " fieldId: 5,"
+ " handle: 7,"
+ " isFilter: false"
+ " }"
+ " },"
+ " estimate: {"
+ " '[type]': 'HitEstimate',"
+ " empty: false,"
+ " estHits: 9,"
+ " tree_size: 2,"
+ " allow_termwise_eval: 0"
+ " },"
+ " sourceId: 4294967295,"
+ " docid_limit: 0,"
+ " children: {"
+ " '[type]': 'std::vector',"
+ " '[0]': {"
+ " isTermLike: true,"
+ " fields: {"
+ " '[type]': 'FieldList',"
+ " '[0]': {"
+ " '[type]': 'Field',"
+ " fieldId: 5,"
+ " handle: 7,"
+ " isFilter: false"
+ " }"
+ " },"
+ " '[type]': '(anonymous namespace)::MyTerm',"
+ " estimate: {"
+ " '[type]': 'HitEstimate',"
+ " empty: false,"
+ " estHits: 9,"
+ " tree_size: 1,"
+ " allow_termwise_eval: 1"
+ " },"
+ " sourceId: 4294967295,"
+ " docid_limit: 0"
+ " }"
+ " }"
+ " }"
+ "}";
+}
+
+
struct BlueprintFixture
{
MyOr _blueprint;
@@ -714,6 +769,18 @@ Test::requireThatAsStringWorks()
}
void
+Test::requireThatAsSlimeWorks()
+{
+ BlueprintFixture f;
+ vespalib::Slime slime;
+ f._blueprint.asSlime(vespalib::slime::SlimeInserter(slime));
+ auto s = slime.toString();
+ vespalib::Slime expectedSlime;
+ vespalib::slime::JsonFormat::decode(getExpectedSlimeBlueprint(), expectedSlime);
+ EXPECT_EQUAL(expectedSlime, slime);
+}
+
+void
Test::requireThatVisitMembersWorks()
{
BlueprintFixture f;
@@ -749,6 +816,7 @@ Test::Main()
testSearchCreation();
testBlueprintMakeNew();
requireThatAsStringWorks();
+ requireThatAsSlimeWorks();
requireThatVisitMembersWorks();
requireThatDocIdLimitInjectionWorks();
TEST_DONE();