diff options
Diffstat (limited to 'jstests/noPassthroughWithMongod/host_connection_string_validation.js')
| -rw-r--r-- | jstests/noPassthroughWithMongod/host_connection_string_validation.js | 204 |
1 files changed, 102 insertions, 102 deletions
diff --git a/jstests/noPassthroughWithMongod/host_connection_string_validation.js b/jstests/noPassthroughWithMongod/host_connection_string_validation.js index bb6bba625dd..a252ef39230 100644 --- a/jstests/noPassthroughWithMongod/host_connection_string_validation.js +++ b/jstests/noPassthroughWithMongod/host_connection_string_validation.js @@ -1,115 +1,115 @@ // Test --host. +(function() { + // This "inner_mode" method of spawning a mongod and re-running was copied from + // ipv6_connection_string_validation.js + if ("undefined" == typeof inner_mode) { + // Start a mongod with --ipv6 + jsTest.log("Outer mode test starting mongod with --ipv6"); + // NOTE: bind_ip arg is present to test if it can parse ipv6 addresses (::1 in this case). + // Unfortunately, having bind_ip = ::1 won't work in the test framework (But does work when + // tested manually), so 127.0.0.1 is also present so the test mongo shell can connect + // with that address. + var mongod = MongoRunner.runMongod({ipv6: "", bind_ip: "::1,127.0.0.1"}); + var args = [ + "mongo", + "--nodb", + "--ipv6", + "--host", + "::1", + "--port", + mongod.port, + "--eval", + "inner_mode=true;port=" + mongod.port + ";", + "jstests/noPassthroughWithMongod/host_connection_string_validation.js" + ]; + var exitCode = _runMongoProgram.apply(null, args); + jsTest.log("Inner mode test finished, exit code was " + exitCode); -// This "inner_mode" method of spawning a mongod and re-running was copied from -// ipv6_connection_string_validation.js -if ("undefined" == typeof inner_mode) { - // Start a mongod with --ipv6 - jsTest.log("Outer mode test starting mongod with --ipv6"); - // NOTE: bind_ip arg is present to test if it can parse ipv6 addresses (::1 in this case). - // Unfortunately, having bind_ip = ::1 won't work in the test framework (But does work when - // tested manually), so 127.0.0.1 is also present so the test mongo shell can connect - // with that address. - var mongod = MongoRunner.runMongod({ipv6: "", bind_ip: "::1,127.0.0.1"}); - var args = [ - "mongo", - "--nodb", - "--ipv6", - "--host", - "::1", - "--port", - mongod.port, - "--eval", - "inner_mode=true;port=" + mongod.port + ";", - "jstests/noPassthroughWithMongod/host_connection_string_validation.js" - ]; - var exitCode = _runMongoProgram.apply(null, args); - jsTest.log("Inner mode test finished, exit code was " + exitCode); - - // Stop the server we started - jsTest.log("Outer mode test stopping server"); - MongoRunner.stopMongod(mongod.port, 15); - - // Pass the inner test's exit code back as the outer test's exit code - quit(exitCode); -} - -var testHost = function(host, shouldSucceed) { - var exitCode = runMongoProgram('mongo', '--ipv6', '--eval', ';', '--host', host); - if (shouldSucceed) { - if (exitCode !== 0) { - doassert("failed to connect with `--host " + host + - "`, but expected success. Exit code: " + exitCode); - } - } else { - if (exitCode === 0) { - doassert("successfully connected with `--host " + host + "`, but expected to fail."); + // Pass the inner test's exit code back as the outer test's exit code + if (exitCode != 0) { + doassert("inner test failed with exit code " + exitcode); } + return; } -}; -var goodStrings = [ - "[::1]:27999", - "localhost:27999", - "127.0.0.1:27999", - "[0:0:0:0:0:0:0:1]:27999", - "[0000:0000:0000:0000:0000:0000:0000:0001]:27999", -]; + var testHost = function(host, shouldSucceed) { + var exitCode = runMongoProgram('mongo', '--ipv6', '--eval', ';', '--host', host); + if (shouldSucceed) { + if (exitCode !== 0) { + doassert("failed to connect with `--host " + host + + "`, but expected success. Exit code: " + exitCode); + } + } else { + if (exitCode === 0) { + doassert("successfully connected with `--host " + host + + "`, but expected to fail."); + } + } + }; + + var goodStrings = [ + "[::1]:27999", + "localhost:27999", + "127.0.0.1:27999", + "[0:0:0:0:0:0:0:1]:27999", + "[0000:0000:0000:0000:0000:0000:0000:0001]:27999", + ]; -var goodSocketStrings = [ - "/tmp/mongodb-27999.sock", -]; + var goodSocketStrings = [ + "/tmp/mongodb-27999.sock", + ]; -var badStrings = [ - "::1:27999", - "::1:65536", - "::1]:27999", - ":", - ":27999", - "", - "[::1:]27999", - "[::1:27999", - "[::1]:", - "[::1]:123456", - "[::1]:1cat", - "[::1]:65536", - "[::1]:cat", - "0:0::0:0:1:27999", - "0000:0000:0000:0000:0000:0000:0000:0001:27999", - "127.0.0.1:", - "127.0.0.1:123456", - "127.0.0.1:1cat", - "127.0.0.1:65536", - "127.0.0.1:cat", - "a[::1:]27999", - "a[127.0.0.1]:27999", - "localhost:", -]; + var badStrings = [ + "::1:27999", + "::1:65536", + "::1]:27999", + ":", + ":27999", + "[::1:]27999", + "[::1:27999", + "[::1]:", + "[::1]:123456", + "[::1]:1cat", + "[::1]:65536", + "[::1]:cat", + "0:0::0:0:1:27999", + "0000:0000:0000:0000:0000:0000:0000:0001:27999", + "127.0.0.1:", + "127.0.0.1:123456", + "127.0.0.1:1cat", + "127.0.0.1:65536", + "127.0.0.1:cat", + "a[::1:]27999", + "a[127.0.0.1]:27999", + "localhost:", + ]; -function runUriTestFor(i, connectionString, isGood) { - connectionString = connectionString.replace("27999", "" + port); - print("Testing " + (isGood ? "good" : "bad") + " connection string " + i + "..."); - print(" * testing " + connectionString); - testHost(connectionString, isGood); - print(" * testing mongodb://" + connectionString); - testHost("mongodb://" + connectionString, isGood); -} + function runUriTestFor(i, connectionString, isGood) { + connectionString = connectionString.replace("27999", "" + port); + print("Testing " + (isGood ? "good" : "bad") + " connection string " + i + "..."); + print(" * testing " + connectionString); + testHost(connectionString, isGood); + print(" * testing mongodb://" + connectionString); + testHost("mongodb://" + connectionString, isGood); + } -var i; -jsTest.log("TESTING " + goodStrings.length + " good uri strings"); -for (i = 0; i < goodStrings.length; ++i) { - runUriTestFor(i, goodStrings[i], true); -} + var i; + jsTest.log("TESTING " + goodStrings.length + " good uri strings"); + for (i = 0; i < goodStrings.length; ++i) { + runUriTestFor(i, goodStrings[i], true); + } -if (!_isWindows()) { - jsTest.log("TESTING " + goodSocketStrings.length + " good uri socket strings"); - for (i = 0; i < goodSocketStrings.length; ++i) { - runUriTestFor(i, goodSocketStrings[i], true); + if (!_isWindows()) { + jsTest.log("TESTING " + goodSocketStrings.length + " good uri socket strings"); + for (i = 0; i < goodSocketStrings.length; ++i) { + runUriTestFor(i, goodSocketStrings[i], true); + } } -} -jsTest.log("TESTING " + badStrings.length + " bad uri strings"); -for (i = 0; i < badStrings.length; ++i) { - runUriTestFor(i, badStrings[i], false); -} + jsTest.log("TESTING " + badStrings.length + " bad uri strings"); + for (i = 0; i < badStrings.length; ++i) { + runUriTestFor(i, badStrings[i], false); + } -jsTest.log("SUCCESSFUL test completion"); + jsTest.log("SUCCESSFUL test completion"); +})(); |
