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
}
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;
_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;
_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;
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);