When OF_LIVE is enabled, sandbox runs tests with that and with flattree. When debugging tests, this is often just a distraction.
Provide a -F option to skip the flattree tests in this case. Signed-off-by: Simon Glass <s...@chromium.org> --- (no changes since v1) arch/sandbox/cpu/start.c | 9 +++++++++ arch/sandbox/include/asm/state.h | 1 + include/test/test.h | 11 +++++++++++ test/test-main.c | 4 +++- 4 files changed, 24 insertions(+), 1 deletion(-) diff --git a/arch/sandbox/cpu/start.c b/arch/sandbox/cpu/start.c index 2940768cd1c..d3bb8ff429e 100644 --- a/arch/sandbox/cpu/start.c +++ b/arch/sandbox/cpu/start.c @@ -459,6 +459,15 @@ static int sandbox_cmdline_cb_native(struct sandbox_state *state, SANDBOX_CMDLINE_OPT_SHORT(native, 'N', 0, "Use native mode (host-based EFI boot filename)"); +static int sandbox_cmdline_cb_noflat(struct sandbox_state *state, + const char *arg) +{ + state->no_flattree_tests = true; + + return 0; +} +SANDBOX_CMDLINE_OPT_SHORT(noflat, 'F', 0, "Don't run second set of DM tests"); + void state_show(struct sandbox_state *state) { char **p; diff --git a/arch/sandbox/include/asm/state.h b/arch/sandbox/include/asm/state.h index dc21a623106..b0dfc87f1f9 100644 --- a/arch/sandbox/include/asm/state.h +++ b/arch/sandbox/include/asm/state.h @@ -102,6 +102,7 @@ struct sandbox_state { bool disable_sf_bootdevs; /* Don't bind SPI flash bootdevs */ bool upl; /* Enable Universal Payload (UPL) */ bool native; /* Adjust to reflect host arch */ + bool no_flattree_tests; /* Don't run second set of DM tests */ /* Pointer to information for each SPI bus/cs */ struct sandbox_spi_info spi[CONFIG_SANDBOX_SPI_MAX_BUS] diff --git a/include/test/test.h b/include/test/test.h index 0f2b68a5dee..cadf39a0c9d 100644 --- a/include/test/test.h +++ b/include/test/test.h @@ -288,4 +288,15 @@ static inline void test_sf_set_enable_bootdevs(bool enable) #endif } +static inline bool test_flattree_test_enabled(void) +{ +#ifdef CONFIG_SANDBOX + struct sandbox_state *state = state_get_current(); + + return !state->no_flattree_tests; +#else + return true; +#endif +} + #endif /* __TEST_TEST_H */ diff --git a/test/test-main.c b/test/test-main.c index cabc736a524..aa3eb5a3d8e 100644 --- a/test/test-main.c +++ b/test/test-main.c @@ -550,6 +550,7 @@ static int ut_run_test_live_flat(struct unit_test_state *uts, * - the FDT is still valid and has not been updated by an earlier test * (for sandbox we handle this by copying the tree, but not for other * boards) + * - the -F option is not enabled (on sandbox) */ if ((!CONFIG_IS_ENABLED(OF_LIVE) || (test->flags & UTF_SCAN_FDT)) && @@ -557,7 +558,8 @@ static int ut_run_test_live_flat(struct unit_test_state *uts, (CONFIG_IS_ENABLED(OFNODE_MULTI_TREE) || !(test->flags & UTF_OTHER_FDT)) && (!runs || ut_test_run_on_flattree(test)) && - !(gd->flags & GD_FLG_FDT_CHANGED)) { + !(gd->flags & GD_FLG_FDT_CHANGED) && + test_flattree_test_enabled()) { uts->of_live = false; ret = ut_run_test(uts, test, leaf ?: test->name); if (ret != -EAGAIN) { -- 2.43.0