# Copyright 2017 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/package.gni")
import("//build/testing/environments.gni")
import("//src/sys/build/components.gni")

group("test") {
  testonly = true
  deps = [ ":sysmgr-tests" ]
}

executable("app_test") {
  testonly = true
  output_name = "app_test"
  sources = [
    "app_test.cc",
    "config_test.cc",
  ]
  deps = [
    "//sdk/lib/sys/cpp/testing:enclosing_environment",
    "//src/lib/fxl",
    "//src/lib/fxl/test:gtest_main",
    "//src/lib/testing/loop_fixture",
    "//src/sys/sysmgr:lib",
    "//third_party/googletest:gmock",
    "//zircon/system/ulib/async-loop:async-loop-default",
  ]

  # TODO(fxbug.dev/58162): delete the below and fix compiler warnings
  configs += [ "//build/config:Wno-conversion" ]
}

fuchsia_unittest_package("sysmgr-tests") {
  manifest = "meta/app_test.cmx"
  deps = [ ":app_test" ]
  test_specs = {
    log_settings = {
      max_severity = "ERROR"
    }
  }
}
