summaryrefslogtreecommitdiff
path: root/jstests/noPassthroughWithMongod/wt_roundtrip_creation_string.js
blob: 9664cfe453882f71069c801c5472f965f047deb2 (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
/**
 * Tests that the creation string returned by the collStats command can be used to create a
 * collection or index with the same WiredTiger options.
 */
(function() {
'use strict';

// Skip this test if not running with the "wiredTiger" storage engine.
if (db.serverStatus().storageEngine.name !== 'wiredTiger') {
    jsTest.log('Skipping test because storageEngine is not "wiredTiger"');
    return;
}

var collNamePrefix = 'wt_roundtrip_creation_string';

// Drop the collections used by the test to ensure that the create commands don't fail because
// the collections already exist.
db[collNamePrefix].source.drop();
db[collNamePrefix].dest.drop();

assert.commandWorked(db.createCollection(collNamePrefix + '.source'));
assert.commandWorked(db[collNamePrefix].source.createIndex({a: 1}, {name: 'a_1'}));

var collStats = db.runCommand({collStats: collNamePrefix + '.source'});
assert.commandWorked(collStats);

assert.commandWorked(db.runCommand({
    create: collNamePrefix + '.dest',
    storageEngine: {wiredTiger: {configString: collStats.wiredTiger.creationString}}
}),
                     'unable to create collection using the creation string of another collection');

assert.commandWorked(db.runCommand({
    createIndexes: collNamePrefix + '.dest',
    indexes: [{
        key: {b: 1},
        name: 'b_1',
        storageEngine: {wiredTiger: {configString: collStats.indexDetails.a_1.creationString}}
    }]
}),
                     'unable to create index using the creation string of another index');
})();