return &readed_lines;
}
+int* get_readed_bytes_per_line()
+{
+ return &readed_bytes_per_line;
+}
+
int _sane_kds_s2000w_net_find_first_data_byte(const char* data)
{
const int header_spaces = 3;
return SANE_STATUS_EOF;
}
- int maxlen = 0;
- if (current_metadata.bytes_per_line < max_length) {
+ int maxlen = max_length;
+ if (current_metadata.bytes_per_line - readed_bytes_per_line < max_length)
maxlen = current_metadata.bytes_per_line - readed_bytes_per_line;
- } else {
- maxlen = max_length - readed_bytes_per_line;
- }
*length = maxlen;
memcpy(data, current_metadata.image + read_size, *length);
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++;
}
}
END_TEST
+START_TEST(sane_kds_s2000w_net_read_cancel_test)
+{
+ int* length = malloc(sizeof(int));
+ *length = 0;
+ int* cancel = get_cancel();
+ *cancel = 1;
+
+ SANE_Status status = _sane_kds_s2000w_net_read(NULL, NULL, 0, length);
+
+ ck_assert_int_eq(status, SANE_STATUS_CANCELLED);
+
+ free(length);
+ length = NULL;
+}
+END_TEST
+
+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);
+ for (int i = 0; i < 3; i++) {
+ image[i] = 0x0a;
+ }
+ image[4] = 0xff;
+ current_metadata.image = image;
+ current_metadata_ptr->lines = 1;
+ 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);
+
+ ck_assert_int_eq(status, SANE_STATUS_EOF);
+
+ free(length);
+ length = NULL;
+ free(image);
+ image = NULL;
+}
+END_TEST
+
START_TEST(sane_kds_s2000w_net_read_test)
{
int* read_size_ptr = get_read_size();
metadata* current_metadata_ptr = get_current_metadata();
int* read_size = get_read_size();
*read_size = 0;
- current_metadata_ptr->scanned_all_complete = 1;
current_metadata_ptr->lines = 1;
current_metadata_ptr->bytes_per_line = 65536;
char* image = malloc(sizeof(char) * 65539);
}
END_TEST
-START_TEST(sane_kds_s2000w_net_read_cancel_test)
-{
- int* length = malloc(sizeof(int));
- *length = 0;
- int* cancel = get_cancel();
- *cancel = 1;
-
- SANE_Status status = _sane_kds_s2000w_net_read(NULL, NULL, 0, length);
-
- ck_assert_int_eq(status, SANE_STATUS_CANCELLED);
-
- free(length);
- length = NULL;
-}
-END_TEST
-START_TEST(sane_kds_s2000w_net_read_all_lines_test)
+START_TEST(sane_kds_s2000w_net_read_bytes_per_line_bigger_test)
{
- int* cancel = get_cancel();
- *cancel = 0;
+ int* read_size_ptr = get_read_size();
+ *read_size_ptr = 0;
metadata* current_metadata_ptr = get_current_metadata();
- char* image = malloc(sizeof(char) * 4);
+ int* read_size = get_read_size();
+ *read_size = 0;
+ int* readed_bytes_per_line = get_readed_bytes_per_line();
+ readed_bytes_per_line = 0;
+ current_metadata_ptr->lines = 1;
+ current_metadata_ptr->bytes_per_line = 95000;
+ char* image = malloc(sizeof(char) * 95003);
for (int i = 0; i < 3; i++) {
image[i] = 0x0a;
}
image[4] = 0xff;
- current_metadata.image = image;
- current_metadata_ptr->lines = 1;
- int* readed_lines = get_readed_lines();
- *readed_lines = 0;
- int* length = malloc(sizeof(int));
- *length = 0;
+ current_metadata_ptr->image = image;
- _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_Int* length = malloc(sizeof(SANE_Int));
- ck_assert_int_eq(status, SANE_STATUS_EOF);
+ _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_size_ptr, 95003);
+ free(dataptr);
+ dataptr = NULL;
free(length);
length = NULL;
free(image);