# 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/modp_b64",
    "//zircon/system/ulib/trace-reader",

    # TODO(fxbug.dev/57392): Move it back to //third_party once unification completes.
    "//zircon/third_party/rapidjson",
  ]
  configs += [
    # TODO(fxbug.dev/58162): delete the below and fix compiler warnings
    "//build/config:Wno-conversion",
  ]
}

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
    },
  ]
}
