mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-19 03:15:00 +00:00
test: Support testing with two board-builds
The Beagleplay board uses an SoC from the TI K3 family. This has both a Cortex-R core and a Cortex-A core and the R core needs to come up before the A core. In both cases we have U-Boot SPL then U-Boot proper being used. In practice this means we need two entirely separate builds to produce an image. Handle this in test.py by adding more parameters. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
6d0ff32650
commit
8f2a9fa7d6
1 changed files with 31 additions and 5 deletions
|
@ -66,12 +66,16 @@ def pytest_addoption(parser):
|
|||
|
||||
parser.addoption('--build-dir', default=None,
|
||||
help='U-Boot build directory (O=)')
|
||||
parser.addoption('--build-dir-extra', default=None,
|
||||
help='U-Boot build directory for extra build (O=)')
|
||||
parser.addoption('--result-dir', default=None,
|
||||
help='U-Boot test result/tmp directory')
|
||||
parser.addoption('--persistent-data-dir', default=None,
|
||||
help='U-Boot test persistent generated data directory')
|
||||
parser.addoption('--board-type', '--bd', '-B', default='sandbox',
|
||||
help='U-Boot board type')
|
||||
parser.addoption('--board-type-extra', '--bde', default='sandbox',
|
||||
help='U-Boot extra board type')
|
||||
parser.addoption('--board-identity', '--id', default='na',
|
||||
help='U-Boot board identity/instance')
|
||||
parser.addoption('--build', default=False, action='store_true',
|
||||
|
@ -129,14 +133,17 @@ def get_details(config):
|
|||
Returns:
|
||||
tuple:
|
||||
str: Board type (U-Boot build name)
|
||||
str: Extra board type (where two U-Boot builds are needed)
|
||||
str: Identity for the lab board
|
||||
str: Build directory
|
||||
str: Extra build directory (where two U-Boot builds are needed)
|
||||
str: Source directory
|
||||
"""
|
||||
role = config.getoption('role')
|
||||
|
||||
# Get a few provided parameters
|
||||
build_dir = config.getoption('build_dir')
|
||||
build_dir_extra = config.getoption('build_dir_extra')
|
||||
if role:
|
||||
# When using a role, build_dir and build_dir_extra are normally not set,
|
||||
# since they are picked up from Labgrid-sjg via the u-boot-test-getrole
|
||||
|
@ -146,6 +153,8 @@ def get_details(config):
|
|||
env = os.environ.copy()
|
||||
if build_dir:
|
||||
env['U_BOOT_BUILD_DIR'] = build_dir
|
||||
if build_dir_extra:
|
||||
env['U_BOOT_BUILD_DIR_EXTRA'] = build_dir_extra
|
||||
proc = subprocess.run(cmd, capture_output=True, encoding='utf-8',
|
||||
env=env)
|
||||
if proc.returncode:
|
||||
|
@ -159,24 +168,36 @@ def get_details(config):
|
|||
vals[k] = value
|
||||
# For debugging
|
||||
# print('conftest: lab info:', vals)
|
||||
board_type, default_build_dir, source_dir = (vals['board'],
|
||||
vals['build_dir'], vals['source_dir'])
|
||||
|
||||
# Read the build directories here, in case none were provided in the
|
||||
# command-line arguments
|
||||
(board_type, board_type_extra, default_build_dir,
|
||||
default_build_dir_extra, source_dir) = (vals['board'],
|
||||
vals['board_extra'], vals['build_dir'], vals['build_dir_extra'],
|
||||
vals['source_dir'])
|
||||
else:
|
||||
board_type = config.getoption('board_type')
|
||||
board_type_extra = config.getoption('board_type_extra')
|
||||
board_identity = config.getoption('board_identity')
|
||||
|
||||
source_dir = os.path.dirname(os.path.dirname(TEST_PY_DIR))
|
||||
default_build_dir = source_dir + '/build-' + board_type
|
||||
default_build_dir_extra = source_dir + '/build-' + board_type_extra
|
||||
|
||||
# Use the provided command-line arguments if present, else fall back to
|
||||
if not build_dir:
|
||||
build_dir = default_build_dir
|
||||
if not build_dir_extra:
|
||||
build_dir_extra = default_build_dir_extra
|
||||
|
||||
return board_type, board_identity, build_dir, source_dir
|
||||
return (board_type, board_type_extra, board_identity, build_dir,
|
||||
build_dir_extra, source_dir)
|
||||
|
||||
def pytest_xdist_setupnodes(config, specs):
|
||||
"""Clear out any 'done' file from a previous build"""
|
||||
global build_done_file
|
||||
|
||||
build_dir = get_details(config)[2]
|
||||
build_dir = get_details(config)[3]
|
||||
|
||||
build_done_file = Path(build_dir) / 'build.done'
|
||||
if build_done_file.exists():
|
||||
|
@ -216,7 +237,8 @@ def pytest_configure(config):
|
|||
global console
|
||||
global ubconfig
|
||||
|
||||
board_type, board_identity, build_dir, source_dir = get_details(config)
|
||||
(board_type, board_type_extra, board_identity, build_dir, build_dir_extra,
|
||||
source_dir) = get_details(config)
|
||||
|
||||
board_type_filename = board_type.replace('-', '_')
|
||||
board_identity_filename = board_identity.replace('-', '_')
|
||||
|
@ -281,9 +303,11 @@ def pytest_configure(config):
|
|||
ubconfig.test_py_dir = TEST_PY_DIR
|
||||
ubconfig.source_dir = source_dir
|
||||
ubconfig.build_dir = build_dir
|
||||
ubconfig.build_dir_extra = build_dir_extra
|
||||
ubconfig.result_dir = result_dir
|
||||
ubconfig.persistent_data_dir = persistent_data_dir
|
||||
ubconfig.board_type = board_type
|
||||
ubconfig.board_type_extra = board_type_extra
|
||||
ubconfig.board_identity = board_identity
|
||||
ubconfig.gdbserver = gdbserver
|
||||
ubconfig.use_running_system = config.getoption('use_running_system')
|
||||
|
@ -292,10 +316,12 @@ def pytest_configure(config):
|
|||
|
||||
env_vars = (
|
||||
'board_type',
|
||||
'board_type_extra',
|
||||
'board_identity',
|
||||
'source_dir',
|
||||
'test_py_dir',
|
||||
'build_dir',
|
||||
'build_dir_extra',
|
||||
'result_dir',
|
||||
'persistent_data_dir',
|
||||
)
|
||||
|
|
Loading…
Add table
Reference in a new issue