Files
mongo/jstests/multiVersion/new_freelist_upgrade_downgrade.js
Charlie Swanson fa0ea5f7e9 SERVER-20414 Instruct 2.4 processes to disable an unneeded httpinterface
The httpinterface parameter is on by default in 2.4 and before, but is not
needed. Since it uses a hardcoded port, it interferes with running the tests
in parallel, and should be disabled.
2015-10-13 18:12:11 -04:00

63 lines
1.5 KiB
JavaScript

// SERVER-15319 Make sure pdfile version bumping for the new freelist works as intended
var tooOld = "2.4"; // anything <= 2.6.4
var newEnough = "2.6"; // latest in 2.6 is >= 2.6.5
var latest = "latest";
function restart(conn, version) {
MongoRunner.stopMongod(conn);
return MongoRunner.runMongod({restart: conn, remember: true, binVersion: version});
}
function repair(conn, version) {
MongoRunner.stopMongod(conn);
MongoRunner.runMongod({restart: conn, remember: true, binVersion: version, repair: ""});
}
// start out running tooOld
var conn = MongoRunner.runMongod({
remember: true,
binVersion: tooOld,
smallfiles: "",
nohttpinterface: ""
});
assert(conn);
// can go from tooOld to newEnough
conn = restart(conn, newEnough);
assert(conn);
// can go from newEnough to tooOld
conn = restart(conn, tooOld);
assert(conn);
// can go from tooOld to latest
conn = restart(conn, latest);
assert(conn);
// can go from latest to newEnough
conn = restart(conn, newEnough);
assert(conn);
// can't go back to tooOld once started with latest, even if started with newEnough in between.
assert.isnull(restart(conn, tooOld));
// can still start with newEnough
conn = restart(conn, newEnough);
assert(conn);
// can still start with latest
conn = restart(conn, latest);
assert(conn);
// can repair with newEnough
repair(conn, newEnough);
// can start with tooOld after repairing with newEnough
conn = restart(conn, tooOld);
assert(conn);
// THIS MUST BE THE LAST LINE
MongoRunner.stopMongod(conn);