aboutsummaryrefslogtreecommitdiff
path: root/test/py
diff options
context:
space:
mode:
Diffstat (limited to 'test/py')
-rw-r--r--test/py/conftest.py7
-rw-r--r--test/py/tests/test_help.py14
-rw-r--r--test/py/tests/test_vpl.py34
-rw-r--r--test/py/u_boot_console_sandbox.py7
4 files changed, 59 insertions, 3 deletions
diff --git a/test/py/conftest.py b/test/py/conftest.py
index 16e445cd8e..2ba34479e0 100644
--- a/test/py/conftest.py
+++ b/test/py/conftest.py
@@ -322,8 +322,11 @@ def pytest_generate_tests(metafunc):
if fn == 'ut_subtest':
generate_ut_subtest(metafunc, fn, '/u-boot.sym')
continue
- if fn == 'ut_spl_subtest':
- generate_ut_subtest(metafunc, fn, '/spl/u-boot-spl.sym')
+ m_subtest = re.match('ut_(.)pl_subtest', fn)
+ if m_subtest:
+ spl_name = m_subtest.group(1)
+ generate_ut_subtest(
+ metafunc, fn, f'/{spl_name}pl/u-boot-{spl_name}pl.sym')
continue
generate_config(metafunc, fn)
diff --git a/test/py/tests/test_help.py b/test/py/tests/test_help.py
index d50295e5bd..bac0a29f5a 100644
--- a/test/py/tests/test_help.py
+++ b/test/py/tests/test_help.py
@@ -2,7 +2,21 @@
# Copyright (c) 2015 Stephen Warren
# Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
+import pytest
+
def test_help(u_boot_console):
"""Test that the "help" command can be executed."""
u_boot_console.run_command('help')
+
+@pytest.mark.boardspec('sandbox_vpl')
+def test_vpl_help(u_boot_console):
+ try:
+ cons = u_boot_console
+ cons.restart_uboot()
+ cons.run_command('help')
+ output = cons.get_spawn_output().replace('\r', '')
+ assert 'print command description/usage' in output
+ finally:
+ # Restart afterward to get the normal device tree back
+ u_boot_console.restart_uboot()
diff --git a/test/py/tests/test_vpl.py b/test/py/tests/test_vpl.py
new file mode 100644
index 0000000000..4af578b917
--- /dev/null
+++ b/test/py/tests/test_vpl.py
@@ -0,0 +1,34 @@
+# SPDX-License-Identifier: GPL-2.0
+# Copyright 2022 Google LLC
+# Written by Simon Glass <sjg@chromium.org>
+
+import os.path
+import pytest
+
+def test_vpl(u_boot_console, ut_vpl_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
+ vpl/u-boot-vpl.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): VPL test to be executed (e.g. 'dm platdata_phandle')
+ """
+ try:
+ cons = u_boot_console
+ cons.restart_uboot_with_flags(['-u', '-k', ut_vpl_subtest.split()[1]])
+ output = cons.get_spawn_output().replace('\r', '')
+ assert 'Failures: 0' in output
+ finally:
+ # Restart afterward in case a non-VPL test is run next. This should not
+ # happen since VPL 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()
diff --git a/test/py/u_boot_console_sandbox.py b/test/py/u_boot_console_sandbox.py
index ce4ca7e55e..cef416d738 100644
--- a/test/py/u_boot_console_sandbox.py
+++ b/test/py/u_boot_console_sandbox.py
@@ -43,7 +43,12 @@ class ConsoleSandbox(ConsoleBase):
bcfg = self.config.buildconfig
config_spl = bcfg.get('config_spl', 'n') == 'y'
- fname = '/spl/u-boot-spl' if config_spl else '/u-boot'
+ config_vpl = bcfg.get('config_vpl', 'n') == 'y'
+ if config_vpl:
+ # Run TPL first, which runs VPL
+ fname = '/tpl/u-boot-tpl'
+ else:
+ fname = '/spl/u-boot-spl' if config_spl else '/u-boot'
print(fname)
cmd = []
if self.config.gdbserver: