# 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/go/go_library.gni")
import("//build/go/go_test.gni")
import("//build/package.gni")
import("//build/test/test_package.gni")
import("//build/testing/environments.gni")

go_library("merkle") {
  name = "fuchsia.googlesource.com/merkle"
}

go_test("go_merkle_test") {
  gopackages = ["fuchsia.googlesource.com/merkle"]

  deps = [
    ":merkle",
  ]
}

unittest_package("go_merkle_tests") {
  deps = [
    ":go_merkle_test",
  ]

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