This patch introduces a user-space framework for developing unit tests in order to test the USB functionality of a connected device. These tests communicate with the USB device via libusb interface. They are meant to run with the g_zero and dummy_hcd module since several proprietary control messages were added to those modules. But a smaller subset of the tests can be run on any USB device and on real UDCs. Implemented tests: 1. Test device descriptors - this test is applicable both for HS and SS devices 2. Test the SET_FEATURE requests 3. Test bulk in 4. Test bulk out 5. Test connect/disconnect 6. Streams capability testing 7. UAS test suite This patch also includes patches that should be applied to libusb. Some of them were already sent upstream for approval but not yet accepted. Other will be sent in the near future. For more info please read the files under Documentation. (I've splited the patch into 3 since it was too big) Tatyana Brokhman (3): usb unittests framework: test files usb unittests framework: Documentation usb unitests framework: libusb patches .../usb/unittests/Documentation/autoconfig_readme | 20 + .../usb/unittests/Documentation/create-gadget-img | 47 + tools/usb/unittests/Documentation/unittests-info | 526 +++++ tools/usb/unittests/Documentation/unittests-setup | 127 ++ .../0001-Add-support-to-USB3-descriptors.patch | 420 ++++ ...2-Add-support-for-libusb_get_device_speed.patch | 172 ++ .../libusb_patches/0003-Add-UAS-defines.patch | 56 + tools/usb/unittests/make/Makefile | 132 ++ tools/usb/unittests/make/autoconfig.sh | 118 ++ tools/usb/unittests/usb/UASP_CMD_tests.cc | 2140 ++++++++++++++++++++ tools/usb/unittests/usb/UASP_TM_tests.cc | 1207 +++++++++++ tools/usb/unittests/usb/UASP_tests.h | 434 ++++ tools/usb/unittests/usb/composite_tests.cc | 1646 +++++++++++++++ tools/usb/unittests/usb/composite_tests.h | 65 + tools/usb/unittests/usb/g_serial_tests.cc | 198 ++ tools/usb/unittests/usb/g_serial_tests.h | 68 + tools/usb/unittests/usb/hs_expected_desc.h | 164 ++ tools/usb/unittests/usb/libusb_utils.cc | 358 ++++ tools/usb/unittests/usb/libusb_utils.h | 149 ++ tools/usb/unittests/usb/ss_expected_desc.h | 291 +++ tools/usb/unittests/usb/streams_tests.cc | 243 +++ tools/usb/unittests/usb/streams_tests.h | 51 + tools/usb/unittests/usb/usb_devel_mode.cc | 185 ++ tools/usb/unittests/usb/usb_devel_mode.h | 50 + tools/usb/unittests/usb/usb_tests.cc | 651 ++++++ tools/usb/unittests/usb/usb_tests.h | 146 ++ tools/usb/unittests/usb/usb_tests_main.cc | 83 + tools/usb/unittests/usb/ut_config.h | 89 + 28 files changed, 9836 insertions(+), 0 deletions(-) create mode 100644 tools/usb/unittests/Documentation/autoconfig_readme create mode 100644 tools/usb/unittests/Documentation/create-gadget-img create mode 100644 tools/usb/unittests/Documentation/unittests-info create mode 100644 tools/usb/unittests/Documentation/unittests-setup create mode 100644 tools/usb/unittests/libusb_patches/0001-Add-support-to-USB3-descriptors.patch create mode 100644 tools/usb/unittests/libusb_patches/0002-Add-support-for-libusb_get_device_speed.patch create mode 100644 tools/usb/unittests/libusb_patches/0003-Add-UAS-defines.patch create mode 100644 tools/usb/unittests/make/Makefile create mode 100644 tools/usb/unittests/make/autoconfig.sh create mode 100644 tools/usb/unittests/usb/UASP_CMD_tests.cc create mode 100644 tools/usb/unittests/usb/UASP_TM_tests.cc create mode 100644 tools/usb/unittests/usb/UASP_tests.h create mode 100644 tools/usb/unittests/usb/composite_tests.cc create mode 100644 tools/usb/unittests/usb/composite_tests.h create mode 100644 tools/usb/unittests/usb/g_serial_tests.cc create mode 100644 tools/usb/unittests/usb/g_serial_tests.h create mode 100644 tools/usb/unittests/usb/hs_expected_desc.h create mode 100644 tools/usb/unittests/usb/libusb_utils.cc create mode 100644 tools/usb/unittests/usb/libusb_utils.h create mode 100644 tools/usb/unittests/usb/ss_expected_desc.h create mode 100644 tools/usb/unittests/usb/streams_tests.cc create mode 100644 tools/usb/unittests/usb/streams_tests.h create mode 100644 tools/usb/unittests/usb/usb_devel_mode.cc create mode 100644 tools/usb/unittests/usb/usb_devel_mode.h create mode 100644 tools/usb/unittests/usb/usb_tests.cc create mode 100644 tools/usb/unittests/usb/usb_tests.h create mode 100644 tools/usb/unittests/usb/usb_tests_main.cc create mode 100644 tools/usb/unittests/usb/ut_config.h -- Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html