5#include "testing/testing.h"
20TEST(linear_allocator, AllocationAlignment)
37TEST(linear_allocator, PackedAllocation)
59TEST(linear_allocator, CopyString)
73TEST(linear_allocator, AllocateArray)
81TEST(linear_allocator, Construct)
85 std::array<int, 5> values = {1, 2, 3, 4, 5};
92TEST(linear_allocator, ConstructElementsAndPointerArray)
96 std::array<int, 7> values = {1, 2, 3, 4, 5, 6, 7};
109TEST(linear_allocator, ConstructArrayCopy)
116 EXPECT_NE(span1.
data(), span2.
data());
123TEST(linear_allocator, AllocateLarge)
126 void *buffer1 = allocator.
allocate(1024 * 1024, 8);
127 void *buffer2 = allocator.
allocate(1024 * 1024, 8);
128 EXPECT_NE(buffer1, buffer2);
131TEST(linear_allocator, ManyAllocations)
135 for (
int i = 0; i < 1000; i++) {
138 void *buffer = allocator.
allocate(size, alignment);
139 EXPECT_NE(buffer,
nullptr);
143TEST(linear_allocator, ConstructArray)
151 for (std::string &
string : strings) {
152 string.~basic_string();
156TEST(linear_allocator, TransferOwnership)
163 const int size = 1'000'000;
164 const int value = 42;
165 const int index = 500'000;
169 values[index] = value;
EXPECT_EQ(BLI_expr_pylike_eval(expr, nullptr, 0, &result), EXPR_PYLIKE_INVALID)
#define POINTER_AS_UINT(i)
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
destruct_ptr< T > construct(Args &&...args)
void provide_buffer(void *buffer, const int64_t size)
MutableSpan< T > allocate_array(int64_t size)
StringRefNull copy_string(StringRef str)
void * allocate(const int64_t size, const int64_t alignment)
MutableSpan< T > construct_array(int64_t size, Args &&...args)
Span< T * > construct_elements_and_pointer_array(int64_t n, Args &&...args)
MutableSpan< T > construct_array_copy(Span< T > src)
void transfer_ownership_from(LinearAllocator<> &other)
constexpr int64_t size() const
constexpr T * data() const
constexpr int64_t size() const
constexpr const char * data() const
static bool is_aligned(void *ptr, uint alignment)
TEST(any, DefaultConstructor)
_W64 unsigned int uintptr_t