diff options
author | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2015-11-17 17:36:12 -0500 |
---|---|---|
committer | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2015-11-18 18:25:52 -0500 |
commit | 68dfaba3e86fbce302fa62f33b644d8b36944423 (patch) | |
tree | 306fd7c8fc5b7503240a76ed8242bdb51740de1c /jstests/core | |
parent | f42a080cc0341d42ea5d5e42aa96366e0d952864 (diff) | |
download | mongo-68dfaba3e86fbce302fa62f33b644d8b36944423.tar.gz |
SERVER-21489 enableSharding should return error if sharding is already enabled
Diffstat (limited to 'jstests/core')
-rw-r--r-- | jstests/core/dbadmin.js | 89 | ||||
-rw-r--r-- | jstests/core/startup_log.js | 75 |
2 files changed, 88 insertions, 76 deletions
diff --git a/jstests/core/dbadmin.js b/jstests/core/dbadmin.js index 02644a054fe..b287a9ba58c 100644 --- a/jstests/core/dbadmin.js +++ b/jstests/core/dbadmin.js @@ -1,96 +1,33 @@ load('jstests/aggregation/extras/utils.js'); -// Check that smallArray is entirely contained by largeArray -// returns false if a member of smallArray is not in largeArray -function arrayIsSubset(smallArray, largeArray) { +(function() { +'use strict'; - for(var i = 0; i < smallArray.length; i++) { - if(!Array.contains(largeArray, smallArray[i])) { - print("Could not find " + smallArray[i] + " in largeArray"); - return false; - } - } - - return true; -} - -t = db.dbadmin; +var t = db.dbadmin; t.save( { x : 1 } ); t.save( { x : 1 } ); -res = db._adminCommand( "listDatabases" ); +var res = db._adminCommand( "listDatabases" ); assert( res.databases && res.databases.length > 0 , "listDatabases 1 " + tojson(res) ); -now = new Date(); -x = db._adminCommand( "ismaster" ); +var now = new Date(); +var x = db._adminCommand( "ismaster" ); assert( x.ismaster , "ismaster failed: " + tojson( x ) ) assert( x.localTime, "ismaster didn't include time: " + tojson(x)) -localTimeSkew = x.localTime - now + +var localTimeSkew = x.localTime - now if ( localTimeSkew >= 50 ) { print( "Warning: localTimeSkew " + localTimeSkew + " > 50ms." ) } assert.lt( localTimeSkew, 500, "isMaster.localTime" ) -before = db.runCommand( "serverStatus" ) +var before = db.runCommand( "serverStatus" ) print(before.uptimeEstimate); sleep( 5000 ) -after = db.runCommand( "serverStatus" ) + +var after = db.runCommand( "serverStatus" ) print(after.uptimeEstimate); assert.lt( 2 , after.uptimeEstimate , "up1" ) -assert.gt( after.uptimeEstimate , before.uptimeEstimate , "up2" ) - -// Test startup_log -var stats = db.getSisterDB( "local" ).startup_log.stats(); -assert(stats.capped); - -var latestStartUpLog = db.getSisterDB( "local" ).startup_log.find().sort( { $natural: -1 } ).limit(1).next(); -var serverStatus = db._adminCommand( "serverStatus" ); -var cmdLine = db._adminCommand( "getCmdLineOpts" ).parsed; - -// Test that the startup log has the expected keys -var verbose = false; -var expectedKeys = ["_id", "hostname", "startTime", "startTimeLocal", "cmdLine", "pid", "buildinfo"]; -var keys = Object.keySet(latestStartUpLog); -assert(arrayEq(expectedKeys, keys, verbose), 'startup_log keys failed'); - -// Tests _id implicitly - should be comprised of host-timestamp -// Setup expected startTime and startTimeLocal from the supplied timestamp -var _id = latestStartUpLog._id.split('-'); // _id should consist of host-timestamp -var _idUptime = _id.pop(); -var _idHost = _id.join('-'); -var uptimeSinceEpochRounded = Math.floor(_idUptime/1000) * 1000; -var startTime = new Date(uptimeSinceEpochRounded); // Expected startTime - -assert.eq(_idHost, latestStartUpLog.hostname, "Hostname doesn't match one from _id"); -assert.eq(serverStatus.host.split(':')[0], latestStartUpLog.hostname, "Hostname doesn't match one in server status"); -assert.closeWithinMS(startTime, latestStartUpLog.startTime, - "StartTime doesn't match one from _id", 2000); // Expect less than 2 sec delta -assert.eq(cmdLine, latestStartUpLog.cmdLine, "cmdLine doesn't match that from getCmdLineOpts"); -assert.eq(serverStatus.pid, latestStartUpLog.pid, "pid doesn't match that from serverStatus"); - -// Test buildinfo -var buildinfo = db.runCommand( "buildinfo" ); -delete buildinfo.ok; // Delete extra meta info not in startup_log -var isMaster = db._adminCommand( "ismaster" ); - -// Test buildinfo has the expected keys -var expectedKeys = ["version", "gitVersion", "allocator", "versionArray", "javascriptEngine", - "openssl", "buildEnvironment", "debug", "maxBsonObjectSize", "bits", "modules" ]; - -var keys = Object.keySet(latestStartUpLog.buildinfo); -// Disabled to check -assert(arrayIsSubset(expectedKeys, keys), "buildinfo keys failed! \n expected:\t" + expectedKeys + "\n actual:\t" + keys); -assert.eq(buildinfo, latestStartUpLog.buildinfo, "buildinfo doesn't match that from buildinfo command"); - -// Test version and version Array -var version = latestStartUpLog.buildinfo.version.split('-')[0]; -var versionArray = latestStartUpLog.buildinfo.versionArray; -var versionArrayCleaned = []; -// Only create a string with 2 dots (2.5.5, not 2.5.5.0) -for (var i = 0; i < (versionArray.length - 1); i++) if (versionArray[i] >= 0) { versionArrayCleaned.push(versionArray[i]); } +assert.gt( after.uptimeEstimate , before.uptimeEstimate , "up2" ); -assert.eq(serverStatus.version, latestStartUpLog.buildinfo.version, "Mongo version doesn't match that from ServerStatus"); -assert.eq(version, versionArrayCleaned.join('.'), "version doesn't match that from the versionArray"); -var jsEngine = latestStartUpLog.buildinfo.javascriptEngine; -assert((jsEngine == "none") || jsEngine.startsWith("mozjs")); -assert.eq(isMaster.maxBsonObjectSize, latestStartUpLog.buildinfo.maxBsonObjectSize, "maxBsonObjectSize doesn't match one from ismaster"); +})(); diff --git a/jstests/core/startup_log.js b/jstests/core/startup_log.js new file mode 100644 index 00000000000..e64e582c319 --- /dev/null +++ b/jstests/core/startup_log.js @@ -0,0 +1,75 @@ +load('jstests/aggregation/extras/utils.js');
+
+(function() {
+'use strict';
+
+// Check that smallArray is entirely contained by largeArray
+// returns false if a member of smallArray is not in largeArray
+function arrayIsSubset(smallArray, largeArray) {
+ for(var i = 0; i < smallArray.length; i++) {
+ if(!Array.contains(largeArray, smallArray[i])) {
+ print("Could not find " + smallArray[i] + " in largeArray");
+ return false;
+ }
+ }
+
+ return true;
+}
+
+// Test startup_log
+var stats = db.getSisterDB( "local" ).startup_log.stats();
+assert(stats.capped);
+
+var latestStartUpLog = db.getSisterDB( "local" ).startup_log.find().sort( { $natural: -1 } ).limit(1).next();
+var serverStatus = db._adminCommand( "serverStatus" );
+var cmdLine = db._adminCommand( "getCmdLineOpts" ).parsed;
+
+// Test that the startup log has the expected keys
+var verbose = false;
+var expectedKeys = ["_id", "hostname", "startTime", "startTimeLocal", "cmdLine", "pid", "buildinfo"];
+var keys = Object.keySet(latestStartUpLog);
+assert(arrayEq(expectedKeys, keys, verbose), 'startup_log keys failed');
+
+// Tests _id implicitly - should be comprised of host-timestamp
+// Setup expected startTime and startTimeLocal from the supplied timestamp
+var _id = latestStartUpLog._id.split('-'); // _id should consist of host-timestamp
+var _idUptime = _id.pop();
+var _idHost = _id.join('-');
+var uptimeSinceEpochRounded = Math.floor(_idUptime/1000) * 1000;
+var startTime = new Date(uptimeSinceEpochRounded); // Expected startTime
+
+assert.eq(_idHost, latestStartUpLog.hostname, "Hostname doesn't match one from _id");
+assert.eq(serverStatus.host.split(':')[0], latestStartUpLog.hostname, "Hostname doesn't match one in server status");
+assert.closeWithinMS(startTime, latestStartUpLog.startTime,
+ "StartTime doesn't match one from _id", 2000); // Expect less than 2 sec delta
+assert.eq(cmdLine, latestStartUpLog.cmdLine, "cmdLine doesn't match that from getCmdLineOpts");
+assert.eq(serverStatus.pid, latestStartUpLog.pid, "pid doesn't match that from serverStatus");
+
+// Test buildinfo
+var buildinfo = db.runCommand( "buildinfo" );
+delete buildinfo.ok; // Delete extra meta info not in startup_log
+var isMaster = db._adminCommand( "ismaster" );
+
+// Test buildinfo has the expected keys
+var expectedKeys = ["version", "gitVersion", "allocator", "versionArray", "javascriptEngine",
+ "openssl", "buildEnvironment", "debug", "maxBsonObjectSize", "bits", "modules" ];
+
+var keys = Object.keySet(latestStartUpLog.buildinfo);
+// Disabled to check
+assert(arrayIsSubset(expectedKeys, keys), "buildinfo keys failed! \n expected:\t" + expectedKeys + "\n actual:\t" + keys);
+assert.eq(buildinfo, latestStartUpLog.buildinfo, "buildinfo doesn't match that from buildinfo command");
+
+// Test version and version Array
+var version = latestStartUpLog.buildinfo.version.split('-')[0];
+var versionArray = latestStartUpLog.buildinfo.versionArray;
+var versionArrayCleaned = [];
+// Only create a string with 2 dots (2.5.5, not 2.5.5.0)
+for (var i = 0; i < (versionArray.length - 1); i++) if (versionArray[i] >= 0) { versionArrayCleaned.push(versionArray[i]); }
+
+assert.eq(serverStatus.version, latestStartUpLog.buildinfo.version, "Mongo version doesn't match that from ServerStatus");
+assert.eq(version, versionArrayCleaned.join('.'), "version doesn't match that from the versionArray");
+var jsEngine = latestStartUpLog.buildinfo.javascriptEngine;
+assert((jsEngine == "none") || jsEngine.startsWith("mozjs"));
+assert.eq(isMaster.maxBsonObjectSize, latestStartUpLog.buildinfo.maxBsonObjectSize, "maxBsonObjectSize doesn't match one from ismaster");
+
+})();
|