-- 730bb88bee556aa11fa19aa33e1434cb6fa78985 by Evan Brown <ezb@google.com>: Support missing allocator-related constructors in b-tree. See [reference](https://en.cppreference.com/w/cpp/container/set/set). Also use allocator_traits::select_on_container_copy_construction() to get allocator for copy construction. PiperOrigin-RevId: 339058322 -- b6cc121689ae3e452d1db2d66122cb198d25142b by Derek Mauro <dmauro@google.com>: Fix more sign-compare warnings PiperOrigin-RevId: 339057920 -- 0e2c62da1dcaf6529abab952bdcc96c6de2d9506 by Abseil Team <absl-team@google.com>: Add missing <limits> include PiperOrigin-RevId: 339054753 -- d5a9ec2d1e40fe6359e720942e4955009ee415ec by Derek Mauro <dmauro@google.com>: Stop disabling sign-compare warnings for non-test targets. Our users complain about these. This does not catch issues in header-only libraries (like btree.h) but we may work on those in the future PiperOrigin-RevId: 338967089 -- 0c062c542a4c61ea0f65d25811827c0858e3adde by Abseil Team <absl-team@google.com>: Improve cache-locality for ThreadIdentity and PerThreadSynch. This is a change based on an observation in RPC benchmarks that shows significant cycles being spent in waking up a thread, 99.8% of which was on cache misses. Investigating this a bit more, it turns out to be due to sharing the cache line with the waiter state. To fix this issue, the following changes are introduced: - Reorder fields in PerThreadSync so that it fits in a single cache line The size of this structure was 80 bytes before this change. Note: Manually inspected all booleans to make sure they are not modified by multiple threads concurrently. PiperOrigin-RevId: 338852058 -- a90d6f2b2346385017e32dd8ae1b5ca691a5863f by Derek Mauro <dmauro@google.com>: Delete GCC 4.9 test script. It is no longer supported PiperOrigin-RevId: 338779452 -- 7274008d4757e88869110be9db39d03d911ae2b5 by Abseil Team <absl-team@google.com>: Fix the usage example in which SetFlag should take a pointer. PiperOrigin-RevId: 338744529 GitOrigin-RevId: 730bb88bee556aa11fa19aa33e1434cb6fa78985 Change-Id: Iff99594c4022e60e482a392d334b376c7ae8883epull/833/head
parent
1e3d25b265
commit
5bf048b842
15 changed files with 203 additions and 179 deletions
@ -1,89 +0,0 @@ |
||||
#!/bin/bash |
||||
# |
||||
# Copyright 2019 The Abseil 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 |
||||
# |
||||
# https://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. |
||||
|
||||
# This script that can be invoked to test abseil-cpp in a hermetic environment |
||||
# using a Docker image on Linux. You must have Docker installed to use this |
||||
# script. |
||||
|
||||
set -euox pipefail |
||||
|
||||
if [[ -z ${ABSEIL_ROOT:-} ]]; then |
||||
ABSEIL_ROOT="$(realpath $(dirname ${0})/..)" |
||||
fi |
||||
|
||||
if [[ -z ${STD:-} ]]; then |
||||
STD="c++11 c++14" |
||||
fi |
||||
|
||||
if [[ -z ${COMPILATION_MODE:-} ]]; then |
||||
COMPILATION_MODE="fastbuild opt" |
||||
fi |
||||
|
||||
if [[ -z ${EXCEPTIONS_MODE:-} ]]; then |
||||
EXCEPTIONS_MODE="-fno-exceptions -fexceptions" |
||||
fi |
||||
|
||||
source "${ABSEIL_ROOT}/ci/linux_docker_containers.sh" |
||||
readonly DOCKER_CONTAINER=${LINUX_GCC_49_CONTAINER} |
||||
|
||||
# USE_BAZEL_CACHE=1 only works on Kokoro. |
||||
# Without access to the credentials this won't work. |
||||
if [[ ${USE_BAZEL_CACHE:-0} -ne 0 ]]; then |
||||
DOCKER_EXTRA_ARGS="--mount type=bind,source=${KOKORO_KEYSTORE_DIR},target=/keystore,readonly ${DOCKER_EXTRA_ARGS:-}" |
||||
# Bazel doesn't track changes to tools outside of the workspace |
||||
# (e.g. /usr/bin/gcc), so by appending the docker container to the |
||||
# remote_http_cache url, we make changes to the container part of |
||||
# the cache key. Hashing the key is to make it shorter and url-safe. |
||||
container_key=$(echo ${DOCKER_CONTAINER} | sha256sum | head -c 16) |
||||
BAZEL_EXTRA_ARGS="--remote_http_cache=https://storage.googleapis.com/absl-bazel-remote-cache/${container_key} --google_credentials=/keystore/73103_absl-bazel-remote-cache ${BAZEL_EXTRA_ARGS:-}" |
||||
fi |
||||
|
||||
# Avoid depending on external sites like GitHub by checking --distdir for |
||||
# external dependencies first. |
||||
# https://docs.bazel.build/versions/master/guide.html#distdir |
||||
if [[ ${KOKORO_GFILE_DIR:-} ]] && [[ -d "${KOKORO_GFILE_DIR}/distdir" ]]; then |
||||
DOCKER_EXTRA_ARGS="--mount type=bind,source=${KOKORO_GFILE_DIR}/distdir,target=/distdir,readonly ${DOCKER_EXTRA_ARGS:-}" |
||||
BAZEL_EXTRA_ARGS="--distdir=/distdir ${BAZEL_EXTRA_ARGS:-}" |
||||
fi |
||||
|
||||
for std in ${STD}; do |
||||
for compilation_mode in ${COMPILATION_MODE}; do |
||||
for exceptions_mode in ${EXCEPTIONS_MODE}; do |
||||
echo "--------------------------------------------------------------------" |
||||
time docker run \ |
||||
--mount type=bind,source="${ABSEIL_ROOT}",target=/abseil-cpp,readonly \ |
||||
--workdir=/abseil-cpp \ |
||||
--cap-add=SYS_PTRACE \ |
||||
--rm \ |
||||
-e CC="/usr/bin/gcc-4.9" \ |
||||
-e BAZEL_CXXOPTS="-std=${std}" \ |
||||
${DOCKER_EXTRA_ARGS:-} \ |
||||
${DOCKER_CONTAINER} \ |
||||
/usr/local/bin/bazel test ... \ |
||||
--compilation_mode="${compilation_mode}" \ |
||||
--copt="${exceptions_mode}" \ |
||||
--copt=-Werror \ |
||||
--define="absl=1" \ |
||||
--keep_going \ |
||||
--show_timestamps \ |
||||
--test_env="GTEST_INSTALL_FAILURE_SIGNAL_HANDLER=1" \ |
||||
--test_env="TZDIR=/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo" \ |
||||
--test_output=errors \ |
||||
--test_tag_filters=-benchmark \ |
||||
${BAZEL_EXTRA_ARGS:-} |
||||
done |
||||
done |
||||
done |
Loading…
Reference in new issue