# 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/rust/rustc_library.gni")
import("//build/test/test_package.gni")
import("//build/testing/environments.gni")

rustc_library("internet-checksum") {
  name = "internet_checksum"
  version = "0.2.0"
  edition = "2018"
  with_unit_tests = true

  deps = [
    "//third_party/rust_crates:byteorder",
  ]

  test_deps = [
    "//third_party/rust_crates:rand",
    "//third_party/rust_crates:rand_xorshift",
  ]
}

unittest_package("tests") {
  package_name = "internet-checksum-tests"

  deps = [
    ":internet-checksum_test",
  ]

  tests = [
    {
      name = "internet_checksum_lib_test"
      environments = basic_envs
    },
  ]
}
