mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-31 20:18:18 +00:00 
			
		
		
		
	Add test for the SPI load method. This one is pretty straightforward. We can't enable FIT_EXTERNAL with LOAD_FIT_FULL because spl_spi_load_image doesn't know the total image size and has to guess from fdt_totalsize. This doesn't include external data, so loading it will fail. Signed-off-by: Sean Anderson <seanga2@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # SPDX-License-Identifier: GPL-2.0
 | |
| # Copyright 2020 Google LLC
 | |
| # Written by Simon Glass <sjg@chromium.org>
 | |
| 
 | |
| import os.path
 | |
| import pytest
 | |
| 
 | |
| @pytest.mark.buildconfigspec('spl_unit_test')
 | |
| def test_ut_spl_init(u_boot_console):
 | |
|     """Initialize data for ut spl tests."""
 | |
| 
 | |
|     fn = u_boot_console.config.source_dir + '/spi.bin'
 | |
|     if not os.path.exists(fn):
 | |
|         data = b'\x00' * (2 * 1024 * 1024)
 | |
|         with open(fn, 'wb') as fh:
 | |
|             fh.write(data)
 | |
| 
 | |
| 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()
 |