# 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")

test("partition-mapping") {
  sources = [ "main.cc" ]
  deps = [
    "//sdk/fidl/fuchsia.hardware.block.partition:fuchsia.hardware.block.partition_cpp",
    "//sdk/lib/device-watcher/cpp",
    "//sdk/lib/fdio",
    "//src/lib/fsl",
    "//src/storage/gpt",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/async-loop:async-loop-default",
    "//zircon/system/ulib/fbl",
    "//zircon/system/ulib/fdio-caller",
    "//zircon/system/ulib/zx",
    "//zircon/system/ulib/zxtest",
  ]
}

fuchsia_unittest_package("partition-mapping-test") {
  manifest = "meta/partition-mapping.cml"
  deps = [ ":partition-mapping" ]

  # The test needs to examine the actual partition labels on the real storage
  # on the device to make sure the label to zircon partition type mapping is
  # correct. Thus we add the following to mark the test as non-hermetic.
  # Ideally, a much preferred solution is to mock out the entire GPT storage
  # and test in an isolated environment.
  test_type = "device"
}
