libreoffice-online/loolwsd
Tor Lillqvist 422dfd1767 Start on load testing
Add a new program, loadtest, that runs a requested number of client sessions
in parallel to a loolwsd server. A client session loads one of a list of test
documents, and does some operations on it.

Move the getTokenInteger() and getTokenString() functions out from LOOLSession
into a new namespace LOOLProtocol, as they are neeeded also in the loadtest
program.

Add, also in LOOLProtocol, functions to parse some of the messages from the
server. (In general that is done in client JavaScript code, of course; only
for testing purposes needed in C++ code.)
2015-03-26 17:04:08 +02:00
..
.gitignore Start on load testing 2015-03-26 17:04:08 +02:00
AUTHORS Autofooize 2015-03-09 11:19:00 +02:00
ChangeLog Autofooize 2015-03-09 11:19:00 +02:00
configure.ac Use separate child processes for LibreOfficeKit 2015-03-18 15:38:01 +02:00
COPYING Autofooize 2015-03-09 11:19:00 +02:00
INSTALL Autofooize 2015-03-09 11:19:00 +02:00
LoadTest.cpp Start on load testing 2015-03-26 17:04:08 +02:00
LoadTest.hpp Start on load testing 2015-03-26 17:04:08 +02:00
LOOLProtocol.cpp Start on load testing 2015-03-26 17:04:08 +02:00
LOOLProtocol.hpp Start on load testing 2015-03-26 17:04:08 +02:00
LOOLSession.cpp Start on load testing 2015-03-26 17:04:08 +02:00
LOOLSession.hpp Start on load testing 2015-03-26 17:04:08 +02:00
LOOLWSD.cpp Cosmetics 2015-03-26 17:04:08 +02:00
LOOLWSD.hpp Make DEFAULT_PORT_NUMBER public 2015-03-26 17:04:08 +02:00
Makefile.am Start on load testing 2015-03-26 17:04:08 +02:00
MigratorySocket.cpp Intermediate commit, will not actually do it like this 2015-03-16 19:19:30 +02:00
MigratorySocket.hpp Intermediate commit, will not actually do it like this 2015-03-16 19:19:30 +02:00
MigratorySocketTransport.cpp Intermediate commit, will not actually do it like this 2015-03-16 19:19:30 +02:00
MigratorySocketTransport.hpp Intermediate commit, will not actually do it like this 2015-03-16 19:19:30 +02:00
NEWS Autofooize 2015-03-09 11:19:00 +02:00
protocol.txt A bit more info 2015-03-24 19:04:16 +02:00
README Update 2015-03-18 15:40:50 +02:00
socketpair.c Intermediate commit of start on transporting sockets to child process 2015-03-16 12:30:56 +02:00
SocketTransportTest.cpp Intermediate commit, will not actually do it like this 2015-03-16 19:19:30 +02:00
TileCache.cpp Caller expects empty string as failure, not nullptr 2015-03-16 21:08:14 +02:00
TileCache.hpp Cache also document status 2015-03-13 14:17:51 +02:00
Util.cpp Use separate child processes for LibreOfficeKit 2015-03-18 15:38:01 +02:00
Util.hpp Use separate child processes for LibreOfficeKit 2015-03-18 15:38:01 +02:00

LibreOffice On-Line WebSocket server

See protocol.txt for a description of the protocol to be used over the
websocket.

Uses libpng and the Poco library, from
http://pocoproject.org/index.html. Build it with ./configure
--prefix=/opt/poco && make install. Probably is available packaged in
some distros

At least I like the Poco library. But if it is not acceptable for some
reason, please scream quickly, before too much code that uses Poco has
been written... I found Poco while looking for code to do the
WebSocket handshake and marshalling. But that functionality is just a
small part of what Poco does.

This uses autofoo so build like this:

autoreconf
automake --add-missing
./configure --enable-debug --enable-silent-rules --with-lokit-path=<...>/include --with-poco-includes=<..>./include --with-poco-libs=<...>/lib
make

For Windows, a proper VS2013 project is needed.

See SOW for the directions of further work.

Also there is unconditional debugging output etc.

Run loolwsd for instance like this to test:

(echo load foo.odt; echo tile width=500 height=500 tileposx=0 tileposy=0 tilewidth=10000 tileheight=10000; sleep 10) | 
    ./loolwsd --lopath=<...>/instdir/program --test

The handling of termination is a bit fragile, occasionally it dumps
core somewhere in LO code when quitting. Don't be scared.