# 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",
    "keyboard.cc",
    "mouse.cc",
    "sensor.cc",
    "touch.cc",
  ]
  public_deps = [
    "//sdk/fidl/fuchsia.input",
    "//sdk/fidl/fuchsia.input.report:fuchsia.input.report_llcpp",
    "//sdk/fidl/fuchsia.ui.input2",
    "//src/ui/lib/key_util",
    "//zircon/public/lib/fbl",
    "//zircon/system/ulib/hid",
    "//zircon/system/ulib/hid-parser",
  ]

  # TODO(fxbug.dev/58162): delete the below and fix compiler warnings
  configs += [ "//build/config:Wno-conversion" ]
}

test("lib-hid-input-report-test") {
  sources = [
    "axis.cc",
    "consumer_control.cc",
    "device.cc",
    "keyboard.cc",
    "mouse.cc",
    "sensor.cc",
    "test/consumer-control-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",
    "//sdk/fidl/fuchsia.input.report:fuchsia.input.report_llcpp",
    "//sdk/fidl/fuchsia.ui.input2",
    "//src/lib/ddk",
    "//src/ui/lib/key_util",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/zxtest",
    "//zircon/public/lib/zxtest",
    "//zircon/system/ulib/hid",
    "//zircon/system/ulib/hid",
    "//zircon/system/ulib/hid-parser",
    "//zircon/system/ulib/hid-parser",
  ]

  # TODO(fxbug.dev/58162): delete the below and fix compiler warnings
  configs += [ "//build/config:Wno-conversion" ]
}

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
    },
  ]
}
