summaryrefslogtreecommitdiff
path: root/test/py/tests/test_dfu.py
diff options
context:
space:
mode:
authorStephen Warren <swarren@nvidia.com>2016-01-26 10:59:43 -0700
committerSimon Glass <sjg@chromium.org>2016-01-28 21:01:23 -0700
commitbe1df82656b15663dee9216a320dc177c7d9c6c4 (patch)
tree4d351e25e99d0b976aba9262ded665a102a9303f /test/py/tests/test_dfu.py
parentdd8204de157e10c080aa2cdc0f24bcb2e4ac73dd (diff)
downloadu-boot-be1df82656b15663dee9216a320dc177c7d9c6c4.tar.gz
test/py: dfu: error out if USB device already exists
The DFU test requests U-Boot configure its USB controller in device mode, then waits for the host machine to enumerate the USB device and create a device node for it. However, this wait can be fooled if the USB device node already exists before the test starts, e.g. if some previous software stack already configured the USB controller into device mode and never de-configured it. This "previous software stack" could even be another test/py test, if U-Boot's own USB teardown does not operate correctly. If this happens, dfu-util may be run before U-Boot is ready to serve DFU commands, which may cause false test failures. Enhance the dfu test to fail if the device node exists before it is expected to. Signed-off-by: Stephen Warren <swarren@nvidia.com> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'test/py/tests/test_dfu.py')
-rw-r--r--test/py/tests/test_dfu.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/test/py/tests/test_dfu.py b/test/py/tests/test_dfu.py
index cc4b8d8e04..6c1a363b02 100644
--- a/test/py/tests/test_dfu.py
+++ b/test/py/tests/test_dfu.py
@@ -100,6 +100,12 @@ def test_dfu(u_boot_console, env__usb_dev_port, env__dfu_config):
Nothing.
'''
+ fh = u_boot_utils.attempt_to_open_file(
+ env__usb_dev_port['host_usb_dev_node'])
+ if fh:
+ fh.close()
+ raise Exception('USB device present before dfu command invoked')
+
u_boot_console.log.action(
'Starting long-running U-Boot dfu shell command')