示例#1
0
TEST(MemoryRangeAnalyzer, GetMaxContiguousFreeBlockSize_empty)
{
	auto analyzer = MemoryRangeAnalyzer();

	RangeList ranges = RangeList();

	auto size = analyzer.GetMaxContiguousFreeBlockSize(ranges);

	EXPECT_EQ(size, MemoryRangeAnalyzer::UNDETERMINED_SIZE);
}
示例#2
0
TEST(MemoryRangeAnalyzer, GetMaxContiguousFreeBlockSize_oneblock)
{
	auto analyzer = MemoryRangeAnalyzer();

	auto ranges = std::make_shared<std::vector<const MemoryRange>>();

	ranges->push_back(MemoryRange(0, 1, State::Commit, Usage::EnvironmentBlock));

	auto size = analyzer.GetMaxContiguousFreeBlockSize(RangeList(ranges));

	EXPECT_EQ(size, 0);
}
示例#3
0
TEST(MemoryRangeAnalyzer, GetMinContiguousSOHHeapSize_oneblock)
{
	auto analyzer = MemoryRangeAnalyzer();

	auto ranges = std::make_shared<std::vector<const MemoryRange>>();

	ranges->push_back(MemoryRange(0, 101, State::Commit, Usage::GCHeap));

	auto size = analyzer.GetMinContiguousSOHHeapSize(RangeList(ranges));

	EXPECT_EQ(size, 101);
}
示例#4
0
TEST(MemoryRangeAnalyzer, GetMinContiguousSOHHeapSize_oneblock_nonsoh)
{
	auto analyzer = MemoryRangeAnalyzer();

	auto ranges = std::make_shared<std::vector<const MemoryRange>>();

	ranges->push_back(MemoryRange(0, 1, State::Commit, Usage::EnvironmentBlock));

	auto size = analyzer.GetMinContiguousSOHHeapSize(RangeList(ranges));

	EXPECT_EQ(size, MemoryRangeAnalyzer::UNDETERMINED_SIZE);
}
示例#5
0
TEST(MemoryRangeAnalyzer, GetMinContiguousLOHHeapSize_threeblocks)
{
	auto analyzer = MemoryRangeAnalyzer();

	auto ranges = std::make_shared<std::vector<const MemoryRange>>();

	ranges->push_back(MemoryRange(0, 10000, State::Commit, Usage::GCLOHeap));
	ranges->push_back(MemoryRange(20000, 20000, State::Commit, Usage::GCLOHeap));
	ranges->push_back(MemoryRange(50000, 0x2f000, State::Commit, Usage::GCLOHeap));

	auto size = analyzer.GetMinContiguousLOHHeapSize(RangeList(ranges));

	EXPECT_EQ(size, 10000);
}
示例#6
0
 Type(const std::string &n, const RangeList &r = RangeList())
   : name(n), ranges(r)
 {}