| # 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", | |
| "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", | |
| ] | |
| } | |
| source_set("fixture_test") { | |
| testonly = true | |
| sources = [ | |
| "fixture_test.cc", | |
| "fixture_test.h", | |
| ] | |
| public_deps = [ | |
| ":dart", | |
| "//flutter/common", | |
| "//flutter/runtime", | |
| ] | |
| } | |
| if (enable_unittests) { | |
| source_set("vulkan") { | |
| testonly = true | |
| deps = [ | |
| ":skia", | |
| "//flutter/fml", | |
| ] | |
| # SwiftShader only supports x86/x64_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/x64_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", | |
| ] | |
| } | |
| } | |
| # 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. | |
| 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", | |
| ] | |
| } | |
| testonly = true | |
| } | |
| 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", | |
| ] | |
| if (shell_enable_metal) { | |
| sources += [ "test_metal_surface_unittests.cc" ] | |
| deps += [ ":metal" ] | |
| } | |
| } | |
| } |