# 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/package.gni")
import("//build/rust/rustc_library.gni")
import("//src/sys/build/components.gni")

group("tests") {
  testonly = true
  deps = [ ":httpdate-hyper-tests" ]
}

rustc_library("httpdate-hyper") {
  name = "httpdate-hyper"
  version = "0.1.0"
  edition = "2018"
  with_unit_tests = true

  deps = [
    "//garnet/lib/rust/webpki-roots-fuchsia",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-hyper",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:chrono",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:hyper",
    "//third_party/rust_crates:log",
    "//third_party/rust_crates:rustls",
    "//third_party/rust_crates:thiserror",
    "//third_party/rust_crates:webpki",
  ]

  sources = [ "src/lib.rs" ]

  test_deps = [
    "//third_party/rust_crates:base64",
    "//third_party/rust_crates:lazy_static",
    "//third_party/rust_crates:log",
    "//third_party/rust_crates:tokio",
    "//third_party/rust_crates:tokio-rustls",
  ]

  inputs = [
    "certs/ca.cert",
    "certs/notafter",
    "certs/notbefore",
    "certs/server.rsa",
    "certs/server.certchain",
  ]
}

fuchsia_unittest_package("httpdate-hyper-tests") {
  manifest = "meta/httpdate-hyper-lib-test.cmx"
  deps = [ ":httpdate-hyper_test" ]
}
