// Copyright 2020 The PDFium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "testing/fxgc_unittest.h" #include "fxjs/gc/heap.h" #include "testing/gtest/include/gtest/gtest.h" #include "testing/v8_test_environment.h" #include "v8/include/libplatform/libplatform.h" FXGCUnitTest::FXGCUnitTest() = default; FXGCUnitTest::~FXGCUnitTest() = default; void FXGCUnitTest::SetUp() { ::testing::Test::SetUp(); auto* env = V8TestEnvironment::GetInstance(); FXGC_Initialize(env->platform(), env->isolate()); heap_ = FXGC_CreateHeap(); ASSERT_TRUE(heap_); } void FXGCUnitTest::TearDown() { ForceGCAndPump(); heap_.reset(); FXGC_Release(); ::testing::Test::TearDown(); } void FXGCUnitTest::ForceGCAndPump() { FXGC_ForceGarbageCollection(heap_.get()); Pump(); } void FXGCUnitTest::Pump() { V8TestEnvironment::PumpPlatformMessageLoop( V8TestEnvironment::GetInstance()->isolate()); }