445 lines
14 KiB
Python
445 lines
14 KiB
Python
# 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",
|
|
],
|
|
)
|