[SCM] build.samba.org - branch master updated
Jelmer Vernooij
jelmer at samba.org
Sat Nov 6 12:14:15 MDT 2010
The branch, master has been updated
via 7adca02 Add convenience class for build status.
via 9ea3ef1 Merge build_status_from_logs tests.
from 448ed75 Add my copyright
http://gitweb.samba.org/?p=build-farm.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 7adca02a235bd96ef30eb7182f817192ccd5b7f4
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Sat Nov 6 19:14:45 2010 +0100
Add convenience class for build status.
commit 9ea3ef139887c465afa08fa68f670072f25a706c
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Sat Nov 6 18:58:35 2010 +0100
Merge build_status_from_logs tests.
-----------------------------------------------------------------------
Summary of changes:
buildfarm/data.py | 16 +++++-
buildfarm/tests/test_data.py | 101 +++++++++++++++++++++---------------------
web/build.py | 12 ++---
3 files changed, 68 insertions(+), 61 deletions(-)
Changeset truncated at 500 lines:
diff --git a/buildfarm/data.py b/buildfarm/data.py
index 0e1e94f..2bbbd74 100644
--- a/buildfarm/data.py
+++ b/buildfarm/data.py
@@ -29,6 +29,16 @@ import time
import util
+class BuildStatus(object):
+
+ def __init__(self, stages, other_failures):
+ self.stages = stages
+ self.other_failures = other_failures
+
+ def __str__(self):
+ return repr((self.stages, self.other_failures))
+
+
def check_dir_exists(kind, path):
if not os.path.isdir(path):
raise Exception("%s directory %s does not exist" % (kind, path))
@@ -86,7 +96,7 @@ def build_status_from_logs(log, err):
else:
sstatus = None
- return ((cstatus, bstatus, istatus, tstatus, sstatus), other_failures)
+ return BuildStatus((cstatus, bstatus, istatus, tstatus, sstatus), other_failures)
def lcov_extract_percentage(text):
@@ -274,12 +284,12 @@ class CachingBuild(Build):
st2 = None
if st2 and st1.st_ctime <= st2.st_mtime:
- return eval(util.FileLoad(cachefile))
+ return BuildStatus(*eval(util.FileLoad(cachefile)))
ret = super(CachingBuild, self).status()
if not self._store.readonly:
- util.FileSave(cachefile, repr(ret))
+ util.FileSave(cachefile, str(ret))
return ret
diff --git a/buildfarm/tests/test_data.py b/buildfarm/tests/test_data.py
index 6ef0a18..b566c73 100755
--- a/buildfarm/tests/test_data.py
+++ b/buildfarm/tests/test_data.py
@@ -32,47 +32,6 @@ class NonexistantTests(unittest.TestCase):
self.assertRaises(
Exception, data.BuildResultStore, "somedirthatdoesn'texist", None)
-class BuildStatusFromLogs(testtools.TestCase):
-
-
- def test_build_status_from_logs(self):
- log = """
-TEST STATUS:1
-"""
- res = data.build_status_from_logs(log, "")
- self.assertEquals(res[0][3], 1)
- log = """
-TEST STATUS: 1
-"""
- res = data.build_status_from_logs(log, "")
- self.assertEquals(res[0][3], 1)
- log = """
-CONFIGURE STATUS: 2
-TEST STATUS: 1
-CC_CHECKER STATUS: 2
-"""
- res = data.build_status_from_logs(log, "")
- self.assertEquals(res[0][4], 2)
- log = """
-CONFIGURE STATUS: 2
-ACTION PASSED: test
-CC_CHECKER STATUS: 2
-"""
- res = data.build_status_from_logs(log, "")
- self.assertEquals(res[0][4], 2)
- self.assertEquals(res[0][3], 255)
- log = """
-CONFIGURE STATUS: 2
-ACTION PASSED: test
-testsuite-success: toto
-testsuite-failure: foo
-testsuite-failure: bar
-testsuite-failure: biz
-CC_CHECKER STATUS: 2
-"""
- res = data.build_status_from_logs(log, "")
- self.assertEquals(res[0][0], 2)
- self.assertEquals(res[0][3], 3)
class ReadTreesFromConfTests(testtools.TestCase):
@@ -213,23 +172,63 @@ error3""")
self.assertTrue(self.x.has_host("charis"))
-
-class LogParserTests(unittest.TestCase):
+class BuildStatusFromLogs(testtools.TestCase):
def test_nothing(self):
- self.assertEquals(((None, None, None, None, None), set()),
- data.build_status_from_logs("", ""))
+ s = data.build_status_from_logs("", "")
+ self.assertEquals((None, None, None, None, None), s.stages)
+ self.assertEquals(set(), s.other_failures)
def test_disk_full(self):
- self.assertEquals(((None, None, None, None, None), set(["disk full"])),
+ self.assertEquals(set(["disk full"]),
data.build_status_from_logs("foo\nbar\nNo space left on device\nla\n",
- ""))
- self.assertEquals(((None, None, None, None, None), set(["disk full"])),
+ "").other_failures)
+ self.assertEquals(set(["disk full"]),
data.build_status_from_logs(
- "", "foo\nbar\nNo space left on device\nla\n"))
+ "", "foo\nbar\nNo space left on device\nla\n").other_failures)
def test_timeout(self):
- self.assertEquals(((None, None, None, None, None), set(["timeout"])),
+ self.assertEquals(set(["timeout"]),
data.build_status_from_logs("foo\nbar\nmaximum runtime exceeded\nla\n",
- ""))
+ "").other_failures)
+
+ def test_status(self):
+ log = """
+TEST STATUS:1
+"""
+ res = data.build_status_from_logs(log, "")
+ self.assertEquals(res.stages[3], 1)
+ log = """
+TEST STATUS: 1
+"""
+ res = data.build_status_from_logs(log, "")
+ self.assertEquals(res.stages[3], 1)
+ log = """
+CONFIGURE STATUS: 2
+TEST STATUS: 1
+CC_CHECKER STATUS: 2
+"""
+ res = data.build_status_from_logs(log, "")
+ self.assertEquals(res.stages[4], 2)
+ log = """
+CONFIGURE STATUS: 2
+ACTION PASSED: test
+CC_CHECKER STATUS: 2
+"""
+ res = data.build_status_from_logs(log, "")
+ self.assertEquals(res.stages[4], 2)
+ self.assertEquals(res.stages[3], 255)
+ log = """
+CONFIGURE STATUS: 2
+ACTION PASSED: test
+testsuite-success: toto
+testsuite-failure: foo
+testsuite-failure: bar
+testsuite-failure: biz
+CC_CHECKER STATUS: 2
+"""
+ res = data.build_status_from_logs(log, "")
+ self.assertEquals(res.stages[0], 2)
+ self.assertEquals(res.stages[3], 3)
+
diff --git a/web/build.py b/web/build.py
index 7c4c44a..0c22141 100755
--- a/web/build.py
+++ b/web/build.py
@@ -80,7 +80,6 @@ def build_link(myself, tree, host, compiler, rev, status):
def html_build_status(status):
- ((cstatus, bstatus, istatus, tstatus, sstatus), other_failures) = status
def span(classname, contents):
return "<span class=\"%s\">%s</span>" % (classname, contents)
@@ -92,15 +91,14 @@ def html_build_status(status):
else:
return span("status failed", st)
ostatus = ""
- if "panic" in other_failures:
+ if "panic" in status.other_failures:
ostatus += "/"+span("status panic", "PANIC")
- if "disk full" in other_failures:
+ if "disk full" in status.other_failures:
ostatus += "/"+span("status failed", "disk full")
- if "timeout" in other_failures:
+ if "timeout" in status.other_failures:
ostatus += "/"+span("status failed", "timeout")
- if sstatus is not None:
- ostatus += "/"+span("status checker", sstatus)
- return "%s/%s/%s/%s%s" % (span_status(cstatus), span_status(bstatus), span_status(istatus), span_status(tstatus), ostatus)
+ bstatus = "/".join([span_status(s) for s in status.stages])
+ return bstatus + ostatus
def build_status(myself, tree, host, compiler, rev=None):
--
build.samba.org
More information about the samba-cvs
mailing list