From: Bastian Dehn Date: Sat, 17 Feb 2024 08:28:15 +0000 (+0100) Subject: add tst for second metdata X-Git-Tag: v1.0.0^2~262 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=f4d30c4f510ae1d3612720899d81ca9810c3965a;p=sane-kds-s2000w-net.git add tst for second metdata --- diff --git a/src/kds_s2000w_net.c b/src/kds_s2000w_net.c index e81b823..72531b1 100644 --- a/src/kds_s2000w_net.c +++ b/src/kds_s2000w_net.c @@ -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); diff --git a/tests/kds_s2000w_net_get_params_tests.c b/tests/kds_s2000w_net_get_params_tests.c index 855d73a..d99f094 100644 --- a/tests/kds_s2000w_net_get_params_tests.c +++ b/tests/kds_s2000w_net_get_params_tests.c @@ -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; diff --git a/tests/runtests.c b/tests/runtests.c index 5043b43..139d59a 100644 --- a/tests/runtests.c +++ b/tests/runtests.c @@ -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;