mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-31 19:41:46 +00:00
buildman: Show boards with warning with w+
At present we should boards with warnings in the same way as those with errors. This is not ideal. Add a new 'warn' state and show these listed in yellow to match the actual warning lines printing with -e. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
4cf2b221c6
commit
6af7101b75
2 changed files with 53 additions and 18 deletions
|
@ -1197,6 +1197,7 @@ class Builder:
|
||||||
|
|
||||||
|
|
||||||
ok_boards = [] # List of boards fixed since last commit
|
ok_boards = [] # List of boards fixed since last commit
|
||||||
|
warn_boards = [] # List of boards with warnings since last commit
|
||||||
err_boards = [] # List of new broken boards since last commit
|
err_boards = [] # List of new broken boards since last commit
|
||||||
new_boards = [] # List of boards that didn't exist last time
|
new_boards = [] # List of boards that didn't exist last time
|
||||||
unknown_boards = [] # List of boards that were not built
|
unknown_boards = [] # List of boards that were not built
|
||||||
|
@ -1212,9 +1213,15 @@ class Builder:
|
||||||
if outcome.rc == OUTCOME_UNKNOWN:
|
if outcome.rc == OUTCOME_UNKNOWN:
|
||||||
unknown_boards.append(target)
|
unknown_boards.append(target)
|
||||||
elif outcome.rc < base_outcome:
|
elif outcome.rc < base_outcome:
|
||||||
ok_boards.append(target)
|
if outcome.rc == OUTCOME_WARNING:
|
||||||
|
warn_boards.append(target)
|
||||||
|
else:
|
||||||
|
ok_boards.append(target)
|
||||||
elif outcome.rc > base_outcome:
|
elif outcome.rc > base_outcome:
|
||||||
err_boards.append(target)
|
if outcome.rc == OUTCOME_WARNING:
|
||||||
|
warn_boards.append(target)
|
||||||
|
else:
|
||||||
|
err_boards.append(target)
|
||||||
else:
|
else:
|
||||||
new_boards.append(target)
|
new_boards.append(target)
|
||||||
|
|
||||||
|
@ -1225,11 +1232,13 @@ class Builder:
|
||||||
self._base_warn_line_boards, warn_lines, warn_line_boards, 'w')
|
self._base_warn_line_boards, warn_lines, warn_line_boards, 'w')
|
||||||
|
|
||||||
# Display results by arch
|
# Display results by arch
|
||||||
if any((ok_boards, err_boards, unknown_boards, new_boards, worse_err,
|
if any((ok_boards, warn_boards, err_boards, unknown_boards, new_boards,
|
||||||
better_err, worse_warn, better_warn)):
|
worse_err, better_err, worse_warn, better_warn)):
|
||||||
arch_list = {}
|
arch_list = {}
|
||||||
self.AddOutcome(board_selected, arch_list, ok_boards, '',
|
self.AddOutcome(board_selected, arch_list, ok_boards, '',
|
||||||
self.col.GREEN)
|
self.col.GREEN)
|
||||||
|
self.AddOutcome(board_selected, arch_list, warn_boards, 'w+',
|
||||||
|
self.col.YELLOW)
|
||||||
self.AddOutcome(board_selected, arch_list, err_boards, '+',
|
self.AddOutcome(board_selected, arch_list, err_boards, '+',
|
||||||
self.col.RED)
|
self.col.RED)
|
||||||
self.AddOutcome(board_selected, arch_list, new_boards, '*', self.col.BLUE)
|
self.AddOutcome(board_selected, arch_list, new_boards, '*', self.col.BLUE)
|
||||||
|
|
|
@ -97,6 +97,8 @@ boards = [
|
||||||
|
|
||||||
BASE_DIR = 'base'
|
BASE_DIR = 'base'
|
||||||
|
|
||||||
|
OUTCOME_OK, OUTCOME_WARN, OUTCOME_ERR = range(3)
|
||||||
|
|
||||||
class Options:
|
class Options:
|
||||||
"""Class that holds build options"""
|
"""Class that holds build options"""
|
||||||
pass
|
pass
|
||||||
|
@ -166,9 +168,10 @@ class TestBuild(unittest.TestCase):
|
||||||
result.combined = result.stdout + result.stderr
|
result.combined = result.stdout + result.stderr
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def assertSummary(self, text, arch, plus, boards, ok=False):
|
def assertSummary(self, text, arch, plus, boards, outcome=OUTCOME_ERR):
|
||||||
col = self._col
|
col = self._col
|
||||||
expected_colour = col.GREEN if ok else col.RED
|
expected_colour = (col.GREEN if outcome == OUTCOME_OK else
|
||||||
|
col.YELLOW if outcome == OUTCOME_WARN else col.RED)
|
||||||
expect = '%10s: ' % arch
|
expect = '%10s: ' % arch
|
||||||
# TODO(sjg@chromium.org): If plus is '', we shouldn't need this
|
# TODO(sjg@chromium.org): If plus is '', we shouldn't need this
|
||||||
expect += ' ' + col.Color(expected_colour, plus)
|
expect += ' ' + col.Color(expected_colour, plus)
|
||||||
|
@ -192,6 +195,8 @@ class TestBuild(unittest.TestCase):
|
||||||
build.do_make = self.Make
|
build.do_make = self.Make
|
||||||
board_selected = self.boards.GetSelectedDict()
|
board_selected = self.boards.GetSelectedDict()
|
||||||
|
|
||||||
|
# Build the boards for the pre-defined commits and warnings/errors
|
||||||
|
# associated with each. This calls our Make() to inject the fake output.
|
||||||
build.BuildBoards(self.commits, board_selected, keep_outputs=False,
|
build.BuildBoards(self.commits, board_selected, keep_outputs=False,
|
||||||
verbose=False)
|
verbose=False)
|
||||||
lines = terminal.GetPrintTestLines()
|
lines = terminal.GetPrintTestLines()
|
||||||
|
@ -207,33 +212,49 @@ class TestBuild(unittest.TestCase):
|
||||||
build.ShowSummary(self.commits, board_selected)
|
build.ShowSummary(self.commits, board_selected)
|
||||||
#terminal.EchoPrintTestLines()
|
#terminal.EchoPrintTestLines()
|
||||||
lines = terminal.GetPrintTestLines()
|
lines = terminal.GetPrintTestLines()
|
||||||
|
|
||||||
|
# Upstream commit: no errors
|
||||||
self.assertEqual(lines[0].text, '01: %s' % commits[0][1])
|
self.assertEqual(lines[0].text, '01: %s' % commits[0][1])
|
||||||
|
|
||||||
|
# Second commit: all archs should fail with warnings
|
||||||
self.assertEqual(lines[1].text, '02: %s' % commits[1][1])
|
self.assertEqual(lines[1].text, '02: %s' % commits[1][1])
|
||||||
|
|
||||||
# We expect all archs to fail
|
|
||||||
col = terminal.Color()
|
col = terminal.Color()
|
||||||
self.assertSummary(lines[2].text, 'sandbox', '+', ['board4'])
|
self.assertSummary(lines[2].text, 'sandbox', 'w+', ['board4'],
|
||||||
self.assertSummary(lines[3].text, 'arm', '+', ['board1'])
|
outcome=OUTCOME_WARN)
|
||||||
self.assertSummary(lines[4].text, 'powerpc', '+', ['board2', 'board3'])
|
self.assertSummary(lines[3].text, 'arm', 'w+', ['board1'],
|
||||||
|
outcome=OUTCOME_WARN)
|
||||||
|
self.assertSummary(lines[4].text, 'powerpc', 'w+', ['board2', 'board3'],
|
||||||
|
outcome=OUTCOME_WARN)
|
||||||
|
|
||||||
# Now we should have the compiler warning
|
# Second commit: The warnings should be listed
|
||||||
self.assertEqual(lines[5].text, 'w+%s' %
|
self.assertEqual(lines[5].text, 'w+%s' %
|
||||||
errors[0].rstrip().replace('\n', '\nw+'))
|
errors[0].rstrip().replace('\n', '\nw+'))
|
||||||
self.assertEqual(lines[5].colour, col.MAGENTA)
|
self.assertEqual(lines[5].colour, col.MAGENTA)
|
||||||
|
|
||||||
|
# Third commit: Still fails
|
||||||
self.assertEqual(lines[6].text, '03: %s' % commits[2][1])
|
self.assertEqual(lines[6].text, '03: %s' % commits[2][1])
|
||||||
self.assertSummary(lines[7].text, 'sandbox', '+', ['board4'])
|
self.assertSummary(lines[7].text, 'sandbox', '+', ['board4'])
|
||||||
self.assertSummary(lines[8].text, 'arm', '', ['board1'], ok=True)
|
self.assertSummary(lines[8].text, 'arm', '', ['board1'],
|
||||||
|
outcome=OUTCOME_OK)
|
||||||
self.assertSummary(lines[9].text, 'powerpc', '+', ['board2', 'board3'])
|
self.assertSummary(lines[9].text, 'powerpc', '+', ['board2', 'board3'])
|
||||||
|
|
||||||
# Compiler error
|
# Expect a compiler error
|
||||||
self.assertEqual(lines[10].text, '+%s' %
|
self.assertEqual(lines[10].text, '+%s' %
|
||||||
errors[1].rstrip().replace('\n', '\n+'))
|
errors[1].rstrip().replace('\n', '\n+'))
|
||||||
|
|
||||||
|
# Fourth commit: Compile errors are fixed, just have warning for board3
|
||||||
self.assertEqual(lines[11].text, '04: %s' % commits[3][1])
|
self.assertEqual(lines[11].text, '04: %s' % commits[3][1])
|
||||||
self.assertSummary(lines[12].text, 'sandbox', '', ['board4'], ok=True)
|
self.assertSummary(lines[12].text, 'sandbox', 'w+', ['board4'],
|
||||||
self.assertSummary(lines[13].text, 'powerpc', '', ['board2', 'board3'],
|
outcome=OUTCOME_WARN)
|
||||||
ok=True)
|
expect = '%10s: ' % 'powerpc'
|
||||||
|
expect += ' ' + col.Color(col.GREEN, '')
|
||||||
|
expect += ' '
|
||||||
|
expect += col.Color(col.GREEN, ' %s' % 'board2')
|
||||||
|
expect += ' ' + col.Color(col.YELLOW, 'w+')
|
||||||
|
expect += ' '
|
||||||
|
expect += col.Color(col.YELLOW, ' %s' % 'board3')
|
||||||
|
self.assertEqual(lines[13].text, expect)
|
||||||
|
|
||||||
# Compile error fixed
|
# Compile error fixed
|
||||||
self.assertEqual(lines[14].text, '-%s' %
|
self.assertEqual(lines[14].text, '-%s' %
|
||||||
|
@ -244,9 +265,11 @@ class TestBuild(unittest.TestCase):
|
||||||
errors[2].rstrip().replace('\n', '\nw+'))
|
errors[2].rstrip().replace('\n', '\nw+'))
|
||||||
self.assertEqual(lines[15].colour, col.MAGENTA)
|
self.assertEqual(lines[15].colour, col.MAGENTA)
|
||||||
|
|
||||||
|
# Fifth commit
|
||||||
self.assertEqual(lines[16].text, '05: %s' % commits[4][1])
|
self.assertEqual(lines[16].text, '05: %s' % commits[4][1])
|
||||||
self.assertSummary(lines[17].text, 'sandbox', '+', ['board4'])
|
self.assertSummary(lines[17].text, 'sandbox', '+', ['board4'])
|
||||||
self.assertSummary(lines[18].text, 'powerpc', '', ['board3'], ok=True)
|
self.assertSummary(lines[18].text, 'powerpc', '', ['board3'],
|
||||||
|
outcome=OUTCOME_OK)
|
||||||
|
|
||||||
# The second line of errors[3] is a duplicate, so buildman will drop it
|
# The second line of errors[3] is a duplicate, so buildman will drop it
|
||||||
expect = errors[3].rstrip().split('\n')
|
expect = errors[3].rstrip().split('\n')
|
||||||
|
@ -257,8 +280,10 @@ class TestBuild(unittest.TestCase):
|
||||||
self.assertEqual(lines[20].text, 'w-%s' %
|
self.assertEqual(lines[20].text, 'w-%s' %
|
||||||
errors[2].rstrip().replace('\n', '\nw-'))
|
errors[2].rstrip().replace('\n', '\nw-'))
|
||||||
|
|
||||||
|
# Sixth commit
|
||||||
self.assertEqual(lines[21].text, '06: %s' % commits[5][1])
|
self.assertEqual(lines[21].text, '06: %s' % commits[5][1])
|
||||||
self.assertSummary(lines[22].text, 'sandbox', '', ['board4'], ok=True)
|
self.assertSummary(lines[22].text, 'sandbox', '', ['board4'],
|
||||||
|
outcome=OUTCOME_OK)
|
||||||
|
|
||||||
# The second line of errors[3] is a duplicate, so buildman will drop it
|
# The second line of errors[3] is a duplicate, so buildman will drop it
|
||||||
expect = errors[3].rstrip().split('\n')
|
expect = errors[3].rstrip().split('\n')
|
||||||
|
@ -269,6 +294,7 @@ class TestBuild(unittest.TestCase):
|
||||||
self.assertEqual(lines[24].text, 'w-%s' %
|
self.assertEqual(lines[24].text, 'w-%s' %
|
||||||
errors[0].rstrip().replace('\n', '\nw-'))
|
errors[0].rstrip().replace('\n', '\nw-'))
|
||||||
|
|
||||||
|
# Seventh commit
|
||||||
self.assertEqual(lines[25].text, '07: %s' % commits[6][1])
|
self.assertEqual(lines[25].text, '07: %s' % commits[6][1])
|
||||||
self.assertSummary(lines[26].text, 'sandbox', '+', ['board4'])
|
self.assertSummary(lines[26].text, 'sandbox', '+', ['board4'])
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue