mirror of
https://xff.cz/git/u-boot/
synced 2025-10-22 10:31:56 +02:00
Merge tag 'dm-pull-30oct20' of https://gitlab.denx.de/u-boot/custodians/u-boot-dm
of-platdata and dtoc improvements sandbox SPL tests binman support for compressed sections
This commit is contained in:
@@ -227,7 +227,7 @@ def pytest_configure(config):
|
||||
console = u_boot_console_exec_attach.ConsoleExecAttach(log, ubconfig)
|
||||
|
||||
re_ut_test_list = re.compile(r'_u_boot_list_2_(.*)_test_2_\1_test_(.*)\s*$')
|
||||
def generate_ut_subtest(metafunc, fixture_name):
|
||||
def generate_ut_subtest(metafunc, fixture_name, sym_path):
|
||||
"""Provide parametrization for a ut_subtest fixture.
|
||||
|
||||
Determines the set of unit tests built into a U-Boot binary by parsing the
|
||||
@@ -237,12 +237,13 @@ def generate_ut_subtest(metafunc, fixture_name):
|
||||
Args:
|
||||
metafunc: The pytest test function.
|
||||
fixture_name: The fixture name to test.
|
||||
sym_path: Relative path to the symbol file with preceding '/'
|
||||
(e.g. '/u-boot.sym')
|
||||
|
||||
Returns:
|
||||
Nothing.
|
||||
"""
|
||||
|
||||
fn = console.config.build_dir + '/u-boot.sym'
|
||||
fn = console.config.build_dir + sym_path
|
||||
try:
|
||||
with open(fn, 'rt') as f:
|
||||
lines = f.readlines()
|
||||
@@ -317,10 +318,12 @@ def pytest_generate_tests(metafunc):
|
||||
Returns:
|
||||
Nothing.
|
||||
"""
|
||||
|
||||
for fn in metafunc.fixturenames:
|
||||
if fn == 'ut_subtest':
|
||||
generate_ut_subtest(metafunc, fn)
|
||||
generate_ut_subtest(metafunc, fn, '/u-boot.sym')
|
||||
continue
|
||||
if fn == 'ut_spl_subtest':
|
||||
generate_ut_subtest(metafunc, fn, '/spl/u-boot-spl.sym')
|
||||
continue
|
||||
generate_config(metafunc, fn)
|
||||
|
||||
|
||||
@@ -4,53 +4,6 @@
|
||||
import pytest
|
||||
import u_boot_utils as util
|
||||
|
||||
OF_PLATDATA_OUTPUT = '''
|
||||
of-platdata probe:
|
||||
bool 1
|
||||
byte 05
|
||||
bytearray 06 00 00
|
||||
int 1
|
||||
intarray 2 3 4 0
|
||||
longbytearray 09 0a 0b 0c 0d 0e 0f 10 11
|
||||
string message
|
||||
stringarray "multi-word" "message" ""
|
||||
of-platdata probe:
|
||||
bool 0
|
||||
byte 08
|
||||
bytearray 01 23 34
|
||||
int 3
|
||||
intarray 5 0 0 0
|
||||
longbytearray 09 00 00 00 00 00 00 00 00
|
||||
string message2
|
||||
stringarray "another" "multi-word" "message"
|
||||
of-platdata probe:
|
||||
bool 0
|
||||
byte 00
|
||||
bytearray 00 00 00
|
||||
int 0
|
||||
intarray 0 0 0 0
|
||||
longbytearray 00 00 00 00 00 00 00 00 00
|
||||
string <NULL>
|
||||
stringarray "one" "" ""
|
||||
of-platdata probe:
|
||||
bool 0
|
||||
byte 00
|
||||
bytearray 00 00 00
|
||||
int 0
|
||||
intarray 0 0 0 0
|
||||
longbytearray 00 00 00 00 00 00 00 00 00
|
||||
string <NULL>
|
||||
stringarray "spl" "" ""
|
||||
'''
|
||||
|
||||
@pytest.mark.buildconfigspec('spl_of_platdata')
|
||||
def test_ofplatdata(u_boot_console):
|
||||
"""Test that of-platdata can be generated and used in sandbox"""
|
||||
cons = u_boot_console
|
||||
cons.restart_uboot_with_flags(['--show_of_platdata'])
|
||||
output = cons.get_spawn_output().replace('\r', '')
|
||||
assert OF_PLATDATA_OUTPUT in output
|
||||
|
||||
@pytest.mark.buildconfigspec('spl_of_platdata')
|
||||
def test_spl_devicetree(u_boot_console):
|
||||
"""Test content of spl device-tree"""
|
||||
|
||||
34
test/py/tests/test_spl.py
Normal file
34
test/py/tests/test_spl.py
Normal file
@@ -0,0 +1,34 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright 2020 Google LLC
|
||||
# Written by Simon Glass <sjg@chromium.org>
|
||||
|
||||
import os.path
|
||||
import pytest
|
||||
|
||||
def test_spl(u_boot_console, ut_spl_subtest):
|
||||
"""Execute a "ut" subtest.
|
||||
|
||||
The subtests are collected in function generate_ut_subtest() from linker
|
||||
generated lists by applying a regular expression to the lines of file
|
||||
spl/u-boot-spl.sym. The list entries are created using the C macro
|
||||
UNIT_TEST().
|
||||
|
||||
Strict naming conventions have to be followed to match the regular
|
||||
expression. Use UNIT_TEST(foo_test_bar, _flags, foo_test) for a test bar in
|
||||
test suite foo that can be executed via command 'ut foo bar' and is
|
||||
implemented in C function foo_test_bar().
|
||||
|
||||
Args:
|
||||
u_boot_console (ConsoleBase): U-Boot console
|
||||
ut_subtest (str): SPL test to be executed (e.g. 'dm platdata_phandle')
|
||||
"""
|
||||
try:
|
||||
cons = u_boot_console
|
||||
cons.restart_uboot_with_flags(['-u', '-k', ut_spl_subtest.split()[1]])
|
||||
output = cons.get_spawn_output().replace('\r', '')
|
||||
assert 'Failures: 0' in output
|
||||
finally:
|
||||
# Restart afterward in case a non-SPL test is run next. This should not
|
||||
# happen since SPL tests are run in their own invocation of test.py, but
|
||||
# the cost of doing this is not too great at present.
|
||||
u_boot_console.restart_uboot()
|
||||
Reference in New Issue
Block a user