summaryrefslogtreecommitdiff
path: root/test/UnitClient.cpp
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@collabora.com>2017-06-06 08:53:41 +0100
committerMichael Meeks <michael.meeks@collabora.com>2017-06-06 08:53:57 +0100
commit5e2166bfd779114fad8a1b4ead2398f783c3e144 (patch)
treed42b3e5c9b444fc572eb5c56b97ae9fbef94e921 /test/UnitClient.cpp
parentc1a302a18220c25e6885c508bab1a5997ccd5bf1 (diff)
Add missing UnitClient.cpp
Change-Id: I267c5538faac695be7105ce4c81f1d247eb07595
Diffstat (limited to 'test/UnitClient.cpp')
-rw-r--r--test/UnitClient.cpp66
1 files changed, 66 insertions, 0 deletions
diff --git a/test/UnitClient.cpp b/test/UnitClient.cpp
new file mode 100644
index 000000000..46aaaf34b
--- /dev/null
+++ b/test/UnitClient.cpp
@@ -0,0 +1,66 @@
+/* -*- 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/.
+ */
+
+// Runs client tests in their own thread inside a WSD process.
+
+#include "config.h"
+
+#include "Unit.hpp"
+#include "wsd/LOOLWSD.hpp"
+
+#include "test.hpp"
+
+// Inside the WSD process
+class UnitClient : public UnitWSD
+{
+ bool _workerStarted;
+ std::thread _worker;
+
+public:
+ UnitClient() :
+ _workerStarted(false)
+ {
+ int timeout_minutes = 5;
+ setTimeout(timeout_minutes * 60 * 1000);
+ }
+ ~UnitClient()
+ {
+ LOG_INF("Joining test worker thread\n");
+ _worker.join();
+ }
+
+ void configure(Poco::Util::LayeredConfiguration& config) override
+ {
+ UnitWSD::configure(config);
+ // force HTTPS - to test harder
+ config.setBool("ssl.enable", true);
+ }
+
+ void invokeTest() override
+ {
+ // this method gets called every few seconds.
+ if (_workerStarted)
+ return;
+ _workerStarted = true;
+
+ _worker = std::thread([this]{
+ if (runClientTests(false, true))
+ exitTest (TestResult::Failed);
+ else
+ exitTest (TestResult::Ok);
+ });
+ }
+};
+
+UnitBase *unit_create_wsd(void)
+{
+ return new UnitClient();
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */