mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
234 lines
5.2 KiB
Plaintext
234 lines
5.2 KiB
Plaintext
# Copyright 2013 The Flutter Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
import("//flutter/common/config.gni")
|
|
import("//flutter/shell/config.gni")
|
|
import("testing.gni")
|
|
|
|
config("dynamic_symbols") {
|
|
if (is_clang && is_linux) {
|
|
ldflags = [ "-rdynamic" ]
|
|
}
|
|
}
|
|
|
|
source_set("testing_lib") {
|
|
testonly = true
|
|
|
|
sources = [
|
|
"assertions.h",
|
|
"post_task_sync.cc",
|
|
"post_task_sync.h",
|
|
"testing.cc",
|
|
"testing.h",
|
|
"thread_test.cc",
|
|
"thread_test.h",
|
|
]
|
|
|
|
public_deps = [
|
|
"//flutter/fml",
|
|
"//third_party/googletest:gmock",
|
|
"//third_party/googletest:gtest",
|
|
]
|
|
public_configs = [ "//flutter:config" ]
|
|
}
|
|
|
|
source_set("testing") {
|
|
testonly = true
|
|
|
|
sources = [
|
|
"debugger_detection.cc",
|
|
"debugger_detection.h",
|
|
"run_all_unittests.cc",
|
|
"test_timeout_listener.cc",
|
|
"test_timeout_listener.h",
|
|
]
|
|
|
|
public_deps = [ ":testing_lib" ]
|
|
public_configs = [ ":dynamic_symbols" ]
|
|
}
|
|
|
|
source_set("dart") {
|
|
testonly = true
|
|
|
|
sources = [
|
|
"dart_isolate_runner.cc",
|
|
"dart_isolate_runner.h",
|
|
"elf_loader.cc",
|
|
"elf_loader.h",
|
|
"test_dart_native_resolver.cc",
|
|
"test_dart_native_resolver.h",
|
|
]
|
|
|
|
public_deps = [
|
|
":testing_lib",
|
|
"//flutter/common",
|
|
"//flutter/runtime",
|
|
"//flutter/runtime:libdart",
|
|
"//flutter/third_party/tonic",
|
|
"//third_party/dart/runtime/bin:elf_loader",
|
|
"//third_party/skia",
|
|
]
|
|
}
|
|
|
|
source_set("skia") {
|
|
testonly = true
|
|
|
|
sources = [
|
|
"assertions_skia.cc",
|
|
"assertions_skia.h",
|
|
"canvas_test.h",
|
|
"mock_canvas.cc",
|
|
"mock_canvas.h",
|
|
]
|
|
|
|
public_deps = [
|
|
":testing_lib",
|
|
"//third_party/skia",
|
|
]
|
|
}
|
|
|
|
dart_snapshot_kernel("vmservice_kernel") {
|
|
dart_main =
|
|
rebase_path("//flutter/shell/vmservice/empty.dart", root_build_dir)
|
|
dart_kernel = "$target_gen_dir/assets/vmservice_kernel.bin"
|
|
}
|
|
|
|
dart_snapshot_aot("vmservice_snapshot") {
|
|
dart_kernel = "$target_gen_dir/assets/vmservice_kernel.bin"
|
|
dart_elf_filename = "libvmservice_snapshot.so"
|
|
deps = [ ":vmservice_kernel" ]
|
|
}
|
|
|
|
source_set("fixture_test") {
|
|
testonly = true
|
|
|
|
sources = [
|
|
"dart_fixture.cc",
|
|
"dart_fixture.h",
|
|
"fixture_test.cc",
|
|
"fixture_test.h",
|
|
]
|
|
|
|
public_deps = [
|
|
":dart",
|
|
"//flutter/common",
|
|
"//flutter/runtime",
|
|
]
|
|
|
|
if (flutter_runtime_mode == "profile") {
|
|
public_deps += [ ":vmservice_snapshot" ]
|
|
}
|
|
}
|
|
|
|
if (enable_unittests) {
|
|
source_set("vulkan") {
|
|
testonly = true
|
|
|
|
sources = [
|
|
"test_vulkan_context.cc",
|
|
"test_vulkan_context.h",
|
|
"test_vulkan_image.cc",
|
|
"test_vulkan_image.h",
|
|
"test_vulkan_surface.cc",
|
|
"test_vulkan_surface.h",
|
|
]
|
|
|
|
defines = [ "TEST_VULKAN_PROCS" ]
|
|
|
|
deps = [
|
|
":skia",
|
|
"//flutter/fml",
|
|
"//flutter/shell/common",
|
|
"//flutter/vulkan",
|
|
]
|
|
|
|
# SwiftShader only supports x86/x86_64
|
|
if (target_cpu == "x86" || target_cpu == "x64") {
|
|
configs += [ "//third_party/swiftshader_flutter:swiftshader_config" ]
|
|
deps += [ "//third_party/swiftshader_flutter:swiftshader_vulkan" ]
|
|
}
|
|
}
|
|
|
|
# SwiftShader only supports x86/x86_64
|
|
if (target_cpu == "x86" || target_cpu == "x64") {
|
|
source_set("opengl") {
|
|
testonly = true
|
|
|
|
configs += [ "//third_party/swiftshader_flutter:swiftshader_config" ]
|
|
|
|
sources = [
|
|
"test_gl_surface.cc",
|
|
"test_gl_surface.h",
|
|
]
|
|
|
|
deps = [
|
|
":skia",
|
|
"//flutter/fml",
|
|
"//third_party/swiftshader_flutter:swiftshader_gl",
|
|
]
|
|
}
|
|
}
|
|
|
|
test_fixtures("testing_fixtures") {
|
|
fixtures = []
|
|
}
|
|
|
|
# The //flutter/testing library provides utility methods to other test targets.
|
|
# This test target tests the testing utilities.
|
|
executable("testing_unittests") {
|
|
testonly = true
|
|
|
|
sources = [ "mock_canvas_unittests.cc" ]
|
|
|
|
deps = [
|
|
":skia",
|
|
":testing",
|
|
":testing_fixtures",
|
|
"//flutter/runtime:libdart",
|
|
"//flutter/vulkan",
|
|
]
|
|
|
|
if (shell_enable_metal) {
|
|
sources += [ "test_metal_surface_unittests.cc" ]
|
|
|
|
deps += [ ":metal" ]
|
|
}
|
|
}
|
|
}
|
|
|
|
# All targets on all platforms should be able to use the Metal utilities. On
|
|
# platforms where Metal is not available, the tests must be skipped or
|
|
# implemented to use another available client rendering API. This is usually
|
|
# either OpenGL which is portably implemented via SwiftShader or the software
|
|
# backend. This way, all tests compile on all platforms but the Metal backend
|
|
# is exercised on platforms where Metal itself is available.
|
|
#
|
|
# On iOS, this is enabled to allow for Metal tests to run within a test app
|
|
if (enable_unittests || is_ios) {
|
|
source_set("metal") {
|
|
if (shell_enable_metal) {
|
|
sources = [
|
|
"test_metal_context.h",
|
|
"test_metal_context.mm",
|
|
"test_metal_surface.cc",
|
|
"test_metal_surface.h",
|
|
"test_metal_surface_impl.h",
|
|
"test_metal_surface_impl.mm",
|
|
]
|
|
deps = [
|
|
":skia",
|
|
"//flutter/fml",
|
|
]
|
|
|
|
# Skia's Vulkan support is enabled for all platforms (except iOS), and so parts of
|
|
# Skia's graphics context reference Vulkan symbols.
|
|
if (!is_ios) {
|
|
deps += [ "//flutter/vulkan" ]
|
|
}
|
|
}
|
|
|
|
testonly = true
|
|
}
|
|
}
|