summaryrefslogtreecommitdiffstats
path: root/document/src/tests
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-01-15 06:10:55 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-01-16 10:48:07 +0000
commitf4ca1a66486f7e10f507b0c8054e403c7ff9c125 (patch)
treee509b81c89fb2f9eb5fdefaf79a6ebbde7a6444f /document/src/tests
parentb324c19e007a7a57ba731ed72a01d35cd6937ed7 (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.cpp8
-rw-r--r--document/src/tests/base/documentid_test.cpp20
-rw-r--r--document/src/tests/documenttestcase.cpp5
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));