mongo/jstests/noPassthrough/compression/compression_options.js

42 lines
1.2 KiB
JavaScript

// Tests --networkMessageCompressors options.
let runTest = function (optionValue, expected) {
jsTest.log('Testing with --networkMessageCompressors="' + optionValue + '" expecting: ' + expected);
let mongo = MongoRunner.runMongod({networkMessageCompressors: optionValue});
assert.commandWorked(mongo.adminCommand({hello: 1}));
clearRawMongoProgramOutput();
assert.eq(
runMongoProgram(
"mongo",
"--eval",
"tostrictjson(db.hello());",
"--port",
mongo.port,
"--networkMessageCompressors=snappy",
),
0,
);
let output = rawMongoProgramOutput(".*")
.split("\n")
.map(function (str) {
str = str.replace(/^sh[0-9]+\| /, "");
if (!/^{.*isWritablePrimary/.test(str)) {
return "";
}
return str;
})
.join("\n")
.trim();
output = JSON.parse(output);
assert.eq(output.compression, expected);
MongoRunner.stopMongod(mongo);
};
assert.throws(() => MongoRunner.runMongod({networkMessageCompressors: "snappy,disabled"}));
runTest("snappy", ["snappy"]);
runTest("disabled", undefined);