diff options
author | Spencer T Brody <spencer@10gen.com> | 2011-08-25 12:31:06 -0400 |
---|---|---|
committer | Spencer T Brody <spencer@10gen.com> | 2011-08-25 12:32:59 -0400 |
commit | 812e49a673293f34a09f091cb5e9124cc5685c6d (patch) | |
tree | 7ef352dce44805e7ff87c8655bbabed637dad98a | |
parent | 8d4bf50111352cee5a4f1abf25b63442d6c45dc4 (diff) | |
download | mongo-812e49a673293f34a09f091cb5e9124cc5685c6d.tar.gz |
Add more tests for sorting pre-epoch dates. SERVER-405 & QA-40.
-rw-r--r-- | jstests/sort10.js | 48 | ||||
-rw-r--r-- | jstests/sort2.js | 16 |
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() }); -} |