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

test("exception") {
  output_name = "exception-test"
  configs += [
    "//build/unification/config:zircon-migrated",
    "//build/config:all_source",
  ]
  sources = [
    "exception.cc",
    "exception_to_string.cc",
  ]
  deps = [
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/zx",
    "//zircon/public/lib/zxtest",
    "//zircon/system/ulib/test-exceptions",
    "//zircon/system/ulib/test-utils",
  ]
}

bootfs_test("exception-bootfs-test") {
  name = "exception-test"
  deps = [ ":exception" ]
}
