diff options
Diffstat (limited to 'lib/io/test/istream_read.c')
| -rw-r--r-- | lib/io/test/istream_read.c | 105 | 
1 files changed, 0 insertions, 105 deletions
| diff --git a/lib/io/test/istream_read.c b/lib/io/test/istream_read.c deleted file mode 100644 index 66fec4b..0000000 --- a/lib/io/test/istream_read.c +++ /dev/null @@ -1,105 +0,0 @@ -/* SPDX-License-Identifier: GPL-3.0-or-later */ -/* - * istream_read.c - * - * Copyright (C) 2023 David Oberhollenzer <goliath@infraroot.at> - */ -#include "config.h" - -#include "io/istream.h" -#include "util/test.h" -#include "io/mem.h" - -static const sqfs_u64 end0 = 449;	/* region 1: filled with 'A' */ -static const sqfs_u64 end1 = 521;	/* region 2: filled with 'B' */ -static const sqfs_u64 end2 = 941;	/* region 3: filled with 'C' */ - -static sqfs_u8 rd_buffer[941]; - -static sqfs_u8 byte_at_offset(sqfs_u64 off) -{ -	if (off < end0) -		return 'A'; -	if (off < end1) -		return 'B'; -	return 'C'; -} - -static void init_rd_buffer(void) -{ -	for (size_t i = 0; i < end2; ++i) -		rd_buffer[i] = byte_at_offset(i); -} - -int main(int argc, char **argv) -{ -	sqfs_u8 read_buffer[61]; -	sqfs_u64 read_off = 0; -	sqfs_istream_t *dummy; -	(void)argc; (void)argv; - -	init_rd_buffer(); -	dummy = istream_memory_create("dummy file", 103, -				      rd_buffer, sizeof(rd_buffer)); -	TEST_NOT_NULL(dummy); - -	/* region 1 */ -	while (read_off < end0) { -		size_t read_diff = end0 - read_off; - -		if (read_diff > sizeof(read_buffer)) -			read_diff = sizeof(read_buffer); - -		int ret = istream_read(dummy, read_buffer, read_diff); -		TEST_ASSERT(ret > 0); -		TEST_ASSERT((size_t)ret <= read_diff); - -		for (int i = 0; i < ret; ++i) { -			TEST_EQUAL_UI(read_buffer[i], 'A'); -		} - -		read_off += ret; -	} - -	/* region 2 */ -	while (read_off < end1) { -		size_t read_diff = end1 - read_off; - -		if (read_diff > sizeof(read_buffer)) -			read_diff = sizeof(read_buffer); - -		int ret = istream_read(dummy, read_buffer, read_diff); -		TEST_ASSERT(ret > 0); -		TEST_ASSERT((size_t)ret <= read_diff); - -		for (int i = 0; i < ret; ++i) { -			TEST_EQUAL_UI(read_buffer[i], 'B'); -		} - -		read_off += ret; -	} - -	/* region 3 */ -	for (;;) { -		size_t read_diff = sizeof(read_buffer); - -		int ret = istream_read(dummy, read_buffer, read_diff); -		TEST_ASSERT(ret >= 0); -		TEST_ASSERT((size_t)ret <= read_diff); - -		if (ret == 0) { -			TEST_EQUAL_UI(read_off, end2); -			break; -		} - -		for (int i = 0; i < ret; ++i) { -			TEST_EQUAL_UI(read_buffer[i], 'C'); -		} - -		read_off += ret; -		TEST_ASSERT(read_off <= end2); -	} - -	sqfs_drop(dummy); -	return EXIT_SUCCESS; -} | 
