# Copyright 2020 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# This package contains tool scripts

load("@rules_python//python:defs.bzl", "py_binary", "py_library", "py_test")
load("@fuzzing_py_deps//:requirements.bzl", "requirement")

# Tools.
########

py_binary(
    name = "launcher",
    srcs = ["launcher.py"],
    python_version = "PY3",
    visibility = ["//visibility:public"],
    deps = [requirement("absl-py")],
)

py_binary(
    name = "make_corpus_dir",
    srcs = ["make_corpus_dir.py"],
    python_version = "PY3",
    visibility = ["//visibility:public"],
    deps = [requirement("absl-py")],
)

py_binary(
    name = "validate_dict",
    srcs = ["validate_dict.py"],
    python_version = "PY3",
    visibility = ["//visibility:public"],
    deps = [
        ":dict_validation",
        requirement("absl-py"),
    ],
)

# Libraries.
############

py_library(
    name = "dict_validation",
    srcs = ["dict_validation.py"],
)

# Tests.
########

py_test(
    name = "dict_validation_test",
    srcs = ["dict_validation_test.py"],
    deps = [":dict_validation"],
)
