mirror of https://github.com/grpc/grpc.git
The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)
https://grpc.io/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
444 lines
14 KiB
444 lines
14 KiB
# 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 weirdly 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 weirdly requires login shell |
|
) |
|
|
|
# PHP |
|
grpc_run_tests_harness_test( |
|
name = "runtests_php_linux_dbg", |
|
size = "enormous", |
|
args = [ |
|
"-l php8 -c dbg", |
|
], |
|
docker_image_version = "tools/dockerfile/test/php8_debian12_x64.current_version", |
|
) |
|
|
|
grpc_run_tests_harness_test( |
|
name = "runtests_php_linux_opt", |
|
size = "enormous", |
|
args = [ |
|
"-l php8 -c opt", |
|
], |
|
docker_image_version = "tools/dockerfile/test/php8_debian12_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_debian11_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_debian11_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_debian11_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_debian11_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_debian11_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_debian11_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_debian11_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_aarch64.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/php8_zts_debian12_x64.current_version", |
|
) |
|
|
|
# Python artifact build tasks |
|
|
|
grpc_build_artifact_task( |
|
name = "artifact_python_linux_x64_manylinux2014_cp313", |
|
build_script = "build_artifact_python_linux_x64_cp313.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_cp313", |
|
"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_debian11", |
|
# depend on the C# packages |
|
artifact_deps = [ |
|
"package_csharp_linux", |
|
], |
|
build_script = "run_distribtest_csharp_linux.sh", |
|
docker_image_version = "tools/dockerfile/distribtest/csharp_debian11_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_debian11", |
|
":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_debian12", |
|
size = "enormous", |
|
artifact_deps = [ |
|
"artifact_php_linux_x64", |
|
], |
|
build_script = "run_distribtest_php_linux.sh", |
|
docker_image_version = "tools/dockerfile/distribtest/php8_debian12_x64.current_version", |
|
docker_run_as_root = True, |
|
) |
|
|
|
test_suite( |
|
name = "php_distribtests_linux", |
|
tests = [ |
|
":distribtest_php_linux_x64_debian12", |
|
], |
|
) |
|
|
|
# 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_cp313_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", |
|
], |
|
)
|
|
|