From 35138cf010a4c5d099d24934a67fc41d15a09005 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sat, 28 Dec 2024 20:55:47 +0100 Subject: [PATCH] fix scan many sides stop --- src/kds_s2000w_net.c | 3 +- tests/kds_s2000w_net_tests.c | 67 -------------------------------- tests/kds_s2000w_net_tests.h | 1 - tests/kds_s2000w_net_tests_run.c | 1 - 4 files changed, 2 insertions(+), 70 deletions(-) diff --git a/src/kds_s2000w_net.c b/src/kds_s2000w_net.c index 483c2cc..df83c39 100644 --- a/src/kds_s2000w_net.c +++ b/src/kds_s2000w_net.c @@ -184,7 +184,8 @@ SANE_Status _sane_kds_s2000w_net_start(SANE_Handle handle) kds_s2000w_handler_start_scan(h); } - if (h->current_scan_status->downloaded_images > 0 + if (h->current_scan_status->feeder != 1 + && h->current_scan_status->downloaded_images > 0 && h->current_scan_status->available_images < 1) return SANE_STATUS_NO_DOCS; diff --git a/tests/kds_s2000w_net_tests.c b/tests/kds_s2000w_net_tests.c index 6dfff8b..e45c947 100644 --- a/tests/kds_s2000w_net_tests.c +++ b/tests/kds_s2000w_net_tests.c @@ -324,73 +324,6 @@ void sane_kds_s2000w_net_start_two_pages_per_feeder(void** state) h = NULL; } -void sane_kds_s2000w_net_start_slow_two_pages_per_feeder(void** state) -{ - response** response_list = (response**) *state; - will_return(mock_response, response_list[0]); - will_return(__wrap_kds_s2000w_client_start_scan, 0); - response* resp_status = kds_s2000w_client_response_init(); - resp_status->data = realloc(resp_status->data, 205); - const char* status = "{ \ - \"Status\": { \ - \"NumImagesScanned\": 1, \ - \"NumImagesStored\": 1, \ - \"State\": \"Scanning\", \ - \"ErrorNum\": 0, \ - \"LastError\": \"Status: 200 Success\", \ - \"PaperDetected\": \"0\", \ - \"PercentAvailable\": 99 \ - }}\0"; - memcpy(resp_status->data, status, 205); - resp_status->code = 200; - resp_status->size = 205; - will_return(mock_response, resp_status); - will_return(__wrap_kds_s2000w_client_status_session, 0); - will_return(mock_response, response_list[2]); - 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); - 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); - - handler* h = init_handler(); - h->current_scan_status->feeder = 1; - const char* test_config = "{\"Configuration\": { \"ColorMode\": \"Color\" } }"; - h->current_scanner_config = json_tokener_parse(test_config); - - int result = _sane_kds_s2000w_net_start(h); - - resp_status->data = realloc(resp_status->data, 210); - const char* status2 = "{ \ - \"Status\": { \ - \"NumImagesScanned\": 2, \ - \"NumImagesStored\": 1, \ - \"State\": \"Done Scanning\", \ - \"ErrorNum\": 0, \ - \"LastError\": \"Status: 200 Success\", \ - \"PaperDetected\": \"0\", \ - \"PercentAvailable\": 99 \ - }}\0"; - memcpy(resp_status->data, status2, 210); - resp_status->code = 200; - resp_status->size = 210; - - result = _sane_kds_s2000w_net_start(h); - - assert_int_equal(result, SANE_STATUS_NO_DOCS); - assert_int_equal(h->current_scan_status->complete_scanned, 0); - - json_object_put(h->current_scanner_config); - h->current_scanner_config = NULL; - kds_s2000w_client_response_free(resp_status); - resp_status = NULL; - - free_handler(h); - h = NULL; -} - void sane_kds_s2000w_net_get_parameter_cancel() { handler* h = init_handler(); diff --git a/tests/kds_s2000w_net_tests.h b/tests/kds_s2000w_net_tests.h index f4cc685..1dd2ee8 100644 --- a/tests/kds_s2000w_net_tests.h +++ b/tests/kds_s2000w_net_tests.h @@ -18,7 +18,6 @@ void sane_kds_s2000w_net_start(void** state); void sane_kds_s2000w_net_start_one_page_per_flatscan(void** state); void sane_kds_s2000w_net_start_one_page_per_feeder(void** state); void sane_kds_s2000w_net_start_two_pages_per_feeder(void** state); -void sane_kds_s2000w_net_start_slow_two_pages_per_feeder(void** state); void sane_kds_s2000w_net_get_parameter_cancel(); void sane_kds_s2000w_net_cancel(); void sane_kds_s2000w_net_cancel_completed_scan_feeder(); diff --git a/tests/kds_s2000w_net_tests_run.c b/tests/kds_s2000w_net_tests_run.c index ed082ed..f05bb53 100644 --- a/tests/kds_s2000w_net_tests_run.c +++ b/tests/kds_s2000w_net_tests_run.c @@ -81,7 +81,6 @@ int main() cmocka_unit_test_setup_teardown(sane_kds_s2000w_net_start_one_page_per_flatscan, setup_net_start, teardown_net_start), cmocka_unit_test_setup_teardown(sane_kds_s2000w_net_start_one_page_per_feeder, setup_net_start, teardown_net_start), cmocka_unit_test_setup_teardown(sane_kds_s2000w_net_start_two_pages_per_feeder, setup_net_start, teardown_net_start), - cmocka_unit_test_setup_teardown(sane_kds_s2000w_net_start_slow_two_pages_per_feeder, setup_net_start, teardown_net_start) }; return cmocka_run_group_tests(net_tests, NULL, NULL); -- 2.39.5