assert_non_null(ctx);
}
+static void test_open(void **state)
+{
+ libhusb_context *ctx;
+ libusb_device_handle *lusb_handle;
+ libhusb_device_handle *handle;
+ libhusb_device device;
+
+ ctx = (libhusb_context *)(*state);
+ assert_non_null(ctx);
+
+ expect_value(libusb_open, dev, device.lusb_dev);
+ expect_any(libusb_open, handle);
+ will_return(libusb_open, lusb_handle);
+ will_return(libusb_open, 0);
+
+ handle = libhusb_open(&device);
+
+ assert_non_null(handle);
+ assert_ptr_equal(handle->device, &device);
+ assert_ptr_equal(handle->lusb_dev_handle, lusb_handle);
+}
+
+
/* Custom macro for defining test with given name and fixed teardown function */
#define HUSB_TEST_CTX(func) \
cmocka_unit_test_setup_teardown(func, setup_libhusb_context, teardown_libhusb_context)
* TODO: documentation
*/
HUSB_TEST_CTX(test_init),
+ HUSB_TEST_CTX(test_open),
};
libusb_device * libusb_ref_device(libusb_device *dev)
{
- return NULL;
+ return dev;
}
void libusb_unref_device(libusb_device *dev)
int libusb_open(libusb_device *dev, libusb_device_handle **handle)
{
- return 0;
+ check_expected(dev);
+ check_expected(handle);
+ *handle = mock_ptr_type(libusb_device_handle *);
+ return mock_type(int);
}
void libusb_close(libusb_device_handle *dev_handle)
libusb_device * libusb_get_device(libusb_device_handle *dev_handle)
{
- return NULL;
+ return mock_ptr_type(libusb_device *);
}
int libusb_set_configuration(libusb_device_handle *dev,