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

group("trace_converters") {
  deps = [ ":chromium" ]
}

source_set("chromium") {
  sources = [
    "chromium_exporter.cc",
    "chromium_exporter.h",
  ]

  deps = [ "//src/lib/fxl" ]

  public_deps = [
    "//garnet/lib/perfmon",
    "//third_party/rapidjson",
    "//zircon/public/lib/trace-reader",
  ]
}

test("chromium_unittests") {
  output_name = "chromium_exporter_unittests"

  sources = [ "chromium_exporter_unittest.cc" ]

  deps = [
    ":chromium",
    "//src/lib/fxl/test:gtest_main",
    "//third_party/googletest:gtest",
  ]
}

test_package("trace_converter_tests") {
  deps = [ ":chromium_unittests" ]

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