test-istream-concat.c revision 0536ccb51d41e3078c3a9fa33e509fb4b2420f95
bcb4e51a409d94ae670de96afb8483a4f7855294Stephan Bosch/* Copyright (c) 2009-2011 Dovecot authors, see the included COPYING file */
e8762c2b4914db7997fa9eb644a91586952d1876Timo Sirainenstatic void test_istream_concat_one(unsigned int buffer_size)
c59b9c273b41f7bcf51f6803110b67813879ff05Timo Sirainen const unsigned char *data;
b9f564d00b7a115f465ffd6840341c7b8f9bfc8aTimo Sirainen unsigned int i, j;
b9f564d00b7a115f465ffd6840341c7b8f9bfc8aTimo Sirainen for (i = 0; i < STREAM_COUNT; i++) {
b9f564d00b7a115f465ffd6840341c7b8f9bfc8aTimo Sirainen streams[i] = test_istream_create(input_string);
b9f564d00b7a115f465ffd6840341c7b8f9bfc8aTimo Sirainen for (i = 0; i/STREAM_BYTES < STREAM_COUNT; i++) {
98449946caeaf8a3b413a0d93128315b158cbffbTimo Sirainen test_istream_set_size(streams[i/STREAM_BYTES], (i%STREAM_BYTES) + 1);
b9f564d00b7a115f465ffd6840341c7b8f9bfc8aTimo Sirainen for (j = 0; j < size; j++) {
b9f564d00b7a115f465ffd6840341c7b8f9bfc8aTimo Sirainen test_assert((char)data[j] == input_string[(input->v_offset + j) % STREAM_BYTES]);
d4002fe1f64d25a792f76fb102ef7dc519cd4e24Martti Rannanjärvistatic void test_istream_concat_random(void)
b9f564d00b7a115f465ffd6840341c7b8f9bfc8aTimo Sirainen const unsigned char *data;
b9f564d00b7a115f465ffd6840341c7b8f9bfc8aTimo Sirainen unsigned char *w_data;
b9f564d00b7a115f465ffd6840341c7b8f9bfc8aTimo Sirainen unsigned int i, j, offset, stream_count, data_len;
b9f564d00b7a115f465ffd6840341c7b8f9bfc8aTimo Sirainen streams = t_new(struct istream *, stream_count + 1);
b9f564d00b7a115f465ffd6840341c7b8f9bfc8aTimo Sirainen for (i = 0, offset = 0; i < stream_count; i++) {
b9f564d00b7a115f465ffd6840341c7b8f9bfc8aTimo Sirainen for (j = 0; j < data_len; j++)
b9f564d00b7a115f465ffd6840341c7b8f9bfc8aTimo Sirainen streams[i] = test_istream_create_data(w_data, data_len);
98449946caeaf8a3b413a0d93128315b158cbffbTimo Sirainen for (i = 0; i < 100; i++) {
b9f564d00b7a115f465ffd6840341c7b8f9bfc8aTimo Sirainen for (j = 0; j < size; j++) {
c59b9c273b41f7bcf51f6803110b67813879ff05Timo Sirainen test_assert(data[j] == (input->v_offset + j) % 256);
b9f564d00b7a115f465ffd6840341c7b8f9bfc8aTimo Sirainen for (i = 0; i < stream_count; i++)
e8762c2b4914db7997fa9eb644a91586952d1876Timo Sirainen unsigned int i;
e8762c2b4914db7997fa9eb644a91586952d1876Timo Sirainen for (i = 1; i < STREAM_BYTES*STREAM_COUNT; i++) {