UnitPerf: add a simple performance unit test.

Change-Id: I367bb88c0acc22c0f57255403319d50c4ece849c
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
This commit is contained in:
Michael Meeks 2024-05-28 17:56:28 +01:00
parent a5ddaf7c2a
commit 727417c140
7 changed files with 307 additions and 4 deletions

View file

@ -458,6 +458,7 @@ std::chrono::microseconds SysStopwatch::elapsedTime() const
uint64_t totalUs = (nowCPU - _startCPU) + (nowSys - _startSys);
return std::chrono::microseconds(totalUs);
}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */

View file

@ -405,7 +405,6 @@ AC_ARG_ENABLE([experimental],
AS_HELP_STRING([--enable-experimental],
[Enable experimental features and behavior]))
# Handle options
AS_IF([test "$enable_debug" = yes -a -n "$with_poco_libs"],
[POCO_DEBUG_SUFFIX=d],
@ -1283,6 +1282,23 @@ else
fi
AC_SUBST(SIMD_CFLAGS)
has_pfm=no
LIBPFM_LIBS=
if test "$mobile_app" != "true"; then
AC_MSG_CHECKING([whether we have perf counter support])
AC_CHECK_LIB(pfm, pfm_initialize, [has_pfm=yes], [has_pfm=no])
AC_MSG_RESULT([${has_pfm}])
fi
if test "${has_pfm}" = "no" ; then
AC_DEFINE([ENABLE_PFM],0,[Whether to enable PFM])
else
AC_DEFINE([ENABLE_PFM],1,[Whether to enable PFM])
LIBPFM_LIBS="$LIBS -lpfm"
fi
AC_SUBST(LIBPFM_LIBS)
ENABLE_SSL=true
if test "$enable_ssl" != "no" -a "$mobile_app" != "true"; then
ssl_msg="ssl enabled"

View file

@ -32,6 +32,7 @@ AM_CXXFLAGS = $(CPPUNIT_CFLAGS) -DTDOC=\"$(abs_top_srcdir)/test/data\" -DTDIST=\
# 'Finished in' in the `make check` output.
# When adding new tests, please maintain order.
all_la_unit_tests = \
unit-perf.la \
unit-synthetic-lok.la \
unit-wopi-async-slow.la \
unit-tiletest.la \
@ -308,6 +309,8 @@ unit_hosting_la_SOURCES = UnitHosting.cpp
unit_hosting_la_LIBADD = $(CPPUNIT_LIBS)
unit_quarantine_la_SOURCES = UnitQuarantine.cpp
unit_quarantine_la_LIBADD = $(CPPUNIT_LIBS)
unit_perf_la_SOURCES = UnitPerf.cpp
unit_perf_la_LIBADD = $(CPPUNIT_LIBS) $(LIBPFM_LIBS)
if HAVE_LO_PATH
SYSTEM_STAMP = @SYSTEMPLATE_PATH@/system_stamp

98
test/UnitPerf.cpp Normal file
View file

@ -0,0 +1,98 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
/*
* Copyright the Collabora Online contributors.
*
* SPDX-License-Identifier: MPL-2.0
*
* 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 <config.h>
#include <Unit.hpp>
#include <Util.hpp>
#include <JsonUtil.hpp>
#include <FileUtil.hpp>
#include <helpers.hpp>
#include <StringVector.hpp>
#include <WebSocketSession.hpp>
#include <wsd/COOLWSD.hpp>
#include <wsd/DocumentBroker.hpp>
#include <test/lokassert.hpp>
#include <Poco/Util/LayeredConfiguration.h>
#include <tools/Replay.hpp>
#include <string>
#include <thread>
/// Save torture testcase.
class UnitPerf : public UnitWSD
{
void testPerf();
void configure(Poco::Util::LayeredConfiguration& config) override
{
config.setString("logging.level", "critical");
config.setString("logging.level_startup", "critical");
// pfm_initialize();
UnitWSD::configure(config);
}
public:
UnitPerf();
void invokeWSDTest() override;
std::unique_ptr<Util::SysStopwatch> _timer;
};
void UnitPerf::testPerf()
{
auto stats = std::make_shared<Stats>();
TerminatingPoll poll("performance test");
std::string docName = "empty.odt";
std::string filePath, dummy;
helpers::getDocumentPathAndURL(docName, filePath, dummy, "testPerf");
const std::string tracePath;
StressSocketHandler::addPollFor(
poll, helpers::getTestServerURI("ws"),
filePath, TDOC "/../traces/perf-writer.txt",
stats);
do {
poll.poll(TerminatingPoll::DefaultPollTimeoutMicroS);
} while (poll.continuePolling() && poll.getSocketCount() > 0);
stats->dump();
}
UnitPerf::UnitPerf() : UnitWSD("UnitPerf")
{
// Double of the default.
constexpr std::chrono::minutes timeout_minutes(1);
setTimeout(timeout_minutes);
_timer.reset(new Util::SysStopwatch());
}
void UnitPerf::invokeWSDTest()
{
std::cerr << "startup: " << _timer->elapsedTime().count() << "us\n";
_timer->restart();
testPerf();
std::cerr << "test: " << _timer->elapsedTime().count() << "us\n";
exitTest(TestResult::Ok);
}
UnitBase* unit_create_wsd(void) { return new UnitPerf(); }
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */

View file

@ -360,10 +360,10 @@ inline bool haveSsl()
}
/// Return a fully-qualified URI, with schema, to the test loopback server.
inline std::string const& getTestServerURI()
inline std::string const& getTestServerURI(std::string proto = "http")
{
static std::string serverURI(
(haveSsl() && config::isSslEnabled() ? "https://127.0.0.1:" : "http://127.0.0.1:")
(haveSsl() && config::isSslEnabled() ? proto + "s://127.0.0.1:" : proto + "://127.0.0.1:")
+ std::to_string(ClientPortNumber));
return serverURI;

185
test/traces/perf-writer.txt Normal file
View file

@ -0,0 +1,185 @@
~+3008950~FoWfKnRzxrKHTLC4~000~NewSession: https://localhost:9980/wopi/files/opt/libreoffice/online/test/data/hello-world.odt?access_token=test&access_token_ttl=0
~+141759~FoWfKnRzxrKHTLC4~05f~NewSession: https://localhost:9980/wopi/files/opt/libreoffice/online/test/data/hello-world.odt?access_token=test&access_token_ttl=0
>+480>FoWfKnRzxrKHTLC4>05f>coolclient 0.1 1716920949623 169.39999999850988
>+5524>FoWfKnRzxrKHTLC4>05f>load url=https%3A%2F%2Flocalhost%3A9980%2Fwopi%2Ffiles%2Fopt%2Flibreoffice%2Fonline%2Ftest%2Fdata%2Fhello-world.odt accessibilityState=false deviceFormFactor=desktop spreadsheetDarkTheme=false timezone=Europe/London
>+636629>FoWfKnRzxrKHTLC4>05f>uno .uno:ToolbarMode?Mode:string=notebookbar_online.ui
>+18435>FoWfKnRzxrKHTLC4>05f>commandvalues command=.uno:StyleApply
>+60>FoWfKnRzxrKHTLC4>05f>commandvalues command=.uno:CharFontName
>+1526>FoWfKnRzxrKHTLC4>05f>commandvalues command=.uno:AcceptTrackedChanges
>+12557>FoWfKnRzxrKHTLC4>05f>commandvalues command=.uno:LanguageStatus
>+44>FoWfKnRzxrKHTLC4>05f>commandvalues command=.uno:ViewAnnotations
>+38>FoWfKnRzxrKHTLC4>05f>commandvalues command=.uno:StyleApply
>+78>FoWfKnRzxrKHTLC4>05f>commandvalues command=.uno:CharFontName
>+15139>FoWfKnRzxrKHTLC4>05f>clientvisiblearea x=-3195 y=0 width=19185 height=8685 splitx=0 splity=0
>+172>FoWfKnRzxrKHTLC4>05f>clientzoom tilepixelwidth=256 tilepixelheight=256 tiletwipwidth=2560 tiletwipheight=2560
>+191>FoWfKnRzxrKHTLC4>05f>tilecombine nviewid=0 part=0 width=256 height=256 tileposx=0,2560,5120,7680,10240,12800,0,2560,5120,7680,10240,12800,0,2560,5120,7680,10240,12800,0,2560,5120,7680,10240,12800 tileposy=0,0,0,0,0,0,2560,2560,2560,2560,2560,2560,5120,5120,5120,5120,5120,5120,7680,7680,7680,7680,7680,7680 oldwid=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 tilewidth=2560 tileheight=2560
>+73031>FoWfKnRzxrKHTLC4>05f>commandvalues command=.uno:ViewAnnotations
>+191674>FoWfKnRzxrKHTLC4>05f>uno .uno:SidebarShow
>+156>FoWfKnRzxrKHTLC4>05f>uno .uno:Navigator
>+31468>FoWfKnRzxrKHTLC4>05f>tilecombine nviewid=0 part=0 width=256 height=256 tileposx=0,2560,5120,7680,10240,12800,0,2560,5120,7680,10240,12800,0,2560,5120,7680,10240,12800,0,2560,5120,7680,10240,12800 tileposy=7680,7680,7680,7680,7680,7680,10240,10240,10240,10240,10240,10240,12800,12800,12800,12800,12800,12800,15360,15360,15360,15360,15360,15360 oldwid=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 tilewidth=2560 tileheight=2560
>+204079>FoWfKnRzxrKHTLC4>05f>clientvisiblearea x=-3045 y=0 width=18900 height=6975 splitx=0 splity=0
>+14437>FoWfKnRzxrKHTLC4>05f>clientvisiblearea x=-2910 y=0 width=18615 height=6975 splitx=0 splity=0
>+18439>FoWfKnRzxrKHTLC4>05f>clientvisiblearea x=-2640 y=0 width=18090 height=6975 splitx=0 splity=0
>+8919>FoWfKnRzxrKHTLC4>05f>clientvisiblearea x=-2490 y=0 width=17790 height=6975 splitx=0 splity=0
>+9385>FoWfKnRzxrKHTLC4>05f>clientvisiblearea x=-2340 y=0 width=17475 height=6975 splitx=0 splity=0
>+8400>FoWfKnRzxrKHTLC4>05f>clientvisiblearea x=-2190 y=0 width=17175 height=6975 splitx=0 splity=0
>+8378>FoWfKnRzxrKHTLC4>05f>clientvisiblearea x=-2040 y=0 width=16875 height=6975 splitx=0 splity=0
>+8204>FoWfKnRzxrKHTLC4>05f>clientvisiblearea x=-1875 y=0 width=16545 height=6975 splitx=0 splity=0
>+9187>FoWfKnRzxrKHTLC4>05f>clientvisiblearea x=-1680 y=0 width=16170 height=6975 splitx=0 splity=0
>+7962>FoWfKnRzxrKHTLC4>05f>clientvisiblearea x=-1545 y=0 width=15885 height=6975 splitx=0 splity=0
>+8336>FoWfKnRzxrKHTLC4>05f>clientvisiblearea x=-1425 y=0 width=15645 height=6975 splitx=0 splity=0
>+8305>FoWfKnRzxrKHTLC4>05f>clientvisiblearea x=-1275 y=0 width=15360 height=6975 splitx=0 splity=0
>+7706>FoWfKnRzxrKHTLC4>05f>clientvisiblearea x=-1155 y=0 width=15120 height=6975 splitx=0 splity=0
>+8592>FoWfKnRzxrKHTLC4>05f>clientvisiblearea x=-1050 y=0 width=14895 height=6975 splitx=0 splity=0
>+10255>FoWfKnRzxrKHTLC4>05f>clientvisiblearea x=-945 y=0 width=14685 height=6975 splitx=0 splity=0
>+7821>FoWfKnRzxrKHTLC4>05f>clientvisiblearea x=-870 y=0 width=14550 height=6975 splitx=0 splity=0
>+7816>FoWfKnRzxrKHTLC4>05f>clientvisiblearea x=-825 y=0 width=14445 height=6975 splitx=0 splity=0
>+8780>FoWfKnRzxrKHTLC4>05f>clientvisiblearea x=-795 y=0 width=14385 height=6975 splitx=0 splity=0
>+7607>FoWfKnRzxrKHTLC4>05f>clientvisiblearea x=-780 y=0 width=14370 height=6975 splitx=0 splity=0
>+577925>FoWfKnRzxrKHTLC4>05f>mouse type=move x=4365 y=1609.99992 count=1 buttons=0 modifier=0
>+309728>FoWfKnRzxrKHTLC4>05f>mouse type=buttondown x=4365 y=1609.99992 count=1 buttons=1 modifier=0
>+358>FoWfKnRzxrKHTLC4>05f>mouse type=buttonup x=4365 y=1609.99992 count=1 buttons=1 modifier=0
>+518611>FoWfKnRzxrKHTLC4>05f>key type=input char=13 key=1280
>+119539>FoWfKnRzxrKHTLC4>05f>key type=up char=0 key=1280
>+536327>FoWfKnRzxrKHTLC4>05f>mouse type=move x=3540 y=334.99992 count=1 buttons=0 modifier=0
>+2265776>FoWfKnRzxrKHTLC4>05f>mouse type=move x=4800 y=3259.99992 count=1 buttons=0 modifier=0
>+693554>FoWfKnRzxrKHTLC4>05f>key type=input char=0 key=1025
>+135560>FoWfKnRzxrKHTLC4>05f>key type=up char=0 key=1025
>+137413>FoWfKnRzxrKHTLC4>05f>key type=input char=0 key=8449
>+274371>FoWfKnRzxrKHTLC4>05f>key type=input char=0 key=1024
>+143563>FoWfKnRzxrKHTLC4>05f>key type=up char=0 key=1024
>+820784>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=T
>+128839>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=h
>+79753>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=i
>+47507>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=s
>+46055>FoWfKnRzxrKHTLC4>05f>key type=input char=32 key=0
>+226>FoWfKnRzxrKHTLC4>05f>key type=up char=0 key=1284
>+92795>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=i
>+47172>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=s
>+62862>FoWfKnRzxrKHTLC4>05f>key type=input char=32 key=0
>+196>FoWfKnRzxrKHTLC4>05f>key type=up char=0 key=1284
>+217181>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=s
>+26635>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=o
>+121809>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=n
>+133808>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=e
>+207015>FoWfKnRzxrKHTLC4>05f>removetextcontext id=0 before=1 after=0
>+146397>FoWfKnRzxrKHTLC4>05f>removetextcontext id=0 before=1 after=0
>+114113>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=m
>+69434>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=e
>+93323>FoWfKnRzxrKHTLC4>05f>key type=input char=32 key=0
>+269>FoWfKnRzxrKHTLC4>05f>key type=up char=0 key=1284
>+99473>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=b
>+61278>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=o
>+208416>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=y
>+610658>FoWfKnRzxrKHTLC4>05f>removetextcontext id=0 before=1 after=0
>+57365>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=d
>+145549>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=y
>+88078>FoWfKnRzxrKHTLC4>05f>key type=input char=32 key=0
>+201>FoWfKnRzxrKHTLC4>05f>key type=up char=0 key=1284
>+84196>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=c
>+74114>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=o
>+52910>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=n
>+96059>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=t
>+50147>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=e
>+66415>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=n
>+70558>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=t
>+80991>FoWfKnRzxrKHTLC4>05f>key type=input char=32 key=0
>+269>FoWfKnRzxrKHTLC4>05f>key type=up char=0 key=1284
>+136830>FoWfKnRzxrKHTLC4>05f>key type=input char=46 key=0
>+365>FoWfKnRzxrKHTLC4>05f>key type=up char=0 key=190
>+115502>FoWfKnRzxrKHTLC4>05f>key type=input char=46 key=0
>+268>FoWfKnRzxrKHTLC4>05f>key type=up char=0 key=190
>+124098>FoWfKnRzxrKHTLC4>05f>key type=input char=46 key=0
>+332>FoWfKnRzxrKHTLC4>05f>key type=up char=0 key=190
>+33281>FoWfKnRzxrKHTLC4>05f>key type=input char=13 key=1280
>+122510>FoWfKnRzxrKHTLC4>05f>key type=up char=0 key=1280
>+1761983>FoWfKnRzxrKHTLC4>05f>mouse type=move x=2910 y=394.99992 count=1 buttons=0 modifier=0
>+3990487>FoWfKnRzxrKHTLC4>05f>tilecombine nviewid=0 part=0 width=256 height=256 tileposx=0,2560,5120,7680,10240 tileposy=10240,10240,10240,10240,10240 oldwid=25,26,27,28,29 tilewidth=2560 tileheight=2560
>+748309>FoWfKnRzxrKHTLC4>05f>tilecombine nviewid=0 part=0 width=256 height=256 tileposx=0,2560,5120,7680,10240 tileposy=12800,12800,12800,12800,12800 oldwid=31,32,33,34,35 tilewidth=2560 tileheight=2560
>+281386>FoWfKnRzxrKHTLC4>05f>uno .uno:InsertTable { "Columns": { "type": "long","value": 6 }, "Rows": { "type": "long","value": 4 }}
>+1253134>FoWfKnRzxrKHTLC4>05f>mouse type=move x=3000 y=4579.99992 count=1 buttons=0 modifier=0
>+449447>FoWfKnRzxrKHTLC4>05f>mouse type=move x=4005 y=79.99992 count=1 buttons=0 modifier=0
>+575509>FoWfKnRzxrKHTLC4>05f>mouse type=move x=3600 y=4879.99992 count=1 buttons=0 modifier=0
>+232572>FoWfKnRzxrKHTLC4>05f>mouse type=move x=3120 y=3484.99992 count=1 buttons=0 modifier=0
>+225083>FoWfKnRzxrKHTLC4>05f>mouse type=move x=3030 y=3169.99992 count=1 buttons=0 modifier=0
>+225273>FoWfKnRzxrKHTLC4>05f>mouse type=move x=3060 y=3049.99992 count=1 buttons=0 modifier=0
>+449690>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=T
>+111812>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=h
>+33086>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=i
>+69187>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=s
>+60276>FoWfKnRzxrKHTLC4>05f>mouse type=move x=3060 y=3049.99992 count=1 buttons=0 modifier=0
>+2025>FoWfKnRzxrKHTLC4>05f>key type=input char=32 key=0
>+64>FoWfKnRzxrKHTLC4>05f>key type=up char=0 key=1284
>+83090>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=m
>+207642>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=s
>+138232>FoWfKnRzxrKHTLC4>05f>removetextcontext id=0 before=1 after=0
>+160223>FoWfKnRzxrKHTLC4>05f>removetextcontext id=0 before=1 after=0
>+191466>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=i
>+76631>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=s
>+61878>FoWfKnRzxrKHTLC4>05f>key type=input char=32 key=0
>+179>FoWfKnRzxrKHTLC4>05f>key type=up char=0 key=1284
>+94738>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=m
>+31653>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=e
>+161862>FoWfKnRzxrKHTLC4>05f>key type=input char=32 key=0
>+266>FoWfKnRzxrKHTLC4>05f>key type=up char=0 key=1284
>+122203>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=t
>+144730>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=y
>+52627>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=p
>+160828>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=i
>+30744>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=n
>+33887>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=g
>+96272>FoWfKnRzxrKHTLC4>05f>key type=input char=32 key=0
>+228>FoWfKnRzxrKHTLC4>05f>key type=up char=0 key=1284
>+108560>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=s
>+34002>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=o
>+41278>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=m
>+87440>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=e
>+38380>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=t
>+299116>FoWfKnRzxrKHTLC4>05f>removetextcontext id=0 before=1 after=0
>+128532>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=w
>+130235>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=h
>+39439>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=a
>+55210>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=t
>+320095>FoWfKnRzxrKHTLC4>05f>key type=input char=0 key=1282
>+42673>FoWfKnRzxrKHTLC4>05f>key type=up char=0 key=1282
>+559222>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=A
>+112521>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=n
>+51091>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=d
>+96998>FoWfKnRzxrKHTLC4>05f>key type=input char=32 key=0
>+241>FoWfKnRzxrKHTLC4>05f>key type=up char=0 key=1284
>+102527>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=t
>+94058>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=h
>+140060>FoWfKnRzxrKHTLC4>05f>mouse type=move x=3060 y=3049.99992 count=1 buttons=0 modifier=0
>+120911>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=a
>+42703>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=t
>+96769>FoWfKnRzxrKHTLC4>05f>key type=input char=39 key=0
>+229>FoWfKnRzxrKHTLC4>05f>key type=up char=0 key=192
>+111310>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=s
>+54611>FoWfKnRzxrKHTLC4>05f>key type=input char=32 key=0
>+206>FoWfKnRzxrKHTLC4>05f>key type=up char=0 key=1284
>+213756>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=g
>+95040>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=o
>+103548>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=o
>+536356>FoWfKnRzxrKHTLC4>05f>textinput id=0 text=d
>+163764>FoWfKnRzxrKHTLC4>05f>key type=input char=46 key=0
>+156>FoWfKnRzxrKHTLC4>05f>key type=up char=0 key=190
>+977226>FoWfKnRzxrKHTLC4>05f>mouse type=move x=2520 y=5809.99992 count=1 buttons=0 modifier=0
>+22104>FoWfKnRzxrKHTLC4>05f>mouse type=buttondown x=2520 y=5809.99992 count=1 buttons=1 modifier=0
>+199>FoWfKnRzxrKHTLC4>05f>mouse type=buttonup x=2520 y=5809.99992 count=1 buttons=1 modifier=0
>+569814>FoWfKnRzxrKHTLC4>05f>key type=input char=13 key=1280
>+83931>FoWfKnRzxrKHTLC4>05f>key type=up char=0 key=1280
>+806824>FoWfKnRzxrKHTLC4>05f>mouse type=move x=2430 y=769.99992 count=1 buttons=0 modifier=0
>+6240141>FoWfKnRzxrKHTLC4>05f>uno .uno:SymbolShapes.smiley
>+57352>FoWfKnRzxrKHTLC4>05f>rendershapeselection mimetype=image/svg+xml
>+12851>FoWfKnRzxrKHTLC4>05f>rendershapeselection mimetype=image/svg+xml
>+817152>FoWfKnRzxrKHTLC4>05f>mouse type=move x=5760 y=4009.99992 count=1 buttons=0 modifier=0
>+618579>FoWfKnRzxrKHTLC4>05f>uno .uno:TransformDialog {"TransformPosX":{"type":"long","value":4209},"TransformPosY":{"type":"long","value":4186}}
>+15637>FoWfKnRzxrKHTLC4>05f>rendershapeselection mimetype=image/svg+xml
>+778430>FoWfKnRzxrKHTLC4>05f>mouse type=move x=1935 y=6199.99992 count=1 buttons=0 modifier=0
>+40579>FoWfKnRzxrKHTLC4>05f>mouse type=buttondown x=1935 y=6199.99992 count=1 buttons=1 modifier=0
>+237>FoWfKnRzxrKHTLC4>05f>mouse type=buttonup x=1935 y=6199.99992 count=1 buttons=1 modifier=0
>+558805>FoWfKnRzxrKHTLC4>05f>mouse type=move x=3195 y=5749.99992 count=1 buttons=0 modifier=0
>+48773>FoWfKnRzxrKHTLC4>05f>mouse type=buttondown x=3195 y=5749.99992 count=1 buttons=1 modifier=0
>+235>FoWfKnRzxrKHTLC4>05f>mouse type=buttonup x=3195 y=5749.99992 count=1 buttons=1 modifier=0
>+136577>FoWfKnRzxrKHTLC4>05f>mouse type=move x=3780 y=5059.99992 count=1 buttons=0 modifier=0
~+4801295~FoWfKnRzxrKHTLC4~05f~EndSession: https://localhost:9980/wopi/files/opt/libreoffice/online/test/data/hello-world.odt?access_token=test&access_token_ttl=0

View file

@ -397,7 +397,7 @@ public:
return;
}
else
Util::forcedExit(EX_SOFTWARE);
Util::forcedExit(70);
}
// FIXME: implement code to send new view-ports based