summaryrefslogtreecommitdiff
path: root/jstests/disk/directoryperdb.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/disk/directoryperdb.js')
-rw-r--r--jstests/disk/directoryperdb.js126
1 files changed, 61 insertions, 65 deletions
diff --git a/jstests/disk/directoryperdb.js b/jstests/disk/directoryperdb.js
index 9587908355f..3c889cb5b1f 100644
--- a/jstests/disk/directoryperdb.js
+++ b/jstests/disk/directoryperdb.js
@@ -5,86 +5,83 @@ var storageEngine = db.serverStatus().storageEngine.name;
// The pattern which matches the names of database files
var dbFileMatcher;
-if ( storageEngine == "mmapv1" ) {
+if (storageEngine == "mmapv1") {
// Matches mmapv1 *.ns and *.0, *.1, etc files.
dbFileMatcher = /\.(ns|\d+)$/;
-} else if ( storageEngine == "wiredTiger" ) {
+} else if (storageEngine == "wiredTiger") {
// Matches wiredTiger collection-*.wt and index-*.wt files
dbFileMatcher = /(collection|index)-.+\.wt$/;
} else {
- assert( false, "This test must be run against mmapv1 or wiredTiger" );
+ assert(false, "This test must be run against mmapv1 or wiredTiger");
}
// Set up helper functions.
assertDocumentCount = function(db, count) {
- assert.eq( count, db[ baseName ].count() ,
- "Expected " + count + " documents in " + db._name + "." + baseName + ". " +
- "Found: " + tojson( db[ baseName ].find().toArray() ) );
+ assert.eq(count,
+ db[baseName].count(),
+ "Expected " + count + " documents in " + db._name + "." + baseName + ". " +
+ "Found: " + tojson(db[baseName].find().toArray()));
};
-
-checkDBFilesInDBDirectory = function( db ) {
- db.adminCommand( { fsync : 1 } );
+checkDBFilesInDBDirectory = function(db) {
+ db.adminCommand({fsync: 1});
var dir = dbpath + db._name;
- files = listFiles( dir );
+ files = listFiles(dir);
var fileCount = 0;
- for( f in files ) {
- if ( files[ f ].isDirectory )
+ for (f in files) {
+ if (files[f].isDirectory)
continue;
fileCount += 1;
- assert( dbFileMatcher.test( files[ f ].name ),
- "In directory:" + dir + " found unexpected file: " + files[ f ].name );
+ assert(dbFileMatcher.test(files[f].name),
+ "In directory:" + dir + " found unexpected file: " + files[f].name);
}
- assert( fileCount > 0, "Expected more than zero nondirectory files in database directory" );
+ assert(fileCount > 0, "Expected more than zero nondirectory files in database directory");
};
-checkDBDirectoryNonexistent = function( db ) {
- db.adminCommand( { fsync : 1 } );
+checkDBDirectoryNonexistent = function(db) {
+ db.adminCommand({fsync: 1});
- var files = listFiles( dbpath );
+ var files = listFiles(dbpath);
// Check that there are no files in the toplevel dbpath.
- for ( f in files ) {
- if ( !files[ f ].isDirectory ) {
- assert( !dbFileMatcher.test( files[ f ].name ),
- "Database file" + files[ f ].name +
- " exists in dbpath after deleting all non-directoryperdb databases");
+ for (f in files) {
+ if (!files[f].isDirectory) {
+ assert(!dbFileMatcher.test(files[f].name),
+ "Database file" + files[f].name +
+ " exists in dbpath after deleting all non-directoryperdb databases");
}
}
// Check db directories to ensure db files in them have been destroyed.
// mmapv1 removes the database directory, pending SERVER-1379.
- if ( storageEngine == "mmapv1" ) {
- var files = listFiles( dbpath );
+ if (storageEngine == "mmapv1") {
+ var files = listFiles(dbpath);
var fileNotFound = true;
- for ( f in files ) {
- assert( files[ f ].name != db._name,
- "Directory " + db._name + " still exists" );
+ for (f in files) {
+ assert(files[f].name != db._name, "Directory " + db._name + " still exists");
}
- } else if ( storageEngine == "wiredTiger" ) {
- var files = listFiles( dbpath + db._name );
- assert.eq( files.length, 0,
- "Files left behind in database directory" );
+ } else if (storageEngine == "wiredTiger") {
+ var files = listFiles(dbpath + db._name);
+ assert.eq(files.length, 0, "Files left behind in database directory");
}
};
// Start the directoryperdb instance of mongod.
-var m = MongoRunner.runMongod( { storageEngine : storageEngine, dbpath : dbpath,
- directoryperdb : "" } );
+var m = MongoRunner.runMongod({storageEngine: storageEngine, dbpath: dbpath, directoryperdb: ""});
// Check that the 'local' db has allocated data.
-var localDb = m.getDB( "local" );
-checkDBFilesInDBDirectory( localDb );
+var localDb = m.getDB("local");
+checkDBFilesInDBDirectory(localDb);
// Create database with directoryperdb.
-var dbBase = m.getDB( baseName );
-dbBase[ baseName ].insert( {} );
-assertDocumentCount( dbBase, 1 );
-checkDBFilesInDBDirectory( dbBase );
+var dbBase = m.getDB(baseName);
+dbBase[baseName].insert({});
+assertDocumentCount(dbBase, 1);
+checkDBFilesInDBDirectory(dbBase);
// Drop a database created with directoryperdb.
-assert.commandWorked( dbBase.runCommand( { dropDatabase : 1 } ) );
-assertDocumentCount( dbBase, 0 );
-checkDBDirectoryNonexistent( dbBase );
+assert.commandWorked(dbBase.runCommand({dropDatabase: 1}));
+assertDocumentCount(dbBase, 0);
+checkDBDirectoryNonexistent(dbBase);
// It should be impossible to create a database named "journal" with directoryperdb, as that
// directory exists. This test has been disabled until SERVER-2460 is resolved.
@@ -95,42 +92,41 @@ assert.writeError(db[ "journal" ].insert( {} ));
// Using WiredTiger, it should be impossible to create a database named "WiredTiger" with
// directoryperdb, as that file is created by the WiredTiger storageEngine.
-if ( storageEngine == "wiredTiger" ) {
- var dbW = m.getDB( "WiredTiger" );
- assert.writeError( dbW[ baseName ].insert( {} ) );
+if (storageEngine == "wiredTiger") {
+ var dbW = m.getDB("WiredTiger");
+ assert.writeError(dbW[baseName].insert({}));
}
// Create a database named 'a' repeated 63 times.
-var dbNameAA = Array( 64 ).join( 'a' );
-var dbAA = m.getDB( dbNameAA );
-assert.writeOK( dbAA[ baseName ].insert( {} ) );
-assertDocumentCount( dbAA, 1 );
-checkDBFilesInDBDirectory( dbAA );
+var dbNameAA = Array(64).join('a');
+var dbAA = m.getDB(dbNameAA);
+assert.writeOK(dbAA[baseName].insert({}));
+assertDocumentCount(dbAA, 1);
+checkDBFilesInDBDirectory(dbAA);
// Create a database named '&'.
-var dbAnd = m.getDB( '&' );
-assert.writeOK( dbAnd[ baseName ].insert( {} ) );
-assertDocumentCount( dbAnd, 1 );
-checkDBFilesInDBDirectory( dbAnd );
-
+var dbAnd = m.getDB('&');
+assert.writeOK(dbAnd[baseName].insert({}));
+assertDocumentCount(dbAnd, 1);
+checkDBFilesInDBDirectory(dbAnd);
// Unicode directoryperdb databases do not work on Windows.
// Disabled until https://jira.mongodb.org/browse/SERVER-16725
// is resolved.
-if ( !_isWindows() ) {
+if (!_isWindows()) {
// Create a database named '処'.
var dbNameU = '処';
- var dbU = m.getDB( dbNameU );
- assert.writeOK( dbU[ baseName ].insert( {} ) );
- assertDocumentCount( dbU, 1 );
- checkDBFilesInDBDirectory( dbU );
+ var dbU = m.getDB(dbNameU);
+ assert.writeOK(dbU[baseName].insert({}));
+ assertDocumentCount(dbU, 1);
+ checkDBFilesInDBDirectory(dbU);
// Create a database named '処' repeated 21 times.
var dbNameUU = Array(22).join('処');
- var dbUU = m.getDB( dbNameUU );
- assert.writeOK( dbUU[ baseName ].insert( {} ) );
- assertDocumentCount( dbUU, 1 );
- checkDBFilesInDBDirectory( dbUU );
+ var dbUU = m.getDB(dbNameUU);
+ assert.writeOK(dbUU[baseName].insert({}));
+ assertDocumentCount(dbUU, 1);
+ checkDBFilesInDBDirectory(dbUU);
}
print("SUCCESS directoryperdb.js");