aboutsummaryrefslogtreecommitdiffstats
path: root/document/src/tests/documenttestcase.cpp
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-08-21 07:59:11 +0200
committerGitHub <noreply@github.com>2019-08-21 07:59:11 +0200
commit415e9e002e4207809247b6bd5f9419960ab43ed1 (patch)
tree0111e27fb0b3e494401a98279d36c58b48c3d265 /document/src/tests/documenttestcase.cpp
parentbe5759f30affe0e38ea4c442586a457f9cb698f8 (diff)
Revert "doc: -> id:"
Diffstat (limited to 'document/src/tests/documenttestcase.cpp')
-rw-r--r--document/src/tests/documenttestcase.cpp104
1 files changed, 60 insertions, 44 deletions
diff --git a/document/src/tests/documenttestcase.cpp b/document/src/tests/documenttestcase.cpp
index fa59358f6d3..089ab5a2a2d 100644
--- a/document/src/tests/documenttestcase.cpp
+++ b/document/src/tests/documenttestcase.cpp
@@ -112,7 +112,7 @@ TEST(DocumentTest, testTraversing)
type.addField(primitive1);
type.addField(structl1s1);
- Document doc(type, DocumentId("id:ns:test::1"));
+ Document doc(type, DocumentId("doc::testdoc"));
doc.setValue(primitive1, IntFieldValue(1));
StructFieldValue l1s1(struct3);
@@ -184,7 +184,7 @@ TEST(DocumentTest, testVariables)
iiiaV.add(iiaV);
}
- Document doc(type, DocumentId("id:ns:test::1"));
+ Document doc(type, DocumentId("doc::testdoc"));
doc.setValue(iiiarrF, iiiaV);
{
@@ -291,7 +291,7 @@ TEST(DocumentTest, testModifyDocument)
type.addField(primitive1);
type.addField(structl1s1);
- Document::UP doc(new Document(type, DocumentId("id:ns:test::1")));
+ Document::UP doc(new Document(type, DocumentId("doc::testdoc")));
doc->setValue(primitive1, IntFieldValue(1));
StructFieldValue l1s1(struct3);
@@ -364,7 +364,7 @@ TEST(DocumentTest, testSimpleUsage)
type->addField(strF);
DocumentTypeRepo repo(*type);
- Document value(*repo.getDocumentType("test"), DocumentId("id:ns:test::1"));
+ Document value(*repo.getDocumentType("test"), DocumentId("doc::testdoc"));
// Initially empty
EXPECT_EQ(size_t(0), value.getSetFieldCount());
@@ -393,7 +393,7 @@ TEST(DocumentTest, testSimpleUsage)
value2.deserialize(repo, *buffer);
EXPECT_TRUE(value2.hasValue(intF));
EXPECT_EQ(value, value2);
- EXPECT_EQ(DocumentId("id:ns:test::1"), value2.getId());
+ EXPECT_EQ(DocumentId("doc::testdoc"), value2.getId());
// Various ways of removing
{
@@ -446,11 +446,11 @@ TEST(DocumentTest, testSimpleUsage)
// Output
EXPECT_EQ(
- std::string("Document(id:ns:test::1, DocumentType(test))"),
+ std::string("Document(doc::testdoc, DocumentType(test))"),
value.toString(false));
EXPECT_EQ(
std::string(
-" Document(id:ns:test::1\n"
+" Document(doc::testdoc\n"
" DocumentType(test, id -877171244)\n"
" : DocumentType(document) {\n"
" StructDataType(test.header, id 306916075) {\n"
@@ -465,7 +465,7 @@ TEST(DocumentTest, testSimpleUsage)
" " + value.toString(true, " "));
EXPECT_EQ(
std::string(
- "<document documenttype=\"test\" documentid=\"id:ns:test::1\">\n"
+ "<document documenttype=\"test\" documentid=\"doc::testdoc\">\n"
" <int>1</int>\n"
" <long>2</long>\n"
"</document>"),
@@ -483,10 +483,11 @@ TEST(DocumentTest, testSimpleUsage)
// Refuse to accept non-document types
try{
StructDataType otherType("foo", 4);
- Document value6(otherType, DocumentId("id:ns:foo::1"));
+ Document value6(otherType, DocumentId("doc::"));
FAIL() << "Didn't complain about non-document type";
} catch (std::exception& e) {
- EXPECT_THAT(e.what(), HasSubstr("Cannot generate a document with non-document type"));
+ EXPECT_THAT(e.what(), HasSubstr("Cannot generate a document with "
+ "non-document type"));
}
// Refuse to set wrong types
@@ -562,7 +563,7 @@ TEST(DocumentTest, testReadSerializedFile)
ByteBuffer buf(len);
lseek(fd,0,SEEK_SET);
if (read(fd, buf.getBuffer(), len) != (ssize_t)len) {
- throw vespalib::Exception("read failed");
+ throw vespalib::Exception("read failed");
}
close(fd);
@@ -596,7 +597,7 @@ TEST(DocumentTest, testReadSerializedFileCompressed)
ByteBuffer buf(len);
lseek(fd,0,SEEK_SET);
if (read(fd, buf.getBuffer(), len) != len) {
- throw vespalib::Exception("read failed");
+ throw vespalib::Exception("read failed");
}
close(fd);
@@ -644,7 +645,6 @@ namespace {
* When adding new fields to the documents, use the version tagged with each
* file to ignore these field for old types.
*/
-
TEST(DocumentTest,testReadSerializedAllVersions)
{
const int array_id = 1650586661;
@@ -679,7 +679,8 @@ TEST(DocumentTest,testReadSerializedAllVersions)
// Create a memory instance of document
{
- Document doc(*docType, DocumentId("id:ns:serializetest::http://test.doc.id/"));
+ Document doc(*docType,
+ DocumentId("doc:serializetest:http://test.doc.id/"));
doc.set("intfield", 5);
doc.set("floatfield", -9.23);
doc.set("stringfield", "This is a string.");
@@ -687,7 +688,8 @@ TEST(DocumentTest,testReadSerializedAllVersions)
doc.set("doublefield", 98374532.398820);
doc.set("bytefield", -2);
doc.setValue("rawfield", RawFieldValue("RAW DATA", 8));
- Document docInDoc(*docInDocType, DocumentId("id:ns:docindoc::http://doc.in.doc/"));
+ Document docInDoc(*docInDocType,
+ DocumentId("doc:serializetest:http://doc.in.doc/"));
docInDoc.set("stringindocfield", "Elvis is dead");
//docInDoc.setCompression(CompressionConfig(CompressionConfig::NONE, 0, 0));
doc.setValue("docfield", docInDoc);
@@ -733,6 +735,7 @@ TEST(DocumentTest,testReadSerializedAllVersions)
std::vector<TestDoc> tests;
tests.push_back(TestDoc(TEST_PATH("data/document-cpp-v8-uncompressed.dat"), 8));
+ tests.push_back(TestDoc(TEST_PATH("data/document-cpp-v7-uncompressed.dat"), 7));
tests.push_back(TestDoc(jpath + "document-java-v8-uncompressed.dat", 8));
for (uint32_t i=0; i<tests.size(); ++i) {
int version = tests[i]._createdVersion;
@@ -746,7 +749,7 @@ TEST(DocumentTest,testReadSerializedAllVersions)
ByteBuffer buf(len);
lseek(fd,0,SEEK_SET);
if (read(fd, buf.getBuffer(), len) != len) {
- throw vespalib::Exception("read failed");
+ throw vespalib::Exception("read failed");
}
close(fd);
@@ -830,7 +833,9 @@ TEST(DocumentTest, testGenerateSerializedFile)
{
const std::string file_name = TEST_PATH("data/crossplatform-java-cpp-doctypes.cfg");
DocumentTypeRepo repo(readDocumenttypesConfig(file_name));
- Document doc(*repo.getDocumentType("serializetest"), DocumentId("id:ns:serializetest::http://test.doc.id/"));
+ Document doc(*repo.getDocumentType("serializetest"),
+ DocumentId(DocIdString("serializetest",
+ "http://test.doc.id/")));
doc.set("intfield", 5);
doc.set("floatfield", -9.23);
@@ -843,7 +848,8 @@ TEST(DocumentTest, testGenerateSerializedFile)
const DocumentType *docindoc_type = repo.getDocumentType("docindoc");
EXPECT_TRUE(docindoc_type);
- Document embedDoc(*docindoc_type, DocumentId("id:ns:docindoc::http://embedded"));
+ Document embedDoc(*docindoc_type,
+ DocumentId(DocIdString("docindoc", "http://embedded")));
doc.setValue("docfield", embedDoc);
@@ -868,7 +874,7 @@ TEST(DocumentTest, testGenerateSerializedFile)
int fd = open((serializedDir + "/serializecpp.dat").c_str(),
O_WRONLY | O_TRUNC | O_CREAT, 0644);
if (write(fd, buf->getBuffer(), buf->getPos()) != (ssize_t)buf->getPos()) {
- throw vespalib::Exception("write failed");
+ throw vespalib::Exception("write failed");
}
close(fd);
@@ -877,16 +883,16 @@ TEST(DocumentTest, testGenerateSerializedFile)
fd = open((serializedDir + "/serializecppsplit_header.dat").c_str(),
O_WRONLY | O_TRUNC | O_CREAT, 0644);
if (write(fd, hBuf.getBuffer(), hBuf.getPos()) != (ssize_t)hBuf.getPos()) {
- throw vespalib::Exception("write failed");
+ throw vespalib::Exception("write failed");
}
close(fd);
ByteBuffer bBuf(getSerializedSizeBody(doc));
doc.serializeBody(bBuf);
- fd = open((serializedDir+ "/serializecppsplit_body.dat").c_str(),
+ fd = open(TEST_PATH("/serializecppsplit_body.dat").c_str(),
O_WRONLY | O_TRUNC | O_CREAT, 0644);
if (write(fd, bBuf.getBuffer(), bBuf.getPos()) != (ssize_t)bBuf.getPos()) {
- throw vespalib::Exception("write failed");
+ throw vespalib::Exception("write failed");
}
close(fd);
@@ -898,10 +904,10 @@ TEST(DocumentTest, testGenerateSerializedFile)
doc.serialize(lz4buf);
lz4buf.flip();
- fd = open((serializedDir + "/serializecpp-lz4-level9.dat").c_str(),
+ fd = open(TEST_PATH("/serializecpp-lz4-level9.dat").c_str(),
O_WRONLY | O_TRUNC | O_CREAT, 0644);
if (write(fd, lz4buf.getBufferAtPos(), lz4buf.getRemaining()) != (ssize_t)lz4buf.getRemaining()) {
- throw vespalib::Exception("write failed");
+ throw vespalib::Exception("write failed");
}
close(fd);
}
@@ -909,14 +915,15 @@ TEST(DocumentTest, testGenerateSerializedFile)
TEST(DocumentTest, testGetURIFromSerialized)
{
TestDocRepo test_repo;
- Document doc(*test_repo.getDocumentType("testdoctype1"), DocumentId("id:ns:testdoctype1::1"));
+ Document doc(*test_repo.getDocumentType("testdoctype1"),
+ DocumentId("doc:ns:testdoc"));
{
std::unique_ptr<ByteBuffer> serialized = doc.serialize();
serialized->flip();
EXPECT_EQ(
- vespalib::string("id:ns:testdoctype1::1"),
+ vespalib::string(DocIdString("ns", "testdoc").toString()),
Document::getIdFromSerialized(*serialized).toString());
EXPECT_EQ(vespalib::string("testdoctype1"),
@@ -930,7 +937,8 @@ TEST(DocumentTest, testGetURIFromSerialized)
serialized->flip();
Document doc2(test_repo.getTypeRepo(), *serialized, false, NULL);
- EXPECT_EQ(vespalib::string("id:ns:testdoctype1::1"), doc2.getId().toString());
+ EXPECT_EQ(
+ vespalib::string(DocIdString("ns", "testdoc").toString()), doc2.getId().toString());
EXPECT_EQ(vespalib::string("testdoctype1"), doc2.getType().getName());
}
}
@@ -939,7 +947,8 @@ TEST(DocumentTest, testBogusserialize)
{
TestDocRepo test_repo;
try {
- auto buf = std::make_unique<ByteBuffer>("aoifjweprjwoejr203r+2+4r823++!",100);
+ std::unique_ptr<ByteBuffer> buf(
+ new ByteBuffer("aoifjweprjwoejr203r+2+4r823++!",100));
Document doc(test_repo.getTypeRepo(), *buf);
FAIL() << "Failed to throw exception deserializing bogus data";
} catch (DeserializeException& e) {
@@ -947,7 +956,7 @@ TEST(DocumentTest, testBogusserialize)
}
try {
- auto buf = std::make_unique<ByteBuffer>("",0);
+ std::unique_ptr<ByteBuffer> buf(new ByteBuffer("",0));
Document doc(test_repo.getTypeRepo(), *buf);
FAIL() << "Failed to throw exception deserializing empty buffer";
} catch (DeserializeException& e) {
@@ -958,17 +967,19 @@ TEST(DocumentTest, testBogusserialize)
TEST(DocumentTest, testCRC32)
{
TestDocRepo test_repo;
- Document doc(*test_repo.getDocumentType("testdoctype1"), DocumentId("id:ns:testdoctype1::crawler:http://www.ntnu.no/"));
+ Document doc(*test_repo.getDocumentType("testdoctype1"),
+ DocumentId(DocIdString("crawler", "http://www.ntnu.no/")));
- doc.setValue(doc.getField("hstringval"), StringFieldValue("bla bla bla bla bla"));
+ doc.setValue(doc.getField("hstringval"),
+ StringFieldValue("bla bla bla bla bla"));
uint32_t crc = doc.calculateChecksum();
- EXPECT_EQ(3987392271u, crc);
+ EXPECT_EQ(277496115u, crc);
std::unique_ptr<ByteBuffer> buf = doc.serialize();
buf->flip();
- int pos = 30;
+ int pos = 20;
// Corrupt serialization.
buf->getBuffer()[pos] ^= 72;
@@ -991,11 +1002,12 @@ TEST(DocumentTest, testHasChanged)
{
TestDocRepo test_repo;
Document doc(*test_repo.getDocumentType("testdoctype1"),
- DocumentId("id:ns:testdoctype1::crawler:http://www.ntnu.no/"));
+ DocumentId(DocIdString("crawler", "http://www.ntnu.no/")));
// Before deserialization we are changed.
EXPECT_TRUE(doc.hasChanged());
- doc.setValue(doc.getField("hstringval"), StringFieldValue("bla bla bla bla bla"));
+ doc.setValue(doc.getField("hstringval"),
+ StringFieldValue("bla bla bla bla bla"));
// Still changed after setting a value of course.
EXPECT_TRUE(doc.hasChanged());
@@ -1066,7 +1078,8 @@ TEST(DocumentTest, testSliceSerialize)
// bytebuffer.
TestDocMan testDocMan;
Document::UP doc = testDocMan.createDocument();
- Document::UP doc2 = testDocMan.createDocument("Some other content", "id:ns:testdoctype1::anotherdoc");
+ Document::UP doc2 = testDocMan.createDocument(
+ "Some other content", "doc:test:anotherdoc");
ArrayFieldValue val(doc2->getField("rawarray").getDataType());
val.add(RawFieldValue("hei", 3));
@@ -1078,13 +1091,15 @@ TEST(DocumentTest, testSliceSerialize)
doc->serialize(buf);
EXPECT_EQ(getSerializedSize(*doc), buf.getPos());
doc2->serialize(buf);
- EXPECT_EQ(getSerializedSize(*doc) + getSerializedSize(*doc2), buf.getPos());
+ EXPECT_EQ(getSerializedSize(*doc) + getSerializedSize(*doc2),
+ buf.getPos());
buf.flip();
Document doc3(testDocMan.getTypeRepo(), buf);
EXPECT_EQ(getSerializedSize(*doc), buf.getPos());
Document doc4(testDocMan.getTypeRepo(), buf);
- EXPECT_EQ(getSerializedSize(*doc) + getSerializedSize(*doc2), buf.getPos());
+ EXPECT_EQ(getSerializedSize(*doc) + getSerializedSize(*doc2),
+ buf.getPos());
EXPECT_EQ(*doc, doc3);
EXPECT_EQ(*doc2, doc4);
@@ -1127,8 +1142,9 @@ TEST(DocumentTest, testCompressionConfigured)
Struct("serializetest.body").setId(45)
.addField("stringfield", DataType::T_STRING));
DocumentTypeRepo repo(builder.config());
- Document doc_uncompressed(*repo.getDocumentType("serializetest"),
- DocumentId("id:ns:serializetest::1"));
+ Document doc_uncompressed(
+ *repo.getDocumentType("serializetest"),
+ DocumentId("doc:test:test"));
std::string bigString("compress me");
for (int i = 0; i < 8; ++i) { bigString += bigString; }
@@ -1190,7 +1206,7 @@ TEST(DocumentTest, testUnknownEntries)
DocumentTypeRepo repo(type2);
- Document doc1(type1, DocumentId("id:ns:test::1"));
+ Document doc1(type1, DocumentId("doc::testdoc"));
doc1.setValue(field1, IntFieldValue(1));
doc1.setValue(field2, IntFieldValue(2));
doc1.setValue(field3, IntFieldValue(3));
@@ -1219,12 +1235,12 @@ TEST(DocumentTest, testUnknownEntries)
doc3.deserializeBody(repo, body);
EXPECT_EQ(std::string(
- "<document documenttype=\"test\" documentid=\"id:ns:test::1\">\n"
+ "<document documenttype=\"test\" documentid=\"doc::testdoc\">\n"
"<int3>3</int3>\n"
"<int4>4</int4>\n"
"</document>"), doc2.toXml());
EXPECT_EQ(std::string(
- "<document documenttype=\"test\" documentid=\"id:ns:test::1\">\n"
+ "<document documenttype=\"test\" documentid=\"doc::testdoc\">\n"
"<int3>3</int3>\n"
"<int4>4</int4>\n"
"</document>"), doc3.toXml());
@@ -1281,7 +1297,7 @@ TEST(DocumentTest, testAnnotationDeserialization)
ByteBuffer buf(len);
lseek(fd,0,SEEK_SET);
if (read(fd, buf.getBuffer(), len) != len) {
- throw vespalib::Exception("read failed");
+ throw vespalib::Exception("read failed");
}
close(fd);