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

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

test("test-exceptions") {
  output_name = "test-exceptions-test"
  sources = [ "exception-catcher-test.cc" ]
  deps = [
    "//sdk/lib/fdio",
    "//zircon/system/ulib/test-exceptions",
    "//zircon/system/ulib/zx",
    "//zircon/system/ulib/zxtest",
  ]
}

fuchsia_unittest_package("test-exceptions-test-pkg") {
  package_name = "test-exceptions-test"
  deps = [ ":test-exceptions" ]
}

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