Explorar el Código

test: Allow tests to run on any board

Due to a recent change, tests are limited to running on sandbox only.
Correct this so that any architecture can run them.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reported-by: Sean Anderson <seanga2@gmail.com>
Fixes: c79705ea938 ("test: Move dm_test_init() into test-main.c")
Tested-by: Sean Anderson <seanga2@gmail.com>
Simon Glass hace 3 años
padre
commit
d4a1592a99
Se han modificado 2 ficheros con 11 adiciones y 3 borrados
  1. 9 0
      include/test/test.h
  2. 2 3
      test/test-main.c

+ 9 - 0
include/test/test.h

@@ -124,4 +124,13 @@ enum {
  */
 struct udevice *testbus_get_clear_removed(void);
 
+static inline void arch_reset_for_test(void)
+{
+#ifdef CONFIG_SANDBOX
+#include <asm/state.h>
+
+	state_reset_for_test(state_get_current());
+#endif
+}
+
 #endif /* __TEST_TEST_H */

+ 2 - 3
test/test-main.c

@@ -7,7 +7,6 @@
 #include <common.h>
 #include <console.h>
 #include <dm.h>
-#include <asm/state.h>
 #include <dm/root.h>
 #include <dm/test.h>
 #include <dm/uclass-internal.h>
@@ -46,9 +45,9 @@ static int dm_test_pre_run(struct unit_test_state *uts)
 	uts->force_fail_alloc = false;
 	uts->skip_post_probe = false;
 	gd->dm_root = NULL;
-	if (!CONFIG_IS_ENABLED(OF_PLATDATA))
+	if (IS_ENABLED(CONFIG_UT_DM) && !CONFIG_IS_ENABLED(OF_PLATDATA))
 		memset(dm_testdrv_op_count, '\0', sizeof(dm_testdrv_op_count));
-	state_reset_for_test(state_get_current());
+	arch_reset_for_test();
 
 	/* Determine whether to make the live tree available */
 	gd_set_of_root(of_live ? uts->of_root : NULL);