test: Use a local variable for test state

At present we use a global test state for all driver-model tests. Make use
of a local struct like we do with the other tests.

To make this work, add functions to get and set this state. When a test
starts, the state is set (so it can be used in the test). When a test
finishes, the state is unset, so it cannot be used by mistake.

Signed-off-by: Simon Glass <sjg@chromium.org>
diff --git a/include/test/ut.h b/include/test/ut.h
index d06bc50..bed0e6e 100644
--- a/include/test/ut.h
+++ b/include/test/ut.h
@@ -368,6 +368,20 @@
 void ut_set_skip_delays(struct unit_test_state *uts, bool skip_delays);
 
 /**
+ * test_get_state() - Get the active test state
+ *
+ * @return the currently active test state, or NULL if none
+ */
+struct unit_test_state *test_get_state(void);
+
+/**
+ * test_set_state() - Set the active test state
+ *
+ * @uts: Test state to use as currently active test state, or NULL if none
+ */
+void test_set_state(struct unit_test_state *uts);
+
+/**
  * ut_run_test_live_flat() - Run a test with both live and flat tree
  *
  * This calls ut_run_test() with livetree enabled, which is the standard setup