Exemplo n.º 1
0
TEST(test_buffer, read_unsigned) {
  err_code_t err;
  char str[] = "1024 768\r798";
  size_t len_str = 12;
  DataBlock::setMinCapacity(MIN_DATABLOCK_CAPACITY);

  BufferReader reader;
  reader.write(str, len_str);
  uint64_t val;
  TEST_READ_UNSIGNED_NO_THROW(val);
  ASSERT_EQ(val, 1024ULL);

  EXPECT_EQ(reader.peek(err, 0), ' ');
  ASSERT_EQ(err, RET_OK);;
  TEST_SKIP_BYTES_NO_THROW(1);

  TEST_READ_UNSIGNED_NO_THROW(val);
  ASSERT_EQ(val, 768ULL);

  EXPECT_EQ(reader.peek(err, 0), '\r');
  ASSERT_EQ(err, RET_OK);;
  TEST_SKIP_BYTES_NO_THROW(1);

  reader.readUnsigned(err, val);
  ASSERT_EQ(err, RET_INCOMPLETE_BUFFER_ERR);

  TEST_SKIP_BYTES_NO_THROW(3);
}
Exemplo n.º 2
0
TEST(test_buffer, read_unsigned_empty) {
  err_code_t err;
  char str[] = "6";
  size_t len_str = strlen(str);
  uint64_t val;
  DataBlock::setMinCapacity(MIN_DATABLOCK_CAPACITY);
  BufferReader reader;
  reader.readUnsigned(err, val);
  ASSERT_EQ(err, RET_INCOMPLETE_BUFFER_ERR);

  reader.write(str, len_str);
  reader.readUnsigned(err, val);
  ASSERT_EQ(err, RET_INCOMPLETE_BUFFER_ERR);

  TEST_SKIP_BYTES_NO_THROW(len_str);
}
Exemplo n.º 3
0
TEST(test_buffer, read_unsigned_across_block) {
  err_code_t err;
  DataBlock::setMinCapacity(5);
  BufferReader reader;
  reader.write(CSTR("12345"), 5);
  reader.write(CSTR("6 89 "), 5);
  reader.write(CSTR("423 0"), 5);
  reader.write(CSTR(" 10\r\n"), 5);

  uint64_t val;
  TEST_READ_UNSIGNED_NO_THROW(val);
  ASSERT_EQ(val, 123456ULL);

  EXPECT_EQ(reader.peek(err, 0), ' ');
  ASSERT_EQ(err, RET_OK);;
  TEST_SKIP_BYTES_NO_THROW(1);

  TEST_READ_UNSIGNED_NO_THROW(val);
  ASSERT_EQ(val, 89ULL);

  EXPECT_EQ(reader.peek(err, 0), ' ');
  ASSERT_EQ(err, RET_OK);;
  TEST_SKIP_BYTES_NO_THROW(1);

  TEST_READ_UNSIGNED_NO_THROW(val);
  ASSERT_EQ(val, 423ULL);

  EXPECT_EQ(reader.peek(err, 0), ' ');
  ASSERT_EQ(err, RET_OK);;
  TEST_SKIP_BYTES_NO_THROW(1);

  TEST_READ_UNSIGNED_NO_THROW(val);
  ASSERT_EQ(val, 0ULL);

  EXPECT_EQ(reader.peek(err, 0), ' ');
  ASSERT_EQ(err, RET_OK);;
  TEST_SKIP_BYTES_NO_THROW(1);

  TEST_READ_UNSIGNED_NO_THROW(val);
  ASSERT_EQ(val, 10ULL);

  reader.readUnsigned(err, val);
  ASSERT_EQ(err, RET_PROGRAMMING_ERR);
  TEST_SKIP_BYTES_NO_THROW(2);
}