[Libreoffice-commits] online.git: test/httpcrashtest.cpp test/Makefile.am test/run_unit.sh.in test/test.cpp test/test.hpp test/TileCacheTests.cpp

Michael Meeks michael.meeks at collabora.com
Fri Jun 2 17:33:44 UTC 2017


 test/Makefile.am        |    6 ++++--
 test/TileCacheTests.cpp |    6 ++++--
 test/httpcrashtest.cpp  |    1 +
 test/run_unit.sh.in     |    8 +++++---
 test/test.cpp           |   16 ++++++++++++++++
 test/test.hpp           |   21 +++++++++++++++++++++
 6 files changed, 51 insertions(+), 7 deletions(-)

New commits:
commit 097cc58d530e4e40482a4b981306200151088562
Author: Michael Meeks <michael.meeks at collabora.com>
Date:   Fri May 12 03:08:20 2017 +0100

    Run old-style unit tests as a new-style unit test.
    
    This moves the code into the same process, for easier logging & debugging.
    
    Disabled initially.
    
    Change-Id: Id48b5649ba14deb0a2159ca59e321c7d0ae66dad

diff --git a/test/Makefile.am b/test/Makefile.am
index 754f0f12..50629277 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -14,7 +14,7 @@ AM_CXXFLAGS = $(CPPUNIT_CFLAGS) -DTDOC=\"$(top_srcdir)/test/data\" \
 
 noinst_LTLIBRARIES = \
         unit-timeout.la unit-prefork.la \
-        unit-storage.la \
+        unit-storage.la unit-client.la \
         unit-admin.la unit-tilecache.la \
 	unit-fuzz.la unit-oob.la
 
@@ -56,6 +56,8 @@ unit_oob_la_SOURCES = UnitOOB.cpp
 unit_fuzz_la_SOURCES = UnitFuzz.cpp
 unit_admin_la_SOURCES = UnitAdmin.cpp
 unit_admin_la_LIBADD = $(CPPUNIT_LIBS)
+unit_client_la_SOURCES = UnitClient.cpp ${test_SOURCES}
+unit_client_la_LIBADD = $(CPPUNIT_LIBS)
 unit_timeout_la_SOURCES = UnitTimeout.cpp
 unit_prefork_la_SOURCES = UnitPrefork.cpp
 unit_storage_la_SOURCES = UnitStorage.cpp
@@ -73,7 +75,7 @@ check-local:
 	./run_unit.sh --log-file test.log --trs-file test.trs
 # FIXME 2: unit-oob.la fails with symbol undefined:
 # UnitWSD::testHandleRequest(UnitWSD::TestRequest, UnitHTTPServerRequest&, UnitHTTPServerResponse&) ,
-TESTS = unit-prefork.la unit-tilecache.la unit-timeout.la # unit-storage.la # unit-admin.la
+TESTS = unit-prefork.la unit-tilecache.la unit-timeout.la # unit-client.la - enable to run unit-tests in wsd ...
 else
 TESTS = ${top_builddir}/test/test
 endif
diff --git a/test/TileCacheTests.cpp b/test/TileCacheTests.cpp
index 16577b3f..cac39144 100644
--- a/test/TileCacheTests.cpp
+++ b/test/TileCacheTests.cpp
@@ -26,6 +26,7 @@
 
 #include "countloolkits.hpp"
 #include "helpers.hpp"
+#include "test.hpp"
 
 using namespace helpers;
 
@@ -153,9 +154,10 @@ public:
 
 void TileCacheTests::testSimple()
 {
-    if (!UnitWSD::init(UnitWSD::UnitType::Wsd, ""))
+    if (isStandalone())
     {
-        throw std::runtime_error("Failed to load wsd unit test library.");
+        if (!UnitWSD::init(UnitWSD::UnitType::Wsd, ""))
+            throw std::runtime_error("Failed to load wsd unit test library.");
     }
 
     // Create TileCache and pretend the file was modified as recently as
diff --git a/test/httpcrashtest.cpp b/test/httpcrashtest.cpp
index b6230d5a..72720734 100644
--- a/test/httpcrashtest.cpp
+++ b/test/httpcrashtest.cpp
@@ -208,6 +208,7 @@ void HTTPCrashTest::testCrashForkit()
 
         std::cerr << "Killing forkit." << std::endl;
         killLoKitProcesses("(loolforkit)");
+        killLoKitProcesses("(forkit)"); // on new kernels: prctrl does that.
         std::cerr << "Communicating after kill." << std::endl;
 
         sendTextFrame(socket, "status", testname);
diff --git a/test/run_unit.sh.in b/test/run_unit.sh.in
index 4ac7fb30..95a8e17f 100755
--- a/test/run_unit.sh.in
+++ b/test/run_unit.sh.in
@@ -101,7 +101,7 @@ if test "z$tst" == "z"; then
 
 else # newer unit tests.
     echo "Running $tst | $tst_log ...";
-	if ${valgrind} \
+    if ${valgrind} \
        ${abs_top_builddir}/loolwsd --o:sys_template_path="$systemplate_path" \
                                    --o:lo_template_path="$lo_path" \
                                    --o:child_root_path="$jails_path" \
@@ -111,11 +111,11 @@ else # newer unit tests.
                                    --o:ssl.cert_file_path="${abs_top_builddir}/etc/cert.pem" \
                                    --o:ssl.ca_file_path="${abs_top_builddir}/etc/ca-chain.cert.pem" \
                                    --o:admin_console.username=admin --o:admin_console.password=admin \
-                                   --unitlib=".libs/$tst.so" > "$tst_log" 2>&1; then
+                                   --unitlib=".libs/$tst.so" 2> "$tst_log"; then
         echo "Test $tst passed."
         echo ":test-result: PASS $tst" >> $test_output
     else
-        cat "$tst_log"
+	cat $tst_log
         echo "============================================================="
         echo "Test failed on unit: $tst re-run with:"
         echo "   $ gdb --args ${abs_top_builddir}/loolwsd --o:sys_template_path=\"$systemplate_path\" \\"
@@ -128,6 +128,8 @@ else # newer unit tests.
         echo "         --o:ssl.ca_file_path=\"${abs_top_builddir}/etc/ca-chain.cert.pem\" \\"
         echo "         --o:admin_console.username=admin --o:admin_console.password=admin \\"
         echo "         --unitlib=\".libs/$tst.so\""
+	echo ""
+	echo "   $ less $tst_log # for detailed failure log files"
         echo "============================================================="
         echo ":test-result: FAIL $tst" >> $test_output
     fi
diff --git a/test/test.cpp b/test/test.cpp
index 4d6fc505..b506b20c 100644
--- a/test/test.cpp
+++ b/test/test.cpp
@@ -24,6 +24,8 @@
 
 #include <Log.hpp>
 
+#include "test.hpp"
+
 class HTTPGetTest;
 
 bool filterTests(CPPUNIT_NS::TestRunner& runner, CPPUNIT_NS::Test* testRegistry, const std::string testName)
@@ -63,6 +65,20 @@ int main(int argc, char** argv)
 
     Log::initialize("tst", loglevel, true, false, {});
 
+    runClientTests(true, verbose);
+}
+
+static bool IsStandalone = false;
+
+bool isStandalone()
+{
+    return IsStandalone;
+}
+
+bool runClientTests(bool standalone, bool verbose)
+{
+    IsStandalone = standalone;
+
     CPPUNIT_NS::TestResult controller;
     CPPUNIT_NS::TestResultCollector result;
     controller.addListener(&result);
diff --git a/test/test.hpp b/test/test.hpp
new file mode 100644
index 00000000..953cd1af
--- /dev/null
+++ b/test/test.hpp
@@ -0,0 +1,21 @@
+/* -*- 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/.
+ */
+
+#ifndef INCLUDED_TEST_HPP
+#define INCLUDED_TEST_HPP
+
+/// Are we running inside WSD or by ourselves.
+bool isStandalone();
+
+/// Run the set of client tests we have
+bool runClientTests(bool standalone, bool verbose);
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list