dm: test: Add a way to run SPL tests
Add a -u flag for U-Boot SPL which requests that unit tests be run. To make this work, export dm_test_main() and update it to skip test features that are not used with of-platdata. To run the tests: $ spl/u-boot-spl -u U-Boot SPL 2020.10-rc5 (Oct 01 2020 - 07:35:39 -0600) Running 0 driver model tests Failures: 0 At present there are no SPL unit tests. Note that there is one wrinkle with these tests. SPL has limited memory available for allocation. Also malloc_simple does not free memory (free() is a nop) and running tests repeatedly causes driver-model to reinit multiple times and allocate memory. Therefore it is not possible to run more than a few tests at a time. One solution is to increase the amount of malloc space in sandbox_spl. This is not a problem for pytest, since it runs each test individually, so for now this is left as is. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
#include <spl.h>
|
||||
#include <asm/spl.h>
|
||||
#include <asm/state.h>
|
||||
#include <test/test.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
@@ -67,6 +68,13 @@ void spl_board_init(void)
|
||||
uclass_next_device(&dev))
|
||||
;
|
||||
}
|
||||
|
||||
if (state->run_unittests) {
|
||||
int ret;
|
||||
|
||||
ret = dm_test_main(NULL);
|
||||
/* continue execution into U-Boot */
|
||||
}
|
||||
}
|
||||
|
||||
void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image)
|
||||
|
||||
Reference in New Issue
Block a user