blob: 63f6b1a7cd241f6d238d6e16eb6367fa5d355da2 (
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
49
50
51
52
53
|
/**
* Test the backup/restore process:
* - 3 node replica set
* - Mongo CRUD client
* - Mongo FSM client
* - fsyncLock (or stop) Secondary
* - cp (or rsync) DB files
* - fsyncUnlock (or start) Secondary
* - Start mongod as hidden secondary
* - Wait until new hidden node becomes secondary
*
* Some methods for backup used in this test checkpoint the files in the dbpath. This technique will
* not work for ephemeral storage engines, as they do not store any data in the dbpath.
* @tags: [
* requires_persistence,
* requires_wiredtiger,
* ]
*/
load("jstests/noPassthrough/libs/backup_restore.js");
(function() {
"use strict";
// Windows doesn't guarantee synchronous file operations.
if (_isWindows()) {
print("Skipping test on windows");
return;
}
// Grab the storage engine, default is wiredTiger
var storageEngine = jsTest.options().storageEngine || "wiredTiger";
// Skip this test if not running with the "wiredTiger" storage engine.
if (storageEngine !== 'wiredTiger') {
jsTest.log('Skipping test because storageEngine is not "wiredTiger"');
return;
}
// Skip this test if running with --nojournal and WiredTiger.
if (jsTest.options().noJournal) {
print("Skipping test because running WiredTiger without journaling isn't a valid" +
" replica set configuration");
return;
}
// if rsync is not available on the host, then this test is skipped
if (!runProgram('bash', '-c', 'which rsync')) {
new BackupRestoreTest({backup: 'rolling', clientTime: 30000}).run();
} else {
jsTestLog("Skipping test for " + storageEngine + ' rolling');
}
}());
|