# Copyright 2018 The Fuchsia 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("//src/sys/build/components.gni")

group("wayland") {
  testonly = true
  deps = [
    ":wayland_tests",
    "core",
    "protocols",
  ]
}

fuchsia_unittest_component("wayland_scanner_front_end_test") {
  deps = [ "scanner:wayland_scanner_front_end_test" ]
}

fuchsia_unittest_component("wayland_scanner_back_end_test") {
  deps = [ "scanner:wayland_scanner_back_end_test" ]
}

fuchsia_unittest_component("fuchsia_wayland_core_lib_test") {
  deps = [ "core:core_test" ]
}

fuchsia_test_package("wayland_tests") {
  test_components = [
    ":fuchsia_wayland_core_lib_test",
    ":wayland_scanner_front_end_test",
    ":wayland_scanner_back_end_test",
  ]
}
