summaryrefslogtreecommitdiff
path: root/jstests/noPassthroughWithMongod/unix_socket1.js
blob: d6f10062565a995ff700d1baf8cf2f5fa1c9c677 (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
doesLogMatchRegex = function(logArray, regex) {
    for (var i = (logArray.length - 1); i >= 0; i--) {
        var regexInLine = regex.exec(logArray[i]);
        if (regexInLine != null) {
            return true;
        }
    }
    return false;
};

if (!_isWindows()) {
    hoststring = db.getMongo().host;
    index = hoststring.lastIndexOf(':');
    if (index == -1) {
        port = '27017';
    } else {
        port = hoststring.substr(index + 1);
    }

    sock = new Mongo('/tmp/mongodb-' + port + '.sock');
    sockdb = sock.getDB(db.getName());
    assert(sockdb.runCommand('ping').ok);

    // Test unix socket path
    var path = MongoRunner.dataDir + "/sockpath";
    mkdir(path);
    var dataPath = MongoRunner.dataDir + "/sockpath_data";

    var conn = MongoRunner.runMongod({dbpath: dataPath, unixSocketPrefix: path});

    var sock2 = new Mongo(path + "/mongodb-" + conn.port + ".sock");
    sockdb2 = sock2.getDB(db.getName());
    assert(sockdb2.runCommand('ping').ok);

    // Test the naming of the unix socket
    var log = db.adminCommand({getLog: 'global'});
    var ll = log.log;
    var re = new RegExp("anonymous unix socket");
    assert(doesLogMatchRegex(ll, re), "Log message did not contain 'anonymous unix socket'");
} else {
    print("Not testing unix sockets on Windows");
}