summaryrefslogtreecommitdiff
path: root/jstests/replsets/system_profile.js
blob: 592accb43b867dc4a6797cdd9746ee09276d0afb (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
42
43
44
45
46
47
48
// This tests that metadata commands run against the system.profile collection are not replicated
// to the secondary.

(function() {
    "use strict";
    var rst = new ReplSetTest({nodes: 2});
    rst.startSet();
    rst.initiate();
    rst.awaitReplication();

    var getLatestOp = function() {
        return primaryDB.getSiblingDB('local').oplog.rs.find().sort({$natural: -1}).limit(1).next();
    };

    var primaryDB = rst.getPrimary().getDB('test');
    var op = getLatestOp();

    // Enable profiling on the primary
    assert.commandWorked(primaryDB.runCommand({profile: 2}));
    assert.eq(op, getLatestOp(), "oplog entry created when profile was enabled");
    assert.writeOK(primaryDB.foo.insert({}));
    op = getLatestOp();
    assert.commandWorked(primaryDB.runCommand({profile: 0}));
    assert.eq(op, getLatestOp(), "oplog entry created when profile was disabled");

    // dropCollection
    assert(primaryDB.system.profile.drop());
    assert.eq(op, getLatestOp(), "oplog entry created when system.profile was dropped");

    assert.commandWorked(primaryDB.createCollection("system.profile", {capped: true, size: 1000}));
    assert.eq(op, getLatestOp(), "oplog entry created when system.profile was created");
    assert.commandWorked(primaryDB.runCommand({profile: 2}));
    assert.writeOK(primaryDB.foo.insert({}));
    op = getLatestOp();
    assert.commandWorked(primaryDB.runCommand({profile: 0}));

    // emptycapped the collection
    assert.commandWorked(primaryDB.runCommand({emptycapped: "system.profile"}));
    assert.eq(op, getLatestOp(),
              "oplog entry created when system.profile was emptied via emptycapped");
    assert(primaryDB.system.profile.drop());

    // convertToCapped
    assert.commandWorked(primaryDB.createCollection("system.profile"));
    assert.commandWorked(primaryDB.runCommand({convertToCapped: "system.profile", size: 1000}));
    assert.eq(op, getLatestOp(), "oplog entry created when system.profile was convertedToCapped");
    assert(primaryDB.system.profile.drop());
})();