[U-Boot] [PATCH 10/10] test: dm: usb: Update test cases for USB

Bin Meng bmeng.cn at gmail.com
Sun Oct 1 13:19:45 UTC 2017


Now that we have changed to remove all devices under the root hub in
usb_stop(), and corrected the USB emulator select logic, it makes no
sense to do various tests based on 'usb tree' output since the order
of devices is no longer fixed. Remove these USB test cases related
to 'usb tree'.

For the USB remove test, ideally we should remove an emulator device
node from the device tree, but this is so far not working. Change to
test the 'usb stop' only.

Signed-off-by: Bin Meng <bmeng.cn at gmail.com>
---

 test/dm/usb.c | 163 ++--------------------------------------------------------
 1 file changed, 5 insertions(+), 158 deletions(-)

diff --git a/test/dm/usb.c b/test/dm/usb.c
index b46ae60..4fd249b 100644
--- a/test/dm/usb.c
+++ b/test/dm/usb.c
@@ -99,10 +99,10 @@ static int count_usb_devices(void)
 	return count;
 }
 
-/* test that we can remove an emulated device and it is then not found */
-static int dm_test_usb_remove(struct unit_test_state *uts)
+/* test that no USB devices are found after we stop the stack */
+static int dm_test_usb_stop(struct unit_test_state *uts)
 {
-	struct udevice *dev, *emul;
+	struct udevice *dev;
 
 	/* Scan and check that all devices are present */
 	state_set_skip_delays(true);
@@ -112,164 +112,11 @@ static int dm_test_usb_remove(struct unit_test_state *uts)
 	ut_assertok(uclass_get_device(UCLASS_MASS_STORAGE, 2, &dev));
 	ut_asserteq(6, count_usb_devices());
 	ut_assertok(usb_stop());
-	ut_asserteq(6, count_usb_devices());
-
-	/* Remove the second emulation device */
-	ut_assertok(uclass_find_device_by_name(UCLASS_USB_EMUL, "flash-stick at 1",
-					       &dev));
-	ut_assertok(device_unbind(dev));
-
-	/* Rescan - only the first and third should be present */
-	ut_assertok(usb_init());
-	ut_assertok(uclass_get_device(UCLASS_MASS_STORAGE, 0, &dev));
-	ut_assertok(usb_emul_find_for_dev(dev, &emul));
-	ut_asserteq_str("flash-stick at 0", emul->name);
-	ut_assertok(uclass_get_device(UCLASS_MASS_STORAGE, 1, &dev));
-	ut_assertok(usb_emul_find_for_dev(dev, &emul));
-	ut_asserteq_str("flash-stick at 2", emul->name);
-
-	ut_asserteq(-ENODEV, uclass_get_device(UCLASS_MASS_STORAGE, 2, &dev));
-
-	ut_asserteq(5, count_usb_devices());
-	ut_assertok(usb_stop());
-	ut_asserteq(5, count_usb_devices());
-
-	return 0;
-}
-DM_TEST(dm_test_usb_remove, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);
-
-const char usb_tree_base[] =
-"  1  Hub (12 Mb/s, 100mA)\n"
-"  |  sandbox hub 2345\n"
-"  |\n"
-"  |\b+-2  Mass Storage (12 Mb/s, 100mA)\n"
-"  |    sandbox flash flash-stick at 0\n"
-"  |  \n"
-"  |\b+-3  Mass Storage (12 Mb/s, 100mA)\n"
-"  |    sandbox flash flash-stick at 1\n"
-"  |  \n"
-"  |\b+-4  Mass Storage (12 Mb/s, 100mA)\n"
-"  |    sandbox flash flash-stick at 2\n"
-"  |  \n"
-"  |\b+-5  Human Interface (12 Mb/s, 100mA)\n"
-"       sandbox keyboard keyb at 3\n"
-"     \n";
-
-/* test that the 'usb tree' command output looks correct */
-static int dm_test_usb_tree(struct unit_test_state *uts)
-{
-	char *data;
-	int len;
-
-	state_set_skip_delays(true);
-	ut_assertok(usb_init());
-	console_record_reset_enable();
-	usb_show_tree();
-	len = membuff_getraw(&gd->console_out, -1, true, &data);
-	if (len)
-		data[len] = '\0';
-	ut_asserteq_str(usb_tree_base, data);
-	ut_assertok(usb_stop());
-
-	return 0;
-}
-DM_TEST(dm_test_usb_tree, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);
-
-const char usb_tree_remove[] =
-"  1  Hub (12 Mb/s, 100mA)\n"
-"  |  sandbox hub 2345\n"
-"  |\n"
-"  |\b+-2  Mass Storage (12 Mb/s, 100mA)\n"
-"  |    sandbox flash flash-stick at 0\n"
-"  |  \n"
-"  |\b+-3  Mass Storage (12 Mb/s, 100mA)\n"
-"  |    sandbox flash flash-stick at 2\n"
-"  |  \n"
-"  |\b+-4  Human Interface (12 Mb/s, 100mA)\n"
-"       sandbox keyboard keyb at 3\n"
-"     \n";
-
-/*
- * test that the 'usb tree' command output looks correct when we remove a
- * device
- */
-static int dm_test_usb_tree_remove(struct unit_test_state *uts)
-{
-	struct udevice *dev;
-	char *data;
-	int len;
-
-	/* Remove the second emulation device */
-	ut_assertok(uclass_find_device_by_name(UCLASS_USB_EMUL, "flash-stick at 1",
-					       &dev));
-	ut_assertok(device_unbind(dev));
-
-	state_set_skip_delays(true);
-	ut_assertok(usb_init());
-	console_record_reset_enable();
-	usb_show_tree();
-	len = membuff_getraw(&gd->console_out, -1, true, &data);
-	if (len)
-		data[len] = '\0';
-	ut_asserteq_str(usb_tree_remove, data);
-	ut_assertok(usb_stop());
-
-	return 0;
-}
-DM_TEST(dm_test_usb_tree_remove, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);
-
-const char usb_tree_reorder[] =
-"  1  Hub (12 Mb/s, 100mA)\n"
-"  |  sandbox hub 2345\n"
-"  |\n"
-"  |\b+-2  Mass Storage (12 Mb/s, 100mA)\n"
-"  |    sandbox flash flash-stick at 0\n"
-"  |  \n"
-"  |\b+-3  Mass Storage (12 Mb/s, 100mA)\n"
-"  |    sandbox flash flash-stick at 2\n"
-"  |  \n"
-"  |\b+-4  Human Interface (12 Mb/s, 100mA)\n"
-"  |    sandbox keyboard keyb at 3\n"
-"  |  \n"
-"  |\b+-5  Mass Storage (12 Mb/s, 100mA)\n"
-"       sandbox flash flash-stick at 1\n"
-"     \n";
-
-/*
- * test that the 'usb tree' command output looks correct when we reorder two
- * devices.
- */
-static int dm_test_usb_tree_reorder(struct unit_test_state *uts)
-{
-	struct udevice *dev, *parent;
-	char *data;
-	int len;
-
-	/* Remove the second emulation device */
-	ut_assertok(uclass_find_device_by_name(UCLASS_USB_EMUL, "flash-stick at 1",
-					       &dev));
-	parent = dev->parent;
-
-	/* Reorder the devices in the parent list and uclass list */
-	list_del(&dev->sibling_node);
-	list_add_tail(&dev->sibling_node, &parent->child_head);
-
-	list_del(&dev->uclass_node);
-	list_add_tail(&dev->uclass_node, &dev->uclass->dev_head);
-
-	state_set_skip_delays(true);
-	ut_assertok(usb_init());
-	console_record_reset_enable();
-	usb_show_tree();
-	len = membuff_getraw(&gd->console_out, -1, true, &data);
-	if (len)
-		data[len] = '\0';
-	ut_asserteq_str(usb_tree_reorder, data);
-	ut_assertok(usb_stop());
+	ut_asserteq(0, count_usb_devices());
 
 	return 0;
 }
-DM_TEST(dm_test_usb_tree_reorder, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);
+DM_TEST(dm_test_usb_stop, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);
 
 static int dm_test_usb_keyb(struct unit_test_state *uts)
 {
-- 
2.7.4



More information about the U-Boot mailing list