On 06.08.24 14:58, Simon Glass wrote:
Set up a function for this, since it needs to be used from multiple test
files.

Signed-off-by: Simon Glass <[email protected]>
---

(no changes since v1)

  test/boot/bootdev.c        | 19 ++++++-------------
  test/boot/bootstd_common.c | 12 ++++++++++++
  test/boot/bootstd_common.h |  8 ++++++++
  3 files changed, 26 insertions(+), 13 deletions(-)

diff --git a/test/boot/bootdev.c b/test/boot/bootdev.c
index 1bf5929c396..de16a51956d 100644
--- a/test/boot/bootdev.c
+++ b/test/boot/bootdev.c
@@ -16,13 +16,6 @@
  #include <test/ut.h>
  #include "bootstd_common.h"

-/* Allow reseting the USB-started flag */
-#if defined(CONFIG_USB_HOST) || defined(CONFIG_USB_GADGET)
-extern bool usb_started;
-#else
-#include <usb.h>
-#endif
-
  /* Check 'bootdev list' command */
  static int bootdev_test_cmd_list(struct unit_test_state *uts)
  {
@@ -201,7 +194,7 @@ static int bootdev_test_order(struct unit_test_state *uts)
        test_set_skip_delays(true);

        /* Start up USB which gives us three additional bootdevs */
-       usb_started = false;
+       bootstd_reset_usb();
        ut_assertok(run_command("usb start", 0));

        /*
@@ -317,7 +310,7 @@ static int bootdev_test_prio(struct unit_test_state *uts)
        test_set_eth_enable(false);

        /* Start up USB which gives us three additional bootdevs */
-       usb_started = false;
+       bootstd_reset_usb();
        ut_assertok(run_command("usb start", 0));

        ut_assertok(bootstd_test_drop_bootdev_order(uts));
@@ -357,7 +350,7 @@ static int bootdev_test_hunter(struct unit_test_state *uts)
  {
        struct bootstd_priv *std;

-       usb_started = false;
+       bootstd_reset_usb();
        test_set_skip_delays(true);

        /* get access to the used hunters */
@@ -398,7 +391,7 @@ static int bootdev_test_cmd_hunt(struct unit_test_state 
*uts)
        struct bootstd_priv *std;

        test_set_skip_delays(true);
-       usb_started = false;
+       bootstd_reset_usb();

        /* get access to the used hunters */
        ut_assertok(bootstd_get_priv(&std));
@@ -527,7 +520,7 @@ BOOTSTD_TEST(bootdev_test_bootable, UT_TESTF_DM | 
UT_TESTF_SCAN_FDT);
  /* Check hunting for bootdev of a particular priority */
  static int bootdev_test_hunt_prio(struct unit_test_state *uts)
  {
-       usb_started = false;
+       bootstd_reset_usb();
        test_set_skip_delays(true);

        console_record_reset_enable();
@@ -556,7 +549,7 @@ static int bootdev_test_hunt_label(struct unit_test_state 
*uts)
        struct bootstd_priv *std;
        int mflags;

-       usb_started = false;
+       bootstd_reset_usb();

        /* get access to the used hunters */
        ut_assertok(bootstd_get_priv(&std));
diff --git a/test/boot/bootstd_common.c b/test/boot/bootstd_common.c
index e50539500a0..ff0aff4bbe7 100644
--- a/test/boot/bootstd_common.c
+++ b/test/boot/bootstd_common.c
@@ -20,6 +20,13 @@
  /* tracks whether bootstd_setup_for_tests() has been run yet */
  bool vbe_setup_done;

+/* Allow resetting the USB-started flag */
+#if defined(CONFIG_USB_HOST) || defined(CONFIG_USB_GADGET)
+extern bool usb_started;
+#else
+#include <usb.h>
+#endif

Why can't you always include usb.h which defines usb_started?
Is there a bug in usb.h?

Best regards

Heinrich

+
  /* set up MMC for VBE tests */
  int bootstd_setup_for_tests(void)
  {
@@ -88,6 +95,11 @@ int bootstd_test_check_mmc_hunter(struct unit_test_state 
*uts)
        return 0;
  }

+void bootstd_reset_usb(void)
+{
+       usb_started = false;
+}
+
  int do_ut_bootstd(struct cmd_tbl *cmdtp, int flag, int argc, char *const 
argv[])
  {
        struct unit_test *tests = UNIT_TEST_SUITE_START(bootstd_test);
diff --git a/test/boot/bootstd_common.h b/test/boot/bootstd_common.h
index 4a126e43ff4..e29036c897c 100644
--- a/test/boot/bootstd_common.h
+++ b/test/boot/bootstd_common.h
@@ -53,4 +53,12 @@ int bootstd_setup_for_tests(void);
   */
  int bootstd_test_check_mmc_hunter(struct unit_test_state *uts);

+/**
+ * bootstd_reset_usb() - Reset the USB subsystem
+ *
+ * Resets USB so that it can be started (and scanning) again. This is useful in
+ * tests which need to use USB.
+ */
+void bootstd_reset_usb(void);
+
  #endif

Reply via email to