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

go_library("go-benchmarking") {
  sources = [
    "results.go",
    "results_test.go",
  ]
}

go_test("go_benchmarking_test") {
  gopackages = [ "go.fuchsia.dev/fuchsia/src/lib/go-benchmarking" ]

  deps = [ ":go-benchmarking" ]
}

fuchsia_unittest_package("go_benchmarking_tests") {
  deps = [ ":go_benchmarking_test" ]
}

group("tests") {
  testonly = true
  deps = [ ":go_benchmarking_tests" ]
}
