[SCM] build.samba.org - branch master updated
Jelmer Vernooij
jelmer at samba.org
Fri Nov 12 17:14:43 MST 2010
The branch, master has been updated
via fb29f3a Fix implementation of get_previous_revision.
from 92dcfd6 Use sqlite backed buildfarm in import-and-analyse.
http://gitweb.samba.org/?p=build-farm.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit fb29f3ae2b0622b3cf1a48008e7d1e856bfd4da7
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Sat Nov 13 01:15:34 2010 +0100
Fix implementation of get_previous_revision.
-----------------------------------------------------------------------
Summary of changes:
buildfarm/data.py | 10 ++++++++--
buildfarm/tests/test_data.py | 13 +++++++++++++
2 files changed, 21 insertions(+), 2 deletions(-)
Changeset truncated at 500 lines:
diff --git a/buildfarm/data.py b/buildfarm/data.py
index 451caa5..7e6497a 100644
--- a/buildfarm/data.py
+++ b/buildfarm/data.py
@@ -503,7 +503,12 @@ class SQLCachingBuildResultStore(BuildResultStore):
self.db = db
def get_previous_revision(self, tree, host, compiler, revision):
- cursor = self.db.execute("SELECT commit_revision FROM build WHERE tree = ? AND host = ? AND compiler = ? AND commit_revision < ? ORDER BY id DESC LIMIT 1", (tree, host, compiler, revision))
+ cursor = self.db.execute("SELECT id FROM build WHERE tree = ? AND host = ? AND compiler = ? AND commit_revision = ?", (tree, host, compiler, revision))
+ row = cursor.fetchone()
+ if row is None:
+ raise NoSuchBuildError(tree, host, compiler, revision)
+ dbid = row[0]
+ cursor = self.db.execute("SELECT commit_revision FROM build WHERE tree = ? AND host = ? AND compiler = ? AND id < ? ORDER BY id DESC LIMIT 1", (tree, host, compiler, dbid))
row = cursor.fetchone()
if row is None:
raise NoSuchBuildError(tree, host, compiler, revision)
@@ -511,4 +516,5 @@ class SQLCachingBuildResultStore(BuildResultStore):
def upload_build(self, build):
super(SQLCachingBuildResultStore, self).upload_build(build)
- self.db.execute("INSERT INTO build (tree, revision, commit_revision, host, compiler, checksum, age, status) VALUES (?, ?, ?, ?, ?, ?, ?, ?)", (build.tree, build.revision, build.revision, build.host, build.compiler, build.log_checksum(), build.age_mtime(), repr(build.status())))
+ rev, timestamp = build.revision_details()
+ self.db.execute("INSERT INTO build (tree, revision, commit_revision, host, compiler, checksum, age, status) VALUES (?, ?, ?, ?, ?, ?, ?, ?)", (build.tree, rev, rev, build.host, build.compiler, build.log_checksum(), timestamp, repr(build.status())))
diff --git a/buildfarm/tests/test_data.py b/buildfarm/tests/test_data.py
index 4b60ad8..60f6597 100755
--- a/buildfarm/tests/test_data.py
+++ b/buildfarm/tests/test_data.py
@@ -168,6 +168,19 @@ class SQLCachingBuildResultStoreTests(BuildFarmTestCase,BuildResultStoreTestBase
self.x = data.SQLCachingBuildResultStore(
os.path.join(self.path, "data", "oldrevs"))
+ def test_get_previous_revision_result(self):
+ path = self.create_mock_logfile("tdb", "charis", "cc", contents="""
+BUILD COMMIT REVISION: myrev
+""")
+ self.x.upload_build(data.Build(None, path[:-4], "tdb", "charis", "cc"))
+ path = self.create_mock_logfile("tdb", "charis", "cc", contents="""
+BUILD COMMIT REVISION: myotherrev
+""")
+ self.x.upload_build(data.Build(None, path[:-4], "tdb", "charis", "cc"))
+ self.assertRaises(data.NoSuchBuildError, self.x.get_previous_revision, "tdb", "charis", "cc", "unknown")
+ self.assertRaises(data.NoSuchBuildError, self.x.get_previous_revision, "tdb", "charis", "cc", "myrev")
+ self.assertEquals("myrev", self.x.get_previous_revision("tdb", "charis", "cc", "myotherrev"))
+
class BuildStatusFromLogs(testtools.TestCase):
--
build.samba.org
More information about the samba-cvs
mailing list