| // Copyright 2018 The PDFium Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #include "build/build_config.h" | |
| #include "testing/embedder_test_environment.h" | |
| #include "testing/gmock/include/gmock/gmock.h" | |
| #include "testing/gtest/include/gtest/gtest.h" | |
| #ifdef PDF_ENABLE_V8 | |
| #include "testing/v8_test_environment.h" | |
| #endif // PDF_ENABLE_V8 | |
| #if defined(PDF_USE_PARTITION_ALLOC) | |
| #include "testing/allocator_shim_config.h" | |
| #endif | |
| #if defined(BUILD_WITH_CHROMIUM) && defined(PDF_USE_SKIA) | |
| #include "testing/chromium_support/discardable_memory_allocator.h" // nogncheck | |
| #endif | |
| // Can't use gtest-provided main since we need to create our own | |
| // testing environment which needs the executable path in order to | |
| // find the external V8 binary data files. | |
| int main(int argc, char** argv) { | |
| #if defined(PDF_USE_PARTITION_ALLOC) | |
| pdfium::ConfigurePartitionAllocShimPartitionForTest(); | |
| #endif | |
| #ifdef PDF_ENABLE_V8 | |
| // The env will be deleted by gtest. | |
| AddGlobalTestEnvironment(new V8TestEnvironment(argv[0])); | |
| #endif // PDF_ENABLE_V8 | |
| // The env will be deleted by gtest. | |
| AddGlobalTestEnvironment(new EmbedderTestEnvironment); | |
| testing::InitGoogleTest(&argc, argv); | |
| testing::InitGoogleMock(&argc, argv); | |
| // Anything remaining in argc/argv is an embedder_tests flag. | |
| EmbedderTestEnvironment::GetInstance()->AddFlags(argc, argv); | |
| #if defined(BUILD_WITH_CHROMIUM) && defined(PDF_USE_SKIA) | |
| chromium_support::InitializeDiscardableMemoryAllocator(); | |
| #endif | |
| return RUN_ALL_TESTS(); | |
| } |