Merge pull request #6559

15538f7 ByteSlice: Fix persisting ptr to std::moved SSO buffer (Doy-lee)
This commit is contained in:
luigi1111 2020-07-08 17:07:50 -05:00
commit 35e2520115
No known key found for this signature in database
GPG key ID: F4ACA0183641E010
2 changed files with 27 additions and 1 deletions

View file

@ -387,6 +387,29 @@ TEST(ByteSlice, Construction)
EXPECT_FALSE(std::is_copy_assignable<epee::byte_slice>());
}
TEST(ByteSlice, DataReturnedMatches)
{
for (int i = 64; i > 0; i--)
{
std::string sso_string(i, 'a');
std::string original = sso_string;
epee::byte_slice slice{std::move(sso_string)};
EXPECT_EQ(slice.size(), original.size());
EXPECT_EQ(memcmp(slice.data(), original.data(), original.size()), 0);
}
for (int i = 64; i > 0; i--)
{
std::vector<uint8_t> sso_vector(i, 'a');
std::vector<uint8_t> original = sso_vector;
epee::byte_slice slice{std::move(sso_vector)};
EXPECT_EQ(slice.size(), original.size());
EXPECT_EQ(memcmp(slice.data(), original.data(), original.size()), 0);
}
}
TEST(ByteSlice, NoExcept)
{
EXPECT_TRUE(std::is_nothrow_default_constructible<epee::byte_slice>());