diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2020-01-15 06:10:55 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2020-01-16 10:48:07 +0000 |
commit | f4ca1a66486f7e10f507b0c8054e403c7ff9c125 (patch) | |
tree | e509b81c89fb2f9eb5fdefaf79a6ebbde7a6444f /document/src/tests | |
parent | b324c19e007a7a57ba731ed72a01d35cd6937ed7 (diff) |
Remove and indirection for document id, for less memory footprint, and better generated code.
Diffstat (limited to 'document/src/tests')
-rw-r--r-- | document/src/tests/base/documentid_benchmark.cpp | 8 | ||||
-rw-r--r-- | document/src/tests/base/documentid_test.cpp | 20 | ||||
-rw-r--r-- | document/src/tests/documenttestcase.cpp | 5 |
3 files changed, 16 insertions, 17 deletions
diff --git a/document/src/tests/base/documentid_benchmark.cpp b/document/src/tests/base/documentid_benchmark.cpp index 7cfc880ba22..20c91d4a21e 100644 --- a/document/src/tests/base/documentid_benchmark.cpp +++ b/document/src/tests/base/documentid_benchmark.cpp @@ -10,12 +10,12 @@ int main(int argc, char *argv[]) fprintf(stderr, "Usage %s <docid> <count>\n", argv[0]); } vespalib::string s(argv[1]); - uint64_t n = strtoul(argv[2], NULL, 0); + uint64_t n = strtoul(argv[2], nullptr, 0); printf("Creating documentid '%s' %" PRIu64 " times\n", s.c_str(), n); - printf("sizeof(IdString)=%ld, sizeof(IdIdString)=%ld\n", sizeof(IdString), sizeof(IdIdString)); + printf("sizeof(IdString)=%ld, sizeof(IdIdString)=%ld\n", sizeof(IdString), sizeof(IdString)); for (uint64_t i=0; i < n; i++) { - IdString::UP id = IdString::createIdString(s); - id.reset(); + IdString id(s); + (void) id; } return 0; } diff --git a/document/src/tests/base/documentid_test.cpp b/document/src/tests/base/documentid_test.cpp index 741a490210f..e2bb9dbc4e9 100644 --- a/document/src/tests/base/documentid_test.cpp +++ b/document/src/tests/base/documentid_test.cpp @@ -14,10 +14,8 @@ const string ns = "namespace"; const string ns_id = "namespaceid"; const string type = "my_type"; -void checkId(const string &id, IdString::Type t, - const string &ns_str, const string local_id) { +void checkId(const string &id, const string &ns_str, const string local_id) { DocumentId doc_id(id); - EXPECT_EQUAL(t, doc_id.getScheme().getType()); EXPECT_EQUAL(ns_str, doc_id.getScheme().getNamespace()); EXPECT_EQUAL(local_id, doc_id.getScheme().getNamespaceSpecific()); EXPECT_EQUAL(id, doc_id.getScheme().toString()); @@ -44,21 +42,21 @@ void checkType(const string &id, const string &doc_type) { TEST("require that id id can be parsed") { const string id = "id:" + ns + ":" + type + "::" + ns_id; - checkId(id, IdString::ID, ns, ns_id); + checkId(id, ns, ns_id); checkType(id, type); } TEST("require that we allow ':' in namespace specific part") { const string nss=":a:b:c:"; string id="id:" + ns + ":" + type + "::" + nss; - checkId(id, IdString::ID, ns, nss); + checkId(id, ns, nss); checkType(id, type); } TEST("require that id id can specify location") { DocumentId id("id:ns:type:n=12345:foo"); EXPECT_EQUAL(12345u, id.getScheme().getLocation()); - EXPECT_EQUAL(12345u, getAs<IdIdString>(id).getNumber()); + EXPECT_EQUAL(12345u, getAs<IdString>(id).getNumber()); } TEST("require that id id's n key must be a 64-bit number") { @@ -76,7 +74,7 @@ TEST("require that id id can specify group") { EXPECT_EQUAL(id1.getScheme().getLocation(), id2.getScheme().getLocation()); EXPECT_NOT_EQUAL(id1.getScheme().getLocation(), id3.getScheme().getLocation()); - EXPECT_EQUAL("mygroup", getAs<IdIdString>(id1).getGroup()); + EXPECT_EQUAL("mygroup", getAs<IdString>(id1).getGroup()); } TEST("require that id id location is specified by local id only by default") { @@ -89,15 +87,15 @@ TEST("require that id id location is specified by local id only by default") { TEST("require that local id can be empty") { const string id = "id:" + ns + ":type:n=1234:"; - checkId(id, IdString::ID, ns, ""); - checkUser<IdIdString>(id, 1234); + checkId(id, ns, ""); + checkUser<IdString>(id, 1234); } TEST("require that document ids can be assigned") { DocumentId id1("id:" + ns + ":type:n=1234:"); DocumentId id2 = id1; - checkId(id2.toString(), IdString::ID, ns, ""); - checkUser<IdIdString>(id2.toString(), 1234); + checkId(id2.toString(), ns, ""); + checkUser<IdString>(id2.toString(), 1234); } TEST("require that illegal ids fail") { diff --git a/document/src/tests/documenttestcase.cpp b/document/src/tests/documenttestcase.cpp index b0128607ac5..d75a16ea1a6 100644 --- a/document/src/tests/documenttestcase.cpp +++ b/document/src/tests/documenttestcase.cpp @@ -28,8 +28,9 @@ using namespace fieldvalue; TEST(DocumentTest, testSizeOf) { - EXPECT_EQ(24ul, sizeof(DocumentId)); - EXPECT_EQ(128ul, sizeof(Document)); + EXPECT_EQ(88ul, sizeof(IdString)); + EXPECT_EQ(104ul, sizeof(DocumentId)); + EXPECT_EQ(208ul, sizeof(Document)); EXPECT_EQ(72ul, sizeof(StructFieldValue)); EXPECT_EQ(24ul, sizeof(StructuredFieldValue)); EXPECT_EQ(64ul, sizeof(SerializableArray)); |