summaryrefslogtreecommitdiff
path: root/jstests
diff options
context:
space:
mode:
Diffstat (limited to 'jstests')
-rw-r--r--jstests/check_shard_index.js5
-rw-r--r--jstests/mr_undef.js22
-rw-r--r--jstests/or5.js4
-rw-r--r--jstests/replsets/auth1.js12
-rw-r--r--jstests/replsets/initial_sync1.js5
-rw-r--r--jstests/sharding/multi_mongos2a.js31
-rw-r--r--jstests/sharding/shard_insert_getlasterror_w2.js4
7 files changed, 77 insertions, 6 deletions
diff --git a/jstests/check_shard_index.js b/jstests/check_shard_index.js
index a5a1fc1..e63b79d 100644
--- a/jstests/check_shard_index.js
+++ b/jstests/check_shard_index.js
@@ -42,4 +42,9 @@ assert.eq( 3 , f.count() , "2. count after initial insert should be 3" );
res = db.runCommand( { checkShardingIndex: "test.jstests_shardingindex" , keyPattern: {x:1, y:1} , force: true });
assert.eq( false , res.ok , "2b " + tojson(res) );
+//
+res = db.runCommand( { checkShardingIndex: "test.jstests_shardingindex" , keyPattern: {_id:1} , force: true });
+assert.eq( true , res.ok , "3a " + tojson(res) );
+assert( res.idskip , "3b " + tojson(res) )
+
print("PASSED");
diff --git a/jstests/mr_undef.js b/jstests/mr_undef.js
new file mode 100644
index 0000000..e162f99
--- /dev/null
+++ b/jstests/mr_undef.js
@@ -0,0 +1,22 @@
+
+t = db.mr_undef
+t.drop()
+
+outname = "mr_undef_out"
+out = db[outname]
+out.drop()
+
+t.insert({x : 0})
+
+var m = function() { emit(this.mod, this.x); }
+var r = function(k,v) { total = 0; for(i in v) { total+= v[i]; } return total; }
+
+res = t.mapReduce(m, r, {out : outname } )
+
+assert.eq( 0 , out.find( { _id : { $type : 6 } } ).itcount() , "A1" )
+assert.eq( 1 , out.find( { _id : { $type : 10 } } ).itcount() , "A2" )
+
+x = out.findOne()
+assert.eq( x , out.findOne( { _id : x["_id"] } ) , "A3" )
+
+
diff --git a/jstests/or5.js b/jstests/or5.js
index baa6bd6..98ff141 100644
--- a/jstests/or5.js
+++ b/jstests/or5.js
@@ -70,6 +70,7 @@ assert.eq.automsg( "6", "t.find( {$or:[{a:2},{b:3},{c:4}]} ).batchSize( 2 ).itco
c = t.find( {$or:[{a:2},{b:3},{c:4}]} ).batchSize( 2 );
c.next();
t.remove( {b:3} );
+db.getLastError();
assert.eq.automsg( "3", c.itcount() );
reset();
@@ -78,6 +79,7 @@ c = t.find( {$or:[{a:2},{b:3},{c:4}]} ).batchSize( 2 );
c.next();
c.next();
t.remove( {b:3} );
+db.getLastError();
assert.eq.automsg( "2", c.itcount() );
reset();
@@ -87,6 +89,7 @@ c.next();
c.next();
c.next();
t.remove( {b:3} );
+db.getLastError();
assert.eq.automsg( "3", c.itcount() );
reset();
@@ -97,6 +100,7 @@ c.next();
c.next();
c.next();
t.remove( {b:3} );
+db.getLastError();
assert.eq.automsg( "2", c.itcount() );
t.drop();
diff --git a/jstests/replsets/auth1.js b/jstests/replsets/auth1.js
index 4945869..60e4b95 100644
--- a/jstests/replsets/auth1.js
+++ b/jstests/replsets/auth1.js
@@ -182,3 +182,15 @@ wait(function() {
return results.members[3].state == 2;
});
+print("make sure it has the config, too");
+assert.soon(function() {
+ for (var i in rs.nodes) {
+ rs.nodes[i].setSlaveOk();
+ rs.nodes[i].getDB("admin").auth("foo","bar");
+ config = rs.nodes[i].getDB("local").system.replset.findOne();
+ if (config.version != 2) {
+ return false;
+ }
+ }
+ return true;
+ });
diff --git a/jstests/replsets/initial_sync1.js b/jstests/replsets/initial_sync1.js
index ee30b4e..df978c4 100644
--- a/jstests/replsets/initial_sync1.js
+++ b/jstests/replsets/initial_sync1.js
@@ -114,9 +114,6 @@ wait(function() {
});
-/**
- * TODO: this fails on buildbot
- * see SERVER-2550
print("10. Insert some stuff");
master = replTest.getMaster();
for (var i=0; i<10000; i++) {
@@ -126,4 +123,4 @@ for (var i=0; i<10000; i++) {
print("11. Everyone happy eventually");
replTest.awaitReplication();
-*/
+
diff --git a/jstests/sharding/multi_mongos2a.js b/jstests/sharding/multi_mongos2a.js
new file mode 100644
index 0000000..9b907cc
--- /dev/null
+++ b/jstests/sharding/multi_mongos2a.js
@@ -0,0 +1,31 @@
+// multi_mongos2.js
+// This tests sharding an existing collection that both shards are aware of (SERVER-2828)
+
+
+// setup sharding with two mongos, s1 and s2
+s1 = new ShardingTest( "multi_mongos1" , 2 , 1 , 2 );
+s2 = s1._mongos[1];
+
+s1.adminCommand( { enablesharding : "test" } );
+s1.adminCommand( { shardcollection : "test.foo" , key : { num : 1 } } );
+
+s1.config.databases.find().forEach( printjson )
+
+s1.getDB('test').existing.insert({_id:1})
+assert.eq(1, s1.getDB('test').existing.count({_id:1}));
+assert.eq(1, s2.getDB('test').existing.count({_id:1}));
+
+s2.adminCommand( { shardcollection : "test.existing" , key : { _id : 1 } } );
+assert.eq(true, s2.getDB('test').existing.stats().sharded);
+
+
+res = s2.getDB( "admin" ).runCommand( { moveChunk: "test.existing" , find : { _id : 1 } , to : s1.getOther( s1.getServer( "test" ) ).name } );
+
+assert.eq(1 , res.ok, tojson(res));
+
+s1.adminCommand( { flushRouterConfig : 1 } )
+
+assert.eq(1, s1.getDB('test').existing.count({_id:1})); // SERVER-2828
+assert.eq(1, s2.getDB('test').existing.count({_id:1}));
+
+s1.stop();
diff --git a/jstests/sharding/shard_insert_getlasterror_w2.js b/jstests/sharding/shard_insert_getlasterror_w2.js
index c722f21..5d185a5 100644
--- a/jstests/sharding/shard_insert_getlasterror_w2.js
+++ b/jstests/sharding/shard_insert_getlasterror_w2.js
@@ -51,7 +51,7 @@ function go() {
db.foo.insert({_id:'a', x:1});
db.foo.insert({_id:'a', x:1});
var x = db.getLastErrorObj(2, 30000)
- assert.neq(x.err, null, tojson(x));
+ assert.neq(x.err, null, "C1 " + tojson(x));
// Add more data
for (var i = N; i < 2*N; i++) {
@@ -59,7 +59,7 @@ function go() {
var x = db.getLastErrorObj(2, 30000) // wait to be copied to at least one secondary
if (i % 30 == 0) print(i)
if (i % 100 == 0 || x.err != null) printjson(x);
- assert.eq(x.err, null, tojson(x));
+ assert.eq(x.err, null, "C2 " + tojson(x));
}
// take down the slave and make sure it fails over