|  | # 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. | 
|  |  | 
|  | import("//build/config/sanitizers/sanitizers.gni") | 
|  | import("//build_overrides/build.gni") | 
|  | import("../pdfium.gni") | 
|  |  | 
|  | source_set("test_support") { | 
|  | testonly = true | 
|  | sources = [ | 
|  | "command_line_helpers.cpp", | 
|  | "command_line_helpers.h", | 
|  | "font_renamer.cpp", | 
|  | "font_renamer.h", | 
|  | "fx_string_testhelpers.cpp", | 
|  | "fx_string_testhelpers.h", | 
|  | "invalid_seekable_read_stream.cpp", | 
|  | "invalid_seekable_read_stream.h", | 
|  | "pseudo_retainable.h", | 
|  | "scoped_set_tz.cpp", | 
|  | "scoped_set_tz.h", | 
|  | "string_write_stream.cpp", | 
|  | "string_write_stream.h", | 
|  | "test_fonts.cpp", | 
|  | "test_fonts.h", | 
|  | "test_loader.cpp", | 
|  | "test_loader.h", | 
|  | "test_support.h", | 
|  | "utils/bitmap_saver.cpp", | 
|  | "utils/bitmap_saver.h", | 
|  | "utils/file_util.cpp", | 
|  | "utils/file_util.h", | 
|  | "utils/hash.cpp", | 
|  | "utils/hash.h", | 
|  | ] | 
|  | data = [ "resources/" ] | 
|  | public_deps = [ | 
|  | ":path_service", | 
|  | "//third_party/test_fonts", | 
|  | ] | 
|  | deps = [ | 
|  | "../:pdfium_public_headers", | 
|  | "../core/fdrm", | 
|  | "../core/fxcrt", | 
|  | "../core/fxge", | 
|  | "../fpdfsdk", | 
|  | "image_diff", | 
|  | ] | 
|  | configs += [ | 
|  | "../:pdfium_strict_config", | 
|  | "../:pdfium_noshorten_config", | 
|  | ] | 
|  | visibility = [ "../*" ] | 
|  | if (is_posix) { | 
|  | sources += [ | 
|  | "scoped_locale.cc", | 
|  | "scoped_locale.h", | 
|  | ] | 
|  | } | 
|  | if (pdf_use_partition_alloc) { | 
|  | sources += [ | 
|  | "allocator_shim_config.cpp", | 
|  | "allocator_shim_config.h", | 
|  | ] | 
|  | deps += [ "//base/allocator/partition_allocator/src/partition_alloc" ] | 
|  | } | 
|  | if (pdf_enable_v8) { | 
|  | sources += [ | 
|  | "v8_initializer.cpp", | 
|  | "v8_initializer.h", | 
|  | ] | 
|  | deps += [ | 
|  | "//v8", | 
|  | "//v8:v8_libplatform", | 
|  | ] | 
|  | configs += [ "//v8:external_startup_data" ] | 
|  | } | 
|  | } | 
|  |  | 
|  | source_set("path_service") { | 
|  | testonly = true | 
|  | sources = [ | 
|  | "utils/path_service.cpp", | 
|  | "utils/path_service.h", | 
|  | ] | 
|  | deps = [ "../core/fxcrt" ] | 
|  | configs += [ | 
|  | "../:pdfium_strict_config", | 
|  | "../:pdfium_noshorten_config", | 
|  | ] | 
|  | visibility = [ "../*" ] | 
|  | } | 
|  |  | 
|  | source_set("test_environments") { | 
|  | testonly = true | 
|  | sources = [ | 
|  | "pdf_test_environment.cpp", | 
|  | "pdf_test_environment.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":test_support", | 
|  | "../core/fxcrt", | 
|  | "../core/fxge", | 
|  | "//testing/gtest", | 
|  | ] | 
|  | configs += [ | 
|  | "../:pdfium_strict_config", | 
|  | "../:pdfium_noshorten_config", | 
|  | ] | 
|  | if (pdf_enable_v8) { | 
|  | sources += [ | 
|  | "v8_test_environment.cpp", | 
|  | "v8_test_environment.h", | 
|  | ] | 
|  | deps += [ | 
|  | "../fxjs", | 
|  | "//v8", | 
|  | "//v8:v8_libplatform", | 
|  | ] | 
|  | configs += [ "//v8:external_startup_data" ] | 
|  | } | 
|  | if (pdf_enable_xfa) { | 
|  | sources += [ | 
|  | "xfa_test_environment.cpp", | 
|  | "xfa_test_environment.h", | 
|  | ] | 
|  | deps += [ | 
|  | "../fxjs:gc", | 
|  | "../xfa/fgas/font", | 
|  | ] | 
|  | } | 
|  | } | 
|  |  | 
|  | source_set("unit_test_support") { | 
|  | testonly = true | 
|  | sources = [] | 
|  | deps = [] | 
|  | configs += [ | 
|  | "../:pdfium_strict_config", | 
|  | "../:pdfium_noshorten_config", | 
|  | ] | 
|  | public_deps = [ | 
|  | ":test_environments", | 
|  | ":test_support", | 
|  | ] | 
|  | if (pdf_enable_v8) { | 
|  | sources += [ | 
|  | "fxv8_unittest.cpp", | 
|  | "fxv8_unittest.h", | 
|  | ] | 
|  | deps += [ | 
|  | "../fxjs", | 
|  | "//testing/gtest", | 
|  | ] | 
|  | configs += [ "//v8:external_startup_data" ] | 
|  | if (pdf_enable_xfa) { | 
|  | sources += [ | 
|  | "fxgc_unittest.cpp", | 
|  | "fxgc_unittest.h", | 
|  | ] | 
|  | deps += [ | 
|  | "../fxjs:gc", | 
|  | "//testing/gtest", | 
|  | ] | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | source_set("embedder_test_support") { | 
|  | testonly = true | 
|  | sources = [ | 
|  | "embedder_test.cpp", | 
|  | "embedder_test.h", | 
|  | "embedder_test_constants.cpp", | 
|  | "embedder_test_constants.h", | 
|  | "embedder_test_environment.cpp", | 
|  | "embedder_test_environment.h", | 
|  | "embedder_test_mock_delegate.h", | 
|  | "embedder_test_timer_handling_delegate.h", | 
|  | "fake_file_access.cpp", | 
|  | "fake_file_access.h", | 
|  | "range_set.cpp", | 
|  | "range_set.h", | 
|  | "utils/compare_coordinates.cc", | 
|  | "utils/compare_coordinates.h", | 
|  | ] | 
|  | deps = [ | 
|  | "../:pdfium_public_headers", | 
|  | "../core/fdrm", | 
|  | "../core/fxge", | 
|  | "../fpdfsdk", | 
|  | "//testing/gmock", | 
|  | "//testing/gtest", | 
|  | ] | 
|  | public_deps = [ | 
|  | ":test_environments", | 
|  | ":test_support", | 
|  | "../core/fxcrt", | 
|  | ] | 
|  | configs += [ | 
|  | "../:pdfium_strict_config", | 
|  | "../:pdfium_noshorten_config", | 
|  | ] | 
|  | visibility = [ "../*" ] | 
|  | if (pdf_enable_v8) { | 
|  | sources += [ | 
|  | "external_engine_embedder_test.cpp", | 
|  | "external_engine_embedder_test.h", | 
|  | "js_embedder_test.cpp", | 
|  | "js_embedder_test.h", | 
|  | ] | 
|  | deps += [ | 
|  | "../fxjs", | 
|  | "//v8", | 
|  | "//v8:v8_libplatform", | 
|  | ] | 
|  | configs += [ "//v8:external_startup_data" ] | 
|  | if (pdf_enable_xfa) { | 
|  | sources += [ | 
|  | "xfa_js_embedder_test.cpp", | 
|  | "xfa_js_embedder_test.h", | 
|  | ] | 
|  | deps += [ | 
|  | "../fpdfsdk", | 
|  | "../fpdfsdk/fpdfxfa", | 
|  | "../xfa/fxfa", | 
|  | "../xfa/fxfa/parser", | 
|  | ] | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | config("pdfium_test_config") { | 
|  | cflags = [] | 
|  | ldflags = [] | 
|  | defines = [] | 
|  | include_dirs = [ ".." ] | 
|  | if (pdf_use_skia) { | 
|  | defines += [ "PDF_ENABLE_SKIA" ] | 
|  | } | 
|  | if (is_asan) { | 
|  | defines += [ "PDF_ENABLE_ASAN" ] | 
|  | } | 
|  | if (pdf_use_partition_alloc) { | 
|  | defines += [ "PDF_USE_PARTITION_ALLOC" ] | 
|  | } | 
|  | if (enable_callgrind) { | 
|  | defines += [ "ENABLE_CALLGRIND" ] | 
|  | } | 
|  | if (build_with_chromium) { | 
|  | defines += [ "BUILD_WITH_CHROMIUM" ] | 
|  | } | 
|  | } | 
|  |  | 
|  | executable("pdfium_test") { | 
|  | testonly = true | 
|  | sources = [ | 
|  | "helpers/dump.cc", | 
|  | "helpers/dump.h", | 
|  | "helpers/event.cc", | 
|  | "helpers/event.h", | 
|  | "helpers/page_renderer.cc", | 
|  | "helpers/page_renderer.h", | 
|  | "helpers/write.cc", | 
|  | "helpers/write.h", | 
|  | "pdfium_test.cc", | 
|  | ] | 
|  |  | 
|  | # Note: One should write programs that depend on ../:pdfium. Whereas this | 
|  | # test program does not set a good example, and depends on PDFium internals, | 
|  | # as well as test support code, for convenience. | 
|  | deps = [ | 
|  | "../:pdfium_public_headers", | 
|  | "../fpdfsdk", | 
|  | "../testing:test_support", | 
|  | "../testing/image_diff", | 
|  | "//build/win:default_exe_manifest", | 
|  | ] | 
|  | configs += [ | 
|  | ":pdfium_test_config", | 
|  | "../:pdfium_common_config", | 
|  | ] | 
|  |  | 
|  | if (is_win) { | 
|  | sources += [ | 
|  | "helpers/win32/com_factory.cc", | 
|  | "helpers/win32/com_factory.h", | 
|  | ] | 
|  | } | 
|  |  | 
|  | if (pdf_enable_v8) { | 
|  | deps += [ | 
|  | "//v8:v8_headers", | 
|  | "//v8:v8_libplatform", | 
|  | ] | 
|  | include_dirs = [ "//v8" ] | 
|  | configs += [ "//v8:external_startup_data" ] | 
|  | } | 
|  | if (pdf_use_skia) { | 
|  | deps += [ "//skia" ] | 
|  | if (build_with_chromium) { | 
|  | sources += [ | 
|  | "chromium_support/discardable_memory_allocator.cc", | 
|  | "chromium_support/discardable_memory_allocator.h", | 
|  | ] | 
|  | deps += [ "//base/test:test_support" ] | 
|  | } | 
|  | } | 
|  |  | 
|  | if (!build_with_chromium) { | 
|  | assert_no_deps = [ "//testing/gtest/*" ] | 
|  | } | 
|  | } | 
|  |  | 
|  | # Dummy group to keep satisfy references from //build. | 
|  | group("test_scripts_shared") { | 
|  | } |