[SCM] build.samba.org - branch master updated
Jelmer Vernooij
jelmer at samba.org
Tue Nov 9 08:45:29 MST 2010
The branch, master has been updated
via 5b5ab12 include stage name in stages list.
from f400877 Cast unicode strings to utf-8 strings
http://gitweb.samba.org/?p=build-farm.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 5b5ab12f09c68d2a2ece7eaea3cb30b2ede8cbd3
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Tue Nov 9 16:35:20 2010 +0100
include stage name in stages list.
-----------------------------------------------------------------------
Summary of changes:
buildfarm/data.py | 31 ++++++++++++++++++++++++-------
buildfarm/tests/test_data.py | 17 +++++++++++------
web/build.py | 2 +-
3 files changed, 36 insertions(+), 14 deletions(-)
Changeset truncated at 500 lines:
diff --git a/buildfarm/data.py b/buildfarm/data.py
index 15afd31..80a633c 100644
--- a/buildfarm/data.py
+++ b/buildfarm/data.py
@@ -34,12 +34,29 @@ import util
class BuildStatus(object):
def __init__(self, stages=None, other_failures=None):
- self.stages = stages
+ if stages is not None:
+ self.stages = stages
+ else:
+ self.stages = []
if other_failures is not None:
self.other_failures = other_failures
else:
self.other_failures = set()
+ def broken_host(self):
+ if "disk full" in self.other_failures:
+ return True
+ return False
+
+ def _status_tuple(self):
+ return [v for (k, v) in self.stages]
+
+ def regressed_since(self, other):
+ """Check if this build has regressed since another build."""
+ if "disk full" in self.other_failures:
+ return False
+ return cmp(self._status_tuple(), other._status_tuple())
+
def __str__(self):
return repr((self.stages, self.other_failures))
@@ -87,17 +104,17 @@ def build_status_from_logs(log, err):
stage_results = dict(stages)
def map_stage(name, result):
if name != "TEST":
- return result
+ return (name, result)
# TEST is special
if test_successes + test_failures == 0:
# No granular test output
- return result
+ return ("TEST", result)
if result == 0 and test_failures == 0:
ret.other_failures.add("inconsistent test result")
- return -1
- return test_failures
+ return ("TEST", -1)
+ return ("TEST", test_failures)
- ret.stages = tuple([map_stage(k, v) for k, v in stages])
+ ret.stages = [map_stage(name, result) for (name, result) in stages]
return ret
@@ -312,7 +329,6 @@ class CachingBuild(Build):
return ret
-
def read_trees_from_conf(path):
"""Read trees from a configuration file."""
ret = {}
@@ -442,6 +458,7 @@ class BuildResultStore(object):
def host_age(self, host):
"""get the overall age of a host"""
+ # FIXME: Turn this into a simple SQL query, or use something in hostdb ?
ret = None
for compiler in self.compilers:
for tree in self.trees:
diff --git a/buildfarm/tests/test_data.py b/buildfarm/tests/test_data.py
index 6b776ca..66e4f06 100755
--- a/buildfarm/tests/test_data.py
+++ b/buildfarm/tests/test_data.py
@@ -184,7 +184,7 @@ class BuildStatusFromLogs(testtools.TestCase):
def test_nothing(self):
s = self.parse_logs("", "")
- self.assertEquals((), s.stages)
+ self.assertEquals([], s.stages)
self.assertEquals(set(), s.other_failures)
def test_disk_full(self):
@@ -205,14 +205,16 @@ class BuildStatusFromLogs(testtools.TestCase):
TEST STATUS:1
"""
res = self.parse_logs(log, "")
- self.assertEquals(res.stages, (1,))
+ self.assertEquals(res.stages, [
+ ("TEST", 1)])
def test_failed_test_whitespace(self):
log = """
TEST STATUS: 1
"""
res = self.parse_logs(log, "")
- self.assertEquals(res.stages, (1,))
+ self.assertEquals(res.stages,
+ [("TEST", 1)])
def test_failed_test_noise(self):
log = """
@@ -221,7 +223,8 @@ TEST STATUS: 1
CC_CHECKER STATUS: 2
"""
res = self.parse_logs(log, "")
- self.assertEquals(res.stages, (2,1,2))
+ self.assertEquals(res.stages,
+ [("CONFIGURE", 2), ("TEST", 1), ("CC_CHECKER", 2)])
def test_no_test_output(self):
log = """
@@ -230,7 +233,8 @@ TEST STATUS: 0
CC_CHECKER STATUS: 2
"""
res = self.parse_logs(log, "")
- self.assertEquals(res.stages, (2, 0, 2))
+ self.assertEquals(res.stages,
+ [("CONFIGURE", 2), ("TEST", 0), ("CC_CHECKER", 2)])
def test_granular_test(self):
log = """
@@ -243,5 +247,6 @@ TEST STATUS: 1
CC_CHECKER STATUS: 2
"""
res = self.parse_logs(log, "")
- self.assertEquals(res.stages, (2, 3, 2))
+ self.assertEquals(res.stages,
+ [("CONFIGURE", 2), ("TEST", 3), ("CC_CHECKER", 2)])
diff --git a/web/build.py b/web/build.py
index b3f991c..5933a20 100755
--- a/web/build.py
+++ b/web/build.py
@@ -107,7 +107,7 @@ def html_build_status(status):
ostatus += "/"+span("status failed", "timeout")
if "make test error" in status.other_failures:
ostatus += "/"+span("status failed", "unexpected return code")
- bstatus = "/".join([span_status(s) for s in status.stages])
+ bstatus = "/".join([span_status(s) for (n, s) in status.stages])
return bstatus + ostatus
--
build.samba.org
More information about the samba-cvs
mailing list