From f2af73f08887db5c3b96bf47a926ba5bdb188085 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sun, 11 Feb 2024 21:43:24 +0100 Subject: [PATCH] fix first byte data --- src/kds_s2000w_net.c | 2 ++ tests/kds_s2000w_net_tests.c | 43 +++++++++++++++++++++++++++++++----- tests/runtests.c | 1 + 3 files changed, 41 insertions(+), 5 deletions(-) diff --git a/src/kds_s2000w_net.c b/src/kds_s2000w_net.c index 3323eff..22c4b47 100644 --- a/src/kds_s2000w_net.c +++ b/src/kds_s2000w_net.c @@ -39,6 +39,8 @@ int _sane_kds_s2000w_net_find_first_data_byte(const char* data) byte_count++; } + byte_count++; + return byte_count; } diff --git a/tests/kds_s2000w_net_tests.c b/tests/kds_s2000w_net_tests.c index 28f355e..ff51461 100644 --- a/tests/kds_s2000w_net_tests.c +++ b/tests/kds_s2000w_net_tests.c @@ -24,7 +24,7 @@ START_TEST(sane_kds_s2000w_net_find_first_data_byte_test) int header_bytes = _sane_kds_s2000w_net_find_first_data_byte(data); - ck_assert_int_eq(header_bytes, 16); + ck_assert_int_eq(header_bytes, 17); } END_TEST @@ -70,7 +70,7 @@ START_TEST(sane_kds_s2000w_net_read_all_lines_test) } ck_assert_int_eq(status, SANE_STATUS_EOF); - ck_assert_int_eq(read_info->read_size, 53); + ck_assert_int_eq(read_info->read_size, 54); free(dataptr); dataptr = NULL; @@ -101,8 +101,8 @@ START_TEST(sane_kds_s2000w_net_read_test) _sane_kds_s2000w_net_read(NULL, (void*) dataptr, maxlen, length); ck_assert_int_eq(*length, 65536); - ck_assert_mem_eq(dataptr, image + 3, 65536); - ck_assert_int_eq(read_info->read_size, 65539); + ck_assert_mem_eq(dataptr, image + 4, 65536); + ck_assert_int_eq(read_info->read_size, 65540); free(dataptr); dataptr = NULL; @@ -134,7 +134,40 @@ START_TEST(sane_kds_s2000w_net_read_bytes_per_line_bigger_test) _sane_kds_s2000w_net_read(NULL, (void*) dataptr, maxlen, length); _sane_kds_s2000w_net_read(NULL, (void*) dataptr, maxlen, length); - ck_assert_int_eq(read_info->read_size, 95003); + ck_assert_int_eq(read_info->read_size, 95004); + + free(dataptr); + dataptr = NULL; + free(length); + length = NULL; + free(image); + image = NULL; +} +END_TEST + +START_TEST(sane_kds_s2000w_net_read_rgb_test) +{ + readinfo* read_info = get_read_info(); + read_info->read_size = 0; + read_info->current_metadata.lines = 1; + read_info->current_metadata.bytes_per_line = 65536; + char* image = malloc(sizeof(char) * 65539); + for (int i = 0; i < 3; i++) { + image[i] = 0x0a; + } + image[4] = 0xa2; + image[5] = 0x89; + image[6] = 0x04; + read_info->current_metadata.image = image; + + SANE_Int maxlen = 65536; + uint* dataptr = malloc(sizeof(char) * maxlen); + SANE_Int* length = malloc(sizeof(SANE_Int)); + + _sane_kds_s2000w_net_read(NULL, (void*) dataptr, maxlen, length); + + const uint assert_mem = 0xa28904ff; + //ck_assert_mem_eq(dataptr, &assert_mem, 16); free(dataptr); dataptr = NULL; diff --git a/tests/runtests.c b/tests/runtests.c index ca24e29..731759d 100644 --- a/tests/runtests.c +++ b/tests/runtests.c @@ -14,6 +14,7 @@ Suite* first_tests() tcase_add_test(tc_core, sane_kds_s2000w_net_read_all_lines_test); tcase_add_test(tc_core, sane_kds_s2000w_net_read_test); tcase_add_test(tc_core, sane_kds_s2000w_net_read_bytes_per_line_bigger_test); + tcase_add_test(tc_core, sane_kds_s2000w_net_read_rgb_test); suite_add_tcase(suite, tc_core); -- 2.39.5