diff --git a/include/utils/memory/stack_allocator.hpp b/include/utils/memory/stack_allocator.hpp index 287bdad6a..15623e49d 100644 --- a/include/utils/memory/stack_allocator.hpp +++ b/include/utils/memory/stack_allocator.hpp @@ -3,6 +3,7 @@ #include #include "utils/exceptions/out_of_memory.hpp" +#include "utils/likely.hpp" #include "utils/memory/block_allocator.hpp" // http://en.cppreference.com/w/cpp/language/new diff --git a/tests/unit/block_allocator.cpp b/tests/unit/block_allocator.cpp index 35bf9cfdc..e2de1e405 100644 --- a/tests/unit/block_allocator.cpp +++ b/tests/unit/block_allocator.cpp @@ -14,7 +14,7 @@ TEST(BlockAllocatorTest, UnusedVsReleaseSize) TEST(BlockAllocatorTest, CountMallocAndFreeCalls) { // TODO: implementation - EXPECT_EQ(true, true); + EXPECT_EQ(true, false); } int main(int argc, char **argv) diff --git a/tests/unit/stack_allocator.cpp b/tests/unit/stack_allocator.cpp new file mode 100644 index 000000000..006ffbe36 --- /dev/null +++ b/tests/unit/stack_allocator.cpp @@ -0,0 +1,34 @@ +#include "gtest/gtest.h" + +#include "utils/memory/stack_allocator.hpp" + +struct Object +{ + int a; + int b; + + Object(int a, int b) : a(a), b(b) {} +}; + +TEST(StackAllocatorTest, AllocationAndObjectValidity) +{ + StackAllocator allocator; + for (int i = 0; i < 64 * 1024; ++i) + { + auto object = allocator.make(1, 2); + ASSERT_EQ(object->a, 1); + ASSERT_EQ(object->b, 2); + } +} + +TEST(StackAllocatorTest, CountMallocAndFreeCalls) +{ + // TODO: implementation + EXPECT_EQ(true, false); +} + +int main(int argc, char **argv) +{ + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +}