From 071a89418141c7b396af483eb3602a0a034dac72 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sun, 11 Feb 2024 19:13:41 +0100 Subject: [PATCH] check read five lines --- src/kds_s2000w_net.c | 2 +- tests/kds_s2000w_net_tests.c | 19 ++++++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/kds_s2000w_net.c b/src/kds_s2000w_net.c index cd7ea9b..c9d7027 100644 --- a/src/kds_s2000w_net.c +++ b/src/kds_s2000w_net.c @@ -298,9 +298,9 @@ SANE_Status _sane_kds_s2000w_net_read(SANE_Handle handle, SANE_Byte* data, readed_bytes_per_line += *length; read_size += *length; - printf("read size %i\n", read_size); if (readed_bytes_per_line >= current_metadata.bytes_per_line) { + readed_bytes_per_line = 0; readed_lines++; } diff --git a/tests/kds_s2000w_net_tests.c b/tests/kds_s2000w_net_tests.c index 051eee7..4cfbab1 100644 --- a/tests/kds_s2000w_net_tests.c +++ b/tests/kds_s2000w_net_tests.c @@ -49,23 +49,32 @@ START_TEST(sane_kds_s2000w_net_read_all_lines_test) int* cancel = get_cancel(); *cancel = 0; metadata* current_metadata_ptr = get_current_metadata(); - char* image = malloc(sizeof(char) * 4); + char* image = malloc(sizeof(char) * 53); for (int i = 0; i < 3; i++) { image[i] = 0x0a; } image[4] = 0xff; - current_metadata.image = image; - current_metadata_ptr->lines = 1; + current_metadata_ptr->image = image; + current_metadata_ptr->bytes_per_line = 10; + current_metadata_ptr->lines = 5; + int* readed_lines = get_readed_lines(); *readed_lines = 0; int* length = malloc(sizeof(int)); *length = 0; - _sane_kds_s2000w_net_read(NULL, NULL, 0, length); - SANE_Status status = _sane_kds_s2000w_net_read(NULL, NULL, 0, length); + SANE_Int maxlen = 65536; + char* dataptr = malloc(sizeof(char) * maxlen); + + SANE_Status status = 0; + for (int i = 0; i < 6; i++) { + status = _sane_kds_s2000w_net_read(NULL, dataptr, 65535, length); + } ck_assert_int_eq(status, SANE_STATUS_EOF); + free(dataptr); + dataptr = NULL; free(length); length = NULL; free(image); -- 2.39.5