xref: /aosp_15_r20/external/pdfium/testing/fxgc_unittest.cpp (revision 3ac0a46f773bac49fa9476ec2b1cf3f8da5ec3a4)
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 Worker void 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 Worker void 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 Worker void 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 Worker void FXGCUnitTest::Pump() {
37*3ac0a46fSAndroid Build Coastguard Worker   V8TestEnvironment::PumpPlatformMessageLoop(
38*3ac0a46fSAndroid Build Coastguard Worker       V8TestEnvironment::GetInstance()->isolate());
39*3ac0a46fSAndroid Build Coastguard Worker }
40