# 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(https://fxbug.dev/42136089): 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" ]
}
