gdb-buildbot/lib/gdbcommand.py
2015-01-23 18:56:28 -05:00

47 lines
1.7 KiB
Python

# GDB .sum-fetching command.
from buildbot.status.builder import SUCCESS, WARNINGS, FAILURE, EXCEPTION
from buildbot.steps.shell import ShellCommand
from sumfiles import DejaResults
from gdbgitdb import switch_to_branch
class GdbCatSumfileCommand(ShellCommand):
name = 'regressions'
command = ['cat', 'gdb.sum']
def __init__(self, **kwargs):
ShellCommand.__init__(self, **kwargs)
def evaluateCommand(self, cmd):
rev = self.getProperty('got_revision')
builder = self.getProperty('buildername')
istry = self.getProperty('isTryBuilder')
branch = self.getProperty('branch')
if branch is None:
branch = 'master'
# Switch to the right branch inside the BUILDER repo
switch_to_branch (builder, branch)
parser = DejaResults()
cur_results = parser.read_sum_text(self.getLog('stdio').getText())
if not istry or istry == 'no':
baseline = parser.read_baseline (builder, branch)
else:
baseline = parser.read_sum_file(builder, rev)
result = SUCCESS
if baseline is not None:
report = parser.compute_regressions (builder, branch,
cur_results, baseline)
if report is not '':
self.addCompleteLog ('regressions', report)
result = FAILURE
if not istry or istry == 'no':
parser.write_sum_file (cur_results, builder, branch)
# If there was no previous baseline, then this run
# gets the honor.
if baseline is None:
baseline = cur_results
parser.write_baseline (baseline, builder, branch)
return result