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

source_set("cmx") {
  sources = [
    "cmx.cc",
    "cmx.h",
    "program.cc",
    "program.h",
    "runtime.cc",
    "runtime.h",
    "sandbox.cc",
    "sandbox.h",
  ]

  deps = [
    "//garnet/public/lib/cmx_facet_parser",
    "//garnet/public/lib/json",
    "//src/lib/fxl",
    "//src/lib/pkg_url",
    "//third_party/rapidjson",
    "//zircon/public/lib/fit",
    "//zircon/public/lib/trace",
  ]
}

executable("tests") {
  testonly = true

  output_name = "cmx_unittests"

  sources = [
    "cmx_unittest.cc",
    "program_unittest.cc",
    "runtime_unittest.cc",
    "sandbox_unittest.cc",
  ]

  deps = [
    ":cmx",
    "//garnet/public/lib/gtest",
    "//garnet/public/lib/json",
    "//src/lib/fxl/test:gtest_main",
    "//src/lib/pkg_url",
    "//third_party/googletest:gmock",
    "//third_party/rapidjson",
  ]
}

test_package("cmx_unittests") {
  deps = [
    ":tests",
  ]
  tests = [
    {
      name = "cmx_unittests"
      environments = basic_envs
    },
  ]
}
