From: Pawel Szewczyk
Date: Tue, 29 Sep 2015 14:14:28 +0000 (+0200)
Subject: tests: Add tests of api functions related to devices
X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fea0ffab64e07e2ef4ba852acaabfe9a8e232f33;p=platform%2Fcore%2Fapi%2Fusb-host.git
tests: Add tests of api functions related to devices
Change-Id: Ia958746d202ea89844015f8bb468bde3d6bd09ff
Signed-off-by: Pawel Szewczyk
---
diff --git a/tests/libhusb-test.c b/tests/libhusb-test.c
index a153917..1fc8164 100644
--- a/tests/libhusb-test.c
+++ b/tests/libhusb-test.c
@@ -21,6 +21,7 @@
#include
#include
#include
+#include
#include "libhusb.h"
#include "libhusb_internal.h"
@@ -62,6 +63,28 @@ static int teardown_libhusb_context(void **state)
return 0;
}
+static int setup_libhusb_device(void **state)
+{
+ libhusb_device *dev;
+
+ dev = malloc(sizeof(libhusb_device));
+ /* TODO fill this with something? */
+
+ *state = dev;
+
+ return 0;
+}
+
+/**
+ * @brief Just free the memory
+ */
+static int teardown_free(void **state)
+{
+ free(*state);
+
+ return 0;
+}
+
/**
* @brief Test if initialization works fine
*/
@@ -129,9 +152,82 @@ static void test_get_devices(void **state)
libhusb_free_devices(devs, 0);
}
+static void test_get_max_packet_size(void **state)
+{
+ libhusb_device *device;
+ int ep = 7, ret, expected;
+
+ device = (libhusb_device *)(*state);
+ assert_non_null(device);
+ expected = rand();
+
+ expect_value(libusb_get_max_iso_packet_size, dev, device->lusb_dev);
+ expect_value(libusb_get_max_iso_packet_size, endpoint, ep);
+ will_return(libusb_get_max_iso_packet_size, expected);
+
+ ret = libhusb_get_max_packet_size(device, ep);
+
+ assert_int_equal(ret, expected);
+}
+
+static void test_get_bus_number(void **state)
+{
+ libhusb_device *device;
+ uint8_t expected, ret;
+
+ expected = rand();
+ device = (libhusb_device *)(*state);
+ assert_non_null(device);
+
+ expect_value(libusb_get_bus_number, dev, device->lusb_dev);
+ will_return(libusb_get_bus_number, expected);
+
+ ret = libhusb_get_bus_number(device);
+
+ assert_int_equal(ret, expected);
+}
+
+static void test_get_address(void **state)
+{
+ libhusb_device *device;
+ uint8_t expected, ret;
+
+ expected = rand();
+ device = (libhusb_device *)(*state);
+ assert_non_null(device);
+
+ expect_value(libusb_get_device_address, dev, device->lusb_dev);
+ will_return(libusb_get_device_address, expected);
+
+ ret = libhusb_get_address(device);
+
+ assert_int_equal(ret, expected);
+}
+
+static void test_get_device_descriptor(void **state)
+{
+ libhusb_device *device;
+ struct libhusb_device_descriptor descriptor;
+ int ret;
+
+ device = (libhusb_device *)(*state);
+
+ expect_value(libusb_get_device_descriptor, dev, device->lusb_dev);
+ expect_value(libusb_get_device_descriptor, desc, &descriptor);
+ will_return(libusb_get_device_descriptor, 0);
+
+ ret = libhusb_get_device_descriptor(device, &descriptor);
+
+ 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)
#define HUSB_TEST_CTX(func) \
cmocka_unit_test_setup_teardown(func, setup_libhusb_context, teardown_libhusb_context)
+#define HUSB_TEST_DEVICE(func) \
+ cmocka_unit_test_setup_teardown(func, setup_libhusb_device, teardown_free)
#define HUSB_TEST_NOSETUP(func) \
cmocka_unit_test(func)
@@ -145,10 +241,15 @@ static struct CMUnitTest tests[] = {
HUSB_TEST_CTX(test_open),
HUSB_TEST_NOSETUP(test_get_device),
HUSB_TEST_CTX(test_get_devices),
+ HUSB_TEST_DEVICE(test_get_max_packet_size),
+ HUSB_TEST_DEVICE(test_get_bus_number),
+ HUSB_TEST_DEVICE(test_get_address),
+ HUSB_TEST_DEVICE(test_get_device_descriptor),
};
int main(int argc, char **argv)
{
+ srand(time(NULL));
return cmocka_run_group_tests(tests, NULL, NULL);
}
diff --git a/tests/libusb-wrap.c b/tests/libusb-wrap.c
index 4e92864..0ba2213 100644
--- a/tests/libusb-wrap.c
+++ b/tests/libusb-wrap.c
@@ -109,7 +109,9 @@ int libusb_get_configuration(libusb_device_handle *dev,
int libusb_get_device_descriptor(libusb_device *dev,
struct libusb_device_descriptor *desc)
{
- return 0;
+ check_expected(dev);
+ check_expected(desc);
+ return mock_type(int);
}
int libusb_get_active_config_descriptor(libusb_device *dev,
@@ -137,12 +139,14 @@ void libusb_free_config_descriptor(
uint8_t libusb_get_bus_number(libusb_device *dev)
{
- return 0;
+ check_expected(dev);
+ return mock_type(uint8_t);
}
uint8_t libusb_get_device_address(libusb_device *dev)
{
- return 0;
+ check_expected(dev);
+ return mock_type(uint8_t);
}
int libusb_get_device_speed(libusb_device *dev)
@@ -159,7 +163,9 @@ int libusb_get_max_packet_size(libusb_device *dev,
int libusb_get_max_iso_packet_size(libusb_device *dev,
unsigned char endpoint)
{
- return 0;
+ check_expected(dev);
+ check_expected(endpoint);
+ return mock_type(int);
}
int libusb_open(libusb_device *dev, libusb_device_handle **handle)