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

group("tests") {
  testonly = true
  public_deps = [ ":run_all_tests($host_toolchain)" ]
}

if (current_toolchain == host_toolchain) {
  action("run_all_tests") {
    script = "//build/api/run_all_tests.py"
    inputs = [
      "client",
      "client.py",
      "client_test.py",
      "gn_labels.py",
      "gn_labels_test.py",
      "gn_ninja_outputs.py",
      "gn_ninja_outputs_test.py",
    ]
    outputs = [ "$target_out_dir/$target_name.check" ]
    args = [
      "--quiet",
      "--stamp",
      rebase_path(outputs[0], root_build_dir),
    ]
  }
}  # is_host
