]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
change complete scan logic to cancel
authorBastian Dehn <hhaalo@arcor.de>
Tue, 24 Dec 2024 13:29:57 +0000 (14:29 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Tue, 24 Dec 2024 13:50:42 +0000 (14:50 +0100)
src/kds_s2000w_net.c
tests/kds_s2000w_net_tests.c

index 6034db03750cfdabb63da6ab9acafdff62dd57cd..5772bd15da0bc171288b44874c4a4e4311e487ba 100644 (file)
@@ -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;
 }
 
index 656b379e13fd96d6e8e5733a84652ee233129c19..0e156ae45122065fde9aad47ce53ca719d7553d9 100644 (file)
@@ -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);