diff options
author | Randolph Tan <randolph@10gen.com> | 2014-01-14 14:09:42 -0500 |
---|---|---|
committer | Randolph Tan <randolph@10gen.com> | 2014-02-28 16:26:33 -0500 |
commit | 5595b945603b0712c537787e31e6da661c424fee (patch) | |
tree | 90945ee3fe4931032f3af2d397bb755fbf5d30ef /jstests/core/distinct3.js | |
parent | cd62080dcb036e83f8fca6d68d9bcab67bf7a21c (diff) | |
download | mongo-5595b945603b0712c537787e31e6da661c424fee.tar.gz |
SERVER-12127 migrate js tests to jscore suite when not related to writes
Moved test jstest/[a-i].js -> jstests/core/ and made changes to comply with write command api
Diffstat (limited to 'jstests/core/distinct3.js')
-rw-r--r-- | jstests/core/distinct3.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/jstests/core/distinct3.js b/jstests/core/distinct3.js new file mode 100644 index 00000000000..0add7aeb95e --- /dev/null +++ b/jstests/core/distinct3.js @@ -0,0 +1,35 @@ +// Yield and delete test case for query optimizer cursor. SERVER-4401 + +t = db.jstests_distinct3; +t.drop(); + +t.ensureIndex({a:1}); +t.ensureIndex({b:1}); + +var bulk = t.initializeUnorderedBulkOp(); +for( i = 0; i < 50; ++i ) { + for( j = 0; j < 2; ++j ) { + bulk.insert({a:i,c:i,d:j}); + } +} +for( i = 0; i < 100; ++i ) { + bulk.insert({b:i,c:i+50}); +} +assert.writeOK(bulk.execute()); + +// Attempt to remove the last match for the {a:1} index scan while distinct is yielding. +p = startParallelShell( 'var bulk = db.jstests_distinct3.initializeUnorderedBulkOp();' + + 'for( i = 0; i < 100; ++i ) { ' + + ' bulk.remove( { a:49 } ); ' + + ' for( j = 0; j < 20; ++j ) { ' + + ' bulk.insert( { a:49, c:49, d:j } ); ' + + ' } ' + + ' bulk.execute(); ' + + '} ' ); + +for( i = 0; i < 100; ++i ) { + count = t.distinct( 'c', {$or:[{a:{$gte:0},d:0},{b:{$gte:0}}]} ).length; + assert.gt( count, 100 ); +} + +p(); |