assert_non_null(ctx);
will_return(libusb_get_device_list, n);
- for (i = 0; i < n; ++i)
+ for (i = 0; i < n; ++i) {
+ expect_any(libusb_ref_device, dev);
will_return(libusb_get_device_list, lusb_devs[i]);
+ }
ret = libhusb_get_devices(ctx, &devs);
expect_value(libusb_open_device_with_vid_pid, product_id, pid);
will_return(libusb_open_device_with_vid_pid, lusb_dev_handle);
will_return(libusb_get_device, lusb_device);
+ expect_any(libusb_ref_device, dev);
handle = libhusb_device_open_with_vid_pid(ctx, vid, pid);
assert_ptr_equal(handle->device->lusb_dev, lusb_device);
}
+static void test_set_config(void **state)
+{
+ libhusb_device_handle *handle;
+ int config, ret;
+
+ config = rand();
+ handle = (libhusb_device_handle *)(*state);
+ assert_non_null(handle);
+
+ expect_value(libusb_set_configuration, dev, handle->lusb_dev_handle);
+ expect_value(libusb_set_configuration, configuration, config);
+ will_return(libusb_set_configuration, 0);
+
+ ret = libhusb_set_config(handle, config);
+
+ 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)
HUSB_TEST_DEVICE(test_get_device_descriptor),
HUSB_TEST_DEV_HANDLE(test_get_active_config),
HUSB_TEST_CTX(test_open_device_vid_pid),
+ HUSB_TEST_DEV_HANDLE(test_set_config),
};