summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSpencer T Brody <spencer@10gen.com>2011-08-25 12:31:06 -0400
committerSpencer T Brody <spencer@10gen.com>2011-08-25 12:32:59 -0400
commit812e49a673293f34a09f091cb5e9124cc5685c6d (patch)
tree7ef352dce44805e7ff87c8655bbabed637dad98a
parent8d4bf50111352cee5a4f1abf25b63442d6c45dc4 (diff)
downloadmongo-812e49a673293f34a09f091cb5e9124cc5685c6d.tar.gz
Add more tests for sorting pre-epoch dates. SERVER-405 & QA-40.
-rw-r--r--jstests/sort10.js48
-rw-r--r--jstests/sort2.js16
2 files changed, 48 insertions, 16 deletions
diff --git a/jstests/sort10.js b/jstests/sort10.js
new file mode 100644
index 00000000000..f255f6cc6fa
--- /dev/null
+++ b/jstests/sort10.js
@@ -0,0 +1,48 @@
+// signed dates check
+t = db.sort2;
+
+var opts = {};
+if (Math.random() < 0.3) {
+ opts.background = true;
+ printjson(opts);
+}
+t.drop();
+t.insert({ x: new Date(50000) });
+t.insert({ x: new Date(-50) });
+var d = new Date(-50);
+for (var pass = 0; pass < 2; pass++) {
+ assert(t.find().sort({x:1})[0].x.valueOf() == d.valueOf());
+ t.ensureIndex({ x: 1 }, opts);
+ t.insert({ x: new Date() });
+}
+
+
+
+function checkSorting(dates, sortOrder) {
+ cur = t.find().sort({x:sortOrder});
+ assert.eq(dates.length, cur.count(), "Incorrect number of results returned");
+ index = 0;
+ while (cur.hasNext()) {
+ date = cur.next().x;
+ assert.eq(dates[index].valueOf(), date.valueOf());
+ index++;
+ }
+}
+
+t.drop();
+dates = [new Date(-5000000000000), new Date(5000000000000), new Date(0), new Date(5), new Date(-5)];
+for (var i = 0; i < dates.length; i++) {
+ t.insert({x:dates[i]});
+}
+dates.sort(function(a,b){return a - b});
+reverseDates = dates.slice(0).reverse()
+
+checkSorting(dates, 1)
+checkSorting(reverseDates, -1)
+t.ensureIndex({x:1})
+checkSorting(dates, 1)
+checkSorting(reverseDates, -1)
+t.dropIndexes()
+t.ensureIndex({x:-1})
+checkSorting(dates, 1)
+checkSorting(reverseDates, -1)
diff --git a/jstests/sort2.js b/jstests/sort2.js
index 2e07c051179..6dfa8486201 100644
--- a/jstests/sort2.js
+++ b/jstests/sort2.js
@@ -30,19 +30,3 @@ for (var pass = 0; pass < 2; pass++) {
}
t.ensureIndex({ x : 1 });
}
-
-// signed dates check
-var opts = {};
-if (Math.random() < 0.3) {
- opts.background = true;
- printjson(opts);
-}
-t.drop();
-t.insert({ x: new Date(50000) });
-t.insert({ x: new Date(-50) });
-var d = new Date(-50);
-for (var pass = 0; pass < 2; pass++) {
- assert(t.find().sort({x:1})[0].x.valueOf() == d.valueOf());
- t.ensureIndex({ x: 1 }, opts);
- t.insert({ x: new Date() });
-}