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)