#
#  Copyright (C) 2015 Google, Inc.
#
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at:
#
#  http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.
#

executable("net_test_bluetooth") {
  testonly = true
  sources = [
    "adapter/adapter_unittest.cc",
    "adapter/bluetooth_test.cc",
  ]

  include_dirs = [
    "//",
    "//test/suite",
  ]

  deps = [
    "//btcore",
    "//main:bluetooth.default",
    "//service:service",
    "//service:service_unittests",
    "//third_party/libchrome:base",
    "//osi",
    "//third_party/googletest:gtest_main",
  ]

  libs = [
    "-lpthread",
    "-lrt",
    "-ldl",
    "-latomic",
  ]
}
