int _sane_kds_s2000w_net_find_first_data_byte(const char* data)
{
debug_printf(ALL, "sane_kds_s2000w_net_find_first_data_byte");
- const int header_spaces = 3;
+ int header_spaces = 3;
+
+ if (strncmp(data, "P4", 2) == 0)
+ header_spaces = 2;
+
const char space = 0x0a;
int space_count = 0;
int byte_count = 0;
h = NULL;
}
+void sane_kds_s2000w_net_read_bw_test()
+{
+ handler* h = init_handler();
+ h->pnm_image->size = 655541;
+ h->pnm_image->data = malloc(sizeof(char) * 65541);
+ char* imagedata = (char*) h->pnm_image->data;
+ imagedata[0] = 'P';
+ imagedata[1] = '4';
+ for (int i = 2; i < 4; i++) {
+ imagedata[i] = 0x0a;
+ }
+ for (int i = 4; i < 65541; i++) {
+ imagedata[i] = 0xff;
+ }
+
+ SANE_Int maxlen = 65536;
+ char* dataptr = malloc(sizeof(char) * maxlen);
+ SANE_Int* length = malloc(sizeof(SANE_Int));
+
+ _sane_kds_s2000w_net_read(h, (void*) dataptr, maxlen, length);
+
+ assert_int_equal(*length, 65536);
+ assert_memory_equal(dataptr, h->pnm_image->data + 5, 65536);
+ assert_int_equal(h->read_info->read_size, 65540);
+
+ free(dataptr);
+ dataptr = NULL;
+ free(length);
+ length = NULL;
+ free(h->pnm_image->data);
+ h->pnm_image->data = NULL;
+ free_handler(h);
+ h = NULL;
+}
+
void sane_kds_s2000w_net_read_bytes_per_line_bigger_test()
{
handler* h = init_handler();
void sane_kds_s2000w_net_read_without_data();
void sane_kds_s2000w_net_read_empty_image();
void sane_kds_s2000w_net_read_test();
+void sane_kds_s2000w_net_read_bw_test();
void sane_kds_s2000w_net_read_bytes_per_line_bigger_test();
#endif
\ No newline at end of file
cmocka_unit_test(sane_kds_s2000w_net_read_without_data),
cmocka_unit_test(sane_kds_s2000w_net_read_empty_image),
cmocka_unit_test(sane_kds_s2000w_net_read_test),
+ cmocka_unit_test(sane_kds_s2000w_net_read_bw_test),
cmocka_unit_test(sane_kds_s2000w_net_read_bytes_per_line_bigger_test)
};