aboutsummaryrefslogtreecommitdiffstats
path: root/streamingvisitors/src/tests
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2022-09-19 13:41:29 +0200
committerTor Egge <Tor.Egge@online.no>2022-09-19 13:41:29 +0200
commit0164f1909840b51a6211afaa0b01017738ec494a (patch)
treed0422832ce70ac8fe152b01814c052dd6aec7147 /streamingvisitors/src/tests
parent9282b402c6871048f4be628849f25d37497eddfb (diff)
Use SlimeFiller instead of SlimeFieldWriter for streaming search.
Diffstat (limited to 'streamingvisitors/src/tests')
-rw-r--r--streamingvisitors/src/tests/docsum/docsum.cpp156
1 files changed, 1 insertions, 155 deletions
diff --git a/streamingvisitors/src/tests/docsum/docsum.cpp b/streamingvisitors/src/tests/docsum/docsum.cpp
index b7f45123c48..fc30a0b1239 100644
--- a/streamingvisitors/src/tests/docsum/docsum.cpp
+++ b/streamingvisitors/src/tests/docsum/docsum.cpp
@@ -5,8 +5,8 @@
#include <vespa/document/datatype/weightedsetdatatype.h>
#include <vespa/document/datatype/mapdatatype.h>
#include <vespa/vsm/common/docsum.h>
+#include <vespa/vsm/common/storagedocument.h>
#include <vespa/vsm/vsm/flattendocsumwriter.h>
-#include <vespa/vsm/vsm/slimefieldwriter.h>
#include <vespa/vespalib/data/smart_buffer.h>
#include <vespa/vespalib/data/slime/slime.h>
@@ -59,15 +59,7 @@ private:
assertFlattenDocsumWriter(fdw, fv, exp);
}
void assertFlattenDocsumWriter(FlattenDocsumWriter & fdw, const FieldValue & fv, const std::string & exp);
- void assertSlimeFieldWriter(const FieldValue & fv, const std::string & exp) {
- SlimeFieldWriter sfw;
- TEST_DO(assertSlimeFieldWriter(sfw, fv, exp));
- }
- void assertSlimeFieldWriter(SlimeFieldWriter & sfw, const FieldValue & fv, const std::string & exp);
-
void testFlattenDocsumWriter();
- void testSlimeFieldWriter();
- void requireThatSlimeFieldWriterHandlesMap();
void testDocSumCache();
public:
@@ -107,32 +99,6 @@ DocsumTest::assertFlattenDocsumWriter(FlattenDocsumWriter & fdw, const FieldValu
}
void
-convert(SlimeFieldWriter & sfw, const document::FieldValue & fv, vespalib::Output & output)
-{
- vespalib::Slime slime;
- vespalib::slime::SlimeInserter inserter(slime);
- sfw.insert(fv, inserter);
- vespalib::slime::BinaryFormat::encode(slime, output);
-}
-
-void
-DocsumTest::assertSlimeFieldWriter(SlimeFieldWriter & sfw, const FieldValue & fv, const std::string & exp)
-{
- vespalib::SmartBuffer buffer(1024);
- convert(sfw, fv, buffer);
-
- vespalib::Slime gotSlime;
- vespalib::Memory serialized(buffer.obtain());
- size_t decodeRes = vespalib::slime::BinaryFormat::decode(serialized, gotSlime);
- ASSERT_EQUAL(decodeRes, serialized.size);
-
- vespalib::Slime expSlime;
- size_t used = vespalib::slime::JsonFormat::decode(exp, expSlime);
- EXPECT_TRUE(used > 0);
- EXPECT_EQUAL(expSlime, gotSlime);
-}
-
-void
DocsumTest::testFlattenDocsumWriter()
{
{ // basic tests
@@ -169,132 +135,12 @@ DocsumTest::testFlattenDocsumWriter()
}
}
-void
-DocsumTest::testSlimeFieldWriter()
-{
- { // basic types
- assertSlimeFieldWriter(LongFieldValue(123456789), "123456789");
- assertSlimeFieldWriter(BoolFieldValue(true), "true");
- assertSlimeFieldWriter(BoolFieldValue(false), "false");
- assertSlimeFieldWriter(DoubleFieldValue(12.34), "12.34");
- assertSlimeFieldWriter(StringFieldValue("foo bar"), "\"foo bar\"");
- }
- { // collection field values
- assertSlimeFieldWriter(createFieldValue(StringList().add("foo").add("bar").add("baz")),
- "[\"foo\",\"bar\",\"baz\"]");
- assertSlimeFieldWriter(createFieldValue(WeightedStringList().add(std::make_pair("bar", 20)).
- add(std::make_pair("baz", 30)).
- add(std::make_pair("foo", 10))),
- "[{item:\"bar\",weight:20},{item:\"baz\",weight:30},{item:\"foo\",weight:10}]");
- }
- { // struct field value
- StructDataType subType("substruct");
- Field fd("d", 0, *DataType::STRING);
- Field fe("e", 1, *DataType::STRING);
- subType.addField(fd);
- subType.addField(fe);
- StructFieldValue subValue(subType);
- subValue.setValue(fd, StringFieldValue("baz"));
- subValue.setValue(fe, StringFieldValue("qux"));
-
- StructDataType type("struct");
- Field fa("a", 0, *DataType::STRING);
- Field fb("b", 1, *DataType::STRING);
- Field fc("c", 2, subType);
- type.addField(fa);
- type.addField(fb);
- type.addField(fc);
- StructFieldValue value(type);
- value.setValue(fa, StringFieldValue("foo"));
- value.setValue(fb, StringFieldValue("bar"));
- value.setValue(fc, subValue);
-
-
- { // select a subset and then all
- SlimeFieldWriter sfw;
- DocsumFieldSpec::FieldIdentifierVector fields;
- {
- FieldPath path;
- type.buildFieldPath(path, "a");
- fields.push_back(DocsumFieldSpec::FieldIdentifier(0, std::move(path)));
- }
- {
- FieldPath path;
- type.buildFieldPath(path, "c.e");
- fields.push_back(DocsumFieldSpec::FieldIdentifier(0, std::move(path)));
- }
- sfw.setInputFields(fields);
- TEST_DO(assertSlimeFieldWriter(sfw, value, "{\"a\":\"foo\",\"c\":{\"e\":\"qux\"}}"));
- sfw.clear();
- TEST_DO(assertSlimeFieldWriter(sfw, value, "{\"a\":\"foo\",\"b\":\"bar\",\"c\":{\"d\":\"baz\",\"e\":\"qux\"}}"));
- }
-
- { // multiple invocations
- SlimeFieldWriter sfw;
- TEST_DO(assertSlimeFieldWriter(sfw, StringFieldValue("foo"), "\"foo\""));
- sfw.clear();
- TEST_DO(assertSlimeFieldWriter(sfw, StringFieldValue("bar"), "\"bar\""));
- sfw.clear();
- TEST_DO(assertSlimeFieldWriter(sfw, StringFieldValue("baz"), "\"baz\""));
- }
-
- }
-}
-
-void
-DocsumTest::requireThatSlimeFieldWriterHandlesMap()
-{
- { // map<string, string>
- MapDataType mapType(*DataType::STRING, *DataType::STRING);
- MapFieldValue mapfv(mapType);
- EXPECT_TRUE(mapfv.put(StringFieldValue("k1"), StringFieldValue("v1")));
- EXPECT_TRUE(mapfv.put(StringFieldValue("k2"), StringFieldValue("v2")));
- assertSlimeFieldWriter(mapfv, "[{\"key\":\"k1\",\"value\":\"v1\"},{\"key\":\"k2\",\"value\":\"v2\"}]");
- }
- { // map<string, struct>
- StructDataType structType("struct");
- Field fa("a", 0, *DataType::STRING);
- Field fb("b", 1, *DataType::STRING);
- structType.addField(fa);
- structType.addField(fb);
- StructFieldValue structValue(structType);
- structValue.setValue(fa, StringFieldValue("foo"));
- structValue.setValue(fb, StringFieldValue("bar"));
- MapDataType mapType(*DataType::STRING, structType);
- MapFieldValue mapfv(mapType);
- EXPECT_TRUE(mapfv.put(StringFieldValue("k1"), structValue));
- { // select a subset and then all
- SlimeFieldWriter sfw;
- DocsumFieldSpec::FieldIdentifierVector fields;
- {
- FieldPath path;
- mapType.buildFieldPath(path, "value.b");
- fields.push_back(DocsumFieldSpec::FieldIdentifier(0, std::move(path)));
- }
- sfw.setInputFields(fields);
- TEST_DO(assertSlimeFieldWriter(sfw, mapfv, "[{\"key\":\"k1\",\"value\":{\"b\":\"bar\"}}]"));
- {
- FieldPath path;
- mapType.buildFieldPath(path, "{k1}.a");
- fields[0] = DocsumFieldSpec::FieldIdentifier(0, std::move(path));
- }
- sfw.clear();
- sfw.setInputFields(fields);
- TEST_DO(assertSlimeFieldWriter(sfw, mapfv, "[{\"key\":\"k1\",\"value\":{\"a\":\"foo\"}}]"));
- sfw.clear(); // all fields implicit
- TEST_DO(assertSlimeFieldWriter(sfw, mapfv, "[{\"key\":\"k1\",\"value\":{\"a\":\"foo\",\"b\":\"bar\"}}]"));
- }
- }
-}
-
int
DocsumTest::Main()
{
TEST_INIT("docsum_test");
TEST_DO(testFlattenDocsumWriter());
- TEST_DO(testSlimeFieldWriter());
- TEST_DO(requireThatSlimeFieldWriterHandlesMap());
TEST_DONE();
}