Added gcc11 and clang12 tests (#27190)

pull/27492/head
Esun Kim 3 years ago committed by GitHub
parent 20cc6e7414
commit 5690ea0106
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      src/cpp/README.md
  2. 29
      templates/tools/dockerfile/test/cxx_clang_12_x64/Dockerfile.template
  3. 29
      templates/tools/dockerfile/test/cxx_clang_4_x64/Dockerfile.template
  4. 8
      templates/tools/dockerfile/test/cxx_gcc_11_x64/Dockerfile.template
  5. 42
      tools/dockerfile/test/cxx_clang_12_x64/Dockerfile
  6. 54
      tools/dockerfile/test/cxx_clang_4_x64/Dockerfile
  7. 54
      tools/dockerfile/test/cxx_gcc_11_x64/Dockerfile
  8. 22
      tools/run_tests/run_tests.py
  9. 4
      tools/run_tests/run_tests_matrix.py

@ -19,10 +19,10 @@ We will make our best effort to support them, and we welcome patches for such pl
| Operating System | Architectures | Versions | Support Level |
|------------------|---------------|----------|---------------|
| Linux - Debian, Ubuntu, CentOS | x86, x64 | clang 3.4+, GCC 4.9+ | Supported |
| Linux - Debian, Ubuntu, CentOS | x86, x64 | clang 4+, GCC 4.9+ | Supported |
| Windows 10+ | x86, x64 | Visual Studio 2015+ | Supported |
| MacOS | x86, x64 | XCode 7.2+ | Supported |
| Linux - Others | x86, x64 | clang 3.4+, GCC 4.9+ | Best Effort |
| Linux - Others | x86, x64 | clang 4+, GCC 4.9+ | Best Effort |
| Linux | ARM | | Best Effort |
| iOS | | | Best Effort |
| Android | | | Best Effort |

@ -0,0 +1,29 @@
%YAML 1.2
--- |
# Copyright 2021 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.
FROM silkeh/clang:12
RUN apt-get update && apt-get install -y build-essential curl git golang time wget zip
<%include file="../../python_deps.include"/>
RUN pip install PyYAML==5.4.1
RUN apt-get install python-is-python2
<%include file="../../gcp_api_libraries.include"/>
<%include file="../../cxx_deps.include"/>
<%include file="../../cmake.include"/>
<%include file="../../run_tests_addons.include"/>
# Define the default command.
CMD ["bash"]

@ -0,0 +1,29 @@
%YAML 1.2
--- |
# Copyright 2021 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.
FROM silkeh/clang:4
RUN apt-get update && apt-get install -y build-essential curl git golang time wget zip
<%include file="../../python_deps.include"/>
RUN pip install PyYAML==5.4.1
RUN apt-get install python-is-python2
<%include file="../../gcp_api_libraries.include"/>
<%include file="../../cxx_deps.include"/>
<%include file="../../cmake.include"/>
<%include file="../../run_tests_addons.include"/>
# Define the default command.
CMD ["bash"]

@ -1,6 +1,6 @@
%YAML 1.2
--- |
# Copyright 2015 gRPC authors.
# Copyright 2021 gRPC authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@ -14,10 +14,12 @@
# See the License for the specific language governing permissions and
# limitations under the License.
FROM ubuntu:18.04
FROM gcc:11
<%include file="../../apt_get_basic.include"/>
RUN apt-get update && apt-get install -y curl git golang time wget zip
<%include file="../../python_deps.include"/>
RUN pip install PyYAML==5.4.1
RUN apt-get install python-is-python2
<%include file="../../gcp_api_libraries.include"/>
<%include file="../../cxx_deps.include"/>
<%include file="../../cmake.include"/>

@ -1,4 +1,4 @@
# Copyright 2015 gRPC authors.
# Copyright 2021 gRPC authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@ -12,43 +12,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
FROM ubuntu:18.04
# Install Git and basic packages.
RUN apt-get update && apt-get install -y \
autoconf \
autotools-dev \
build-essential \
bzip2 \
ccache \
curl \
dnsutils \
gcc \
gcc-multilib \
git \
golang \
gyp \
lcov \
libc6 \
libc6-dbg \
libc6-dev \
libgtest-dev \
libtool \
make \
perl \
strace \
python-dev \
python-setuptools \
python-yaml \
telnet \
unzip \
wget \
zip && apt-get clean
#================
# Build profiling
RUN apt-get update && apt-get install -y time && apt-get clean
FROM silkeh/clang:12
RUN apt-get update && apt-get install -y build-essential curl git golang time wget zip
#====================
# Python dependencies
@ -65,6 +31,8 @@ RUN pip install --upgrade pip==19.3.1
RUN pip install virtualenv==16.7.9
RUN pip install futures==3.1.1 enum34==1.1.10 protobuf==3.5.2.post1 six==1.16.0 twisted==19.10.0
RUN pip install PyYAML==5.4.1
RUN apt-get install python-is-python2
# Google Cloud platform API libraries
RUN pip install --upgrade google-auth==1.24.0 google-api-python-client==1.12.8 oauth2client==4.1.0

@ -0,0 +1,54 @@
# Copyright 2021 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.
FROM silkeh/clang:4
RUN apt-get update && apt-get install -y build-essential curl git golang time wget zip
#====================
# Python dependencies
# Install dependencies
RUN apt-get update && apt-get install -y \
python-all-dev \
python3-all-dev \
python-setuptools
# Install Python packages from PyPI
RUN curl https://bootstrap.pypa.io/pip/2.7/get-pip.py | python2.7
RUN pip install --upgrade pip==19.3.1
RUN pip install virtualenv==16.7.9
RUN pip install futures==3.1.1 enum34==1.1.10 protobuf==3.5.2.post1 six==1.16.0 twisted==19.10.0
RUN pip install PyYAML==5.4.1
RUN apt-get install python-is-python2
# Google Cloud platform API libraries
RUN pip install --upgrade google-auth==1.24.0 google-api-python-client==1.12.8 oauth2client==4.1.0
#=================
# C++ dependencies
RUN apt-get update && apt-get -y install libgflags-dev libgtest-dev libc++-dev clang && apt-get clean
#=================
# Install cmake
# Note that this step should be only used for distributions that have new enough cmake to satisfy gRPC's cmake version requirement.
RUN apt-get update && apt-get install -y cmake && apt-get clean
RUN mkdir /var/local/jenkins
# Define the default command.
CMD ["bash"]

@ -0,0 +1,54 @@
# Copyright 2021 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.
FROM gcc:11
RUN apt-get update && apt-get install -y curl git golang time wget zip
#====================
# Python dependencies
# Install dependencies
RUN apt-get update && apt-get install -y \
python-all-dev \
python3-all-dev \
python-setuptools
# Install Python packages from PyPI
RUN curl https://bootstrap.pypa.io/pip/2.7/get-pip.py | python2.7
RUN pip install --upgrade pip==19.3.1
RUN pip install virtualenv==16.7.9
RUN pip install futures==3.1.1 enum34==1.1.10 protobuf==3.5.2.post1 six==1.16.0 twisted==19.10.0
RUN pip install PyYAML==5.4.1
RUN apt-get install python-is-python2
# Google Cloud platform API libraries
RUN pip install --upgrade google-auth==1.24.0 google-api-python-client==1.12.8 oauth2client==4.1.0
#=================
# C++ dependencies
RUN apt-get update && apt-get -y install libgflags-dev libgtest-dev libc++-dev clang && apt-get clean
#=================
# Install cmake
# Note that this step should be only used for distributions that have new enough cmake to satisfy gRPC's cmake version requirement.
RUN apt-get update && apt-get install -y cmake && apt-get clean
RUN mkdir /var/local/jenkins
# Define the default command.
CMD ["bash"]

@ -464,24 +464,20 @@ class CLanguage(object):
return ('jessie', [])
elif compiler == 'gcc5.3':
return ('ubuntu1604', [])
elif compiler == 'gcc7.4':
return ('ubuntu1804', [])
elif compiler == 'gcc8.3':
return ('buster', [])
elif compiler == 'gcc8.3_openssl102':
return ('buster_openssl102', [
"-DgRPC_SSL_PROVIDER=package",
])
elif compiler == 'gcc11':
return ('gcc_11', [])
elif compiler == 'gcc_musl':
return ('alpine', [])
elif compiler == 'clang4.0':
return ('ubuntu1604',
self._clang_cmake_configure_extra_args(
version_suffix='-4.0'))
elif compiler == 'clang5.0':
return ('ubuntu1604',
self._clang_cmake_configure_extra_args(
version_suffix='-5.0'))
elif compiler == 'clang4':
return ('clang_4', self._clang_cmake_configure_extra_args())
elif compiler == 'clang12':
return ('clang_12', self._clang_cmake_configure_extra_args())
else:
raise Exception('Compiler %s not supported.' % compiler)
@ -1417,12 +1413,12 @@ argp.add_argument(
'default',
'gcc4.9',
'gcc5.3',
'gcc7.4',
'gcc8.3',
'gcc8.3_openssl102',
'gcc11',
'gcc_musl',
'clang4.0',
'clang5.0',
'clang4',
'clang12',
'python2.7',
'python3.5',
'python3.6',

@ -266,8 +266,8 @@ def _create_portability_test_jobs(extra_args=[],
# portability C and C++ on x64
for compiler in [
'gcc4.9', 'gcc5.3', 'gcc7.4', 'gcc8.3', 'gcc8.3_openssl102',
'gcc_musl', 'clang4.0', 'clang5.0'
'gcc4.9', 'gcc5.3', 'gcc8.3', 'gcc8.3_openssl102', 'gcc11',
'gcc_musl', 'clang4', 'clang12'
]:
test_jobs += _generate_jobs(languages=['c', 'c++'],
configs=['dbg'],

Loading…
Cancel
Save