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

Reply via email to