]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
integrate call into open
authorBastian Dehn <hhaalo@arcor.de>
Tue, 24 Mar 2026 19:57:14 +0000 (20:57 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Tue, 24 Mar 2026 19:57:14 +0000 (20:57 +0100)
src/kds_s2000w_net.c
tests/kds_s2000w_net_tests.c

index 3de470cc341c6218865c177d2bd0242a970882dd..55545c11ef122266dc6793a48f86edfeb0ea04ea 100644 (file)
@@ -98,6 +98,7 @@ SANE_Status sane_kds_s2000w_net_open(SANE_String_Const devicename,
                return SANE_STATUS_DEVICE_BUSY;
        }
 
+       mask_option_groups_t option_mask = kds_s2000w_handler_get_available_options();
        return kds_s2000w_option_descriptors_init(h->profile);
 }
 
index 86cd599c7da424816854ab684db850e03b0b11cc..a13d05586411aaef46aafee81b368f82aca94f3f 100644 (file)
@@ -18,7 +18,7 @@
 
 int setup(void** state)
 {
-       response_t** response_list = malloc(sizeof(response_t*) * 4);
+       response_t** response_list = malloc(sizeof(response_t*) * 5);
        if (response_list == NULL)
                return 1;
        response_list[0] = kds_s2000w_client_response_init();
@@ -64,9 +64,60 @@ int setup(void** state)
        for (uint32_t i = 11; i < 17; i++) {
                image_data[i] = (char) 0xff;
        }
-       response_list[3] = NULL;
-       *state = response_list;
+       const char* all_options = "{ \
+               \"Defaults\":{ \
+                       \"DPI\":200, \
+                       \"ScanSide\":\"Duplex\", \
+                       \"ColorMode\":\"Color\", \
+                       \"SkipBlankPages\":0, \
+                       \"SkipBlankPagesContent\":5, \
+                       \"AutoStart\":0, \
+                       \"ColorDropOut\":\"None\", \
+                       \"ColorDropOutAggressiveness\":0, \
+                       \"OutputType\":\"Images\", \
+                       \"ColorAutoBrightnessMode\":\"Automatic\", \
+                       \"ColorBrightness\":0, \
+                       \"ColorContrast\":0, \
+                       \"ColorBalanceMode\":\"Automatic\", \
+                       \"ColorBalanceAggressiveness\":0, \
+                       \"ColorBalanceRed\":0, \
+                       \"ColorBalanceGreen\":0, \
+                       \"ColorBalanceBlue\":0, \
+                       \"ColorSharpen\":\"Normal\", \
+                       \"ForegroundBoldnessMode\":\"None\", \
+                       \"ForegroundBoldnessAggressiveness\":0, \
+                       \"BackgroundSmoothingMode\":\"None\", \
+                       \"BackgroundSmoothingAggressiveness\":0, \
+                       \"BinarizationMode\":\"iThresholding\", \
+                       \"BinarizationContrast\":0, \
+                       \"MaxDocumentLength\":140, \
+                       \"MultifeedSensitivity\":\"None\", \
+                       \"MultifeedResponse\":\"Stop\", \
+                       \"PostScanRotation\":\"Automatic\", \
+                       \"EdgeFill\":\"Automatic\", \
+                       \"ScanSource\":\"DocumentFeeder\", \
+                       \"ImageBorder\":\"None\", \
+                       \"TransportHandling\":\"Normal\", \
+                       \"JpegQuality\":\"Good\", \
+                       \"DocumentFeederTimeout\":2, \
+                       \"DocumentFeederTimeoutResponse\":\"Stop\", \
+                       \"HoleFill\":0, \
+                       \"CroppingMode\":\"AutomaticStraighten\", \
+                       \"CroppingImage\":\"EntireDocument\", \
+                       \"ImageOffsetX\":0, \
+                       \"ImageOffsetY\":0, \
+                       \"ImageWidth\":10, \
+                       \"ImageHeight\":10 \
+               } \
+       }";
+       response_list[3] = kds_s2000w_client_response_init();
+       response_list[3]->code = 200;
+       response_list[3]->size = 1251;
+       response_list[3]->data = malloc(sizeof(char) * response_list[3]->size);
+       memcpy(response_list[3]->data, all_options, response_list[3]->size);
+       response_list[4] = NULL;
 
+       *state = response_list;
        return 0;
 }
 
@@ -272,8 +323,10 @@ void sane_kds_s2000w_net_get_parameter_bw_test()
        params = NULL;
 }
 
-void sane_kds_s2000w_net_open_test()
+void sane_kds_s2000w_net_open_test(void** state)
 {
+       response_t** response_list = (response_t**) *state;
+
        response_t* resp = kds_s2000w_client_response_init();
        if (resp == NULL)
                return;
@@ -285,6 +338,9 @@ void sane_kds_s2000w_net_open_test()
        will_return(mock_response, resp);
        will_return(__wrap_kds_s2000w_client_open_session, 0);
        expect_function_call(__wrap_kds_s2000w_client_open_session);
+       will_return(mock_response, response_list[3]);
+       will_return(__wrap_kds_s2000w_client_get_capabilities, 0);
+       expect_function_call(__wrap_kds_s2000w_client_get_capabilities);
        void** hlist = malloc(sizeof(void*));
        if (hlist == NULL) {
                kds_s2000w_client_response_free(resp);
@@ -884,61 +940,11 @@ void kds_s2000w_handler_depth_eight_calc_bytes_per_line_tests()
        kds_s2000w_handler_depth_one_calc_bytes_per_line_test(80, 8, 240);
 }
 
-void kds_s2000w_handler_available_options_test()
+void kds_s2000w_handler_available_options_test(void** state)
 {
-       const char* all_options = "{ \
-               \"Defaults\":{ \
-                       \"DPI\":200, \
-                       \"ScanSide\":\"Duplex\", \
-                       \"ColorMode\":\"Color\", \
-                       \"SkipBlankPages\":0, \
-                       \"SkipBlankPagesContent\":5, \
-                       \"AutoStart\":0, \
-                       \"ColorDropOut\":\"None\", \
-                       \"ColorDropOutAggressiveness\":0, \
-                       \"OutputType\":\"Images\", \
-                       \"ColorAutoBrightnessMode\":\"Automatic\", \
-                       \"ColorBrightness\":0, \
-                       \"ColorContrast\":0, \
-                       \"ColorBalanceMode\":\"Automatic\", \
-                       \"ColorBalanceAggressiveness\":0, \
-                       \"ColorBalanceRed\":0, \
-                       \"ColorBalanceGreen\":0, \
-                       \"ColorBalanceBlue\":0, \
-                       \"ColorSharpen\":\"Normal\", \
-                       \"ForegroundBoldnessMode\":\"None\", \
-                       \"ForegroundBoldnessAggressiveness\":0, \
-                       \"BackgroundSmoothingMode\":\"None\", \
-                       \"BackgroundSmoothingAggressiveness\":0, \
-                       \"BinarizationMode\":\"iThresholding\", \
-                       \"BinarizationContrast\":0, \
-                       \"MaxDocumentLength\":140, \
-                       \"MultifeedSensitivity\":\"None\", \
-                       \"MultifeedResponse\":\"Stop\", \
-                       \"PostScanRotation\":\"Automatic\", \
-                       \"EdgeFill\":\"Automatic\", \
-                       \"ScanSource\":\"DocumentFeeder\", \
-                       \"ImageBorder\":\"None\", \
-                       \"TransportHandling\":\"Normal\", \
-                       \"JpegQuality\":\"Good\", \
-                       \"DocumentFeederTimeout\":2, \
-                       \"DocumentFeederTimeoutResponse\":\"Stop\", \
-                       \"HoleFill\":0, \
-                       \"CroppingMode\":\"AutomaticStraighten\", \
-                       \"CroppingImage\":\"EntireDocument\", \
-                       \"ImageOffsetX\":0, \
-                       \"ImageOffsetY\":0, \
-                       \"ImageWidth\":10, \
-                       \"ImageHeight\":10 \
-               } \
-       }";
-       response_t* resp = kds_s2000w_client_response_init();
-       resp->code = 200;
-       resp->size = 1251;
-       resp->data = malloc(sizeof(char) * resp->size);
-       memcpy(resp->data, all_options, resp->size);
+       response_t** response_list = (response_t**) *state;
 
-       will_return(mock_response, resp);
+       will_return(mock_response, response_list[3]);
        will_return(__wrap_kds_s2000w_client_get_capabilities, 0);
        expect_function_call(__wrap_kds_s2000w_client_get_capabilities);
 
@@ -950,9 +956,6 @@ void kds_s2000w_handler_available_options_test()
        assert_int_equal(option_mask.boldness_color_group, 0x1fff);
        assert_int_equal(option_mask.image_processing_group, 0x7f);
        assert_int_equal(option_mask.feeder_group, 0x7f);
-
-       kds_s2000w_client_response_free(resp);
-       resp = NULL;
 }
 
 int main()