# Copyright 2019 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("//build/test.gni")
import("//build/test/test_package.gni")

source_set("hid-input-report") {
  sources = [
    "axis.cc",
    "consumer_control.cc",
    "device.cc",
    "fidl.cc",
    "keyboard.cc",
    "mouse.cc",
    "sensor.cc",
    "touch.cc",
  ]
  public_deps = [
    "//sdk/fidl/fuchsia.input.report:fuchsia.input.report_llcpp",
    "//sdk/fidl/fuchsia.ui.input2",
    "//src/ui/lib/key_util",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/hid",
    "//zircon/system/ulib/hid-parser",
  ]
}

test("lib-hid-input-report-test") {
  sources = [
    "axis.cc",
    "consumer_control.cc",
    "device.cc",
    "fidl.cc",
    "keyboard.cc",
    "mouse.cc",
    "sensor.cc",
    "test/consumer-control-test.cc",
    "test/fidl-test.cc",
    "test/keyboard-test.cc",
    "test/mouse-test.cc",
    "test/sensor-test.cc",
    "test/touch-test.cc",
    "touch.cc",
  ]

  deps = [
    "//sdk/fidl/fuchsia.input.report:fuchsia.input.report_llcpp",
    "//sdk/fidl/fuchsia.ui.input2",
    "//src/ui/lib/key_util",
    "//zircon/public/lib/ddk",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/hid",
    "//zircon/public/lib/hid",
    "//zircon/public/lib/zxtest",
    "//zircon/public/lib/zxtest",
    "//zircon/system/ulib/hid-parser",
    "//zircon/system/ulib/hid-parser",
  ]

  # TODO(46730): Fix the leaks and remove this.
  deps += [ "//build/config/sanitizers:suppress-lsan.DO-NOT-USE-THIS" ]
}

unittest_package("test") {
  package_name = "lib-hid-input-report-test"
  deps = [ ":lib-hid-input-report-test" ]
  tests = [
    {
      name = "lib-hid-input-report-test"
      environments = basic_envs
    },
  ]
}
