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

group("tests") {
  testonly = true
  deps = [ ":fdio_test" ]
}

test("io_conformance_fdio") {
  sources = [ "fdio.cc" ]
  deps = [
    "//sdk/lib/sys/cpp",
    "//third_party/googletest:gtest",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/async-loop-default",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/fdio",
    "//zircon/system/fidl/fuchsia-io",
    "//zircon/system/fidl/fuchsia-io-test",
  ]
}

test_package("fdio_test") {
  package_name = "io_conformance_fdio_test"
  deps = [ ":io_conformance_fdio" ]
  tests = [
    {
      name = "io_conformance_fdio"
      environments = basic_envs

      # TODO(fxb/44968): Re-enable these tests once we fix race conditions involving starting
      # and connecting components.
      disabled = true
    },
  ]
}
