summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAshod Nakashian <ashod.nakashian@collabora.co.uk>2020-12-14 14:00:55 -0500
committerAshod Nakashian <Ashod@users.noreply.github.com>2020-12-22 11:24:13 -0500
commit13d7d23cbedda4a8e02b0c6f88dd13bca947fd1f (patch)
treea75d3494658e18622e0b3e026ffd5b8d6353976c
parentwsd: logs and const (diff)
downloadonline-13d7d23cbedda4a8e02b0c6f88dd13bca947fd1f.tar.gz
online-13d7d23cbedda4a8e02b0c6f88dd13bca947fd1f.zip
wsd: use chrono for readability and conversion safety
Change-Id: If5d478605fef0199b331d91310673a460e70d48e Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
-rw-r--r--common/Unit.cpp4
-rw-r--r--common/Unit.hpp7
-rw-r--r--test/UnitAdmin.cpp2
-rw-r--r--test/UnitClient.cpp4
-rw-r--r--test/UnitClose.cpp5
-rw-r--r--test/UnitConvert.cpp5
-rw-r--r--test/UnitEachView.cpp2
-rw-r--r--test/UnitFuzz.cpp4
-rw-r--r--test/UnitLoadTorture.cpp4
-rw-r--r--test/UnitPrefork.cpp2
-rw-r--r--test/UnitTimeout.cpp5
-rw-r--r--test/UnitTyping.cpp5
-rw-r--r--wsd/LOOLWSD.cpp21
-rw-r--r--wsd/Storage.hpp13
14 files changed, 46 insertions, 37 deletions
diff --git a/common/Unit.cpp b/common/Unit.cpp
index 2b6f0e09c6..1e92d0652d 100644
--- a/common/Unit.cpp
+++ b/common/Unit.cpp
@@ -131,7 +131,7 @@ bool UnitBase::isUnitTesting()
return Global && Global->_dlHandle;
}
-void UnitBase::setTimeout(int timeoutMilliSeconds)
+void UnitBase::setTimeout(std::chrono::milliseconds timeoutMilliSeconds)
{
assert(!TimeoutThreadRunning);
_timeoutMilliSeconds = timeoutMilliSeconds;
@@ -141,7 +141,7 @@ UnitBase::UnitBase()
: _dlHandle(nullptr),
_setRetValue(false),
_retValue(0),
- _timeoutMilliSeconds(30 * 1000),
+ _timeoutMilliSeconds(std::chrono::seconds(30)),
_type(UnitType::Wsd)
{
}
diff --git a/common/Unit.hpp b/common/Unit.hpp
index 69937051ae..ecebfda66f 100644
--- a/common/Unit.hpp
+++ b/common/Unit.hpp
@@ -9,6 +9,7 @@
#include <atomic>
#include <cassert>
+#include <chrono>
#include <memory>
#include <string>
@@ -59,7 +60,7 @@ class UnitBase
protected:
// ---------------- Helper API ----------------
/// After this time we invoke 'timeout' default 30 seconds
- void setTimeout(int timeoutMilliSeconds);
+ void setTimeout(std::chrono::milliseconds timeoutMilliSeconds);
enum class TestResult
{
@@ -143,7 +144,7 @@ public:
/// If the test times out this gets invoked, the default just exits.
virtual void timeout();
- int getTimeoutMilliSeconds() const
+ std::chrono::milliseconds getTimeoutMilliSeconds() const
{
return _timeoutMilliSeconds;
}
@@ -167,7 +168,7 @@ private:
static char *UnitLibPath;
bool _setRetValue;
int _retValue;
- int _timeoutMilliSeconds;
+ std::chrono::milliseconds _timeoutMilliSeconds;
static UnitBase *Global;
UnitType _type;
};
diff --git a/test/UnitAdmin.cpp b/test/UnitAdmin.cpp
index 7d9c3c914e..90cdd33f39 100644
--- a/test/UnitAdmin.cpp
+++ b/test/UnitAdmin.cpp
@@ -406,7 +406,7 @@ public:
UnitAdmin()
: _uri(helpers::getTestServerURI() + "/loleaflet/dist/admin/admin.html")
{
- setTimeout(60 * 1000);
+ setTimeout(std::chrono::seconds(60));
// Register tests here.
_tests.push_back(&UnitAdmin::testIncorrectPassword);
diff --git a/test/UnitClient.cpp b/test/UnitClient.cpp
index e2e2892e43..ff9a82a89b 100644
--- a/test/UnitClient.cpp
+++ b/test/UnitClient.cpp
@@ -26,8 +26,8 @@ public:
UnitClient() :
_workerStarted(false)
{
- int timeout_minutes = 5;
- setTimeout(timeout_minutes * 60 * 1000);
+ constexpr std::chrono::minutes timeout_minutes(5);
+ setTimeout(timeout_minutes);
}
~UnitClient()
{
diff --git a/test/UnitClose.cpp b/test/UnitClose.cpp
index a89f7e024c..edca44b83e 100644
--- a/test/UnitClose.cpp
+++ b/test/UnitClose.cpp
@@ -5,6 +5,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
+#include <chrono>
#include <memory>
#include <ostream>
#include <set>
@@ -210,8 +211,8 @@ UnitBase::TestResult UnitClose::testAlertAllUsers()
UnitClose::UnitClose()
{
- int timeout_minutes = 2;
- setTimeout(timeout_minutes * 60 * 1000);
+ constexpr std::chrono::minutes timeout_minutes(2);
+ setTimeout(timeout_minutes);
}
void UnitClose::invokeTest()
diff --git a/test/UnitConvert.cpp b/test/UnitConvert.cpp
index 0260a1ae40..3edb0cfcf9 100644
--- a/test/UnitConvert.cpp
+++ b/test/UnitConvert.cpp
@@ -35,8 +35,9 @@ public:
_workerStarted(false)
{
setHasKitHooks();
- setTimeout(3600 * 1000); /* one hour */
+ setTimeout(std::chrono::hours(1));
}
+
~UnitConvert()
{
LOG_INF("Joining test worker thread\n");
@@ -111,7 +112,7 @@ class UnitKitConvert : public UnitKit
public:
UnitKitConvert()
{
- setTimeout(3600 * 1000); /* one hour */
+ setTimeout(std::chrono::hours(1));
}
};
diff --git a/test/UnitEachView.cpp b/test/UnitEachView.cpp
index 13867445ec..161f1354f8 100644
--- a/test/UnitEachView.cpp
+++ b/test/UnitEachView.cpp
@@ -160,7 +160,7 @@ UnitBase::TestResult UnitEachView::testGraphicViewSelectionImpress()
UnitEachView::UnitEachView()
{
// 8 times larger then the default.
- setTimeout(240 * 1000);
+ setTimeout(std::chrono::seconds(240));
}
void UnitEachView::invokeTest()
diff --git a/test/UnitFuzz.cpp b/test/UnitFuzz.cpp
index dafbcba2f5..6a4db64fc9 100644
--- a/test/UnitFuzz.cpp
+++ b/test/UnitFuzz.cpp
@@ -32,7 +32,7 @@ public:
{
std::cerr << "\n\nYour WSD process is being randomly fuzzed\n\n\n";
setHasKitHooks();
- setTimeout(3600 * 1000); /* one hour */
+ setTimeout(std::chrono::hours(1));
}
std::string corruptString(const std::string &str)
@@ -122,7 +122,7 @@ public:
UnitKitFuzz()
{
std::cerr << "\n\nYour KIT process has fuzzing hooks\n\n\n";
- setTimeout(3600 * 1000); /* one hour */
+ setTimeout(std::chrono::hours(1));
}
virtual bool filterKitMessage(WebSocketHandler *, std::string & /* message */) override
{
diff --git a/test/UnitLoadTorture.cpp b/test/UnitLoadTorture.cpp
index 6b54716184..7b6127f1c0 100644
--- a/test/UnitLoadTorture.cpp
+++ b/test/UnitLoadTorture.cpp
@@ -197,8 +197,8 @@ UnitBase::TestResult UnitLoadTorture::testLoadTorture()
UnitLoadTorture::UnitLoadTorture()
{
// Double of the default.
- int timeout_minutes = 1;
- setTimeout(timeout_minutes * 60 * 1000);
+ constexpr std::chrono::minutes timeout_minutes(1);
+ setTimeout(timeout_minutes);
}
void UnitLoadTorture::invokeTest()
diff --git a/test/UnitPrefork.cpp b/test/UnitPrefork.cpp
index 916c5fce07..12d4c02cc3 100644
--- a/test/UnitPrefork.cpp
+++ b/test/UnitPrefork.cpp
@@ -22,7 +22,7 @@ public:
UnitPrefork()
: _childSockets(0)
{
- setTimeout(60 * 1000);
+ setTimeout(std::chrono::seconds(60));
}
virtual void configure(Poco::Util::LayeredConfiguration& config) override
diff --git a/test/UnitTimeout.cpp b/test/UnitTimeout.cpp
index d575f6244b..e5270794a5 100644
--- a/test/UnitTimeout.cpp
+++ b/test/UnitTimeout.cpp
@@ -5,6 +5,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
+#include <chrono>
#include <config.h>
#include <cassert>
@@ -21,13 +22,15 @@ public:
UnitTimeout()
: _timedOut(false)
{
- setTimeout(10);
+ setTimeout(std::chrono::milliseconds(10));
}
+
virtual void timeout() override
{
_timedOut = true;
UnitBase::timeout();
}
+
virtual void returnValue(int & retValue) override
{
if (!_timedOut)
diff --git a/test/UnitTyping.cpp b/test/UnitTyping.cpp
index 441a691179..7f7e69ae41 100644
--- a/test/UnitTyping.cpp
+++ b/test/UnitTyping.cpp
@@ -33,9 +33,10 @@ public:
UnitTyping() :
_workerStarted(false)
{
- int timeout_minutes = 5;
- setTimeout(timeout_minutes * 60 * 1000);
+ constexpr std::chrono::minutes timeout_minutes(5);
+ setTimeout(timeout_minutes);
}
+
~UnitTyping()
{
LOG_INF("Joining test worker thread\n");
diff --git a/wsd/LOOLWSD.cpp b/wsd/LOOLWSD.cpp
index 52c9625a21..fbdda9c6f1 100644
--- a/wsd/LOOLWSD.cpp
+++ b/wsd/LOOLWSD.cpp
@@ -205,7 +205,7 @@ static std::mutex DocBrokersMutex;
extern "C" { void dump_state(void); /* easy for gdb */ }
#if ENABLE_DEBUG
-static int careerSpanMs = 0;
+static std::chrono::milliseconds careerSpanMs(std::chrono::milliseconds::zero());
#endif
/// The timeout for a child to spawn, initially high, then reset to the default.
@@ -1631,7 +1631,7 @@ void LOOLWSD::handleOption(const std::string& optionName,
else if (optionName == "unitlib")
UnitTestLibrary = value;
else if (optionName == "careerspan")
- careerSpanMs = std::stoi(value) * 1000; // Convert second to ms
+ careerSpanMs = std::chrono::seconds(std::stoi(value)); // Convert second to ms
else if (optionName == "singlekit")
{
SingleKit = true;
@@ -4000,25 +4000,28 @@ int LOOLWSD::innerMain()
UnitWSD::get().invokeTest();
// This timeout affects the recovery time of prespawned children.
- const long waitMicroS = UnitWSD::isUnitTesting() ?
- static_cast<long>(UnitWSD::get().getTimeoutMilliSeconds()) * 1000 / 4 :
- SocketPoll::DefaultPollTimeoutMicroS * 4;
+ const long waitMicroS
+ = UnitWSD::isUnitTesting()
+ ? std::chrono::microseconds(UnitWSD::get().getTimeoutMilliSeconds()).count() / 4
+ : std::chrono::microseconds(SocketPoll::DefaultPollTimeoutMicroS * 4).count();
mainWait.poll(waitMicroS);
// Wake the prisoner poll to spawn some children, if necessary.
PrisonerPoll.wakeup();
- const std::chrono::milliseconds::rep timeSinceStartMs = std::chrono::duration_cast<std::chrono::milliseconds>(
- std::chrono::steady_clock::now() - startStamp).count();
+ const std::chrono::milliseconds timeSinceStartMs
+ = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::steady_clock::now()
+ - startStamp);
// Unit test timeout
if (timeSinceStartMs > UnitWSD::get().getTimeoutMilliSeconds())
UnitWSD::get().timeout();
#if ENABLE_DEBUG && !MOBILEAPP
- if (careerSpanMs > 0 && timeSinceStartMs > careerSpanMs)
+ if (careerSpanMs > std::chrono::milliseconds::zero() && timeSinceStartMs > careerSpanMs)
{
- LOG_INF(timeSinceStartMs << " milliseconds gone, finishing as requested. Setting ShutdownRequestFlag.");
+ LOG_INF(timeSinceStartMs
+ << " gone, finishing as requested. Setting ShutdownRequestFlag.");
SigUtil::requestShutdown();
}
#endif
diff --git a/wsd/Storage.hpp b/wsd/Storage.hpp
index 7b636bd391..1baea46a50 100644
--- a/wsd/Storage.hpp
+++ b/wsd/Storage.hpp
@@ -370,13 +370,12 @@ private:
class WopiStorage : public StorageBase
{
public:
- WopiStorage(const Poco::URI& uri,
- const std::string& localStorePath,
- const std::string& jailPath) :
- StorageBase(uri, localStorePath, jailPath),
- _wopiLoadDuration(0),
- _wopiSaveDuration(0),
- _reuseCookies(false)
+ WopiStorage(const Poco::URI& uri, const std::string& localStorePath,
+ const std::string& jailPath)
+ : StorageBase(uri, localStorePath, jailPath)
+ , _wopiLoadDuration(std::chrono::milliseconds::zero())
+ , _wopiSaveDuration(std::chrono::milliseconds::zero())
+ , _reuseCookies(false)
{
const auto& app = Poco::Util::Application::instance();
_reuseCookies = app.config().getBool("storage.wopi.reuse_cookies", false);