# 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/testing/dart/compile_test.gni")

tests = [
  "canvas_test.dart",
  "channel_buffers_test.dart",
  "codec_test.dart",
  "color_filter_test.dart",
  "color_test.dart",
  "compositing_test.dart",
  "dart_test.dart",
  "encoding_test.dart",
  "fragment_shader_test.dart",
  "geometry_test.dart",
  "gesture_settings_test.dart",
  "gradient_test.dart",
  "http_allow_http_connections_test.dart",
  "http_disallow_http_connections_test.dart",
  "image_descriptor_test.dart",
  "image_dispose_test.dart",
  "image_filter_test.dart",
  "image_resize_test.dart",
  "isolate_name_server_test.dart",
  "isolate_test.dart",
  "lerp_test.dart",
  "locale_test.dart",
  "paragraph_builder_test.dart",
  "paragraph_test.dart",
  "path_test.dart",
  "platform_view_test.dart",
  "plugin_utilities_test.dart",
  "semantics_test.dart",
  "spirv_exception_test.dart",
  "task_order_test.dart",
  "text_test.dart",
  "window_test.dart",
]

foreach(test, tests) {
  compile_flutter_dart_test("compile_$test") {
    dart_file = test
    dart_kernel = "$root_gen_dir/$test.dill"
    packages = ".packages"
  }
}

group("dart") {
  testonly = true
  deps = [ "//flutter/testing/dart/observatory" ]
  foreach(test, tests) {
    deps += [ ":compile_$test" ]
  }
}
