# 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 = [ ":image-format-test-package" ]
}

test("image-format-test") {
  output_name = "image-format-test"
  sources = [
    "image-format-test.cc",
    "intel-image-formats.cc",
  ]
  deps = [
    "//sdk/lib/fdio",
    "//sdk/lib/zbi-format",
    "//zircon/system/ulib/image-format",
    "//zircon/system/ulib/sysmem-version",
    "//zircon/system/ulib/zxtest",
  ]

  # TODO(https://fxbug.dev/42176699): This target uses mutable tables which are deprecated,
  # rather than builders.
  configs += [ "//build/cpp:fidl-wire-deprecated-mutable-tables" ]
}

fuchsia_unittest_package("image-format-test-package") {
  package_name = "image-format-test"
  deps = [ ":image-format-test" ]
}
