diff --git a/include/Cougar/FixedSizeAllocator.h b/include/Cougar/FixedSizeAllocator.h index 9218c00..f72a5b4 100644 --- a/include/Cougar/FixedSizeAllocator.h +++ b/include/Cougar/FixedSizeAllocator.h @@ -369,11 +369,11 @@ struct FirstFitStackBase : public StackStorage { FirstFitStackBase() : Base() { std::memset(in_use_, FREE_, MAX_SIZE); } FirstFitStackBase(const FirstFitStackBase &that) : Base(that) { - std::memcpy(in_use_, that.in_use_, max_size); + std::memset(in_use_, FREE_, MAX_SIZE); } FirstFitStackBase(FirstFitStackBase &&that) : Base(that) { - std::memcpy(in_use_, that.in_use_, max_size); + std::memset(in_use_, FREE_, MAX_SIZE); } ~FirstFitStackBase() = default; }; diff --git a/test/allocator_tester.cc b/test/allocator_tester.cc index 3f540c9..252a465 100644 --- a/test/allocator_tester.cc +++ b/test/allocator_tester.cc @@ -61,10 +61,10 @@ static void test_aligned_allocator() { AlignedAllocator a3; AlignedAllocator a4; - std::cout << "ai1 value: " << std::size_t(a1.align_value) << std::endl; - std::cout << "ai2 value: " << std::size_t(a2.align_value) << std::endl; - std::cout << "ai3 value: " << std::size_t(a3.align_value) << std::endl; - std::cout << "ai4 value: " << std::size_t(a4.align_value) << std::endl; + assert(std::size_t(a1.align_value) == 8); + assert(std::size_t(a2.align_value) == 4); + assert(std::size_t(a3.align_value) == 512); + assert(std::size_t(a4.align_value) == 512); } { std::vector> vec; @@ -79,7 +79,6 @@ static void test_aligned_allocator() { assert(vec[i] == double(i)); assert(vec2[i] == double(i)); } - std::cout << std::endl; } { std::vector> vec; @@ -87,9 +86,8 @@ static void test_aligned_allocator() { vec.reserve(NUM - 1); for (std::size_t i = 0; i < NUM; ++i) vec.push_back(int(i)); - for (auto citer : vec) - std::cout << citer << ", "; - std::cout << std::endl; + for (std::size_t i = 0; i < vec.size(); ++i) + assert(vec[i] == int(i)); } { std::vector> vec; @@ -97,9 +95,8 @@ static void test_aligned_allocator() { vec.reserve(NUM - 1); for (std::size_t i = 0; i < NUM; ++i) vec.push_back(int(i)); - for (auto citer : vec) - std::cout << citer << ", "; - std::cout << std::endl; + for (std::size_t i = 0; i < vec.size(); ++i) + assert(vec[i] == int(i)); } { std::vector> vec; @@ -107,9 +104,8 @@ static void test_aligned_allocator() { vec.reserve(NUM - 1); for (std::size_t i = 0; i < NUM; ++i) vec.push_back(int(i + 1024)); - for (auto citer : vec) - std::cout << citer << ", "; - std::cout << std::endl; + for (std::size_t i = 0; i < vec.size(); ++i) + assert(vec[i] == int(i + 1024)); } { std::vector> vec; @@ -117,9 +113,8 @@ static void test_aligned_allocator() { vec.reserve(NUM - 1); for (std::size_t i = 101; i < 101 + NUM; ++i) vec.push_back(char(i)); - for (auto citer : vec) - std::cout << citer << ", "; - std::cout << std::endl; + for (std::size_t i = 101; i < 101 + NUM; ++i) + assert(vec[i - 101] == char(i)); } { std::vector> vec; @@ -127,9 +122,8 @@ static void test_aligned_allocator() { vec.reserve(NUM); for (std::size_t i = 0; i < NUM; ++i) vec.push_back(static_cast(i)); - for (auto citer : vec) - std::cout << citer << ", "; - std::cout << std::endl; + for (std::size_t i = 0; i < vec.size(); ++i) + assert(vec[i] == static_cast(i)); } { std::vector> vec(NUM); @@ -314,6 +308,11 @@ static void test_first_fit_stack_allocator() { assert(vec11[i] == int(i) * 10); } + for (std::size_t i = 0; i < 3000; ++i) + vec11.push_back((i + 1000) * 10); + for (std::size_t i = 0; i < 4000; ++i) + assert(vec11[i] == int(i) * 10); + std::vector> vec2; for (std::size_t i = 0; i < 100; ++i) @@ -405,6 +404,11 @@ static void test_best_fit_static_allocator() { assert(vec11[i] == int(i) * 10); } + for (std::size_t i = 0; i < 3000; ++i) + vec11.push_back((i + 1000) * 10); + for (std::size_t i = 0; i < 4000; ++i) + assert(vec11[i] == int(i) * 10); + std::vector> vec2; for (std::size_t i = 0; i < 10000; ++i) @@ -527,6 +531,11 @@ static void test_best_fit_stack_allocator() { assert(vec11[i] == int(i) * 10); } + for (std::size_t i = 0; i < 3000; ++i) + vec11.push_back((i + 1000) * 10); + for (std::size_t i = 0; i < 4000; ++i) + assert(vec11[i] == int(i) * 10); + std::vector> vec2; for (std::size_t i = 0; i < 100; ++i)