summaryrefslogtreecommitdiff
path: root/src/mongo/db/range_arithmetic_test.cpp
diff options
context:
space:
mode:
authorKaloian Manassiev <kaloian.manassiev@mongodb.com>2016-09-16 18:08:29 -0400
committerKaloian Manassiev <kaloian.manassiev@mongodb.com>2016-11-02 16:46:47 -0400
commitf0ada5e29eb5218c257897bfd1a8fb1e36e06733 (patch)
treeaf7cb64596f73165d813e7eb68a030e6028c769d /src/mongo/db/range_arithmetic_test.cpp
parentfd16deb6dd3d08756f15c181facc707cb53f4e15 (diff)
downloadmongo-f0ada5e29eb5218c257897bfd1a8fb1e36e06733.tar.gz
SERVER-25665 Make splitChunk and moveChunk commands use 'chunkVersion'
This change makes the collection metadata on the shard also include the chunk version and makes the splitChunk and moveChunk commands use it when checking for consistency.
Diffstat (limited to 'src/mongo/db/range_arithmetic_test.cpp')
-rw-r--r--src/mongo/db/range_arithmetic_test.cpp81
1 files changed, 47 insertions, 34 deletions
diff --git a/src/mongo/db/range_arithmetic_test.cpp b/src/mongo/db/range_arithmetic_test.cpp
index afec7e05e36..8f20b4e1a34 100644
--- a/src/mongo/db/range_arithmetic_test.cpp
+++ b/src/mongo/db/range_arithmetic_test.cpp
@@ -29,16 +29,9 @@
#include "mongo/db/range_arithmetic.h"
#include "mongo/unittest/unittest.h"
+namespace mongo {
namespace {
-using mongo::BSONObj;
-using mongo::MAXKEY;
-using mongo::MINKEY;
-using mongo::RangeMap;
-using mongo::RangeVector;
-using mongo::SimpleBSONObjComparator;
-using mongo::rangeMapOverlaps;
-using mongo::rangeOverlaps;
using std::make_pair;
TEST(BSONRange, SmallerLowerRangeNonSubset) {
@@ -78,11 +71,15 @@ TEST(BSONRange, EqualRange) {
}
TEST(RangeMap, RangeMapOverlap) {
- SimpleBSONObjComparator bsonCmp;
- RangeMap rangeMap = bsonCmp.makeBSONObjIndexedMap<BSONObj>();
- rangeMap.insert(make_pair(BSON("x" << 100), BSON("x" << 200)));
- rangeMap.insert(make_pair(BSON("x" << 200), BSON("x" << 300)));
- rangeMap.insert(make_pair(BSON("x" << 300), BSON("x" << 400)));
+ const OID epoch = OID::gen();
+
+ RangeMap rangeMap = SimpleBSONObjComparator::kInstance.makeBSONObjIndexedMap<CachedChunkInfo>();
+ rangeMap.insert(
+ make_pair(BSON("x" << 100), CachedChunkInfo(BSON("x" << 200), ChunkVersion(1, 0, epoch))));
+ rangeMap.insert(
+ make_pair(BSON("x" << 200), CachedChunkInfo(BSON("x" << 300), ChunkVersion(2, 0, epoch))));
+ rangeMap.insert(
+ make_pair(BSON("x" << 300), CachedChunkInfo(BSON("x" << 400), ChunkVersion(3, 0, epoch))));
RangeVector overlap;
getRangeMapOverlap(rangeMap, BSON("x" << 50), BSON("x" << 350), &overlap);
@@ -92,10 +89,13 @@ TEST(RangeMap, RangeMapOverlap) {
}
TEST(RangeMap, RangeMapOverlapPartial) {
- SimpleBSONObjComparator bsonCmp;
- RangeMap rangeMap = bsonCmp.makeBSONObjIndexedMap<BSONObj>();
- rangeMap.insert(make_pair(BSON("x" << 100), BSON("x" << 200)));
- rangeMap.insert(make_pair(BSON("x" << 200), BSON("x" << 300)));
+ const OID epoch = OID::gen();
+
+ RangeMap rangeMap = SimpleBSONObjComparator::kInstance.makeBSONObjIndexedMap<CachedChunkInfo>();
+ rangeMap.insert(
+ make_pair(BSON("x" << 100), CachedChunkInfo(BSON("x" << 200), ChunkVersion(1, 0, epoch))));
+ rangeMap.insert(
+ make_pair(BSON("x" << 200), CachedChunkInfo(BSON("x" << 300), ChunkVersion(2, 0, epoch))));
RangeVector overlap;
getRangeMapOverlap(rangeMap, BSON("x" << 150), BSON("x" << 250), &overlap);
@@ -105,9 +105,11 @@ TEST(RangeMap, RangeMapOverlapPartial) {
}
TEST(RangeMap, RangeMapOverlapInner) {
- SimpleBSONObjComparator bsonCmp;
- RangeMap rangeMap = bsonCmp.makeBSONObjIndexedMap<BSONObj>();
- rangeMap.insert(make_pair(BSON("x" << 100), BSON("x" << 200)));
+ const OID epoch = OID::gen();
+
+ RangeMap rangeMap = SimpleBSONObjComparator::kInstance.makeBSONObjIndexedMap<CachedChunkInfo>();
+ rangeMap.insert(
+ make_pair(BSON("x" << 100), CachedChunkInfo(BSON("x" << 200), ChunkVersion(1, 0, epoch))));
RangeVector overlap;
getRangeMapOverlap(rangeMap, BSON("x" << 125), BSON("x" << 150), &overlap);
@@ -117,10 +119,13 @@ TEST(RangeMap, RangeMapOverlapInner) {
}
TEST(RangeMap, RangeMapNoOverlap) {
- SimpleBSONObjComparator bsonCmp;
- RangeMap rangeMap = bsonCmp.makeBSONObjIndexedMap<BSONObj>();
- rangeMap.insert(make_pair(BSON("x" << 100), BSON("x" << 200)));
- rangeMap.insert(make_pair(BSON("x" << 300), BSON("x" << 400)));
+ const OID epoch = OID::gen();
+
+ RangeMap rangeMap = SimpleBSONObjComparator::kInstance.makeBSONObjIndexedMap<CachedChunkInfo>();
+ rangeMap.insert(
+ make_pair(BSON("x" << 100), CachedChunkInfo(BSON("x" << 200), ChunkVersion(1, 0, epoch))));
+ rangeMap.insert(
+ make_pair(BSON("x" << 300), CachedChunkInfo(BSON("x" << 400), ChunkVersion(2, 0, epoch))));
RangeVector overlap;
getRangeMapOverlap(rangeMap, BSON("x" << 200), BSON("x" << 300), &overlap);
@@ -129,9 +134,11 @@ TEST(RangeMap, RangeMapNoOverlap) {
}
TEST(RangeMap, RangeMapOverlaps) {
- SimpleBSONObjComparator bsonCmp;
- RangeMap rangeMap = bsonCmp.makeBSONObjIndexedMap<BSONObj>();
- rangeMap.insert(make_pair(BSON("x" << 100), BSON("x" << 200)));
+ const OID epoch = OID::gen();
+
+ RangeMap rangeMap = SimpleBSONObjComparator::kInstance.makeBSONObjIndexedMap<CachedChunkInfo>();
+ rangeMap.insert(
+ make_pair(BSON("x" << 100), CachedChunkInfo(BSON("x" << 200), ChunkVersion(1, 0, epoch))));
ASSERT(rangeMapOverlaps(rangeMap, BSON("x" << 100), BSON("x" << 200)));
ASSERT(rangeMapOverlaps(rangeMap, BSON("x" << 99), BSON("x" << 200)));
@@ -142,9 +149,11 @@ TEST(RangeMap, RangeMapOverlaps) {
}
TEST(RangeMap, RangeMapContains) {
- SimpleBSONObjComparator bsonCmp;
- RangeMap rangeMap = bsonCmp.makeBSONObjIndexedMap<BSONObj>();
- rangeMap.insert(make_pair(BSON("x" << 100), BSON("x" << 200)));
+ const OID epoch = OID::gen();
+
+ RangeMap rangeMap = SimpleBSONObjComparator::kInstance.makeBSONObjIndexedMap<CachedChunkInfo>();
+ rangeMap.insert(
+ make_pair(BSON("x" << 100), CachedChunkInfo(BSON("x" << 200), ChunkVersion(1, 0, epoch))));
ASSERT(rangeMapContains(rangeMap, BSON("x" << 100), BSON("x" << 200)));
ASSERT(!rangeMapContains(rangeMap, BSON("x" << 99), BSON("x" << 200)));
@@ -152,12 +161,16 @@ TEST(RangeMap, RangeMapContains) {
}
TEST(RangeMap, RangeMapContainsMinMax) {
- SimpleBSONObjComparator bsonCmp;
- RangeMap rangeMap = bsonCmp.makeBSONObjIndexedMap<BSONObj>();
- rangeMap.insert(make_pair(BSON("x" << MINKEY), BSON("x" << MAXKEY)));
+ const OID epoch = OID::gen();
+
+ RangeMap rangeMap = SimpleBSONObjComparator::kInstance.makeBSONObjIndexedMap<CachedChunkInfo>();
+ rangeMap.insert(make_pair(BSON("x" << MINKEY),
+ CachedChunkInfo(BSON("x" << MAXKEY), ChunkVersion(1, 0, epoch))));
ASSERT(rangeMapContains(rangeMap, BSON("x" << MINKEY), BSON("x" << MAXKEY)));
ASSERT(!rangeMapContains(rangeMap, BSON("x" << 1), BSON("x" << MAXKEY)));
ASSERT(!rangeMapContains(rangeMap, BSON("x" << MINKEY), BSON("x" << 1)));
}
-}
+
+} // namespace
+} // namespace mongo