mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-22 23:21:31 +00:00
buildman: Expand output test to cover directory prefixes
Now that buildman supports removing the build directory prefix from output, add a test for it. Also ensure that output directories are removed when the test completes. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
dfb7e93235
commit
930c8d4ad8
1 changed files with 46 additions and 8 deletions
|
@ -46,6 +46,20 @@ powerpc-linux-ld: u-boot: section .reloc lma 0xffffa400 overlaps previous sectio
|
||||||
powerpc-linux-ld: u-boot: section .data lma 0xffffcd38 overlaps previous sections
|
powerpc-linux-ld: u-boot: section .data lma 0xffffcd38 overlaps previous sections
|
||||||
powerpc-linux-ld: u-boot: section .u_boot_cmd lma 0xffffeb40 overlaps previous sections
|
powerpc-linux-ld: u-boot: section .u_boot_cmd lma 0xffffeb40 overlaps previous sections
|
||||||
powerpc-linux-ld: u-boot: section .bootpg lma 0xfffff198 overlaps previous sections
|
powerpc-linux-ld: u-boot: section .bootpg lma 0xfffff198 overlaps previous sections
|
||||||
|
''',
|
||||||
|
'''In file included from %(basedir)sarch/sandbox/cpu/cpu.c:9:0:
|
||||||
|
%(basedir)sarch/sandbox/include/asm/state.h:44:0: warning: "xxxx" redefined [enabled by default]
|
||||||
|
%(basedir)sarch/sandbox/include/asm/state.h:43:0: note: this is the location of the previous definition
|
||||||
|
%(basedir)sarch/sandbox/cpu/cpu.c: In function 'do_reset':
|
||||||
|
%(basedir)sarch/sandbox/cpu/cpu.c:27:1: error: unknown type name 'blah'
|
||||||
|
%(basedir)sarch/sandbox/cpu/cpu.c:28:12: error: expected declaration specifiers or '...' before numeric constant
|
||||||
|
make[2]: *** [arch/sandbox/cpu/cpu.o] Error 1
|
||||||
|
make[1]: *** [arch/sandbox/cpu] Error 2
|
||||||
|
make[1]: *** Waiting for unfinished jobs....
|
||||||
|
In file included from %(basedir)scommon/board_f.c:55:0:
|
||||||
|
%(basedir)sarch/sandbox/include/asm/state.h:44:0: warning: "xxxx" redefined [enabled by default]
|
||||||
|
%(basedir)sarch/sandbox/include/asm/state.h:43:0: note: this is the location of the previous definition
|
||||||
|
make: *** [sub-make] Error 2
|
||||||
'''
|
'''
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -57,7 +71,8 @@ commits = [
|
||||||
['9012', 'Third commit, error', 1, errors[0:2]],
|
['9012', 'Third commit, error', 1, errors[0:2]],
|
||||||
['3456', 'Fourth commit, warning', 0, [errors[0], errors[2]]],
|
['3456', 'Fourth commit, warning', 0, [errors[0], errors[2]]],
|
||||||
['7890', 'Fifth commit, link errors', 1, [errors[0], errors[3]]],
|
['7890', 'Fifth commit, link errors', 1, [errors[0], errors[3]]],
|
||||||
['abcd', 'Sixth commit, fixes all errors', 0, []]
|
['abcd', 'Sixth commit, fixes all errors', 0, []],
|
||||||
|
['ef01', 'Seventh commit, check directory suppression', 1, [errors[4]]],
|
||||||
]
|
]
|
||||||
|
|
||||||
boards = [
|
boards = [
|
||||||
|
@ -109,15 +124,19 @@ class TestBuild(unittest.TestCase):
|
||||||
self._col = terminal.Color()
|
self._col = terminal.Color()
|
||||||
|
|
||||||
def Make(self, commit, brd, stage, *args, **kwargs):
|
def Make(self, commit, brd, stage, *args, **kwargs):
|
||||||
|
global base_dir
|
||||||
|
|
||||||
result = command.CommandResult()
|
result = command.CommandResult()
|
||||||
boardnum = int(brd.target[-1])
|
boardnum = int(brd.target[-1])
|
||||||
result.return_code = 0
|
result.return_code = 0
|
||||||
result.stderr = ''
|
result.stderr = ''
|
||||||
result.stdout = ('This is the test output for board %s, commit %s' %
|
result.stdout = ('This is the test output for board %s, commit %s' %
|
||||||
(brd.target, commit.hash))
|
(brd.target, commit.hash))
|
||||||
if boardnum >= 1 and boardnum >= commit.sequence:
|
if ((boardnum >= 1 and boardnum >= commit.sequence) or
|
||||||
|
boardnum == 4 and commit.sequence == 6):
|
||||||
result.return_code = commit.return_code
|
result.return_code = commit.return_code
|
||||||
result.stderr = ''.join(commit.error_list)
|
result.stderr = (''.join(commit.error_list)
|
||||||
|
% {'basedir' : base_dir + '/.bm-work/00/'})
|
||||||
if stage == 'build':
|
if stage == 'build':
|
||||||
target_dir = None
|
target_dir = None
|
||||||
for arg in args:
|
for arg in args:
|
||||||
|
@ -146,10 +165,12 @@ class TestBuild(unittest.TestCase):
|
||||||
|
|
||||||
This does a line-by-line verification of the summary output.
|
This does a line-by-line verification of the summary output.
|
||||||
"""
|
"""
|
||||||
output_dir = tempfile.mkdtemp()
|
global base_dir
|
||||||
if not os.path.isdir(output_dir):
|
|
||||||
os.mkdir(output_dir)
|
base_dir = tempfile.mkdtemp()
|
||||||
build = builder.Builder(self.toolchains, output_dir, None, 1, 2,
|
if not os.path.isdir(base_dir):
|
||||||
|
os.mkdir(base_dir)
|
||||||
|
build = builder.Builder(self.toolchains, base_dir, None, 1, 2,
|
||||||
checkout=False, show_unknown=False)
|
checkout=False, show_unknown=False)
|
||||||
build.do_make = self.Make
|
build.do_make = self.Make
|
||||||
board_selected = self.boards.GetSelectedDict()
|
board_selected = self.boards.GetSelectedDict()
|
||||||
|
@ -167,6 +188,7 @@ class TestBuild(unittest.TestCase):
|
||||||
self.assertEqual(count, len(commits) * len(boards) + 1)
|
self.assertEqual(count, len(commits) * len(boards) + 1)
|
||||||
build.SetDisplayOptions(show_errors=True);
|
build.SetDisplayOptions(show_errors=True);
|
||||||
build.ShowSummary(self.commits, board_selected)
|
build.ShowSummary(self.commits, board_selected)
|
||||||
|
#terminal.EchoPrintTestLines()
|
||||||
lines = terminal.GetPrintTestLines()
|
lines = terminal.GetPrintTestLines()
|
||||||
self.assertEqual(lines[0].text, '01: %s' % commits[0][1])
|
self.assertEqual(lines[0].text, '01: %s' % commits[0][1])
|
||||||
self.assertEqual(lines[1].text, '02: %s' % commits[1][1])
|
self.assertEqual(lines[1].text, '02: %s' % commits[1][1])
|
||||||
|
@ -230,7 +252,22 @@ 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-'))
|
||||||
|
|
||||||
self.assertEqual(len(lines), 25)
|
self.assertEqual(lines[25].text, '07: %s' % commits[6][1])
|
||||||
|
self.assertSummary(lines[26].text, 'sandbox', '+', ['board4'])
|
||||||
|
|
||||||
|
# Pick out the correct error lines
|
||||||
|
expect_str = errors[4].rstrip().replace('%(basedir)s', '').split('\n')
|
||||||
|
expect = expect_str[3:8] + [expect_str[-1]]
|
||||||
|
self.assertEqual(lines[27].text, '+%s' %
|
||||||
|
'\n'.join(expect).replace('\n', '\n+'))
|
||||||
|
|
||||||
|
# Now the warnings lines
|
||||||
|
expect = [expect_str[0]] + expect_str[10:12] + [expect_str[9]]
|
||||||
|
self.assertEqual(lines[28].text, 'w+%s' %
|
||||||
|
'\n'.join(expect).replace('\n', '\nw+'))
|
||||||
|
|
||||||
|
self.assertEqual(len(lines), 29)
|
||||||
|
shutil.rmtree(base_dir)
|
||||||
|
|
||||||
def _testGit(self):
|
def _testGit(self):
|
||||||
"""Test basic builder operation by building a branch"""
|
"""Test basic builder operation by building a branch"""
|
||||||
|
@ -255,6 +292,7 @@ class TestBuild(unittest.TestCase):
|
||||||
options.keep_outputs = False
|
options.keep_outputs = False
|
||||||
args = ['tegra20']
|
args = ['tegra20']
|
||||||
control.DoBuildman(options, args)
|
control.DoBuildman(options, args)
|
||||||
|
shutil.rmtree(base_dir)
|
||||||
|
|
||||||
def testBoardSingle(self):
|
def testBoardSingle(self):
|
||||||
"""Test single board selection"""
|
"""Test single board selection"""
|
||||||
|
|
Loading…
Add table
Reference in a new issue