summaryrefslogtreecommitdiffstats
path: root/vespalib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-06-14 11:38:43 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2021-06-14 11:53:56 +0000
commit8fdcba59a3a588ed40b9ff98daac52f08dfc01d5 (patch)
tree83568f2f83ffb232ec527501a4110b691f2dd743 /vespalib
parent291e527fb70897742f16caa4b3c7062cc6e47708 (diff)
Use a list instead of a set to make building faster.
Then sort and uniq before applying the list.
Diffstat (limited to 'vespalib')
-rw-r--r--vespalib/src/tests/datastore/datastore/datastore_test.cpp33
-rw-r--r--vespalib/src/vespa/vespalib/datastore/entryref.h1
2 files changed, 34 insertions, 0 deletions
diff --git a/vespalib/src/tests/datastore/datastore/datastore_test.cpp b/vespalib/src/tests/datastore/datastore/datastore_test.cpp
index 11b4f5e6631..90281acb0d3 100644
--- a/vespalib/src/tests/datastore/datastore/datastore_test.cpp
+++ b/vespalib/src/tests/datastore/datastore/datastore_test.cpp
@@ -141,6 +141,38 @@ assertMemStats(const DataStoreBase::MemStats &exp,
EXPECT_EQ(exp._holdBuffers, act._holdBuffers);
}
+TEST(DataStoreTest, require_that_invalid_entry_ref_can_be_ordered) {
+ EntryRef inValid;
+ EntryRef a(1);
+ EXPECT_EQ(inValid, inValid);
+ EXPECT_EQ(a, a);
+ EXPECT_NE(inValid, a);
+ EXPECT_NE(a, inValid);
+ EXPECT_LT(inValid, a);
+ EXPECT_LE(inValid, a);
+}
+
+TEST(DataStoreTest, require_that_entry_ref_can_be_ordered) {
+ EntryRef a(1);
+ EntryRef b(2);
+ EntryRef c(3);
+ EXPECT_EQ(a, a);
+ EXPECT_EQ(b, b);
+ EXPECT_EQ(c, c);
+ EXPECT_NE(a, b);
+ EXPECT_NE(a, c);
+ EXPECT_NE(b, c);
+ EXPECT_LT(a, b);
+ EXPECT_LT(b, c);
+ EXPECT_LT(a, c);
+ EXPECT_LE(a, a);
+ EXPECT_LE(b, b);
+ EXPECT_LE(c, c);
+ EXPECT_LE(a, b);
+ EXPECT_LE(b, c);
+ EXPECT_LE(a, c);
+}
+
TEST(DataStoreTest, require_that_entry_ref_is_working)
{
using MyRefType = EntryRefT<22>;
@@ -643,6 +675,7 @@ TEST(DataStoreTest, control_static_sizes) {
EXPECT_EQ(0, bs.size());
}
+
}
GTEST_MAIN_RUN_ALL_TESTS()
diff --git a/vespalib/src/vespa/vespalib/datastore/entryref.h b/vespalib/src/vespa/vespalib/datastore/entryref.h
index 046d9089580..01f473fcf17 100644
--- a/vespalib/src/vespa/vespalib/datastore/entryref.h
+++ b/vespalib/src/vespa/vespalib/datastore/entryref.h
@@ -21,6 +21,7 @@ public:
bool operator==(const EntryRef &rhs) const noexcept { return _ref == rhs._ref; }
bool operator!=(const EntryRef &rhs) const noexcept { return _ref != rhs._ref; }
bool operator <(const EntryRef &rhs) const noexcept { return _ref < rhs._ref; }
+ bool operator <=(const EntryRef &rhs) const noexcept { return _ref <= rhs._ref; }
};
/**