# 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")

group("test") {
  testonly = true
  deps = [
    ":memory_monitor_tests",
    ":memory_monitor_unittests",
  ]
}

executable("memory_monitor_unittests") {
  testonly = true

  output_name = "memory_monitor_unittests"

  sources = [
    "monitor_unittest.cc",
  ]

  deps = [
    "//garnet/bin/memory_monitor:lib",
    "//garnet/public/lib/gtest",
    "//sdk/lib/sys/cpp/testing:unit",
    "//src/lib/fxl/test:gtest_main",
  ]
}

test_package("memory_monitor_tests") {
  deps = [
    ":memory_monitor_unittests",
  ]

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