1*3ac0a46fSAndroid Build Coastguard Worker // Copyright 2020 The PDFium Authors 2*3ac0a46fSAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*3ac0a46fSAndroid Build Coastguard Worker // found in the LICENSE file. 4*3ac0a46fSAndroid Build Coastguard Worker 5*3ac0a46fSAndroid Build Coastguard Worker #include "testing/fxgc_unittest.h" 6*3ac0a46fSAndroid Build Coastguard Worker 7*3ac0a46fSAndroid Build Coastguard Worker #include "fxjs/gc/heap.h" 8*3ac0a46fSAndroid Build Coastguard Worker #include "testing/gtest/include/gtest/gtest.h" 9*3ac0a46fSAndroid Build Coastguard Worker #include "testing/v8_test_environment.h" 10*3ac0a46fSAndroid Build Coastguard Worker #include "v8/include/libplatform/libplatform.h" 11*3ac0a46fSAndroid Build Coastguard Worker 12*3ac0a46fSAndroid Build Coastguard Worker FXGCUnitTest::FXGCUnitTest() = default; 13*3ac0a46fSAndroid Build Coastguard Worker 14*3ac0a46fSAndroid Build Coastguard Worker FXGCUnitTest::~FXGCUnitTest() = default; 15*3ac0a46fSAndroid Build Coastguard Worker SetUp()16*3ac0a46fSAndroid Build Coastguard Workervoid FXGCUnitTest::SetUp() { 17*3ac0a46fSAndroid Build Coastguard Worker ::testing::Test::SetUp(); 18*3ac0a46fSAndroid Build Coastguard Worker auto* env = V8TestEnvironment::GetInstance(); 19*3ac0a46fSAndroid Build Coastguard Worker FXGC_Initialize(env->platform(), env->isolate()); 20*3ac0a46fSAndroid Build Coastguard Worker heap_ = FXGC_CreateHeap(); 21*3ac0a46fSAndroid Build Coastguard Worker ASSERT_TRUE(heap_); 22*3ac0a46fSAndroid Build Coastguard Worker } 23*3ac0a46fSAndroid Build Coastguard Worker TearDown()24*3ac0a46fSAndroid Build Coastguard Workervoid FXGCUnitTest::TearDown() { 25*3ac0a46fSAndroid Build Coastguard Worker ForceGCAndPump(); 26*3ac0a46fSAndroid Build Coastguard Worker heap_.reset(); 27*3ac0a46fSAndroid Build Coastguard Worker FXGC_Release(); 28*3ac0a46fSAndroid Build Coastguard Worker ::testing::Test::TearDown(); 29*3ac0a46fSAndroid Build Coastguard Worker } 30*3ac0a46fSAndroid Build Coastguard Worker ForceGCAndPump()31*3ac0a46fSAndroid Build Coastguard Workervoid FXGCUnitTest::ForceGCAndPump() { 32*3ac0a46fSAndroid Build Coastguard Worker FXGC_ForceGarbageCollection(heap_.get()); 33*3ac0a46fSAndroid Build Coastguard Worker Pump(); 34*3ac0a46fSAndroid Build Coastguard Worker } 35*3ac0a46fSAndroid Build Coastguard Worker Pump()36*3ac0a46fSAndroid Build Coastguard Workervoid FXGCUnitTest::Pump() { 37*3ac0a46fSAndroid Build Coastguard Worker V8TestEnvironment::PumpPlatformMessageLoop( 38*3ac0a46fSAndroid Build Coastguard Worker V8TestEnvironment::GetInstance()->isolate()); 39*3ac0a46fSAndroid Build Coastguard Worker } 40