# Copyright 2021 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("//src/sys/build/fuchsia_component.gni")
import("//src/sys/build/fuchsia_test_package.gni")

group("tests") {
  testonly = true
  deps = [ ":blobfs-compression-tests" ]
}

test("blobfs-compression-test") {
  sources = [
    "../common.cc",
    "blobfs-compression-test.cc",
  ]
  deps = [
    "//src/lib/chunked-compression",
    "//src/lib/fxl/test:gtest_main",
    "//third_party/googletest:gtest",
    "//zircon/public/lib/fbl",
  ]
}

fuchsia_component("blobfs-compression-tests-component") {
  component_name = "blobfs-compression-tests"
  testonly = true
  manifest = "meta/blobfs-compression-tests.cml"
  deps = [ ":blobfs-compression-test" ]
}

fuchsia_test_package("blobfs-compression-tests") {
  test_components = [ ":blobfs-compression-tests-component" ]
}
