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

Ashod Nakashian ashod.nakashian at collabora.co.uk
Sun Jan 1 04:22:45 UTC 2017


 test/httpwstest.cpp |   73 +++++++++++++++++++++++++++++++++++++++++++---------
 1 file changed, 61 insertions(+), 12 deletions(-)

New commits:
commit e9f4e67efdad801c581a798bd59b11b8041310c0
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Fri Dec 23 16:18:31 2016 -0500

    wsd: more testLoadTorture flavors
    
    Dedicated tests for each type of document.
    
    Change-Id: I399e32a64ad0fe25f0cf4795cf428da922eea2f5
    Reviewed-on: https://gerrit.libreoffice.org/32564
    Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
    Tested-by: Ashod Nakashian <ashnakash at gmail.com>

diff --git a/test/httpwstest.cpp b/test/httpwstest.cpp
index 9730f9f..4cfed98 100644
--- a/test/httpwstest.cpp
+++ b/test/httpwstest.cpp
@@ -64,6 +64,9 @@ class HTTPWSTest : public CPPUNIT_NS::TestFixture
     CPPUNIT_TEST(testCloseAfterClose);
     CPPUNIT_TEST(testConnectNoLoad); // This fails most of the times but occasionally succeeds
     CPPUNIT_TEST(testLoad);
+    CPPUNIT_TEST(testLoadTortureODT);
+    CPPUNIT_TEST(testLoadTortureODS);
+    CPPUNIT_TEST(testLoadTortureODP);
     CPPUNIT_TEST(testLoadTorture);
     CPPUNIT_TEST(testBadLoad);
     CPPUNIT_TEST(testReload);
@@ -108,6 +111,9 @@ class HTTPWSTest : public CPPUNIT_NS::TestFixture
     void testCloseAfterClose();
     void testConnectNoLoad();
     void testLoad();
+    void testLoadTortureODT();
+    void testLoadTortureODS();
+    void testLoadTortureODP();
     void testLoadTorture();
     void testBadLoad();
     void testReload();
@@ -147,7 +153,8 @@ class HTTPWSTest : public CPPUNIT_NS::TestFixture
 
     void loadDoc(const std::string& documentURL, const std::string& testname);
 
-    void loadTorture(const std::string& docName,
+    int loadTorture(const std::string& testname,
+                     const std::string& docName,
                      const size_t thread_count,
                      const size_t loads_per_thread,
                      const size_t max_jitter_ms);
@@ -385,20 +392,16 @@ void HTTPWSTest::testLoad()
     loadDoc(documentURL, "load ");
 }
 
-void HTTPWSTest::loadTorture(const std::string& docName,
+int HTTPWSTest::loadTorture(const std::string& testname,
+                             const std::string& docName,
                              const size_t thread_count,
                              const size_t loads_per_thread,
                              const size_t max_jitter_ms)
 {
-    const auto testname = "loadTorture ";
-
     // Load same document from many threads together.
     std::string documentPath, documentURL;
     getDocumentPathAndURL(docName, documentPath, documentURL);
 
-    const auto number_of_loads = thread_count * loads_per_thread;
-    const int exp_sum_view_ids = number_of_loads * (number_of_loads - 1) / 2; // 0-based view-ids.
-
     std::atomic<int> sum_view_ids;
     sum_view_ids = 0;
 
@@ -440,23 +443,69 @@ void HTTPWSTest::loadTorture(const std::string& docName,
         thread.join();
     }
 
-    CPPUNIT_ASSERT_EQUAL(exp_sum_view_ids, sum_view_ids.load());
+    return sum_view_ids;
 }
 
-void HTTPWSTest::testLoadTorture()
+void HTTPWSTest::testLoadTortureODT()
 {
     const auto thread_count = 3;
-    const auto loads_per_thread = 3;
+    const auto loads_per_thread = 2;
+    const auto max_jitter_ms = 100;
+
+    const auto testname = "loadTortureODT ";
+    const auto sum_view_ids = loadTorture(testname, "empty.odt", thread_count, loads_per_thread, max_jitter_ms);
+
+    // This only works when the first view-ID is 0 and increments monotonously.
+    const auto number_of_loads = thread_count * loads_per_thread;
+    const int exp_sum_view_ids = number_of_loads * (number_of_loads - 1) / 2; // 0-based view-ids.
+    CPPUNIT_ASSERT_EQUAL(exp_sum_view_ids, sum_view_ids);
+}
+
+void HTTPWSTest::testLoadTortureODS()
+{
+    const auto thread_count = 2;
+    const auto loads_per_thread = 2;
+    const auto max_jitter_ms = 75;
+
+    const auto testname = "loadTortureODS ";
+    const auto sum_view_ids = loadTorture(testname, "empty.ods", thread_count, loads_per_thread, max_jitter_ms);
+
+    // This only works when the first view-ID is 0 and increments monotonously.
+    const auto number_of_loads = thread_count * loads_per_thread;
+    const int exp_sum_view_ids = number_of_loads * (number_of_loads - 1) / 2; // 0-based view-ids.
+    CPPUNIT_ASSERT_EQUAL(exp_sum_view_ids, sum_view_ids);
+}
+
+void HTTPWSTest::testLoadTortureODP()
+{
+    const auto thread_count = 2;
+    const auto loads_per_thread = 2;
+    const auto max_jitter_ms = 75;
+
+    const auto testname = "loadTortureODP ";
+    const auto sum_view_ids = loadTorture(testname, "empty.odp", thread_count, loads_per_thread, max_jitter_ms);
+
+    // For ODP the view-id is always odd, and we expect not to skip any ids.
+    const auto number_of_loads = thread_count * loads_per_thread;
+    const int exp_sum_view_ids = number_of_loads * number_of_loads; // Odd view-ids only.
+    CPPUNIT_ASSERT_EQUAL(exp_sum_view_ids, sum_view_ids);
+}
+
+void HTTPWSTest::testLoadTorture()
+{
+    const auto thread_count = 1;
+    const auto loads_per_thread = 1;
     const auto max_jitter_ms = 75;
 
-    std::vector<std::string> docNames = { "setclientpart.ods", "hello.odt", "empty.ods" };
+    std::vector<std::string> docNames = { "setclientpart.ods", "hello.odt", "viewcursor.odp" };
 
     std::vector<std::thread> threads;
     for (const auto& docName : docNames)
     {
         threads.emplace_back([&]
         {
-            loadTorture(docName, thread_count, loads_per_thread, max_jitter_ms);
+            const auto testname = "loadTorture_" + docName + ' ';
+            loadTorture(testname, docName, thread_count, loads_per_thread, max_jitter_ms);
         });
     }
 


More information about the Libreoffice-commits mailing list