libreoffice-online/loolwsd/test/UnitPrefork.cpp
Ashod Nakashian abca88c7cf loolwsd: correction to prefork unit-test
Since WSD now takes into account the fact that
ForKit always spawns one child, the unit-test
shouldn't expect +1 preforked children.

Change-Id: I5cbe9d817a0d2ffdf9fb0953ef85450f7b8b224f
Reviewed-on: https://gerrit.libreoffice.org/23980
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-04-11 03:12:26 +00:00

73 lines
1.6 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include <dlfcn.h>
#include <ftw.h>
#include <cassert>
#include <iostream>
#include "Util.hpp"
#include "Unit.hpp"
#include <Poco/Timestamp.h>
using Poco::Timestamp;
// Inside the WSD process
class UnitPrefork : public UnitWSD
{
int _numStarted;
const int _numToPrefork;
Timestamp _startTime;
public:
UnitPrefork()
: _numStarted(0),
_numToPrefork(20)
{
setHasKitHooks();
}
virtual void preSpawnCount(int &numPrefork) override
{
numPrefork = _numToPrefork;
}
virtual void newChild() override
{
++_numStarted;
if (_numStarted >= _numToPrefork)
{
exitTest(TestResult::TEST_OK);
Poco::Timestamp::TimeDiff elapsed = _startTime.elapsed();
std::cout << "Launched " << _numStarted << " in "
<< (1.0 * elapsed)/Poco::Timestamp::resolution() << std::endl;
}
}
};
// Inside the forkit & kit processes
class UnitKitPrefork : public UnitKit
{
public:
UnitKitPrefork() {}
};
UnitBase *unit_create_wsd(void)
{
return new UnitPrefork();
}
UnitBase *unit_create_kit(void)
{
return new UnitKitPrefork();
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */