From 3884c98c32cd5fb5b5b42185d5d0575659434bbf Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Sun, 8 Nov 2015 23:47:44 -0700 Subject: dm: usb: Avoid time delays in sandbox tests Currently the USB tests take around two seconds to run. Remove these unnecessary time delays so that the tests run quickly. Signed-off-by: Simon Glass --- common/usb_hub.c | 10 +++++++++- test/dm/test-main.c | 2 ++ test/dm/usb.c | 3 +++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/common/usb_hub.c b/common/usb_hub.c index a92c9fb73d..e1de813adf 100644 --- a/common/usb_hub.c +++ b/common/usb_hub.c @@ -31,6 +31,9 @@ #include #include #include +#ifdef CONFIG_SANDBOX +#include +#endif #include #include @@ -466,7 +469,12 @@ static int usb_hub_configure(struct usb_device *dev) unsigned short portstatus, portchange; int ret; ulong start = get_timer(0); + uint delay = CONFIG_SYS_HZ; +#ifdef CONFIG_SANDBOX + if (state_get_skip_delays()) + delay = 0; +#endif #ifdef CONFIG_DM_USB debug("\n\nScanning '%s' port %d\n", dev->dev->name, i + 1); #else @@ -498,7 +506,7 @@ static int usb_hub_configure(struct usb_device *dev) if (portstatus & USB_PORT_STAT_CONNECTION) break; - } while (get_timer(start) < CONFIG_SYS_HZ * 1); + } while (get_timer(start) < delay); if (ret < 0) continue; diff --git a/test/dm/test-main.c b/test/dm/test-main.c index 0e43ab9548..a36a9c04ab 100644 --- a/test/dm/test-main.c +++ b/test/dm/test-main.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -113,6 +114,7 @@ static int dm_test_main(const char *test_name) ut_assertok(dm_scan_fdt(gd->fdt_blob, false)); test->func(uts); + state_set_skip_delays(false); ut_assertok(dm_test_destroy(uts)); } diff --git a/test/dm/usb.c b/test/dm/usb.c index 9939d837a9..4300bbd5c9 100644 --- a/test/dm/usb.c +++ b/test/dm/usb.c @@ -8,6 +8,8 @@ #include #include #include +#include +#include #include #include @@ -35,6 +37,7 @@ static int dm_test_usb_flash(struct unit_test_state *uts) block_dev_desc_t *dev_desc; char cmp[1024]; + state_set_skip_delays(true); ut_assertok(usb_init()); ut_assertok(uclass_get_device(UCLASS_MASS_STORAGE, 0, &dev)); ut_assertok(get_device("usb", "0", &dev_desc)); -- cgit v1.2.1