From 2ca4165af34016efd8230a70c35fb57d597a84f0 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Tue, 24 Dec 2024 14:29:57 +0100 Subject: [PATCH] change complete scan logic to cancel --- src/kds_s2000w_net.c | 19 +++------- tests/kds_s2000w_net_tests.c | 70 +++++------------------------------- 2 files changed, 12 insertions(+), 77 deletions(-) diff --git a/src/kds_s2000w_net.c b/src/kds_s2000w_net.c index 6034db0..5772bd1 100644 --- a/src/kds_s2000w_net.c +++ b/src/kds_s2000w_net.c @@ -147,14 +147,15 @@ void _sane_kds_s2000w_net_cancel(SANE_Handle handle) handler* h = (handler*) handle; - if (h->read_info->cancel > 0) { + if (h->current_scan_status->complete_scanned > 0) { reset_handler(h); - kds_s2000w_handler_recreate_session(h); return; } - if (h->current_scan_status->complete_scanned > 0) { + if (h->read_info->cancel > 0 + || h->current_scan_status->available_images <= 0) { reset_handler(h); + kds_s2000w_handler_recreate_session(h); return; } @@ -226,23 +227,11 @@ SANE_Status _sane_kds_s2000w_net_start(SANE_Handle handle) kds_s2000w_handler_delete_current_image(h); h->current_scan_status->current_image_number++; - if (h->current_scan_status->feeder > 0 - && h->current_scan_status->complete_scanned - && h->current_scan_status->available_images <= 0) { - kds_s2000w_handler_recreate_session(h); - return SANE_STATUS_GOOD; - } - if (h->current_scan_status->complete_scanned) { kds_s2000w_handler_stop_scan(h); return SANE_STATUS_GOOD; } - if (h->current_scan_status->available_images <= 0) { - kds_s2000w_handler_recreate_session(h); - return SANE_STATUS_GOOD; - } - return SANE_STATUS_GOOD; } diff --git a/tests/kds_s2000w_net_tests.c b/tests/kds_s2000w_net_tests.c index 656b379..0e156ae 100644 --- a/tests/kds_s2000w_net_tests.c +++ b/tests/kds_s2000w_net_tests.c @@ -174,25 +174,10 @@ void sane_kds_s2000w_net_start_one_page_per_flatscan(void** state) will_return(__wrap_kds_s2000w_client_get_image, 0); will_return(mock_response, response_list[0]); will_return(__wrap_kds_s2000w_client_delete_image, 0); - response* resp_open_session = kds_s2000w_client_response_init(); - resp_open_session->data = realloc(resp_open_session->data, 25); - const char* session_data = "{\"SessionId\":\"8154711\"}\0"; - memcpy(resp_open_session->data, session_data, 25); - resp_open_session->code = 200; - resp_open_session->size = 25; - will_return(mock_response, resp_open_session); - will_return(__wrap_kds_s2000w_client_open_session, 0); - response* resp_set_option = kds_s2000w_client_response_init(); - resp_set_option->code = 200; - will_return(mock_response, resp_set_option); - will_return(__wrap_kds_s2000w_client_set_option, 0); expect_function_call(__wrap_kds_s2000w_client_start_scan); expect_function_call(__wrap_kds_s2000w_client_status_session); expect_function_call(__wrap_kds_s2000w_client_get_image); expect_function_call(__wrap_kds_s2000w_client_delete_image); - expect_function_call(__wrap_kds_s2000w_client_close_session); - expect_function_call(__wrap_kds_s2000w_client_open_session); - expect_function_call(__wrap_kds_s2000w_client_set_option); handler* h = init_handler(); h->current_scan_status->feeder = 0; const char* test_config = "{\"Configuration\": { \"ColorMode\": \"Color\" } }"; @@ -207,10 +192,6 @@ void sane_kds_s2000w_net_start_one_page_per_flatscan(void** state) h->current_scanner_config = NULL; kds_s2000w_client_response_free(resp_status); resp_status = NULL; - kds_s2000w_client_response_free(resp_open_session); - resp_open_session = NULL; - kds_s2000w_client_response_free(resp_set_option); - resp_set_option = NULL; free_handler(h); h = NULL; } @@ -241,25 +222,13 @@ void sane_kds_s2000w_net_start_one_page_per_feeder(void** state) will_return(__wrap_kds_s2000w_client_get_image, 0); will_return(mock_response, response_list[0]); will_return(__wrap_kds_s2000w_client_delete_image, 0); - response* resp_open_session = kds_s2000w_client_response_init(); - resp_open_session->data = realloc(resp_open_session->data, 25); - const char* session_data = "{\"SessionId\":\"8154711\"}\0"; - memcpy(resp_open_session->data, session_data, 25); - resp_open_session->code = 200; - resp_open_session->size = 25; - will_return(mock_response, resp_open_session); - will_return(__wrap_kds_s2000w_client_open_session, 0); - response* resp_set_option = kds_s2000w_client_response_init(); - resp_set_option->code = 200; - will_return(mock_response, resp_set_option); - will_return(__wrap_kds_s2000w_client_set_option, 0); + will_return(mock_response, response_list[0]); + will_return(__wrap_kds_s2000w_client_stop_scan, 0); expect_function_call(__wrap_kds_s2000w_client_start_scan); expect_function_call(__wrap_kds_s2000w_client_status_session); expect_function_call(__wrap_kds_s2000w_client_get_image); expect_function_call(__wrap_kds_s2000w_client_delete_image); - expect_function_call(__wrap_kds_s2000w_client_close_session); - expect_function_call(__wrap_kds_s2000w_client_open_session); - expect_function_call(__wrap_kds_s2000w_client_set_option); + expect_function_call(__wrap_kds_s2000w_client_stop_scan); handler* h = init_handler(); const char* test_config = "{\"Configuration\": { \"ColorMode\": \"Color\" } }"; h->current_scanner_config = json_tokener_parse(test_config); @@ -273,10 +242,6 @@ void sane_kds_s2000w_net_start_one_page_per_feeder(void** state) h->current_scanner_config = NULL; kds_s2000w_client_response_free(resp_status); resp_status = NULL; - kds_s2000w_client_response_free(resp_open_session); - resp_open_session = NULL; - kds_s2000w_client_response_free(resp_set_option); - resp_set_option = NULL; free_handler(h); h = NULL; } @@ -307,9 +272,7 @@ void sane_kds_s2000w_net_start_two_pages_per_feeder(void** state) will_return(__wrap_kds_s2000w_client_get_image, 0); will_return(mock_response, response_list[0]); will_return(__wrap_kds_s2000w_client_delete_image, 0); - response* resp_stop_scan = kds_s2000w_client_response_init(); - resp_stop_scan->code = 200; - will_return(mock_response, resp_stop_scan); + will_return(mock_response, response_list[0]); will_return(__wrap_kds_s2000w_client_stop_scan, 0); expect_function_call(__wrap_kds_s2000w_client_start_scan); expect_function_call(__wrap_kds_s2000w_client_status_session); @@ -342,24 +305,12 @@ void sane_kds_s2000w_net_start_two_pages_per_feeder(void** state) will_return(__wrap_kds_s2000w_client_get_image, 0); will_return(mock_response, response_list[0]); will_return(__wrap_kds_s2000w_client_delete_image, 0); - response* resp_open_session = kds_s2000w_client_response_init(); - resp_open_session->data = realloc(resp_open_session->data, 25); - const char* session_data = "{\"SessionId\":\"8154711\"}\0"; - memcpy(resp_open_session->data, session_data, 25); - resp_open_session->code = 200; - resp_open_session->size = 25; - will_return(mock_response, resp_open_session); - will_return(__wrap_kds_s2000w_client_open_session, 0); - response* resp_set_option = kds_s2000w_client_response_init(); - resp_set_option->code = 200; - will_return(mock_response, resp_set_option); - will_return(__wrap_kds_s2000w_client_set_option, 0); + will_return(mock_response, response_list[0]); + will_return(__wrap_kds_s2000w_client_stop_scan, 0); expect_function_call(__wrap_kds_s2000w_client_status_session); expect_function_call(__wrap_kds_s2000w_client_get_image); expect_function_call(__wrap_kds_s2000w_client_delete_image); - expect_function_call(__wrap_kds_s2000w_client_close_session); - expect_function_call(__wrap_kds_s2000w_client_open_session); - expect_function_call(__wrap_kds_s2000w_client_set_option); + expect_function_call(__wrap_kds_s2000w_client_stop_scan); result = _sane_kds_s2000w_net_start(h); assert_int_equal(result, SANE_STATUS_GOOD); @@ -369,12 +320,6 @@ void sane_kds_s2000w_net_start_two_pages_per_feeder(void** state) h->current_scanner_config = NULL; kds_s2000w_client_response_free(resp_status); resp_status = NULL; - kds_s2000w_client_response_free(resp_open_session); - resp_open_session = NULL; - kds_s2000w_client_response_free(resp_set_option); - resp_set_option = NULL; - kds_s2000w_client_response_free(resp_stop_scan); - resp_stop_scan = NULL; free_handler(h); h = NULL; } @@ -388,6 +333,7 @@ void sane_kds_s2000w_net_cancel() will_return(__wrap_kds_s2000w_client_stop_scan, 0); expect_function_call(__wrap_kds_s2000w_client_stop_scan); handler* h = init_handler(); + h->current_scan_status->available_images = 1; _sane_kds_s2000w_net_cancel(h); -- 2.39.5