[Libreoffice-commits] online.git: common/FileUtil.cpp common/FileUtil.hpp test/helpers.hpp test/httpwserror.cpp test/TileCacheTests.cpp

Ashod Nakashian ashod.nakashian at collabora.co.uk
Mon Jan 9 06:18:10 UTC 2017


 common/FileUtil.cpp     |   10 ++++++++--
 common/FileUtil.hpp     |    3 +++
 test/TileCacheTests.cpp |   33 ++++++++++++++++++---------------
 test/helpers.hpp        |    5 +++--
 test/httpwserror.cpp    |    4 ++--
 5 files changed, 34 insertions(+), 21 deletions(-)

New commits:
commit 4580ed4e275b0d0889c7a73a129be758e41b150b
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Thu Jan 5 22:46:00 2017 -0500

    wsd: prefix the test docs with the test name
    
    This makes debugging much easier as one can
    readily match WSD logs with a given test.
    
    Change-Id: I8f2c83d67189038699af3f24dee205bc7efb5c28
    Reviewed-on: https://gerrit.libreoffice.org/32860
    Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
    Tested-by: Ashod Nakashian <ashnakash at gmail.com>

diff --git a/common/FileUtil.cpp b/common/FileUtil.cpp
index 0127c1a..8973d72 100644
--- a/common/FileUtil.cpp
+++ b/common/FileUtil.cpp
@@ -44,15 +44,21 @@ namespace FileUtil
         return name;
     }
 
-    std::string getTempFilePath(const std::string& srcDir, const std::string& srcFilename)
+    std::string getTempFilePath(const std::string& srcDir, const std::string& srcFilename, const std::string& dstFilenamePrefix)
     {
         const std::string srcPath = srcDir + '/' + srcFilename;
-        const std::string dstPath = Poco::Path::temp() + Util::encodeId(Util::rng::getNext()) + '_' + srcFilename;
+        const std::string dstFilename = dstFilenamePrefix + Util::encodeId(Util::rng::getNext()) + '_' + srcFilename;
+        const std::string dstPath = Poco::Path(Poco::Path::temp(), dstFilename).toString();
         Poco::File(srcPath).copyTo(dstPath);
         Poco::TemporaryFile::registerForDeletion(dstPath);
         return dstPath;
     }
 
+    std::string getTempFilePath(const std::string& srcDir, const std::string& srcFilename)
+    {
+        return getTempFilePath(srcDir, srcFilename, "");
+    }
+
     bool saveDataToFileSafely(const std::string& fileName, const char *data, size_t size)
     {
         const auto tempFileName = fileName + ".temp";
diff --git a/common/FileUtil.hpp b/common/FileUtil.hpp
index e018691..c8e7a3f 100644
--- a/common/FileUtil.hpp
+++ b/common/FileUtil.hpp
@@ -86,6 +86,9 @@ namespace FileUtil
     /// Returns the created file path.
     std::string getTempFilePath(const std::string& srcDir, const std::string& srcFilename);
 
+    /// Make a temp copy of a file, and prepend it with a prefix.
+    std::string getTempFilePath(const std::string& srcDir, const std::string& srcFilename, const std::string& dstFilenamePrefix);
+
 } // end namespace FileUtil
 
 #endif
diff --git a/test/TileCacheTests.cpp b/test/TileCacheTests.cpp
index 17bf6da..935a8c4 100644
--- a/test/TileCacheTests.cpp
+++ b/test/TileCacheTests.cpp
@@ -179,8 +179,9 @@ void TileCacheTests::testSimple()
 
 void TileCacheTests::testSimpleCombine()
 {
+    const auto testname = "simpleCombine ";
     std::string documentPath, documentURL;
-    getDocumentPathAndURL("hello.odt", documentPath, documentURL);
+    getDocumentPathAndURL("hello.odt", documentPath, documentURL, testname);
 
     // First.
     auto socket1 = loadDocAndGetSocket(_uri, documentURL, "simpleCombine-1 ");
@@ -265,7 +266,7 @@ void TileCacheTests::testCancelTiles()
 void TileCacheTests::testCancelTilesMultiView()
 {
     std::string documentPath, documentURL;
-    getDocumentPathAndURL("setclientpart.ods", documentPath, documentURL);
+    getDocumentPathAndURL("setclientpart.ods", documentPath, documentURL, "cancelTilesMultiView ");
 
     // The tile response can race past the canceltiles,
     // so be forgiving to avoid spurious failures.
@@ -313,7 +314,7 @@ void TileCacheTests::testCancelTilesMultiView()
 void TileCacheTests::testUnresponsiveClient()
 {
     std::string documentPath, documentURL;
-    getDocumentPathAndURL("hello.odt", documentPath, documentURL);
+    getDocumentPathAndURL("hello.odt", documentPath, documentURL, "unresponsiveClient ");
 
     std::cerr << "Connecting first client." << std::endl;
     auto socket1 = loadDocAndGetSocket(_uri, documentURL, "unresponsiveClient-1 ");
@@ -473,7 +474,7 @@ void TileCacheTests::testTilesRenderedJustOnceMultiClient()
     const auto testname4 = testname + "-4 ";
 
     std::string documentPath, documentURL;
-    getDocumentPathAndURL("with_comment.odt", documentPath, documentURL);
+    getDocumentPathAndURL("with_comment.odt", documentPath, documentURL, testname);
 
     std::cerr << "Connecting first client." << std::endl;
     auto socket = loadDocAndGetSocket(_uri, documentURL, testname1);
@@ -563,7 +564,7 @@ void TileCacheTests::testTilesRenderedJustOnceMultiClient()
 void TileCacheTests::testSimultaneousTilesRenderedJustOnce()
 {
     std::string documentPath, documentURL;
-    getDocumentPathAndURL("hello.odt", documentPath, documentURL);
+    getDocumentPathAndURL("hello.odt", documentPath, documentURL, "simultaneousTilesrenderedJustOnce ");
 
     std::cerr << "Connecting first client." << std::endl;
     auto socket1 = loadDocAndGetSocket(_uri, documentURL, "simultaneousTilesRenderdJustOnce-1 ");
@@ -678,31 +679,32 @@ void TileCacheTests::checkBlackTiles(std::shared_ptr<LOOLWebSocket>& socket, con
 
 void TileCacheTests::testTileInvalidateWriter()
 {
+    const auto testname = "tileInvalidateWriter ";
     std::string documentPath, documentURL;
-    getDocumentPathAndURL("empty.odt", documentPath, documentURL);
+    getDocumentPathAndURL("empty.odt", documentPath, documentURL, testname);
     Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, documentURL);
 
-    auto socket = loadDocAndGetSocket(_uri, documentURL);
+    auto socket = loadDocAndGetSocket(_uri, documentURL, testname);
 
     std::string text = "Test. Now go 3 \"Enters\":\n\n\nNow after the enters, goes this text";
     for (char ch : text)
     {
         sendChar(socket, ch); // Send ordinary characters and wait for response -> one tile invalidation for each
-        assertResponseString(socket, "invalidatetiles:");
+        assertResponseString(socket, "invalidatetiles:", testname);
     }
 
     text = "\n\n\n";
     for (char ch : text)
     {
         sendChar(socket, ch, skCtrl); // Send 3 Ctrl+Enter -> 3 new pages
-        assertResponseString(socket, "invalidatetiles:");
+        assertResponseString(socket, "invalidatetiles:", testname);
     }
 
     text = "abcde";
     for (char ch : text)
     {
         sendChar(socket, ch);
-        assertResponseString(socket, "invalidatetiles:");
+        assertResponseString(socket, "invalidatetiles:", testname);
     }
 
     // While extra invalidates are not desirable, they are inevitable at the moment.
@@ -716,7 +718,7 @@ void TileCacheTests::testTileInvalidateWriterPage()
     const auto testname = "tileInvalidateWriterPage ";
 
     std::string documentPath, documentURL;
-    getDocumentPathAndURL("empty.odt", documentPath, documentURL);
+    getDocumentPathAndURL("empty.odt", documentPath, documentURL, testname);
     Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, documentURL);
 
     auto socket = loadDocAndGetSocket(_uri, documentURL, testname);
@@ -736,11 +738,12 @@ void TileCacheTests::testTileInvalidateWriterPage()
 // This isn't yet used
 void TileCacheTests::testWriterAnyKey()
 {
+    const auto testname = "writerAnyKey ";
     std::string documentPath, documentURL;
-    getDocumentPathAndURL("empty.odt", documentPath, documentURL);
+    getDocumentPathAndURL("empty.odt", documentPath, documentURL, testname);
     Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, documentURL);
 
-    auto socket = loadDocAndGetSocket(_uri, documentURL);
+    auto socket = loadDocAndGetSocket(_uri, documentURL, testname);
 
     // Now test "usual" keycodes (TODO: whole 32-bit range)
     for (int i=0; i<0x1000; ++i)
@@ -851,8 +854,8 @@ void TileCacheTests::tileInvalidatePart(const std::string& filename, const std::
     const std::string testname2 = testname + "-2 ";
 
     std::string documentPath, documentURL;
-    getDocumentPathAndURL(filename, documentPath, documentURL);
-    auto socket1 = loadDocAndGetSocket(_uri, documentURL);
+    getDocumentPathAndURL(filename, documentPath, documentURL, testname);
+    auto socket1 = loadDocAndGetSocket(_uri, documentURL, testname1);
 
     sendTextFrame(socket1, "setclientpart part=2", testname1);
     assertResponseString(socket1, "setpart:", testname1);
diff --git a/test/helpers.hpp b/test/helpers.hpp
index 4c9d191..fce1cfd 100644
--- a/test/helpers.hpp
+++ b/test/helpers.hpp
@@ -112,9 +112,10 @@ std::vector<char> readDataFromFile(std::unique_ptr<std::fstream>& file)
 }
 
 inline
-void getDocumentPathAndURL(const std::string& docFilename, std::string& documentPath, std::string& documentURL)
+void getDocumentPathAndURL(const std::string& docFilename, std::string& documentPath, std::string& documentURL, std::string prefix="")
 {
-    documentPath = FileUtil::getTempFilePath(TDOC, docFilename);
+    std::replace(prefix.begin(), prefix.end(), ' ', '_');
+    documentPath = FileUtil::getTempFilePath(TDOC, docFilename, prefix);
     std::string encodedUri;
     Poco::URI::encode("file://" + Poco::Path(documentPath).makeAbsolute().toString(), ":/?", encodedUri);
     documentURL = "lool/" + encodedUri + "/ws";
diff --git a/test/httpwserror.cpp b/test/httpwserror.cpp
index 30eae2b..cc6bd0f 100644
--- a/test/httpwserror.cpp
+++ b/test/httpwserror.cpp
@@ -123,7 +123,7 @@ void HTTPWSError::testMaxDocuments()
         // try to open MAX_DOCUMENTS + 1
         std::string docPath;
         std::string docURL;
-        getDocumentPathAndURL("empty.odt", docPath, docURL);
+        getDocumentPathAndURL("empty.odt", docPath, docURL, testname);
         Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, docURL);
         std::unique_ptr<Poco::Net::HTTPClientSession> session(createSession(_uri));
         auto socket = std::make_shared<LOOLWebSocket>(*session, request, _response);
@@ -165,7 +165,7 @@ void HTTPWSError::testMaxConnections()
         std::string docPath;
         std::string docURL;
 
-        getDocumentPathAndURL("empty.odt", docPath, docURL);
+        getDocumentPathAndURL("empty.odt", docPath, docURL, testname);
         Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, docURL);
         auto socket = loadDocAndGetSocket(_uri, docURL, testname);
         std::cerr << "Opened connect #1 of " << MAX_CONNECTIONS << std::endl;


More information about the Libreoffice-commits mailing list