git.samba.org
/
mat
/
samba.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
95c6c9b
)
land: Print out failed test in case of subunit failures.
author
Jelmer Vernooij
<jelmer@samba.org>
Tue, 5 Oct 2010 10:39:30 +0000
(12:39 +0200)
committer
Jelmer Vernooij
<jelmer@samba.org>
Tue, 5 Oct 2010 21:56:10 +0000
(23:56 +0200)
script/land.py
patch
|
blob
|
history
diff --git
a/script/land.py
b/script/land.py
index e04cd3a87767ca5b5c09f98b9f92c180b4e60096..a92fa44f64904c83af3ae83d5b2859fdbcab7af2 100755
(executable)
--- a/
script/land.py
+++ b/
script/land.py
@@
-147,7
+147,7
@@
class TreeStageBuilder(object):
@property
def failure_reason(self):
@property
def failure_reason(self):
- r
eturn "failed '%s' with exit code %d" % (self.command, self.exitcode
)
+ r
aise NotImplementedError(self.failure_reason
)
@property
def failed(self):
@property
def failed(self):
@@
-162,6
+162,10
@@
class PlainTreeStageBuilder(TreeStageBuilder):
stdout=self.tree.stdout, stderr=self.tree.stderr,
stdin=self.stdin)
stdout=self.tree.stdout, stderr=self.tree.stderr,
stdin=self.stdin)
+ @property
+ def failure_reason(self):
+ return "failed '%s' with exit code %d" % (self.command, self.exitcode)
+
class AbortingTestResult(subunithelper.TestsuiteEnabledTestResult):
class AbortingTestResult(subunithelper.TestsuiteEnabledTestResult):
@@
-176,12
+180,27
@@
class AbortingTestResult(subunithelper.TestsuiteEnabledTestResult):
self.stage.proc.terminate()
self.stage.proc.terminate()
+class FailureTrackingTestResult(subunithelper.TestsuiteEnabledTestResult):
+
+ def __init__(self, stage):
+ super(AbortingTestResult, self).__init__()
+ self.stage = stage
+
+ def addError(self, test, details=None):
+ if self.stage.failed_test is None:
+ self.stage.failed_test = ("error", test)
+
+ def addFailure(self, test, details=None):
+ if self.stage.failed_test is None:
+ self.stage.failed_test = ("failure", test)
+
+
class SubunitTreeStageBuilder(TreeStageBuilder):
def __init__(self, tree, name, command, fail_quickly=False):
super(SubunitTreeStageBuilder, self).__init__(tree, name, command,
fail_quickly)
class SubunitTreeStageBuilder(TreeStageBuilder):
def __init__(self, tree, name, command, fail_quickly=False):
super(SubunitTreeStageBuilder, self).__init__(tree, name, command,
fail_quickly)
- self.failed_test
s = []
+ self.failed_test
= None
self.subunit_path = os.path.join(gitroot,
"%s.%s.subunit" % (self.tree.tag, self.name))
self.tree.logfiles.append(
self.subunit_path = os.path.join(gitroot,
"%s.%s.subunit" % (self.tree.tag, self.name))
self.tree.logfiles.append(
@@
-190,7
+209,8
@@
class SubunitTreeStageBuilder(TreeStageBuilder):
self.subunit = open(self.subunit_path, 'w')
formatter = subunithelper.PlainFormatter(False, True, {})
self.subunit = open(self.subunit_path, 'w')
formatter = subunithelper.PlainFormatter(False, True, {})
- clients = [formatter, subunit.TestProtocolClient(self.subunit)]
+ clients = [formatter, subunit.TestProtocolClient(self.subunit),
+ FailureTrackingTestResult(self)]
if fail_quickly:
clients.append(AbortingTestResult(self))
self.subunit_server = subunit.TestProtocolServer(
if fail_quickly:
clients.append(AbortingTestResult(self))
self.subunit_server = subunit.TestProtocolServer(
@@
-225,6
+245,13
@@
class SubunitTreeStageBuilder(TreeStageBuilder):
self.subunit.close()
return self.exitcode
self.subunit.close()
return self.exitcode
+ @property
+ def failure_reason(self):
+ if self.failed_test:
+ return "failed '%s' with %s in test %s" (self.command, self.failed_test[0], self.failed_test[1])
+ else:
+ return "failed '%s' with exit code %d in unknown test" % (self.command, self.exitcode)
+
class TreeBuilder(object):
'''handle build of one directory'''
class TreeBuilder(object):
'''handle build of one directory'''