Disallow AlignedBuffer < 8 bytes; add oddball buffer sizes

This commit is contained in:
Jason Rhinelander 2019-12-19 16:17:02 -04:00
parent d57d6bfc6d
commit 1b710455a7
2 changed files with 8 additions and 5 deletions

View File

@ -36,6 +36,8 @@ namespace llarp
struct alignas(std::max_align_t) AlignedBuffer
#endif
{
static_assert(sz >= 8, "AlignedBuffer cannot be used with buffers smaller than 8 bytes");
static constexpr size_t SIZE = sz;
using Data = std::array< byte_t, SIZE >;

View File

@ -7,13 +7,14 @@
#include <type_traits>
#include <unordered_map>
using TestSizes = ::testing::Types< std::integral_constant< std::size_t, 2 >,
std::integral_constant< std::size_t, 3 >,
std::integral_constant< std::size_t, 4 >,
std::integral_constant< std::size_t, 8 >,
using TestSizes = ::testing::Types< std::integral_constant< std::size_t, 8 >,
std::integral_constant< std::size_t, 12 >,
std::integral_constant< std::size_t, 16 >,
std::integral_constant< std::size_t, 32 >,
std::integral_constant< std::size_t, 64 > >;
std::integral_constant< std::size_t, 64 >,
std::integral_constant< std::size_t, 77 >,
std::integral_constant< std::size_t, 1024 >,
std::integral_constant< std::size_t, 3333 > >;
template < typename T >
struct AlignedBufferTest : public ::testing::Test