mirror of
https://github.com/u-boot/u-boot.git
synced 2024-12-04 01:53:27 +08:00
buildman: Allow tests to have their own boards
Rather than reading boards.cfg, which may take time to generate and is not necessarily suitable for running tests, create our own list of boards. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
8b985eebd0
commit
823e60b62a
@ -78,7 +78,7 @@ def ShowActions(series, why_selected, boards_selected, builder, options):
|
||||
print ('Total boards to build for each commit: %d\n' %
|
||||
why_selected['all'])
|
||||
|
||||
def DoBuildman(options, args, toolchains=None, make_func=None):
|
||||
def DoBuildman(options, args, toolchains=None, make_func=None, boards=None):
|
||||
"""The main control code for buildman
|
||||
|
||||
Args:
|
||||
@ -90,6 +90,8 @@ def DoBuildman(options, args, toolchains=None, make_func=None):
|
||||
to execute 'make'. If this is None, the normal function
|
||||
will be used, which calls the 'make' tool with suitable
|
||||
arguments. This setting is useful for tests.
|
||||
board: Boards() object to use, containing a list of available
|
||||
boards. If this is None it will be created and scanned.
|
||||
"""
|
||||
if options.full_help:
|
||||
pager = os.getenv('PAGER')
|
||||
@ -135,14 +137,15 @@ def DoBuildman(options, args, toolchains=None, make_func=None):
|
||||
sys.exit(col.Color(col.RED, str))
|
||||
|
||||
# Work out what subset of the boards we are building
|
||||
board_file = os.path.join(options.git, 'boards.cfg')
|
||||
status = subprocess.call([os.path.join(options.git,
|
||||
'tools/genboardscfg.py')])
|
||||
if status != 0:
|
||||
sys.exit("Failed to generate boards.cfg")
|
||||
if not boards:
|
||||
board_file = os.path.join(options.git, 'boards.cfg')
|
||||
status = subprocess.call([os.path.join(options.git,
|
||||
'tools/genboardscfg.py')])
|
||||
if status != 0:
|
||||
sys.exit("Failed to generate boards.cfg")
|
||||
|
||||
boards = board.Boards()
|
||||
boards.ReadBoards(os.path.join(options.git, 'boards.cfg'))
|
||||
boards = board.Boards()
|
||||
boards.ReadBoards(os.path.join(options.git, 'boards.cfg'))
|
||||
|
||||
exclude = []
|
||||
if options.exclude:
|
||||
|
@ -10,6 +10,7 @@ import sys
|
||||
import tempfile
|
||||
import unittest
|
||||
|
||||
import board
|
||||
import bsettings
|
||||
import cmdline
|
||||
import command
|
||||
@ -34,6 +35,14 @@ chromeos_daisy=VBOOT=${chroot}/build/daisy/usr ${vboot}
|
||||
chromeos_peach=VBOOT=${chroot}/build/peach_pit/usr ${vboot}
|
||||
'''
|
||||
|
||||
boards = [
|
||||
['Active', 'arm', 'armv7', '', 'Tester', 'ARM Board 1', 'board0', ''],
|
||||
['Active', 'arm', 'armv7', '', 'Tester', 'ARM Board 2', 'board1', ''],
|
||||
['Active', 'powerpc', 'powerpc', '', 'Tester', 'PowerPC board 1', 'board2', ''],
|
||||
['Active', 'powerpc', 'mpc5xx', '', 'Tester', 'PowerPC board 2', 'board3', ''],
|
||||
['Active', 'sandbox', 'sandbox', '', 'Tester', 'Sandbox board', 'board4', ''],
|
||||
]
|
||||
|
||||
class TestFunctional(unittest.TestCase):
|
||||
"""Functional test for buildman.
|
||||
|
||||
@ -55,6 +64,9 @@ class TestFunctional(unittest.TestCase):
|
||||
self._toolchains.Add('gcc', test=False)
|
||||
bsettings.Setup(None)
|
||||
bsettings.AddFile(settings_data)
|
||||
self._boards = board.Boards()
|
||||
for brd in boards:
|
||||
self._boards.AddBoard(board.Board(*brd))
|
||||
|
||||
def tearDown(self):
|
||||
shutil.rmtree(self._base_dir)
|
||||
@ -67,7 +79,7 @@ class TestFunctional(unittest.TestCase):
|
||||
sys.argv = [sys.argv[0]] + list(args)
|
||||
options, args = cmdline.ParseArgs()
|
||||
return control.DoBuildman(options, args, toolchains=self._toolchains,
|
||||
make_func=self._HandleMake)
|
||||
make_func=self._HandleMake, boards=self._boards)
|
||||
|
||||
def testFullHelp(self):
|
||||
command.test_result = None
|
||||
@ -194,6 +206,12 @@ class TestFunctional(unittest.TestCase):
|
||||
print 'make', stage
|
||||
sys.exit(1)
|
||||
|
||||
def testNoBoards(self):
|
||||
"""Test that buildman aborts when there are no boards"""
|
||||
self._boards = board.Boards()
|
||||
with self.assertRaises(SystemExit):
|
||||
self._RunControl()
|
||||
|
||||
def testCurrentSource(self):
|
||||
"""Very simple test to invoke buildman on the current source"""
|
||||
self._RunControl()
|
||||
|
Loading…
Reference in New Issue
Block a user