# 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")

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

go_test("go_benchmarking_test") {
  gopackage = "fuchsia.googlesource.com/benchmarking"

  deps = [
    ":benchmarking",
  ]
}

package("go_benchmarking_tests") {
  testonly = true

  deps = [
    ":go_benchmarking_test",
  ]

  tests = [
    {
      name = "go_benchmarking_test"
    },
  ]
}
