# 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("//build/components.gni")

source_set("backoff") {
  sources = [
    "backoff.h",
    "exponential_backoff.cc",
    "exponential_backoff.h",
  ]

  public_deps = [
    "//sdk/lib/fit",
    "//src/lib/fxl",
    "//zircon/system/ulib/zx",
  ]

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

executable("backoff_unittests") {
  testonly = true

  sources = [ "exponential_backoff_unittest.cc" ]

  deps = [
    ":backoff",
    "//src/lib/fxl/test:gtest_main",
    "//third_party/googletest:gtest",
  ]
}

fuchsia_unittest_package("backoff_tests") {
  deps = [ ":backoff_unittests" ]
}

group("tests") {
  testonly = true

  deps = [ ":backoff_tests" ]
}
