Example #1
0
void printShardingVersionInfo(bool out) {
    if (out) {
        setPlainConsoleLogger();
        log() << mongosVersion();
        printBuildInfo();
    } else {
        log() << mongosVersion();
        printBuildInfo();
        logProcessDetails();
    }
}
int runDbTests(int argc, char** argv) {
    frameworkGlobalParams.perfHist = 1;
    frameworkGlobalParams.seed = time(0);
    frameworkGlobalParams.runsPerTest = 1;

    Client::initThread("testsuite");

    srand((unsigned)frameworkGlobalParams.seed);
    printBuildInfo();

    getGlobalServiceContext()->initializeGlobalStorageEngine();

    {
        auto txn = cc().makeOperationContext();

        // Initialize the sharding state so we can run sharding tests in isolation
        auto connectHook = stdx::make_unique<CustomConnectHook>(txn.get());
        ConnectionString::setConnectionHook(connectHook.get());
        ON_BLOCK_EXIT([] { ConnectionString::setConnectionHook(nullptr); });
        ShardingState::get(txn.get())->initialize(txn.get(), "$dummy:10000");
    }

    // Note: ShardingState::initialize also initializes the distLockMgr.
    {
        auto txn = cc().makeOperationContext();
        auto distLockMgr = dynamic_cast<LegacyDistLockManager*>(
            grid.forwardingCatalogManager()->getDistLockManager());
        if (distLockMgr) {
            distLockMgr->enablePinger(false);
        }
    }


    int ret = unittest::Suite::run(frameworkGlobalParams.suites,
                                   frameworkGlobalParams.filter,
                                   frameworkGlobalParams.runsPerTest);

    // So everything shuts down cleanly
    exitCleanly((ExitCode)ret);
    return ret;
}