]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
add tst for second metdata
authorBastian Dehn <hhaalo@arcor.de>
Sat, 17 Feb 2024 08:28:15 +0000 (09:28 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sat, 17 Feb 2024 08:28:15 +0000 (09:28 +0100)
src/kds_s2000w_net.c
tests/kds_s2000w_net_get_params_tests.c
tests/runtests.c

index e81b8239c9672d92ae8c72b63402ca0766ee7681..72531b125e9615f4fd34fd989d29d491a18f4c7a 100644 (file)
@@ -8,9 +8,10 @@
 #include "kds_s2000w_debug.h"
 
 typedef struct {
+       int scan_started;
+       int second_metadata;
        int cancel;
        int read_size;
-       int scan_started;
        int readed_bytes_per_line;
        int readed_lines;
        metadata current_metadata;
@@ -146,6 +147,17 @@ SANE_Status _sane_kds_s2000w_net_get_parameters(SANE_Handle handle,
        if (!read_info.scan_started)
                return SANE_STATUS_GOOD;
 
+       if (read_info.second_metadata) {
+               read_info.second_metadata = 0;
+               params->format = read_info.current_metadata.format;
+               params->last_frame = read_info.current_metadata.is_last;
+               params->bytes_per_line = read_info.current_metadata.bytes_per_line;
+               params->pixels_per_line = read_info.current_metadata.pixels_per_line;
+               params->lines = read_info.current_metadata.lines;
+               params->depth = read_info.current_metadata.depth;
+               return SANE_STATUS_GOOD;
+       }
+
        for (int i = 0; i < 10; i++) {
                sleep(1);
                read_info.current_metadata = kds_s2000w_handler_get_parameters();
@@ -165,6 +177,7 @@ SANE_Status _sane_kds_s2000w_net_get_parameters(SANE_Handle handle,
        read_info.read_size = 0;
        read_info.readed_lines = 0;
        read_info.readed_bytes_per_line = 0;
+       read_info.second_metadata = 1;
 
        debug_printf_int(DEBUG, "format", params->format);
        debug_printf_int(DEBUG, "last frame", params->last_frame);
index 855d73ab45f85cfb345af00bf092b1b713b0548a..d99f094a7dbb5456cf29e1e9d9fb54ec0d37ba26 100644 (file)
@@ -57,6 +57,37 @@ START_TEST(kds_s2000w_net_get_parameters_first_scan_params)
        ck_assert_int_eq(params->pixels_per_line, 100);
        ck_assert_int_eq(params->lines, 32);
        ck_assert_int_eq(params->depth, 8);
+       ck_assert_int_eq(read_info->second_metadata, 1);
+       
+       free(params);
+       params = NULL;
+}
+END_TEST
+
+START_TEST(kds_s2000w_net_get_parameters_second_scan_params)
+{
+       readinfo* read_info = get_read_info();
+       read_info->scan_started = 1;
+       mdata.valid = 1;
+       mdata.format = 1;
+       mdata.is_last = 1;
+       mdata.bytes_per_line = 50;
+       mdata.pixels_per_line = 100;
+       mdata.lines = 32;
+       mdata.depth = 8;
+       SANE_Parameters* params = malloc(sizeof(SANE_Parameters));
+
+       _sane_kds_s2000w_net_get_parameters(NULL, params);
+       read_info->second_metadata = 1;
+       _sane_kds_s2000w_net_get_parameters(NULL, params);
+
+       ck_assert_int_eq(params->format, 1);
+       ck_assert_int_eq(params->last_frame, 1);
+       ck_assert_int_eq(params->bytes_per_line, 50);
+       ck_assert_int_eq(params->pixels_per_line, 100);
+       ck_assert_int_eq(params->lines, 32);
+       ck_assert_int_eq(params->depth, 8);
+       ck_assert_int_eq(read_info->second_metadata, 0);
        
        free(params);
        params = NULL;
index 5043b435a8c6d8e31b32b413999bb7d1b416c9bc..139d59a4adc16f19e9f6589edbbdaa40a81777e3 100644 (file)
@@ -46,6 +46,7 @@ Suite* get_params()
        tcase_add_test(net_get_params, kds_s2000w_net_get_parameters_defaults);
        tcase_add_test(net_get_params, kds_s2000w_net_get_parameters_invalid_metdata);
        tcase_add_test(net_get_params, kds_s2000w_net_get_parameters_first_scan_params);
+       tcase_add_test(net_get_params, kds_s2000w_net_get_parameters_second_scan_params);
 
        suite_add_tcase(get_params, net_get_params);
        return get_params;