summaryrefslogtreecommitdiff
path: root/jstests/sharding/mr_noscripting.js
blob: a7663d54ccc702859e874a32b0e5bd95b1dbcd99 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
var shardOpts = [
  { noscripting: '' },
  {  } // just use default params
];

var st = new ShardingTest({ shards: shardOpts, other: { nopreallocj: 1 }});
var mongos = st.s;

st.shardColl('bar', { x: 1 });

var testDB = mongos.getDB('test');
var coll = testDB.bar;

coll.insert({ x: 1 });

var map = function() {
    emit(this.x, 1);
};

var reduce = function(key, values) {
    return 1;
};

var mrResult = testDB.runCommand({ mapreduce: 'bar', map: map, reduce: reduce,
                                   out: { inline: 1 }});

assert.eq(0, mrResult.ok, 'mr result: ' + tojson(mrResult));

// Confirm that mongos did not crash
assert(testDB.adminCommand({ serverStatus: 1 }).ok);

// Confirm that the rest of the shards did not crash
mongos.getDB('config').shards.find().forEach(function (shardDoc){
    var shardConn = new Mongo(shardDoc.host);
    var adminDB = shardConn.getDB('admin');
    var cmdResult = adminDB.runCommand({ serverStatus: 1 });

    assert(cmdResult.ok, 'serverStatus on ' + shardDoc.host +
            ' failed, result: ' + tojson(cmdResult));
});