summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2021-03-07 17:34:55 -0700
committerTom Rini <trini@konsulko.com>2021-03-12 09:57:30 -0500
commit47ec3ede4efe214b4debdaf845d6eb622154f405 (patch)
tree04bebac4f5049500b744148a4dce8933c2a0053c
parent74524712873e72bad76de07be2401c10b694d25f (diff)
test: Move delay skipping to test_pre_run()
This allows delays to be skipped in sandbox tests. Move it to the common pre-init function. Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r--include/test/ut.h11
-rw-r--r--test/dm/test-dm.c2
-rw-r--r--test/test-main.c2
-rw-r--r--test/ut.c7
4 files changed, 20 insertions, 2 deletions
diff --git a/include/test/ut.h b/include/test/ut.h
index 7cb5e10f3af..e5ec18e60b0 100644
--- a/include/test/ut.h
+++ b/include/test/ut.h
@@ -357,6 +357,17 @@ void ut_silence_console(struct unit_test_state *uts);
void ut_unsilence_console(struct unit_test_state *uts);
/**
+ * ut_set_skip_delays() - Sets whether delays should be skipped
+ *
+ * Normally functions like mdelay() cause U-Boot to wait for a while. This
+ * allows all such delays to be skipped on sandbox, to speed up tests
+ *
+ * @uts: Test state (in case in future we want to keep state here)
+ * @skip_delays: true to skip delays, false to process them normally
+ */
+void ut_set_skip_delays(struct unit_test_state *uts, bool skip_delays);
+
+/**
* test_pre_run() - Handle any preparation needed to run a test
*
* @uts: Test state
diff --git a/test/dm/test-dm.c b/test/dm/test-dm.c
index fdd35f663e4..569ffbbad93 100644
--- a/test/dm/test-dm.c
+++ b/test/dm/test-dm.c
@@ -78,8 +78,6 @@ static int dm_do_test(struct unit_test_state *uts, struct unit_test *test,
ut_assertok(test_post_run(uts, test));
- state_set_skip_delays(false);
-
ut_assertok(dm_test_destroy(uts));
return 0;
diff --git a/test/test-main.c b/test/test-main.c
index e273777b6e2..6f0d32f7e27 100644
--- a/test/test-main.c
+++ b/test/test-main.c
@@ -30,6 +30,8 @@ static int do_autoprobe(struct unit_test_state *uts)
int test_pre_run(struct unit_test_state *uts, struct unit_test *test)
{
+ ut_set_skip_delays(uts, false);
+
uts->start = mallinfo();
if (test->flags & UT_TESTF_SCAN_PDATA)
diff --git a/test/ut.c b/test/ut.c
index 7328338731c..ea0af153e4a 100644
--- a/test/ut.c
+++ b/test/ut.c
@@ -133,3 +133,10 @@ void ut_unsilence_console(struct unit_test_state *uts)
{
gd->flags &= ~(GD_FLG_SILENT | GD_FLG_RECORD);
}
+
+void ut_set_skip_delays(struct unit_test_state *uts, bool skip_delays)
+{
+#ifdef CONFIG_SANDBOX
+ state_set_skip_delays(skip_delays);
+#endif
+}