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

if (is_host) {
  python_host_test("generate_sdk_package_content_checklist_test") {
    main_source = "generate_sdk_package_content_checklist_test.py"
    sources = [ "generate_sdk_package_content_checklist.py" ]
    libraries = [ "//third_party/parameterized" ]
  }
}

group("formatjson5") {
  testonly = true
  public_deps = [
    "//build/tools/formatjson5:formatjson5_test($host_toolchain)",
    "//build/tools/formatjson5:install",
  ]
}

group("json_merge") {
  testonly = true
  public_deps = [
    "//build/tools/json_merge:install",
    "//build/tools/json_merge:json_merge_test($host_toolchain)",
  ]
}

group("json_validator") {
  testonly = true
  public_deps = [ "//build/tools/json_validator:install" ]
}

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