# Copyright 2023 The gRPC Authors
#
# 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
#
#     http://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.

load("//bazel:grpc_build_system.bzl", "grpc_package")
load("//tools/bazelify_tests:build_defs.bzl", "grpc_build_artifact_task", "grpc_run_cpp_distribtest_test", "grpc_run_distribtest_test", "grpc_run_simple_command_test", "grpc_run_tests_harness_test")
load(":bazel_distribtests.bzl", "generate_bazel_distribtests")
load(":portability_tests.bzl", "generate_run_tests_portability_tests")
load(":strict_tests.bzl", "generate_strict_tests")

licenses(["notice"])

grpc_package(name = "tools/bazelify_tests/test")

generate_run_tests_portability_tests(name = "portability_tests_linux")

generate_bazel_distribtests(name = "bazel_distribtests_linux")

# C/C++
grpc_run_tests_harness_test(
    name = "runtests_c_linux_dbg_build_only",
    size = "enormous",
    args = [
        "-l c -c dbg --build_only",
    ],
    docker_image_version = "tools/dockerfile/test/cxx_debian11_x64.current_version",
)

grpc_run_tests_harness_test(
    name = "runtests_c_linux_opt_build_only",
    size = "enormous",
    args = [
        "-l c -c opt --build_only",
    ],
    docker_image_version = "tools/dockerfile/test/cxx_debian11_x64.current_version",
)

grpc_run_tests_harness_test(
    name = "runtests_cpp_linux_dbg_build_only",
    size = "enormous",
    args = [
        "-l c++ -c dbg --build_only",
    ],
    docker_image_version = "tools/dockerfile/test/cxx_debian11_x64.current_version",
)

grpc_run_tests_harness_test(
    name = "runtests_cpp_linux_opt_build_only",
    size = "enormous",
    args = [
        "-l c++ -c opt --build_only",
    ],
    docker_image_version = "tools/dockerfile/test/cxx_debian11_x64.current_version",
)

# Ruby
grpc_run_tests_harness_test(
    name = "runtests_ruby_linux_dbg",
    size = "enormous",
    args = [
        "-l ruby -c dbg",
    ],
    docker_image_version = "tools/dockerfile/test/ruby_debian11_x64.current_version",
    prepare_script = ":prepare_ruby.sh",
    use_login_shell = True,  # ruby's docker image uses RVM which wierdly requires login shell
)

grpc_run_tests_harness_test(
    name = "runtests_ruby_linux_opt",
    size = "enormous",
    args = [
        "-l ruby -c opt",
    ],
    docker_image_version = "tools/dockerfile/test/ruby_debian11_x64.current_version",
    prepare_script = ":prepare_ruby.sh",
    use_login_shell = True,  # ruby's docker image uses RVM which wierdly requires login shell
)

# PHP
grpc_run_tests_harness_test(
    name = "runtests_php_linux_dbg",
    size = "enormous",
    args = [
        "-l php7 -c dbg",
    ],
    docker_image_version = "tools/dockerfile/test/php7_debian11_x64.current_version",
)

grpc_run_tests_harness_test(
    name = "runtests_php_linux_opt",
    size = "enormous",
    args = [
        "-l php7 -c opt",
    ],
    docker_image_version = "tools/dockerfile/test/php7_debian11_x64.current_version",
)

# Python
grpc_run_tests_harness_test(
    name = "runtests_python_linux_opt",
    size = "enormous",
    args = [
        "-l python -c opt",
    ],
    docker_image_version = "tools/dockerfile/test/python_debian11_default_x64.current_version",
)

# C#
grpc_run_tests_harness_test(
    name = "runtests_csharp_linux_dbg",
    size = "enormous",
    args = [
        "-l csharp -c dbg",
    ],
    docker_image_version = "tools/dockerfile/test/csharp_debian11_x64.current_version",
)

grpc_run_tests_harness_test(
    name = "runtests_csharp_linux_opt",
    size = "enormous",
    args = [
        "-l csharp -c opt",
    ],
    docker_image_version = "tools/dockerfile/test/csharp_debian11_x64.current_version",
)

test_suite(
    name = "basic_tests_linux",
    tests = [
        ":runtests_c_linux_dbg_build_only",
        ":runtests_c_linux_opt_build_only",
        ":runtests_cpp_linux_dbg_build_only",
        ":runtests_cpp_linux_opt_build_only",
        ":runtests_csharp_linux_dbg",
        ":runtests_csharp_linux_opt",
        ":runtests_php_linux_dbg",
        ":runtests_php_linux_opt",
        ":runtests_python_linux_opt",
        ":runtests_ruby_linux_dbg",
        ":runtests_ruby_linux_opt",
    ],
)

grpc_run_cpp_distribtest_test(
    name = "cpp_distribtest_cmake_linux",
    size = "enormous",
    args = ["test/distrib/cpp/run_distrib_test_cmake.sh"],
    docker_image_version = "tools/dockerfile/distribtest/cpp_debian10_x64.current_version",
)

grpc_run_cpp_distribtest_test(
    name = "cpp_distribtest_cmake_as_submodule_linux",
    size = "enormous",
    args = ["test/distrib/cpp/run_distrib_test_cmake_as_submodule.sh"],
    docker_image_version = "tools/dockerfile/distribtest/cpp_debian10_x64.current_version",
)

grpc_run_cpp_distribtest_test(
    name = "cpp_distribtest_cmake_as_externalproject_linux",
    size = "enormous",
    args = ["test/distrib/cpp/run_distrib_test_cmake_as_externalproject.sh"],
    docker_image_version = "tools/dockerfile/distribtest/cpp_debian10_x64.current_version",
)

grpc_run_cpp_distribtest_test(
    name = "cpp_distribtest_cmake_fetchcontent_linux",
    size = "enormous",
    args = ["test/distrib/cpp/run_distrib_test_cmake_fetchcontent.sh"],
    docker_image_version = "tools/dockerfile/distribtest/cpp_debian10_x64.current_version",
)

grpc_run_cpp_distribtest_test(
    name = "cpp_distribtest_cmake_module_install_linux",
    size = "enormous",
    args = ["test/distrib/cpp/run_distrib_test_cmake_module_install.sh"],
    docker_image_version = "tools/dockerfile/distribtest/cpp_debian10_x64.current_version",
)

grpc_run_cpp_distribtest_test(
    name = "cpp_distribtest_cmake_pkgconfig_linux",
    size = "enormous",
    args = ["test/distrib/cpp/run_distrib_test_cmake_pkgconfig.sh"],
    docker_image_version = "tools/dockerfile/distribtest/cpp_debian10_x64.current_version",
)

grpc_run_cpp_distribtest_test(
    name = "cpp_distribtest_cmake_aarch64_cross_linux",
    size = "enormous",
    args = ["test/distrib/cpp/run_distrib_test_cmake_aarch64_cross.sh"],
    docker_image_version = "tools/dockerfile/distribtest/cpp_debian10_aarch64_cross_x64.current_version",
)

test_suite(
    name = "cpp_distribtests_linux",
    tests = [
        ":cpp_distribtest_cmake_aarch64_cross_linux",
        ":cpp_distribtest_cmake_as_externalproject_linux",
        ":cpp_distribtest_cmake_as_submodule_linux",
        ":cpp_distribtest_cmake_fetchcontent_linux",
        ":cpp_distribtest_cmake_linux",
        ":cpp_distribtest_cmake_module_install_linux",
        ":cpp_distribtest_cmake_pkgconfig_linux",
    ],
)

# "Bazel build" tests
generate_strict_tests()

grpc_run_simple_command_test(
    name = "bazel_build_with_grpc_no_xds_linux",
    size = "enormous",
    args = ["tools/bazelify_tests/test/bazel_build_with_grpc_no_xds_linux.sh"],
    docker_image_version = "tools/dockerfile/test/bazel.current_version",
)

grpc_run_simple_command_test(
    name = "bazel_build_with_grpc_no_xds_negative_test_linux",
    size = "enormous",
    args = ["tools/bazelify_tests/test/bazel_build_with_grpc_no_xds_negative_test_linux.sh"],
    docker_image_version = "tools/dockerfile/test/bazel.current_version",
)

test_suite(
    name = "bazel_build_tests_linux",
    tests = [
        ":bazel_build_with_grpc_no_xds_linux",
        ":bazel_build_with_grpc_no_xds_negative_test_linux",
        ":bazel_build_with_strict_warnings_linux",
    ],
)

# protoc artifact build tasks
grpc_build_artifact_task(
    name = "artifact_protoc_linux_x64",
    build_script = "build_artifact_protoc_linux.sh",
    docker_image_version = "tools/dockerfile/grpc_artifact_centos6_x64.current_version",
)

grpc_build_artifact_task(
    name = "artifact_protoc_linux_x86",
    build_script = "build_artifact_protoc_linux.sh",
    docker_image_version = "tools/dockerfile/grpc_artifact_centos6_x86.current_version",
)

grpc_build_artifact_task(
    name = "artifact_protoc_linux_aarch64",
    build_script = "build_artifact_protoc_linux.sh",
    docker_image_version = "tools/dockerfile/grpc_artifact_protoc_aarch64.current_version",
)

# PHP artifact build tasks

grpc_build_artifact_task(
    name = "artifact_php_linux_x64",
    build_script = "build_artifact_php_linux.sh",
    docker_image_version = "tools/dockerfile/test/php73_zts_debian11_x64.current_version",
)

# Python artifact build tasks

grpc_build_artifact_task(
    name = "artifact_python_linux_x64_manylinux2014_cp312",
    build_script = "build_artifact_python_linux_x64_cp312.sh",
    docker_image_version = "tools/dockerfile/grpc_artifact_python_manylinux2014_x64.current_version",
)

# Building 39 here since default Python version in testing image is 3.9.
grpc_build_artifact_task(
    name = "artifact_python_linux_x64_manylinux2014_cp39",
    build_script = "build_artifact_python_linux_x64_cp39.sh",
    docker_image_version = "tools/dockerfile/grpc_artifact_python_manylinux2014_x64.current_version",
)

# TODO(jtattermusch): add more grpc_build_artifact_task targets for existing python artifacts from artifact_targets.py

grpc_build_artifact_task(
    name = "package_python_linux",
    # TODO(jtattermusch): add more python artifacts once they are migrated from artifact_targets.py
    artifact_deps = [
        "artifact_python_linux_x64_manylinux2014_cp312",
        "artifact_python_linux_x64_manylinux2014_cp39",
    ],
    build_script = "build_package_python_linux.sh",
    docker_image_version = "tools/dockerfile/grpc_artifact_python_manylinux2014_x64.current_version",
)

# C# package build tasks

grpc_build_artifact_task(
    name = "package_csharp_linux",
    # csharp package needs pre-built protoc and protoc plugin binaries
    artifact_deps = [
        "artifact_protoc_linux_x64",
        "artifact_protoc_linux_x86",
        "artifact_protoc_linux_aarch64",
    ],
    build_script = "build_package_csharp_linux.sh",
    docker_image_version = "tools/dockerfile/test/csharp_debian11_x64.current_version",
)

# C# distribtests

grpc_run_distribtest_test(
    name = "distribtest_csharp_linux_x64_debian10",
    # depend on the C# packages
    artifact_deps = [
        "package_csharp_linux",
    ],
    build_script = "run_distribtest_csharp_linux.sh",
    docker_image_version = "tools/dockerfile/distribtest/csharp_debian10_x64.current_version",
)

grpc_run_distribtest_test(
    name = "distribtest_csharp_linux_x64_ubuntu2204",
    # depend on the C# packages
    artifact_deps = [
        "package_csharp_linux",
    ],
    build_script = "run_distribtest_csharp_linux.sh",
    docker_image_version = "tools/dockerfile/distribtest/csharp_ubuntu2204_x64.current_version",
)

grpc_run_distribtest_test(
    name = "distribtest_csharp_linux_x64_alpine",
    # depend on the C# packages
    artifact_deps = [
        "package_csharp_linux",
    ],
    build_script = "run_distribtest_csharp_linux.sh",
    docker_image_version = "tools/dockerfile/distribtest/csharp_alpine_x64.current_version",
)

grpc_run_distribtest_test(
    name = "distribtest_csharp_linux_x64_dotnet31",
    # depend on the C# packages
    artifact_deps = [
        "package_csharp_linux",
    ],
    build_script = "run_distribtest_csharp_linux.sh",
    docker_image_version = "tools/dockerfile/distribtest/csharp_dotnet31_x64.current_version",
)

grpc_run_distribtest_test(
    name = "distribtest_csharp_linux_x64_dotnet5",
    # depend on the C# packages
    artifact_deps = [
        "package_csharp_linux",
    ],
    build_script = "run_distribtest_csharp_linux.sh",
    docker_image_version = "tools/dockerfile/distribtest/csharp_dotnet5_x64.current_version",
)

test_suite(
    name = "csharp_distribtests_linux",
    tests = [
        ":distribtest_csharp_linux_x64_alpine",
        ":distribtest_csharp_linux_x64_debian10",
        ":distribtest_csharp_linux_x64_dotnet31",
        ":distribtest_csharp_linux_x64_dotnet5",
        ":distribtest_csharp_linux_x64_ubuntu2204",
    ],
)

# PHP distribtests

grpc_run_distribtest_test(
    name = "distribtest_php_linux_x64_debian10",
    size = "enormous",
    artifact_deps = [
        "artifact_php_linux_x64",
    ],
    build_script = "run_distribtest_php_linux.sh",
    docker_image_version = "tools/dockerfile/distribtest/php7_debian10_x64.current_version",
    docker_run_as_root = True,
)

test_suite(
    name = "php_distribtests_linux",
    tests = [
        ":distribtest_php_linux_x64_debian10",
    ],
)

# Python distribtests

grpc_run_distribtest_test(
    name = "distribtest_python_linux_x64_bullseye",
    artifact_deps = [
        "package_python_linux",
    ],
    build_script = "run_distribtest_python_linux.sh",
    docker_image_version = "tools/dockerfile/distribtest/python_bullseye_x64.current_version",
)

test_suite(
    name = "python_distribtests_linux",
    tests = [
        ":distribtest_python_linux_x64_bullseye",
    ],
)

# TODO(jtattermusch): add more grpc_run_distribtest_test targets for existing python distribtests from distribtest_targets.py
# Note that there a two flavors of python distribtests - "binary" (which uses pre-built wheels) and "source" (which compiles python extension for sources)

# TODO(jtattermusch): add grpc_build_artifact_task targets for ruby artifacts (which is tricky, since ruby artifact builds do not run under docker since they invoke docker themselves)

test_suite(
    name = "artifact_build_tests_linux",
    tests = [
        ":artifact_php_linux_x64_build_test",
        ":artifact_protoc_linux_aarch64_build_test",
        ":artifact_protoc_linux_x64_build_test",
        ":artifact_protoc_linux_x86_build_test",
        ":artifact_python_linux_x64_manylinux2014_cp312_build_test",
        ":artifact_python_linux_x64_manylinux2014_cp39_build_test",
        ":package_csharp_linux_build_test",
        ":package_python_linux_build_test",
    ],
)

test_suite(
    name = "all_tests_linux",
    tests = [
        ":artifact_build_tests_linux",
        ":basic_tests_linux",
        ":bazel_build_tests_linux",
        ":bazel_distribtests_linux",
        ":cpp_distribtests_linux",
        ":csharp_distribtests_linux",
        ":php_distribtests_linux",
        ":portability_tests_linux",
        ":python_distribtests_linux",
    ],
)
