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