[Libreoffice-commits] online.git: 3 commits - test/Makefile.am test/run_unit.sh.in test/UnitFuzz.cpp test/UnitOOB.cpp wsd/LOOLWSD.cpp

Michael Meeks michael.meeks at collabora.com
Thu Dec 8 17:47:50 UTC 2016


 test/Makefile.am    |    6 ++++--
 test/UnitFuzz.cpp   |    4 ----
 test/UnitOOB.cpp    |   51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 test/run_unit.sh.in |    8 +++++---
 wsd/LOOLWSD.cpp     |   40 +++++++++++++++++++++++++++++++++++++---
 5 files changed, 97 insertions(+), 12 deletions(-)

New commits:
commit 166c77f0d148aa39ceedfbc7399661a51ffe7cdb
Author: Michael Meeks <michael.meeks at collabora.com>
Date:   Thu Dec 8 17:47:03 2016 +0000

    Make admin console easier to find in 'make run'

diff --git a/wsd/LOOLWSD.cpp b/wsd/LOOLWSD.cpp
index 16802e1..0acfe40 100644
--- a/wsd/LOOLWSD.cpp
+++ b/wsd/LOOLWSD.cpp
@@ -13,6 +13,9 @@
 /* Default host used in the start test URI */
 #define LOOLWSD_TEST_HOST "localhost"
 
+/* Default loleaflet UI used in the admin console URI */
+#define LOOLWSD_TEST_ADMIN_CONSOLE "/loleaflet/dist/admin/admin.html"
+
 /* Default loleaflet UI used in the start test URI */
 #define LOOLWSD_TEST_LOLEAFLET_UI "/loleaflet/" LOOLWSD_VERSION_HASH "/loleaflet.html"
 
@@ -1434,15 +1437,25 @@ ServerSocket* findFreeMasterPort(int &nMasterPortNumber)
     return socket;
 }
 
-static inline std::string getLaunchURI()
+static inline std::string getLaunchBase(const std::string &credentials)
 {
-    const std::string aAbsTopSrcDir = Poco::Path(Application::instance().commandPath()).parent().toString();
-
     std::ostringstream oss;
     oss << "    ";
     oss << ((LOOLWSD::isSSLEnabled() || LOOLWSD::isSSLTermination()) ? "https://" : "http://");
+    oss << credentials;
     oss << LOOLWSD_TEST_HOST ":";
     oss << ClientPortNumber;
+
+    return oss.str();
+}
+
+static inline std::string getLaunchURI()
+{
+    const std::string aAbsTopSrcDir = Poco::Path(Application::instance().commandPath()).parent().toString();
+
+    std::ostringstream oss;
+
+    oss << getLaunchBase("");
     oss << LOOLWSD_TEST_LOLEAFLET_UI;
     oss << "?file_path=file://";
     oss << Poco::Path(aAbsTopSrcDir).absolute().toString();
@@ -1451,6 +1464,22 @@ static inline std::string getLaunchURI()
     return oss.str();
 }
 
+static inline std::string getAdminURI(const Poco::Util::LayeredConfiguration &config)
+{
+    std::string user = config.getString("admin_console.username", "");
+    std::string passwd = config.getString("admin_console.password", "");
+
+    if (user.empty() || passwd.empty())
+        return "";
+
+    std::ostringstream oss;
+
+    oss << getLaunchBase(user + ":" + passwd + "@");
+    oss << LOOLWSD_TEST_ADMIN_CONSOLE;
+
+    return oss.str();
+}
+
 } // anonymous namespace
 
 std::atomic<unsigned> LOOLWSD::NextSessionId;
@@ -1681,6 +1710,11 @@ void LOOLWSD::initialize(Application& self)
 #if ENABLE_DEBUG
     std::cerr << "\nLaunch this in your browser:\n\n"
               << getLaunchURI() << '\n' << std::endl;
+
+    std::string adminURI = getAdminURI(config());
+    if (!adminURI.empty())
+        std::cerr << "\nOr for the Admin Console see:: \n\n"
+                  << adminURI << '\n' << std::endl;
 #endif
 }
 
commit 07d385630b78b65e15252d2811096c431e1af428
Author: Michael Meeks <michael.meeks at collabora.com>
Date:   Thu Dec 8 17:30:53 2016 +0000

    Cleanup unit test output a little.

diff --git a/test/run_unit.sh.in b/test/run_unit.sh.in
index 69fddb8..43108be 100755
--- a/test/run_unit.sh.in
+++ b/test/run_unit.sh.in
@@ -3,9 +3,7 @@
 # DO NOT EDIT - this file is generated from run_unit.sh.in.
 #
 
-echo
-echo "Running unit-test:"
-echo $0 $@
+cmd_line="$0 $@"
 
 # substituted variables in one place:
 DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
@@ -32,6 +30,10 @@ while test $# -gt 0; do
   shift
 done
 
+echo
+echo "Running $tst"
+echo "	$cmd_line"
+
 # drop .la suffix
 tst=`echo $tst | sed s/\.la//`;
 
commit 51949df882d2bba87a363926d1ffcb9a90b9ba37
Author: Michael Meeks <michael.meeks at collabora.com>
Date:   Thu Dec 8 17:22:23 2016 +0000

    Unit test to avoid assert returning.

diff --git a/test/Makefile.am b/test/Makefile.am
index e18d3db..98a8ce9 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -16,7 +16,8 @@ noinst_LTLIBRARIES = \
         unit-timeout.la unit-prefork.la \
         unit-storage.la unit-fonts.la \
         unit-admin.la unit-tilecache.la \
-	unit-fuzz.la unit-requests.la
+	unit-fuzz.la unit-requests.la \
+	unit-oob.la
 
 MAGIC_TO_FORCE_SHLIB_CREATION = -rpath /dummy
 AM_LDFLAGS = -pthread -module $(MAGIC_TO_FORCE_SHLIB_CREATION)
@@ -51,6 +52,7 @@ unittest_LDADD = $(CPPUNIT_LIBS)
 
 # unit test modules:
 unit_requests_la_SOURCES = UnitRequests.cpp
+unit_oob_la_SOURCES = UnitOOB.cpp
 unit_fuzz_la_SOURCES = UnitFuzz.cpp
 unit_admin_la_SOURCES = UnitAdmin.cpp
 unit_admin_la_LIBADD = $(CPPUNIT_LIBS)
@@ -70,7 +72,7 @@ if HAVE_LO_PATH
 check-local:
 	./run_unit.sh --log-file test.log --trs-file test.trs
 # FIXME unit-fonts.la is unstable, disabled for now.
-TESTS = unit-tilecache.la unit-storage.la unit-timeout.la unit-prefork.la unit-admin.la unit-requests.la
+TESTS = unit-oob.la unit-tilecache.la unit-storage.la unit-timeout.la unit-prefork.la unit-admin.la unit-requests.la
 else
 TESTS = ${top_builddir}/test/test
 endif
diff --git a/test/UnitFuzz.cpp b/test/UnitFuzz.cpp
index 1363ae7..6460962 100644
--- a/test/UnitFuzz.cpp
+++ b/test/UnitFuzz.cpp
@@ -7,12 +7,8 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
-#include <dlfcn.h>
-#include <ftw.h>
 #include <cassert>
 #include <iostream>
-#include <sys/types.h>
-#include <dirent.h>
 #include <random>
 
 #include "Common.hpp"
diff --git a/test/UnitOOB.cpp b/test/UnitOOB.cpp
new file mode 100644
index 0000000..f879808
--- /dev/null
+++ b/test/UnitOOB.cpp
@@ -0,0 +1,51 @@
+/* -*- 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/.
+ */
+
+/*
+ * A great place for testing out of bound data, as found by
+ * UnitFuzz.
+ */
+
+#include "Common.hpp"
+#include "IoUtil.hpp"
+#include "Protocol.hpp"
+#include <LOOLWebSocket.hpp>
+#include "Unit.hpp"
+#include "UnitHTTP.hpp"
+#include "Util.hpp"
+
+#include <Poco/Timestamp.h>
+#include <Poco/StringTokenizer.h>
+#include <Poco/Net/HTTPServerRequest.h>
+
+class UnitOOB : public UnitWSD
+{
+public:
+    UnitOOB()
+    {
+        setHasKitHooks();
+    }
+
+    virtual void invokeTest() override
+    {
+        UnitHTTPServerResponse response;
+        UnitHTTPServerRequest request(response, "nonsense URI");
+
+        // ensure we handle invalid URIs without asserting.
+        testHandleRequest(TestRequest::TEST_REQ_PRISONER, request, response);
+        exitTest(TestResult::TEST_OK);
+    }
+};
+
+UnitBase *unit_create_wsd(void)
+{
+    return new UnitOOB();
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list