tests: Add control_transfer test
authorPawel Szewczyk <p.szewczyk@samsung.com>
Thu, 1 Oct 2015 15:02:08 +0000 (17:02 +0200)
committerStanislaw Wadas <s.wadas@samsung.com>
Wed, 2 Dec 2015 12:50:46 +0000 (13:50 +0100)
Change-Id: I37ab9dd661028575c4f1e8a3708d4c8112dbc2a6
Signed-off-by: Pawel Szewczyk <p.szewczyk@samsung.com>
tests/libhusb-test.c
tests/libusb-wrap.c

index a38db2e9c00c8e7518a950ce7521b49297bcfb01..6d39151ae9dbfee4ebaf2512965cf32079cf527a 100644 (file)
@@ -321,6 +321,36 @@ static void test_claim_interface_simple(void **state)
        assert_int_equal(handle->driver_detached[interface_nmb], 1);
 }
 
+static void test_control_transfer(void **state)
+{
+       uint8_t request_type, bRequest;
+       uint16_t wValue, wIndex, wLength;
+       unsigned char *data;
+       unsigned int timeout;
+       int ret;
+       libhusb_device_handle *handle;
+
+       handle = (libhusb_device_handle *)(*state);
+       assert_non_null(handle);
+
+#define EXPECT_VAL(val) expect_value(libusb_control_transfer, val, val);
+       EXPECT_VAL(request_type);
+       EXPECT_VAL(bRequest);
+       EXPECT_VAL(wValue);
+       EXPECT_VAL(wIndex);
+       EXPECT_VAL(data);
+       EXPECT_VAL(wLength);
+       EXPECT_VAL(timeout);
+#undef EXPECT_VAL
+       expect_value(libusb_control_transfer, dev_handle, handle->lusb_dev_handle);
+       will_return(libusb_control_transfer, 0);
+
+       ret =  libhusb_control_transfer(handle, request_type, bRequest, wValue,
+                       wIndex, data, wLength, timeout);
+
+       assert_return_code(ret, 0);
+}
+
 /* Custom macro for defining test with given name and fixed teardown function */
 #define HUSB_TEST(func, setup, teardown) \
        cmocka_unit_test_setup_teardown(func, setup, teardown)
@@ -351,6 +381,7 @@ static struct CMUnitTest tests[] = {
                HUSB_TEST_CTX(test_open_device_vid_pid),
                HUSB_TEST_DEV_HANDLE(test_set_config),
                HUSB_TEST_DEV_HANDLE(test_claim_interface_simple),
+               HUSB_TEST_DEV_HANDLE(test_control_transfer),
 };
 
 
index b67063b2fc7ae83101e535d8086e2649d3bca528..fd720b7f487dabb2829f1aca0172f6270eaac146 100644 (file)
@@ -245,3 +245,19 @@ int libusb_attach_kernel_driver(libusb_device_handle *dev,
 {
        return 0;
 }
+
+int libusb_control_transfer(libusb_device_handle *dev_handle,
+       uint8_t request_type, uint8_t bRequest, uint16_t wValue, uint16_t wIndex,
+       unsigned char *data, uint16_t wLength, unsigned int timeout)
+{
+       check_expected(dev_handle);
+       check_expected(request_type);
+       check_expected(bRequest);
+       check_expected(wValue);
+       check_expected(wIndex);
+       check_expected(data);
+       check_expected(wLength);
+       check_expected(timeout);
+
+       return mock_type(int);
+}