| # 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" ] |
| } |
| } |
| } |