# Copyright 2024 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/python/python_host_test.gni")
import("//build/python/python_library.gni")

python_library("fx_cmd") {
  library_name = "fx_cmd"
  source_root = "//scripts/lib/fx_cmd"
  sources = [
    "__init__.py",
    "lib.py",
  ]
  deps = [
    "//scripts/lib/async_utils",
    "//scripts/lib/build_dir",
  ]
}

if (is_host) {
  python_host_test("fx_cmd_test") {
    main_source = "tests/test_fx_cmd.py"
    sources = [ "tests/test_fx_cmd.py" ]
    extra_args = [ "-v" ]
    libraries = [ ":fx_cmd" ]
  }
}

group("tests") {
  testonly = true
  deps = [ ":fx_cmd_test($host_toolchain)" ]
}
