From 99a10347c15970bcae6df5bd5f643bfc32ee501d Mon Sep 17 00:00:00 2001 From: Pawel Szewczyk Date: Tue, 29 Sep 2015 16:08:18 +0200 Subject: [PATCH] tests: Add get_active_config test Change-Id: I77b0c502d708e90edf332fda6eec8dda29210aa6 Signed-off-by: Pawel Szewczyk --- tests/libhusb-test.c | 33 +++++++++++++++++++++++++++++++++ tests/libusb-wrap.c | 4 +++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/tests/libhusb-test.c b/tests/libhusb-test.c index 1fc8164..b2ced9c 100644 --- a/tests/libhusb-test.c +++ b/tests/libhusb-test.c @@ -75,6 +75,18 @@ static int setup_libhusb_device(void **state) return 0; } +static int setup_libhusb_dev_handle(void **state) +{ + libhusb_device_handle *dev; + + dev = malloc(sizeof(libhusb_device_handle)); + /* TODO fill this with something? */ + + *state = dev; + + return 0; +} + /** * @brief Just free the memory */ @@ -221,6 +233,24 @@ static void test_get_device_descriptor(void **state) assert_return_code(ret, 0); } +static void test_get_active_config(void **state) +{ + libhusb_device_handle *handle; + int conf, expected, ret; + + handle = (libhusb_device_handle *)(*state); + expected = rand(); + + expect_value(libusb_get_configuration, dev, handle->lusb_dev_handle); + will_return(libusb_get_configuration, expected); + will_return(libusb_get_configuration, 0); + + ret = libhusb_get_active_config(handle, &conf); + + assert_return_code(ret, 0); + assert_int_equal(conf, expected); +} + /* 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) @@ -228,6 +258,8 @@ static void test_get_device_descriptor(void **state) 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_DEV_HANDLE(func) \ + cmocka_unit_test_setup_teardown(func, setup_libhusb_dev_handle, teardown_free) #define HUSB_TEST_NOSETUP(func) \ cmocka_unit_test(func) @@ -245,6 +277,7 @@ static struct CMUnitTest tests[] = { HUSB_TEST_DEVICE(test_get_bus_number), HUSB_TEST_DEVICE(test_get_address), HUSB_TEST_DEVICE(test_get_device_descriptor), + HUSB_TEST_DEV_HANDLE(test_get_active_config), }; diff --git a/tests/libusb-wrap.c b/tests/libusb-wrap.c index 0ba2213..ac97d8a 100644 --- a/tests/libusb-wrap.c +++ b/tests/libusb-wrap.c @@ -103,7 +103,9 @@ void libusb_unref_device(libusb_device *dev) int libusb_get_configuration(libusb_device_handle *dev, int *config) { - return 0; + check_expected(dev); + *config = mock_type(int); + return mock_type(int); } int libusb_get_device_descriptor(libusb_device *dev, -- 2.34.1