[Libreoffice-commits] dev-tools.git: 2 commits - uitest/mass-testing

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Tue Apr 16 16:49:03 UTC 2019


 uitest/mass-testing/run.py |   57 ++++++++++++++++++++++++++++++++++++---------
 1 file changed, 46 insertions(+), 11 deletions(-)

New commits:
commit 5fbf02f630a0e8aec8a064c4a1dc62571596e62f
Author:     Xisco Fauli <xiscofauli at libreoffice.org>
AuthorDate: Tue Apr 16 18:47:38 2019 +0200
Commit:     Xisco Fauli <xiscofauli at libreoffice.org>
CommitDate: Tue Apr 16 18:47:38 2019 +0200

    mass-uitesting: Handle Ctrl+C

diff --git a/uitest/mass-testing/run.py b/uitest/mass-testing/run.py
index e7a02db..819ca20 100755
--- a/uitest/mass-testing/run.py
+++ b/uitest/mass-testing/run.py
@@ -20,6 +20,12 @@ extensions = {
     'impress' : [ "odp", "ppt", "pptx" ]
     }
 
+def signal_handler(sig, frame):
+        print('Ctrl+C pressed! Killing it!')
+        sys.exit(0)
+
+signal.signal(signal.SIGINT, signal_handler)
+
 class DefaultHelpParser(argparse.ArgumentParser):
     def error(self, message):
         sys.stderr.write('error: %s\n' % message)
commit c2efcd5c63289e24765baf0e7bf55c88b72b2f02
Author:     Xisco Fauli <xiscofauli at libreoffice.org>
AuthorDate: Tue Apr 16 18:37:27 2019 +0200
Commit:     Xisco Fauli <xiscofauli at libreoffice.org>
CommitDate: Tue Apr 16 18:37:27 2019 +0200

    mass-uitesting: Keep track of the files run

diff --git a/uitest/mass-testing/run.py b/uitest/mass-testing/run.py
index 5a0ba75..e7a02db 100755
--- a/uitest/mass-testing/run.py
+++ b/uitest/mass-testing/run.py
@@ -12,6 +12,7 @@ import sys
 import signal
 import logging
 from shutil import copyfile
+import pickle
 
 extensions = {
     'writer' : [ "odt", "doc", "docx", "rtf" ],
@@ -66,7 +67,27 @@ def run_tests_and_get_results(liboPath, listFiles, isDebug):
     totalTimeout = 0
     totalSkip = 0
 
+    sofficePath = liboPath + "instdir/program/soffice"
+    process = Popen([sofficePath, "--version"], encoding="utf-8", stdout=PIPE, stderr=PIPE)
+    stdout, stderr = process.communicate()
+    sourceHash = stdout.split(" ")[2].strip()
+
+    #Keep track of the files run
+    filesRun = {}
+
+    if os.path.exists('run.pkl'):
+        with open('run.pkl', 'rb') as pickle_in:
+            filesRun = pickle.load(pickle_in)
+
+    if sourceHash not in filesRun:
+        filesRun[sourceHash] = []
+
     for fileName in listFiles:
+
+        if fileName in filesRun[sourceHash]:
+            print("SKIP: " + fileName)
+            continue
+
         # Replace the profile file with
         # 1. DisableMacrosExecution = True
         # 2. IgnoreProtectedArea = True
@@ -79,7 +100,7 @@ def run_tests_and_get_results(liboPath, listFiles, isDebug):
         with Popen(["python3.5",
                     liboPath + "uitest/test_main.py",
                     "--debug",
-                    "--soffice=path:" + liboPath + "instdir/program/soffice",
+                    "--soffice=path:" + sofficePath,
                     "--userdir=file://" + profilePath,
                     "--file=" + component + ".py"], stdin=PIPE, stdout=PIPE, stderr=PIPE,
                     encoding="utf-8", preexec_fn=os.setsid) as process:
@@ -90,7 +111,7 @@ def run_tests_and_get_results(liboPath, listFiles, isDebug):
                     if isDebug:
                         print(line)
 
-                    if 'skipped' == line.rstrip().lower():
+                    if 'skipped' == line.strip().lower():
                         logger.info("SKIP: " + fileName + " : " + importantInfo)
                         totalSkip += 1
                         break
@@ -101,9 +122,9 @@ def run_tests_and_get_results(liboPath, listFiles, isDebug):
                             logger.info("PASS: " + fileName + " : " + importantInfo)
                             totalPass += 1
 
-                        importantInfo = line.rstrip().split('for ')[1]
+                        importantInfo = line.strip().split('for ')[1]
 
-                    elif importantInfo and 'error' == line.rstrip().lower() or 'fail' == line.rstrip().lower():
+                    elif importantInfo and 'error' == line.strip().lower() or 'fail' == line.strip().lower():
                         logger.info("FAIL: " + fileName + " : " + importantInfo)
                         totalFail += 1
                         importantInfo = ''
@@ -119,14 +140,22 @@ def run_tests_and_get_results(liboPath, listFiles, isDebug):
 
                 os.killpg(process.pid, signal.SIGINT) # send signal to the process group
 
+        filesRun[sourceHash].append(fileName)
+
+        with open('run.pkl', 'wb') as pickle_out:
+            pickle.dump(filesRun, pickle_out)
+
     totalTests = totalPass + totalTimeout + totalSkip + totalFail
-    logger.info("")
-    logger.info("Total Tests: " + str(totalTests))
-    logger.info("\tPASS: " + str(totalPass))
-    logger.info("\tSKIP: " + str(totalSkip))
-    logger.info("\tTIMEOUT: " + str(totalTimeout))
-    logger.info("\tFAIL: " + str(totalFail))
-    logger.info("")
+    if totalTests > 0:
+        logger.info("")
+        logger.info("Total Tests: " + str(totalTests))
+        logger.info("\tPASS: " + str(totalPass))
+        logger.info("\tSKIP: " + str(totalSkip))
+        logger.info("\tTIMEOUT: " + str(totalTimeout))
+        logger.info("\tFAIL: " + str(totalFail))
+        logger.info("")
+    else:
+        print("No test run!")
 
 if __name__ == '__main__':
     parser = DefaultHelpParser()


More information about the Libreoffice-commits mailing list