The branch, master has been updated
       via  0ab262b attempt to speed up log parsing by compiling regexes 
beforehand.
      from  c868b29 Allow limiting the number of revisions that we look back.

http://gitweb.samba.org/?p=build-farm.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 0ab262b677046d51191a2598d040e09f0d59ff7b
Author: Jelmer Vernooij <jel...@samba.org>
Date:   Sat Nov 13 14:40:18 2010 +0100

    attempt to speed up log parsing by compiling regexes beforehand.

-----------------------------------------------------------------------

Summary of changes:
 buildfarm/data.py |   32 ++++++++++++++++----------------
 1 files changed, 16 insertions(+), 16 deletions(-)


Changeset truncated at 500 lines:

diff --git a/buildfarm/data.py b/buildfarm/data.py
index 8629842..0bd1498 100644
--- a/buildfarm/data.py
+++ b/buildfarm/data.py
@@ -109,30 +109,17 @@ def build_status_from_logs(log, err):
     ret = BuildStatus()
 
     stages = []
+    re_status = re.compile("^([A-Z_]+) STATUS:(\s*\d+)$")
+    re_action = re.compile("^ACTION (PASSED|FAILED):\s+test$")
 
     for l in log:
-        m = re.match("^([A-Z_]+) STATUS:(\s*\d+)$", l)
-        if m:
-            stages.append(BuildStageResult(m.group(1), 
int(m.group(2).strip())))
-            if m.group(1) == "TEST":
-                test_seen = 1
-            continue
-        m = re.match("^ACTION (PASSED|FAILED):\s+test$", l)
-        if m and not test_seen:
-            if m.group(1) == "PASSED":
-                stages.append(BuildStageResult("TEST", 0))
-            else:
-                stages.append(BuildStageResult("TEST", 1))
-            continue
-
         if l.startswith("No space left on device"):
             ret.other_failures.add("disk full")
             continue
         if l.startswith("maximum runtime exceeded"):
             ret.other_failures.add("timeout")
             continue
-        m = re.match("^(PANIC|INTERNAL ERROR):.*$", l)
-        if m:
+        if l.startswith("PANIC:") or l.startswith("INTERNAL ERROR:"):
             ret.other_failures.add("panic")
             continue
         if l.startswith("testsuite-failure: ") or 
l.startswith("testsuite-error: "):
@@ -141,6 +128,19 @@ def build_status_from_logs(log, err):
         if l.startswith("testsuite-success: "):
             test_successes += 1
             continue
+        m = re_status.match(l)
+        if m:
+            stages.append(BuildStageResult(m.group(1), 
int(m.group(2).strip())))
+            if m.group(1) == "TEST":
+                test_seen = 1
+            continue
+        m = re_action.match(l)
+        if m and not test_seen:
+            if m.group(1) == "PASSED":
+                stages.append(BuildStageResult("TEST", 0))
+            else:
+                stages.append(BuildStageResult("TEST", 1))
+            continue
 
     # Scan err file for specific errors
     for l in err:


-- 
build.samba.org

Reply via email to