[SCM] build.samba.org - branch master updated
Jelmer Vernooij
jelmer at samba.org
Tue Nov 2 02:19:05 MDT 2010
The branch, master has been updated
via 9e71906 Raise NoSuchBuildError rather than silently pretending files are empty.
via d72af4e add tests for read_log/read_err.
from d273a3a Add more tests, consistent parameter ordering.
http://gitweb.samba.org/?p=build-farm.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 9e719068ee4f96cb991876e662c86d58b1a98799
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Tue Nov 2 09:19:30 2010 +0100
Raise NoSuchBuildError rather than silently pretending files are empty.
commit d72af4e7d026f8d3d8bc06d6a98ac0058cb2ca70
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Tue Nov 2 09:08:53 2010 +0100
add tests for read_log/read_err.
-----------------------------------------------------------------------
Summary of changes:
buildfarm/data.py | 18 +++++++++++-------
buildfarm/tests/__init__.py | 12 +++++++++---
buildfarm/tests/test_data.py | 13 +++++++++++++
web/build.py | 23 ++++++++++++-----------
4 files changed, 45 insertions(+), 21 deletions(-)
Changeset truncated at 500 lines:
diff --git a/buildfarm/data.py b/buildfarm/data.py
index 8458c58..d083698 100644
--- a/buildfarm/data.py
+++ b/buildfarm/data.py
@@ -167,7 +167,7 @@ class BuildResultStore(object):
return time.time() - st.st_ctime
def build_revision_details(self, tree, host, compiler, rev=None):
- """get the svn revision of build"""
+ """get the revision of build"""
file = self.build_fname(tree, host, compiler, rev)
cachef = self.cache_fname(tree, host, compiler, rev)
@@ -183,7 +183,7 @@ class BuildResultStore(object):
st1 = os.stat("%s.log" % file)
except OSError:
# File does not exist
- return "NO SUCH FILE"
+ raise NoSuchBuildError(tree, host, compiler, rev)
try:
st2 = os.stat("%s.revision" % cachef)
@@ -306,7 +306,7 @@ class BuildResultStore(object):
st1 = os.stat("%s.log" % file)
except OSError:
# No such file
- return "Unknown Build"
+ raise NoSuchBuildError(tree, host, compiler, rev)
try:
st2 = os.stat(cachefile)
@@ -394,7 +394,7 @@ class BuildResultStore(object):
st1 = os.stat(file)
except OSError:
# File does not exist
- return ""
+ raise NoSuchBuildError(tree, self.LCOVHOST, "lcov")
try:
st2 = os.stat(cachefile)
except OSError:
@@ -446,11 +446,15 @@ class BuildResultStore(object):
return ret
- def read_log(self, tree, host, compiler, rev):
+ def read_log(self, tree, host, compiler, rev=None):
"""read full log file"""
- return util.FileLoad(self.build_fname(tree, host, compiler, rev)+".log")
+ f = open(self.build_fname(tree, host, compiler, rev)+".log", "r")
+ try:
+ return f.read()
+ finally:
+ f.close()
- def read_err(self, tree, host, compiler, rev):
+ def read_err(self, tree, host, compiler, rev=None):
"""read full err file"""
return util.FileLoad(self.build_fname(tree, host, compiler, rev)+".err")
diff --git a/buildfarm/tests/__init__.py b/buildfarm/tests/__init__.py
index ec4f3fc..130c3b9 100644
--- a/buildfarm/tests/__init__.py
+++ b/buildfarm/tests/__init__.py
@@ -25,17 +25,23 @@ class BuildFarmTestCase(TestCase):
"""Test case class that provides a build farm data directory and convenience methods.
"""
- def create_mock_logfile(self, tree, host, compiler, rev=None):
+ def create_mock_logfile(self, tree, host, compiler, rev=None,
+ kind="stdout", contents="FOO"):
basename = "build.%s.%s.%s" % (tree, host, compiler)
if rev:
basename += "-%s" % rev
path = os.path.join(self.path, "data", "oldrevs", basename + "-%s" % rev)
else:
path = os.path.join(self.path, "data", "upload", basename)
- path += ".log"
+ if kind == "stdout":
+ path += ".log"
+ elif kind == "stderr":
+ path += ".err"
+ else:
+ raise ValueError("Unknown log kind %r" % kind)
f = open(path, 'w+')
try:
- f.write("foo\n")
+ f.write(contents)
finally:
f.close()
return path
diff --git a/buildfarm/tests/test_data.py b/buildfarm/tests/test_data.py
index 778620f..d265125 100755
--- a/buildfarm/tests/test_data.py
+++ b/buildfarm/tests/test_data.py
@@ -78,3 +78,16 @@ class BuildResultStoreTests(BuildFarmTestCase):
def test_build_age_ctime_nonexistant(self):
self.assertRaises(data.NoSuchBuildError, self.x.build_age_ctime, "tdb",
"charis", "cc")
+
+ def test_read_log(self):
+ path = self.create_mock_logfile("tdb", "charis", "cc",
+ contents="This is what a log file looks like.")
+ log = self.x.read_log("tdb", "charis", "cc")
+ self.assertEquals("This is what a log file looks like.", log)
+
+ def test_read_err(self):
+ path = self.create_mock_logfile("tdb", "charis", "cc",
+ kind="stderr",
+ contents="This is what an stderr file looks like.")
+ log = self.x.read_err("tdb", "charis", "cc")
+ self.assertEquals("This is what an stderr file looks like.", log)
diff --git a/web/build.py b/web/build.py
index a17eba6..df583aa 100755
--- a/web/build.py
+++ b/web/build.py
@@ -129,15 +129,12 @@ def view_summary(myself, output_type):
for host in hosts:
for compiler in compilers:
for tree in trees:
- status = build_status(myself, tree, host, compiler, "")
- if status.startswith("Unknown Build"):
- continue
try:
- age_mtime = db.build_age_mtime(tree, host, compiler)
+ status = build_status(myself, tree, host, compiler)
except data.NoSuchBuildError:
- pass
- else:
- host_count[tree]+=1
+ continue
+ age_mtime = db.build_age_mtime(tree, host, compiler)
+ host_count[tree]+=1
if "status failed" in status:
broken_count[tree]+=1
@@ -168,7 +165,11 @@ def view_summary(myself, output_type):
else:
yield "<td>"
yield "%d</td>" % panic_count[tree]
- yield "<td>%s</td>" % db.lcov_status(tree)
+ try:
+ lcov_data = db.lcov_status(tree)
+ except data.NoSuchBuildError:
+ lcov_data = ""
+ yield "<td>%s</td>" % lcov_data
yield "</tr>"
if output_type == 'text':
@@ -240,12 +241,12 @@ def view_recent_builds(myself, tree, sort_by):
for host in hosts:
for compiler in compilers:
- status = build_status(myself, tree, host, compiler)
try:
- age_mtime = db.build_age_mtime(tree, host, compiler)
+ status = build_status(myself, tree, host, compiler)
except data.NoSuchBuildError:
pass
else:
+ age_mtime = db.build_age_mtime(tree, host, compiler)
age_ctime = db.build_age_ctime(tree, host, compiler)
revision = db.build_revision(tree, host, compiler)
revision_time = db.build_revision_time(tree, host, compiler)
@@ -462,7 +463,7 @@ def view_host(myself, output_type, *requested_hosts):
else:
age_ctime = db.build_age_ctime(tree, host, compiler)
warnings = db.err_count(tree, host, compiler)
- status = build_status(myself, tree, host, compiler, "")
+ status = build_status(myself, tree, host, compiler)
if row == 0:
if output_type == 'text':
yield "%-12s %-10s %-10s %-10s %-10s\n" % (
--
build.samba.org
More information about the samba-cvs
mailing list