mirror of
https://gitee.com/openharmony/arkcompiler_ets_runtime
synced 2024-10-06 23:54:03 +00:00
!9131 Add UT for GC Heap
Merge pull request !9131 from Sandee/gc_20240904
This commit is contained in:
commit
ce168b8bc4
@ -133,4 +133,170 @@ HWTEST_F_L0(GCTest, LargeOverShootSizeTest)
|
|||||||
size_t newSize = heap->GetNewSpace()->GetCommittedSize();
|
size_t newSize = heap->GetNewSpace()->GetCommittedSize();
|
||||||
EXPECT_TRUE(originalYoungSize <= newSize);
|
EXPECT_TRUE(originalYoungSize <= newSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HWTEST_F_L0(GCTest, CheckAndTriggerSharedGCTest001)
|
||||||
|
{
|
||||||
|
SharedHeap *heap = SharedHeap::GetInstance();
|
||||||
|
ASSERT_EQ(heap->CheckAndTriggerSharedGC(thread), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
HWTEST_F_L0(GCTest, CheckHugeAndTriggerSharedGCTest001)
|
||||||
|
{
|
||||||
|
SharedHeap *heap = SharedHeap::GetInstance();
|
||||||
|
ASSERT_EQ(heap->CheckHugeAndTriggerSharedGC(thread, 1374210560), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
HWTEST_F_L0(GCTest, CheckHugeAndTriggerSharedGCTest002)
|
||||||
|
{
|
||||||
|
SharedHeap *heap = SharedHeap::GetInstance();
|
||||||
|
ASSERT_EQ(heap->CheckHugeAndTriggerSharedGC(thread, 1), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
HWTEST_F_L0(GCTest, ObjectExceedMaxHeapSizeTest001)
|
||||||
|
{
|
||||||
|
SharedHeap *heap = SharedHeap::GetInstance();
|
||||||
|
ASSERT_EQ(heap->ObjectExceedMaxHeapSize(), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
HWTEST_F_L0(GCTest, CheckAndTriggerGCForIdleTest001)
|
||||||
|
{
|
||||||
|
auto heap = const_cast<Heap *>(thread->GetEcmaVM()->GetHeap());
|
||||||
|
ASSERT_EQ(heap->CheckAndTriggerGCForIdle(1, CheckIdleGCType::VSYNC), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
HWTEST_F_L0(GCTest, CheckAndTriggerHintGCTest001)
|
||||||
|
{
|
||||||
|
auto heap = const_cast<Heap *>(thread->GetEcmaVM()->GetHeap());
|
||||||
|
ASSERT_EQ(heap->CheckAndTriggerHintGC(), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
HWTEST_F_L0(GCTest, CalculateIdleDurationTest001)
|
||||||
|
{
|
||||||
|
auto heap = const_cast<Heap *>(thread->GetEcmaVM()->GetHeap());
|
||||||
|
heap->SetMarkType(MarkType::MARK_EDEN);
|
||||||
|
ASSERT_EQ(heap->GetMarkType(), MarkType::MARK_EDEN);
|
||||||
|
heap->CalculateIdleDuration();
|
||||||
|
}
|
||||||
|
|
||||||
|
HWTEST_F_L0(GCTest, CalculateIdleDurationTest002)
|
||||||
|
{
|
||||||
|
auto heap = const_cast<Heap *>(thread->GetEcmaVM()->GetHeap());
|
||||||
|
heap->SetMarkType(MarkType::MARK_YOUNG);
|
||||||
|
ASSERT_EQ(heap->GetMarkType(), MarkType::MARK_YOUNG);
|
||||||
|
heap->CalculateIdleDuration();
|
||||||
|
}
|
||||||
|
|
||||||
|
HWTEST_F_L0(GCTest, CalculateIdleDurationTest003)
|
||||||
|
{
|
||||||
|
auto heap = const_cast<Heap *>(thread->GetEcmaVM()->GetHeap());
|
||||||
|
heap->SetMarkType(MarkType::MARK_FULL);
|
||||||
|
ASSERT_EQ(heap->GetMarkType(), MarkType::MARK_FULL);
|
||||||
|
heap->CalculateIdleDuration();
|
||||||
|
}
|
||||||
|
|
||||||
|
HWTEST_F_L0(GCTest, TryTriggerFullMarkBySharedLimitTest001)
|
||||||
|
{
|
||||||
|
auto heap = const_cast<Heap *>(thread->GetEcmaVM()->GetHeap());
|
||||||
|
ASSERT_EQ(heap->TryTriggerFullMarkBySharedLimit(), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
HWTEST_F_L0(GCTest, TryTriggerFullMarkBySharedLimitTest002)
|
||||||
|
{
|
||||||
|
auto heap = const_cast<Heap *>(thread->GetEcmaVM()->GetHeap());
|
||||||
|
heap->SetIdleTask(IdleTaskType::FINISH_MARKING);
|
||||||
|
ASSERT_EQ(heap->TryTriggerFullMarkBySharedLimit(), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
HWTEST_F_L0(GCTest, TryTriggerFullMarkBySharedLimitTest003)
|
||||||
|
{
|
||||||
|
auto heap = const_cast<Heap *>(thread->GetEcmaVM()->GetHeap());
|
||||||
|
for (size_t i = 0; i < 4; i++) {
|
||||||
|
ConcurrentMarker::TryIncreaseTaskCounts();
|
||||||
|
}
|
||||||
|
ASSERT_EQ(heap->TryTriggerFullMarkBySharedLimit(), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
HWTEST_F_L0(GCTest, CheckAndTriggerTaskFinishedGCTest001)
|
||||||
|
{
|
||||||
|
auto heap = const_cast<Heap *>(thread->GetEcmaVM()->GetHeap());
|
||||||
|
heap->CheckAndTriggerTaskFinishedGC();
|
||||||
|
}
|
||||||
|
|
||||||
|
HWTEST_F_L0(GCTest, TryTriggerFullMarkBySharedSizeTest001)
|
||||||
|
{
|
||||||
|
auto heap = const_cast<Heap *>(thread->GetEcmaVM()->GetHeap());
|
||||||
|
heap->TryTriggerFullMarkBySharedSize(81579214);
|
||||||
|
}
|
||||||
|
|
||||||
|
HWTEST_F_L0(GCTest, DecreaseNativeBindingSizeTest001)
|
||||||
|
{
|
||||||
|
auto heap = const_cast<Heap *>(thread->GetEcmaVM()->GetHeap());
|
||||||
|
heap->DecreaseNativeBindingSize(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
HWTEST_F_L0(GCTest, TriggerConcurrentMarkingTest001)
|
||||||
|
{
|
||||||
|
auto heap = const_cast<Heap *>(thread->GetEcmaVM()->GetHeap());
|
||||||
|
heap->SetMarkType(MarkType::MARK_FULL);
|
||||||
|
heap->SetIdleTask(IdleTaskType::YOUNG_GC);
|
||||||
|
heap->TriggerConcurrentMarking();
|
||||||
|
}
|
||||||
|
|
||||||
|
HWTEST_F_L0(GCTest, TriggerIdleCollectionTest001)
|
||||||
|
{
|
||||||
|
auto heap = const_cast<Heap *>(thread->GetEcmaVM()->GetHeap());
|
||||||
|
heap->SetIdleTask(IdleTaskType::NO_TASK);
|
||||||
|
heap->TriggerIdleCollection(1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
HWTEST_F_L0(GCTest, TriggerIdleCollectionTest002)
|
||||||
|
{
|
||||||
|
auto heap = const_cast<Heap *>(thread->GetEcmaVM()->GetHeap());
|
||||||
|
heap->SetIdleTask(IdleTaskType::INCREMENTAL_MARK);
|
||||||
|
heap->TriggerIdleCollection(1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
HWTEST_F_L0(GCTest, TriggerIdleCollectionTest003)
|
||||||
|
{
|
||||||
|
auto heap = const_cast<Heap *>(thread->GetEcmaVM()->GetHeap());
|
||||||
|
heap->SetIdleTask(IdleTaskType::FINISH_MARKING);
|
||||||
|
heap->TriggerIdleCollection(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
HWTEST_F_L0(GCTest, TriggerIdleCollectionTest004)
|
||||||
|
{
|
||||||
|
auto heap = const_cast<Heap *>(thread->GetEcmaVM()->GetHeap());
|
||||||
|
heap->SetIdleTask(IdleTaskType::FINISH_MARKING);
|
||||||
|
heap->SetMarkType(MarkType::MARK_FULL);
|
||||||
|
heap->TriggerIdleCollection(1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
HWTEST_F_L0(GCTest, TriggerIdleCollectionTest005)
|
||||||
|
{
|
||||||
|
auto heap = const_cast<Heap *>(thread->GetEcmaVM()->GetHeap());
|
||||||
|
heap->SetIdleTask(IdleTaskType::FINISH_MARKING);
|
||||||
|
heap->SetMarkType(MarkType::MARK_EDEN);
|
||||||
|
heap->TriggerIdleCollection(1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
HWTEST_F_L0(GCTest, TriggerIdleCollectionTest006)
|
||||||
|
{
|
||||||
|
auto heap = const_cast<Heap *>(thread->GetEcmaVM()->GetHeap());
|
||||||
|
heap->SetIdleTask(IdleTaskType::YOUNG_GC);
|
||||||
|
heap->TriggerIdleCollection(1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
HWTEST_F_L0(GCTest, NotifyFinishColdStartTest001)
|
||||||
|
{
|
||||||
|
auto heap = const_cast<Heap *>(thread->GetEcmaVM()->GetHeap());
|
||||||
|
heap->SetIdleTask(IdleTaskType::YOUNG_GC);
|
||||||
|
heap->NotifyFinishColdStart(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
HWTEST_F_L0(GCTest, NotifyFinishColdStartSoonTest001)
|
||||||
|
{
|
||||||
|
auto heap = const_cast<Heap *>(thread->GetEcmaVM()->GetHeap());
|
||||||
|
heap->NotifyFinishColdStartSoon();
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace panda::test
|
} // namespace panda::test
|
||||||
|
Loading…
Reference in New Issue
Block a user