sb: Move the option check for reporting errors to the error reporter.

Updates #2536.
This commit is contained in:
Chris Johns 2017-10-12 13:40:12 +11:00
parent c4b6bf0d6d
commit 6dc551cf47
2 changed files with 34 additions and 33 deletions

View File

@ -111,11 +111,8 @@ class build:
return name return name
def _generate_report_(self, header, footer = None): def _generate_report_(self, header, footer = None):
label, result = self.opts.with_arg('error-report') ereport.generate('rsb-report-%s.txt' % self.macros['name'],
if (label.startswith('without_') and result != 'yes') or \ self.opts, header, footer)
(label.startswith('with_') and result != 'no'):
ereport.generate('rsb-report-%s.txt' % self.macros['name'],
self.opts, header, footer)
def __init__(self, name, create_tar_files, opts, macros = None): def __init__(self, name, create_tar_files, opts, macros = None):
try: try:

View File

@ -1,6 +1,6 @@
# #
# RTEMS Tools Project (http://www.rtems.org/) # RTEMS Tools Project (http://www.rtems.org/)
# Copyright 2010-2014 Chris Johns (chrisj@rtems.org) # Copyright 2010-2017 Chris Johns (chrisj@rtems.org)
# All rights reserved. # All rights reserved.
# #
# This file is part of the RTEMS Tools package in 'rtems-testing'. # This file is part of the RTEMS Tools package in 'rtems-testing'.
@ -21,36 +21,40 @@
# Create an error log. # Create an error log.
# #
from __future__ import print_function
import os import os
import error import error
import log import log
def generate(name, opts, header = None, footer = None): def generate(name, opts, header = None, footer = None):
r = ['RTEMS Tools Project - Source Builder Error Report'] + [] label, result = opts.with_arg('error-report')
if header: if (label.startswith('without_') and result != 'yes') or \
r += [' %s' % (header)] (label.startswith('with_') and result != 'no'):
r += [opts.info()] r = ['RTEMS Tools Project - Source Builder Error Report'] + []
if opts.defaults.get_value('%{_sbgit_valid}') == '1': if header:
r += [' %s/%s' % (opts.defaults.get_value('%{_sbgit_remotes}'), r += [' %s' % (header)]
opts.defaults.get_value('%{_sbgit_id}'))] r += [opts.info()]
else: if opts.defaults.get_value('%{_sbgit_valid}') == '1':
r += [' RSB: not a valid repo'] r += [' %s/%s' % (opts.defaults.get_value('%{_sbgit_remotes}'),
if os.name == 'nt': opts.defaults.get_value('%{_sbgit_id}'))]
r += [' Windows'] else:
else: r += [' RSB: not a valid repo']
r += [' %s' % (' '.join(os.uname()))] if os.name == 'nt':
r += [] r += [' Windows']
r += ['Tail of the build log:'] else:
r += log.tail() r += [' %s' % (' '.join(os.uname()))]
if footer: r += []
r += [footer] r += ['Tail of the build log:']
try: r += log.tail()
name = name.replace('/', '-') if footer:
l = open(name, 'w') r += [footer]
l.write(os.linesep.join(r)) try:
l.close() name = name.replace('/', '-')
log.notice(' See error report: %s' % (name)) with open(name, 'w') as l:
except: l.write(os.linesep.join(r))
log.stderr('error: failure to create error report') log.notice(' See error report: %s' % (name))
raise except:
log.stderr('error: failure to create error report')
raise