[Libreoffice-commits] core.git: 2 commits - uitest/libreoffice

Markus Mohrhard markus.mohrhard at googlemail.com
Mon Feb 27 09:42:48 UTC 2017


 uitest/libreoffice/connection.py |   40 +++++++++++++++++++++++++++++++++++----
 1 file changed, 36 insertions(+), 4 deletions(-)

New commits:
commit 2b0748ed1fb727cb52b5c9e423b00242d155d099
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Mon Feb 27 03:17:39 2017 +0100

    uitest: increase the shutdown timeout
    
    Seems that under really high load 5 seconds is not enough.
    
    Change-Id: Ia0b2f7ff7bf469d188c9ceea0edc7f1d2d4002d3
    Reviewed-on: https://gerrit.libreoffice.org/34666
    Reviewed-by: Markus Mohrhard <markus.mohrhard at googlemail.com>
    Tested-by: Markus Mohrhard <markus.mohrhard at googlemail.com>

diff --git a/uitest/libreoffice/connection.py b/uitest/libreoffice/connection.py
index a2fbc20..33e93858 100644
--- a/uitest/libreoffice/connection.py
+++ b/uitest/libreoffice/connection.py
@@ -128,7 +128,7 @@ class OfficeConnection:
 
             DEFAULT_SLEEP = 0.1
             time_ = 0
-            while time_ < 5:
+            while time_ < 30:
                 time_ += DEFAULT_SLEEP
                 ret_attr = self.soffice.poll()
                 if ret_attr is not None:
commit 1ef6bf449b973962e9d9c359461107346499fb27
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Mon Feb 27 00:48:05 2017 +0100

    uitest: document methods and pep8 fixes
    
    Change-Id: I90af25c89cb33d5dc75f73a3b4918605d47474f1
    Reviewed-on: https://gerrit.libreoffice.org/34665
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Markus Mohrhard <markus.mohrhard at googlemail.com>

diff --git a/uitest/libreoffice/connection.py b/uitest/libreoffice/connection.py
index 94dd9fd..a2fbc20 100644
--- a/uitest/libreoffice/connection.py
+++ b/uitest/libreoffice/connection.py
@@ -32,6 +32,11 @@ class OfficeConnection:
         self.pro = None
 
     def setUp(self):
+        """  Create a new connection to a LibreOffice process
+
+        If the connection method is path the instance will be created as a
+        new subprocess. If the connection method is connect the instance tries
+        to connect to an existing instance with the specified socket string """
         (method, sep, rest) = self.args["--soffice"].partition(":")
         if sep != ":":
             raise Exception("soffice parameter does not specify method")
@@ -48,9 +53,18 @@ class OfficeConnection:
                 socket = rest
         else:
             raise Exception("unsupported connection method: " + method)
+
+        # connect to the soffice instance
         self.xContext = self.connect(socket)
 
     def bootstrap(self, soffice, userdir, socket):
+        """ Creates a new LibreOffice process
+
+        @param soffice Path to the soffice installation
+        @param userdir Directory of the user profile, only one process per user
+                         profile is possible
+        @param socket The socket string used for the PyUNO connection """
+
         argv = [soffice, "--accept=" + socket + ";urp",
                 "-env:UserInstallation=" + userdir,
                 "--quickstart=no", "--nofirststartwizard",
@@ -69,6 +83,7 @@ class OfficeConnection:
         return self.pro
 
     def connect(self, socket):
+        """ Tries to connect to the LibreOffice instance through the specified socket"""
         xLocalContext = uno.getComponentContext()
         xUnoResolver = xLocalContext.ServiceManager.createInstanceWithContext(
                 "com.sun.star.bridge.UnoUrlResolver", xLocalContext)
@@ -86,6 +101,13 @@ class OfficeConnection:
                 time.sleep(1)
 
     def tearDown(self):
+        """Terminate a LibreOffice instance created with the path connection method.
+
+        First tries to terminate the soffice instance through the normal
+        XDesktop::terminate method and waits for about 30 seconds before
+        considering this attempt failed. After the 30 seconds the subprocess
+        is terminated """
+
         if self.soffice:
             if self.xContext:
                 try:
@@ -97,10 +119,10 @@ class OfficeConnection:
                     print("...done")
                 except pyuno.getClass("com.sun.star.beans.UnknownPropertyException"):
                     print("caught UnknownPropertyException while TearDown")
-                    pass # ignore, also means disposed
+                    pass  # ignore, also means disposed
                 except pyuno.getClass("com.sun.star.lang.DisposedException"):
                     print("caught DisposedException while TearDown")
-                    pass # ignore
+                    pass  # ignore
             else:
                 self.soffice.terminate()
 
@@ -145,10 +167,17 @@ class PersistentConnection:
         self.connection = None
 
     def getContext(self):
+        """ Returns the XContext corresponding to the LibreOffice instance
+
+        This is the starting point for any PyUNO access to the LibreOffice
+        instance."""
         return self.connection.xContext
 
     def setUp(self):
-        assert(not self.connection)
+        # don't create two connections
+        if self.connection:
+            return
+
         conn = OfficeConnection(self.args)
         conn.setUp()
         self.connection = conn
@@ -161,6 +190,9 @@ class PersistentConnection:
                 self.connection = None
 
     def kill(self):
+        """ Kills the LibreOffice instance if it was created through the connection
+
+        Only works with the connection method path"""
         if self.connection and self.connection.soffice:
             self.connection.soffice.kill()
 


More information about the Libreoffice-commits mailing list