mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 14:50:05 +00:00
Adding vectorbuf tests for seekg
This commit is contained in:
parent
3ae8eb24ab
commit
a4c67accf3
1 changed files with 61 additions and 15 deletions
|
|
@ -7,30 +7,76 @@ namespace scwx
|
||||||
namespace util
|
namespace util
|
||||||
{
|
{
|
||||||
|
|
||||||
TEST(vectorbuf, smiles)
|
class vectorbuf_test : public ::testing::Test
|
||||||
{
|
{
|
||||||
std::vector<char> v;
|
protected:
|
||||||
vectorbuf vb(v);
|
vectorbuf_test() : v_(), vb_(v_), is_(&vb_), Test() {}
|
||||||
std::istream is(&vb);
|
~vectorbuf_test() = default;
|
||||||
|
|
||||||
v.reserve(7);
|
void SetUp() override
|
||||||
memcpy(v.data(), "smiles", 7);
|
{
|
||||||
vb.update_read_pointers(7);
|
v_.reserve(7);
|
||||||
|
memcpy(v_.data(), "smiles", 7);
|
||||||
|
vb_.update_read_pointers(7);
|
||||||
|
}
|
||||||
|
|
||||||
EXPECT_EQ(is.eof(), false);
|
std::vector<char> v_;
|
||||||
EXPECT_EQ(is.fail(), false);
|
vectorbuf vb_;
|
||||||
|
std::istream is_;
|
||||||
|
};
|
||||||
|
|
||||||
|
TEST_F(vectorbuf_test, smiles)
|
||||||
|
{
|
||||||
|
EXPECT_EQ(is_.eof(), false);
|
||||||
|
EXPECT_EQ(is_.fail(), false);
|
||||||
|
|
||||||
char data[7];
|
char data[7];
|
||||||
is.read(data, 7);
|
is_.read(data, 7);
|
||||||
|
|
||||||
EXPECT_EQ(std::string(data), std::string("smiles"));
|
EXPECT_EQ(std::string(data), std::string("smiles"));
|
||||||
EXPECT_EQ(is.eof(), false);
|
EXPECT_EQ(is_.eof(), false);
|
||||||
EXPECT_EQ(is.fail(), false);
|
EXPECT_EQ(is_.fail(), false);
|
||||||
|
|
||||||
is.read(data, 1);
|
is_.read(data, 1);
|
||||||
|
|
||||||
EXPECT_EQ(is.eof(), true);
|
EXPECT_EQ(is_.eof(), true);
|
||||||
EXPECT_EQ(is.fail(), true);
|
EXPECT_EQ(is_.fail(), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(vectorbuf_test, seekg_begin)
|
||||||
|
{
|
||||||
|
is_.seekg(1, std::ios_base::beg);
|
||||||
|
|
||||||
|
char data[7] = {0};
|
||||||
|
is_.read(data, 6);
|
||||||
|
|
||||||
|
EXPECT_EQ(std::string(data), std::string("miles"));
|
||||||
|
EXPECT_EQ(is_.eof(), false);
|
||||||
|
EXPECT_EQ(is_.fail(), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(vectorbuf_test, seekg_cur)
|
||||||
|
{
|
||||||
|
char data[4] = {0};
|
||||||
|
is_.read(data, 1);
|
||||||
|
is_.seekg(2, std::ios_base::cur);
|
||||||
|
is_.read(data, 3);
|
||||||
|
|
||||||
|
EXPECT_EQ(std::string(data), std::string("les"));
|
||||||
|
EXPECT_EQ(is_.eof(), false);
|
||||||
|
EXPECT_EQ(is_.fail(), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(vectorbuf_test, seekg_end)
|
||||||
|
{
|
||||||
|
is_.seekg(-4, std::ios_base::end);
|
||||||
|
|
||||||
|
char data[4] = {0};
|
||||||
|
is_.read(data, 3);
|
||||||
|
|
||||||
|
EXPECT_EQ(std::string(data), std::string("les"));
|
||||||
|
EXPECT_EQ(is_.eof(), false);
|
||||||
|
EXPECT_EQ(is_.fail(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace util
|
} // namespace util
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue