# Copyright 2020 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 = [ ":ram-crashlog" ]
}

test("ram-crashlog") {
  output_name = "ram-crashlog-test"
  if (is_fuchsia) {
    configs += [ "//build/unification/config:zircon-migrated" ]
  }

  sources = [ "ram-crashlog-tests.cc" ]

  deps = [
    "//zircon/public/lib/zxtest",
    "//zircon/system/ulib/ram-crashlog",
    "//zircon/third_party/ulib/cksum",
  ]
}

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

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