# Copyright 2019 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/test_package.gni")

group("all") {
  testonly = true

  deps = [ ":examples_fidl_hlcpptests" ]
}

executable("unittests") {
  testonly = true

  sources = [ "niceoutput_unittest.cc" ]

  deps = [
    "//examples/fidl/fostr/fuchsia.examples",
    "//examples/fidl/fuchsia.examples",
    "//src/lib/fxl/test:gtest_main",
    "//third_party/googletest:gtest",
  ]
}

# Run with:
#
#   fx set core.x64 --with //examples/fidl/hlcpptests:all
#   fx run-test examples_fidl_hlcpptests
unittest_package("examples_fidl_hlcpptests") {
  deps = [ ":unittests" ]

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