[yocto] [[yocto-autobuilder][PATCHv2] 12/15] buildsteps/RunOeSelftest.py: Add support for create/save error reports
Aníbal Limón
anibal.limon at linux.intel.com
Tue Jun 21 16:07:49 PDT 2016
Now when oe-selftest fails the error report for send to the Error report
web are created and saved in the controller.
Since oe-selftest is intended to do a build system testing the values
for MACHINE, TARGET_SYS and DISTRO are provided so use universal value
instead.
Signed-off-by: Aníbal Limón <anibal.limon at linux.intel.com>
---
.../autobuilder/buildsteps/RunOeSelftest.py | 46 ++++++++++++++++++++++
1 file changed, 46 insertions(+)
diff --git a/lib/python2.7/site-packages/autobuilder/buildsteps/RunOeSelftest.py b/lib/python2.7/site-packages/autobuilder/buildsteps/RunOeSelftest.py
index a1df5cb..5b9e408 100644
--- a/lib/python2.7/site-packages/autobuilder/buildsteps/RunOeSelftest.py
+++ b/lib/python2.7/site-packages/autobuilder/buildsteps/RunOeSelftest.py
@@ -8,9 +8,12 @@ __maintainer__ = "Stefan Stanacar"
__email__ = "stefanx.stanacar at intel.com"
'''
+import platform
from buildbot.steps.shell import ShellCommand
+from lib.ABTools import save_error_report, get_lsb_distro
+
class RunOeSelftest(ShellCommand):
haltOnFailure = False
flunkOnFailure = True
@@ -35,3 +38,46 @@ class RunOeSelftest(ShellCommand):
else:
self.command += "if [ -d ../meta-selftest ]; then export DISPLAY=:1; oe-selftest " + self.tests + "; else echo 'Skipping step - no meta-selftest layer here'; fi"
ShellCommand.start(self)
+
+ def _createOESelftestErrorReport(self, log):
+ """
+ Create a oe-selftest error report since oe-selftest
+ is intended to test the build system no information
+ about machine, distro and target_sys are provided so
+ use universal value.
+ """
+
+ report = {}
+
+ report['machine'] = 'universal'
+ report['build_sys'] = "%s-%s" % (platform.machine(),
+ platform.system().lower())
+ report['nativelsb'] = get_lsb_distro() or 'universal'
+ report['distro'] = 'universal'
+ report['target_sys'] = 'universal'
+
+ report['component'] = 'oe-selftest'
+ report['branch_commit'] = self.getProperty('branch') + ': ' + \
+ self.getProperty('got_revision')
+
+ report['error_type'] = 'oe-selftest'
+
+ failure = {}
+ failure['package'] = 'oe-selftest'
+ failure['task'] = self.command[self.command.find('oe-selftest'):]
+ failure['log'] = log
+
+ report['failures'] = [failure]
+
+ return report
+
+ def commandComplete(self, cmd):
+ if cmd.didFail():
+ buildername = self.getProperty('buildername')
+ buildnumber = self.getProperty('buildnumber')
+
+ log = cmd.logs['stdio'].getText()
+
+ report = self._createOESelftestErrorReport(log)
+ save_error_report(buildername, buildnumber, report, 'oe_selftest')
+
--
2.1.4
More information about the yocto
mailing list