loolwsd/LOOLStress.cpp | 19 ++++++++++--------- loolwsd/Makefile.am | 3 ++- loolwsd/TraceFile.hpp | 22 ++++++++++++++++++++++ 3 files changed, 34 insertions(+), 10 deletions(-)
New commits: commit 831a917977b040e157d544ace8835483f77c402c Author: Ashod Nakashian <ashod.nakash...@collabora.co.uk> Date: Mon Aug 1 21:53:09 2016 -0400 loolstress: Parse trace file header and document URI Change-Id: I659f9ec3d0cb9f1333d930d0b21c5b3afd115d32 Reviewed-on: https://gerrit.libreoffice.org/27962 Reviewed-by: Ashod Nakashian <ashnak...@gmail.com> Tested-by: Ashod Nakashian <ashnak...@gmail.com> diff --git a/loolwsd/LOOLStress.cpp b/loolwsd/LOOLStress.cpp index ef06135..c83d641 100644 --- a/loolwsd/LOOLStress.cpp +++ b/loolwsd/LOOLStress.cpp @@ -85,19 +85,20 @@ public: void run() override { - _traceFile.readFile(); - std::cerr << "Connecting to server: " << _app._serverURI << "\n"; + const auto rec = _traceFile.getNextRecord(TraceFileRecord::Direction::Incoming); + std::cout << rec.Payload << "\n"; + Poco::URI uri(_app._serverURI); - const auto documentURL = "lool/ws/file://" + Poco::Path(_traceFilePath).makeAbsolute().toString(); + const auto documentURL = _traceFile.getDocURI(); + std::cerr << "Loading: " << documentURL << "\n"; - std::unique_ptr<Poco::Net::HTTPClientSession> session; - if (_app._serverURI.compare(0, 5, "https")) - session.reset(new Poco::Net::HTTPSClientSession(uri.getHost(), uri.getPort())); - else - session.reset(new Poco::Net::HTTPClientSession(uri.getHost(), uri.getPort())); + // Load a document and get its status. + Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, documentURL); + Poco::Net::HTTPResponse response; + auto socket = helpers::connectLOKit(uri, request, response, "loolStress "); try { @@ -117,7 +118,7 @@ private: }; Stress::Stress() : - _numClients(4), + _numClients(1), #if ENABLE_SSL _serverURI("https://127.0.0.1:" + std::to_string(DEFAULT_CLIENT_PORT_NUMBER)) #else diff --git a/loolwsd/Makefile.am b/loolwsd/Makefile.am index d3cd9ef..4f36078 100644 --- a/loolwsd/Makefile.am +++ b/loolwsd/Makefile.am @@ -78,7 +78,8 @@ loolmap_SOURCES = loolmap.c looltool_SOURCES = LOOLTool.cpp -loolstress_SOURCES = LOOLStress.cpp +loolstress_SOURCES = LOOLStress.cpp \ + LOOLProtocol.cpp noinst_HEADERS = Admin.hpp \ AdminModel.hpp \ diff --git a/loolwsd/TraceFile.hpp b/loolwsd/TraceFile.hpp index 41f316d..bb39c44 100644 --- a/loolwsd/TraceFile.hpp +++ b/loolwsd/TraceFile.hpp @@ -88,6 +88,8 @@ public: readFile(); } + const std::string& getDocURI() const { return _docURI; } + TraceFileRecord getNextRecord(const TraceFileRecord::Direction dir) { if (dir == TraceFileRecord::Direction::Incoming) @@ -134,6 +136,25 @@ private: _indexIn = advance(-1, TraceFileRecord::Direction::Incoming); _indexOut = advance(-1, TraceFileRecord::Direction::Outgoing); + + if (_records.size() > 1) + { + if (_records[0].Payload.find("loolclient") == 0 && + _records[1].Payload.find("load url=") == 0) + { + _docURI = _records[1].Payload.substr(9); + return; + } + else if (_records[0].Payload.find("load url=") == 0) + { + _docURI = _records[0].Payload.substr(9); + return; + } + } + + fprintf(stderr, "Invalid trace file with %ld records. First record: %s\n", _records.size(), + _records.empty() ? "<empty>" : _records[0].Payload.c_str()); + throw std::runtime_error("Invalid trace file."); } std::vector<std::string> split(const std::string& s, const char delim) const @@ -169,6 +190,7 @@ private: const Poco::Int64 _epochStart; std::ifstream _stream; std::vector<TraceFileRecord> _records; + std::string _docURI; unsigned _indexIn; unsigned _indexOut; }; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits