From 2b006c7a085e4e818ad2ae8630d79920ae8beaff Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sun, 10 Mar 2024 08:25:00 +0100 Subject: [PATCH] add test for empty device list when only local devices --- src/kds_s2000w_net.c | 16 +++++++--------- tests/kds_s2000w_net_tests.c | 15 +++++++++++++++ 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/src/kds_s2000w_net.c b/src/kds_s2000w_net.c index df48283..76e91d6 100644 --- a/src/kds_s2000w_net.c +++ b/src/kds_s2000w_net.c @@ -9,9 +9,6 @@ #include "kds_s2000w_handler.h" #include "kds_s2000w_debug.h" -SANE_Device** own_device_list = NULL; -SANE_Device* device_info = NULL; - int _sane_kds_s2000w_net_find_first_data_byte(const char* data) { debug_printf(ALL, "sane_kds_s2000w_net_find_first_data_byte"); @@ -42,21 +39,22 @@ SANE_Status _sane_kds_s2000w_net_init(SANE_Int* version_code, SANE_Auth_Callback void _sane_kds_s2000w_net_exit(void) { debug_printf(ALL, "sane_kds_s2000w_net_exit"); - free(device_info); - device_info = NULL; - free(own_device_list); - own_device_list = NULL; } SANE_Status _sane_kds_s2000w_net_get_devices(SANE_Device*** device_list, SANE_Bool local_only) { debug_printf(ALL, "sane_kds_s2000w_net_get_devices"); - if (local_only) + SANE_Device** own_device_list = NULL; + if (local_only) { + own_device_list = malloc(sizeof(SANE_Device*) * 1); + own_device_list[0] = NULL; + *device_list = own_device_list; return SANE_STATUS_NO_MEM; + } own_device_list = malloc(sizeof(SANE_Device*) * 2); - device_info = malloc(sizeof(SANE_Device)); + SANE_Device* device_info = malloc(sizeof(SANE_Device)); device_info->name = "kds_s2000w_net"; device_info->vendor = "Kodak"; device_info->model = "Kodak Alaris s2000w series"; diff --git a/tests/kds_s2000w_net_tests.c b/tests/kds_s2000w_net_tests.c index f4cd8ca..c8c4dde 100644 --- a/tests/kds_s2000w_net_tests.c +++ b/tests/kds_s2000w_net_tests.c @@ -48,12 +48,27 @@ START_TEST(kds_s2000w_net_get_devices) } END_TEST +START_TEST(kds_s2000w_net_get_devices_only_remote) +{ + SANE_Device*** device_list = malloc(sizeof(SANE_Device**)); + + SANE_Status result = _sane_kds_s2000w_net_get_devices(device_list, 1); + + ck_assert_int_eq(result, SANE_STATUS_NO_MEM); + ck_assert_ptr_null(device_list[0][0]); + + free(device_list); + device_list = NULL; +} +END_TEST + Suite* net_tests() { Suite* net_tests_suite = suite_create("kds_s2000w_net"); TCase* net_tests = tcase_create("kds_s2000w_net_tests"); tcase_add_test(net_tests, kds_s2000w_net_get_devices); + tcase_add_test(net_tests, kds_s2000w_net_get_devices_only_remote); tcase_add_test(net_tests, kds_s2000w_net_get_parameters_with_image_data); suite_add_tcase(net_tests_suite, net_tests); return net_tests_suite; -- 2.39.5