mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-31 10:26:10 +01:00 
			
		
		
		
	vpl: Support running vpl tests
Add support for these to the pytest system. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
		| @@ -322,8 +322,11 @@ def pytest_generate_tests(metafunc): | |||||||
|         if fn == 'ut_subtest': |         if fn == 'ut_subtest': | ||||||
|             generate_ut_subtest(metafunc, fn, '/u-boot.sym') |             generate_ut_subtest(metafunc, fn, '/u-boot.sym') | ||||||
|             continue |             continue | ||||||
|         if fn == 'ut_spl_subtest': |         m_subtest = re.match('ut_(.)pl_subtest', fn) | ||||||
|             generate_ut_subtest(metafunc, fn, '/spl/u-boot-spl.sym') |         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 |             continue | ||||||
|         generate_config(metafunc, fn) |         generate_config(metafunc, fn) | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										34
									
								
								test/py/tests/test_vpl.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								test/py/tests/test_vpl.py
									
									
									
									
									
										Normal file
									
								
							| @@ -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() | ||||||
| @@ -43,6 +43,11 @@ class ConsoleSandbox(ConsoleBase): | |||||||
|  |  | ||||||
|         bcfg = self.config.buildconfig |         bcfg = self.config.buildconfig | ||||||
|         config_spl = bcfg.get('config_spl', 'n') == 'y' |         config_spl = bcfg.get('config_spl', 'n') == 'y' | ||||||
|  |         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' |             fname = '/spl/u-boot-spl' if config_spl else '/u-boot' | ||||||
|         print(fname) |         print(fname) | ||||||
|         cmd = [] |         cmd = [] | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user