[Libreoffice-commits] online.git: test/TileCacheTests.cpp

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


 test/TileCacheTests.cpp |   31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

New commits:
commit f861a9e1a7f2ad0c3bd58b4be3fce4cff5a98d6c
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Sun Jan 8 23:31:51 2017 -0500

    wsd: new unittest for multiview tiles when disconnecting
    
    When there are many views requesting tiles,
    disconnecting any should not cancel tiles
    for other views.
    
    Change-Id: I6029432c4b9ab931811dcb3b03b0441b413a9971
    Reviewed-on: https://gerrit.libreoffice.org/32872
    Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
    Tested-by: Ashod Nakashian <ashnakash at gmail.com>

diff --git a/test/TileCacheTests.cpp b/test/TileCacheTests.cpp
index 44a3484..42f72c4 100644
--- a/test/TileCacheTests.cpp
+++ b/test/TileCacheTests.cpp
@@ -56,6 +56,7 @@ class TileCacheTests : public CPPUNIT_NS::TestFixture
     CPPUNIT_TEST(testPerformance);
     CPPUNIT_TEST(testCancelTiles);
     CPPUNIT_TEST(testCancelTilesMultiView);
+    CPPUNIT_TEST(testDisconnectMultiView);
     CPPUNIT_TEST(testUnresponsiveClient);
     CPPUNIT_TEST(testImpressTiles);
     CPPUNIT_TEST(testClientPartImpress);
@@ -79,6 +80,7 @@ class TileCacheTests : public CPPUNIT_NS::TestFixture
     void testPerformance();
     void testCancelTiles();
     void testCancelTilesMultiView();
+    void testDisconnectMultiView();
     void testUnresponsiveClient();
     void testImpressTiles();
     void testClientPartImpress();
@@ -321,6 +323,35 @@ void TileCacheTests::testCancelTilesMultiView()
     }
 }
 
+void TileCacheTests::testDisconnectMultiView()
+{
+    std::string documentPath, documentURL;
+    getDocumentPathAndURL("setclientpart.ods", documentPath, documentURL, "cancelTilesMultiView ");
+
+    const size_t repeat = 4;
+    for (size_t j = 1; j <= repeat; ++j)
+    {
+        std::cerr << "cancelTilesMultiView try #" << j << std::endl;
+
+        // Request a huge tile, and cancel immediately.
+        auto socket1 = loadDocAndGetSocket(_uri, documentURL, "cancelTilesMultiView-1 ");
+        auto socket2 = loadDocAndGetSocket(_uri, documentURL, "cancelTilesMultiView-2 ", true);
+
+        sendTextFrame(socket1, "tilecombine part=0 width=256 height=256 tileposx=0,3840,7680,11520,0,3840,7680,11520 tileposy=0,0,0,0,3840,3840,3840,3840 tilewidth=3840 tileheight=3840", "cancelTilesMultiView-1 ");
+        sendTextFrame(socket2, "tilecombine part=0 width=256 height=256 tileposx=0,3840,7680,0 tileposy=0,0,0,22520 tilewidth=3840 tileheight=3840", "cancelTilesMultiView-2 ");
+
+        socket1->shutdown();
+
+        for (auto i = 0; i < 4; ++i)
+        {
+            getTileMessage(*socket2, "cancelTilesMultiView-2 ");
+        }
+
+        // Should never get more than 4 tiles on socket2.
+        const auto res2 = getResponseString(socket2, "tile:", "cancelTilesMultiView-2 ", 1000);
+    }
+}
+
 void TileCacheTests::testUnresponsiveClient()
 {
     std::string documentPath, documentURL;


More information about the Libreoffice-commits mailing list