TEST(test_buffer, peek) { BufferReader reader; char str[] = "1024233"; size_t len_str = strlen(str); DataBlock::setMinCapacity(len_str); reader.write(str, len_str); reader.write(CSTR(" "), 1); reader.write(str, len_str); EXPECT_EQ(reader.size(), len_str * 2 + 1); EXPECT_EQ(reader.capacity(), DataBlock::minCapacity() * 3); EXPECT_EQ(reader.readLeft(), len_str * 2 + 1); err_code_t err; ASSERT_EQ(reader.peek(err, 0), str[0]); ASSERT_EQ(err, RET_OK); for (size_t i = 0; i < len_str; i++) { ASSERT_EQ(reader.peek(err, i), str[i]); ASSERT_EQ(err, RET_OK); } ASSERT_EQ(reader.peek(err, len_str), ' '); ASSERT_EQ(err, RET_OK); for (size_t i = len_str + 1; i < 2 * len_str + 1; i++) { ASSERT_EQ(reader.peek(err, i), str[i - len_str - 1]); ASSERT_EQ(err, RET_OK); } reader.peek(err, 2 * len_str + 1); ASSERT_EQ(err, RET_INCOMPLETE_BUFFER_ERR); ASSERT_EQ(reader.nDataBlock(), 3); TEST_SKIP_BYTES_NO_THROW(2 * len_str + 1); }
TEST(test_buffer, peek_one) { err_code_t err = RET_OK; BufferReader reader; DataBlock::setMinCapacity(0x2B); reader.write(CSTR("\x2B"), 1); ASSERT_EQ(reader.size(), 1); ASSERT_EQ(reader.readLeft(), 1); ASSERT_EQ(reader.nDataBlock(), 1); ASSERT_EQ(reader.peek(err, 0), '\x2B'); ASSERT_EQ(err, RET_OK); ASSERT_EQ(reader.peek(err, 0), '\x2B'); ASSERT_EQ(err, RET_OK); reader.peek(err, 1); ASSERT_EQ(err, RET_INCOMPLETE_BUFFER_ERR); reader.peek(err, 2); ASSERT_EQ(err, RET_INCOMPLETE_BUFFER_ERR); reader.write(CSTR("-~"), 2); ASSERT_EQ(reader.peek(err, 1), '-'); ASSERT_EQ(err, RET_OK); ASSERT_EQ(reader.peek(err, 2), '~'); ASSERT_EQ(err, RET_OK); reader.peek(err, 3); ASSERT_EQ(err, RET_INCOMPLETE_BUFFER_ERR); TEST_SKIP_BYTES_NO_THROW(3); }