# Copyright 2017 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("//peridot/build/executable_package.gni")

group("clipboard") {
  testonly = true
  deps = [
    ":clipboard_test_module",
    ":defs",
  ]
}

executable_package("clipboard_test_module") {
  testonly = true

  sources = [
    "clipboard_test_module.cc",
  ]

  meta = [
    {
      path = "meta/clipboard_test_module.cmx"
      dest = "clipboard_test_module.cmx"
    },
  ]

  deps = [
    ":defs",
    "//peridot/public/lib/app_driver/cpp",
    "//peridot/public/lib/integration_testing/cpp",
    "//peridot/tests/common:defs",
    "//sdk/fidl/fuchsia.modular",
    "//sdk/fidl/fuchsia.testing.runner",
    "//sdk/lib/fidl/cpp",
    "//src/lib/fxl",
    "//zircon/public/lib/async-loop-cpp",
  ]
}

source_set("defs") {
  testonly = true

  sources = [
    "defs.h",
  ]
}
