# 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("fuchsia_inspect") {
  library_name = "fuchsia_inspect"
  source_root = "//src/lib/diagnostics/python/fuchsia_inspect"
  sources = [
    "__init__.py",
    "lib.py",
  ]
  deps = []
}

if (is_host) {
  python_host_test("python_inspect_test") {
    main_source = "tests/test_inspect.py"
    sources = [ "tests/test_inspect.py" ]
    extra_args = [ "-v" ]
    libraries = [ ":fuchsia_inspect" ]
  }
}

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