123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- #include "util/memory_segment_local.h"
- #include <exceptions/exceptions.h>
- #include <gtest/gtest.h>
- #include <memory>
- using namespace std;
- using namespace isc::util;
- namespace {
- TEST(MemorySegmentLocal, TestLocal) {
- auto_ptr<MemorySegment> segment(new MemorySegmentLocal());
-
- EXPECT_TRUE(segment->allMemoryDeallocated());
- void* ptr = segment->allocate(1024);
-
- EXPECT_FALSE(segment->allMemoryDeallocated());
- void* ptr2 = segment->allocate(42);
-
- EXPECT_FALSE(segment->allMemoryDeallocated());
-
- EXPECT_NO_FATAL_FAILURE(memset(ptr, 0, 1024));
- EXPECT_NO_FATAL_FAILURE(memset(ptr, 0, 42));
- segment->deallocate(ptr, 1024);
-
- EXPECT_FALSE(segment->allMemoryDeallocated());
- segment->deallocate(ptr2, 42);
-
- EXPECT_TRUE(segment->allMemoryDeallocated());
- }
- TEST(MemorySegmentLocal, TestTooMuchMemory) {
- auto_ptr<MemorySegment> segment(new MemorySegmentLocal());
- EXPECT_THROW(segment->allocate(0x7fffffffffffffff), bad_alloc);
- }
- TEST(MemorySegmentLocal, TestBadDeallocate) {
- auto_ptr<MemorySegment> segment(new MemorySegmentLocal());
-
- EXPECT_TRUE(segment->allMemoryDeallocated());
- void* ptr = segment->allocate(1024);
-
- EXPECT_FALSE(segment->allMemoryDeallocated());
-
- EXPECT_NO_THROW(segment->deallocate(ptr, 1024));
-
- EXPECT_TRUE(segment->allMemoryDeallocated());
- ptr = segment->allocate(1024);
-
- EXPECT_FALSE(segment->allMemoryDeallocated());
-
-
- EXPECT_THROW(segment->deallocate(ptr, 2048), isc::OutOfRange);
-
- EXPECT_NO_THROW(segment->deallocate(ptr, 1024));
-
- EXPECT_TRUE(segment->allMemoryDeallocated());
- }
- TEST(MemorySegmentLocal, TestNullDeallocate) {
- auto_ptr<MemorySegment> segment(new MemorySegmentLocal());
-
- EXPECT_TRUE(segment->allMemoryDeallocated());
-
- EXPECT_NO_THROW(segment->deallocate(NULL, 1024));
-
- EXPECT_TRUE(segment->allMemoryDeallocated());
- }
- }
|