xref: /aosp_15_r20/external/libcxx/utils/google-benchmark/.travis.yml (revision 58b9f456b02922dfdb1fad8a988d5fd8765ecb80)
1*58b9f456SAndroid Build Coastguard Workersudo: required
2*58b9f456SAndroid Build Coastguard Workerdist: trusty
3*58b9f456SAndroid Build Coastguard Workerlanguage: cpp
4*58b9f456SAndroid Build Coastguard Worker
5*58b9f456SAndroid Build Coastguard Workerenv:
6*58b9f456SAndroid Build Coastguard Worker  global:
7*58b9f456SAndroid Build Coastguard Worker    - /usr/local/bin:$PATH
8*58b9f456SAndroid Build Coastguard Worker
9*58b9f456SAndroid Build Coastguard Workermatrix:
10*58b9f456SAndroid Build Coastguard Worker  include:
11*58b9f456SAndroid Build Coastguard Worker    - compiler: gcc
12*58b9f456SAndroid Build Coastguard Worker      addons:
13*58b9f456SAndroid Build Coastguard Worker        apt:
14*58b9f456SAndroid Build Coastguard Worker          packages:
15*58b9f456SAndroid Build Coastguard Worker            - lcov
16*58b9f456SAndroid Build Coastguard Worker      env: COMPILER=g++ C_COMPILER=gcc BUILD_TYPE=Coverage
17*58b9f456SAndroid Build Coastguard Worker    - compiler: gcc
18*58b9f456SAndroid Build Coastguard Worker      env: COMPILER=g++ C_COMPILER=gcc BUILD_TYPE=Debug
19*58b9f456SAndroid Build Coastguard Worker    - compiler: gcc
20*58b9f456SAndroid Build Coastguard Worker      env: COMPILER=g++ C_COMPILER=gcc BUILD_TYPE=Release
21*58b9f456SAndroid Build Coastguard Worker    - compiler: gcc
22*58b9f456SAndroid Build Coastguard Worker      addons:
23*58b9f456SAndroid Build Coastguard Worker        apt:
24*58b9f456SAndroid Build Coastguard Worker          packages:
25*58b9f456SAndroid Build Coastguard Worker            - g++-multilib
26*58b9f456SAndroid Build Coastguard Worker      env: COMPILER=g++ C_COMPILER=gcc BUILD_TYPE=Debug BUILD_32_BITS=ON
27*58b9f456SAndroid Build Coastguard Worker    - compiler: gcc
28*58b9f456SAndroid Build Coastguard Worker      addons:
29*58b9f456SAndroid Build Coastguard Worker        apt:
30*58b9f456SAndroid Build Coastguard Worker          packages:
31*58b9f456SAndroid Build Coastguard Worker            - g++-multilib
32*58b9f456SAndroid Build Coastguard Worker      env: COMPILER=g++ C_COMPILER=gcc BUILD_TYPE=Release BUILD_32_BITS=ON
33*58b9f456SAndroid Build Coastguard Worker    - compiler: gcc
34*58b9f456SAndroid Build Coastguard Worker      env:
35*58b9f456SAndroid Build Coastguard Worker        - INSTALL_GCC6_FROM_PPA=1
36*58b9f456SAndroid Build Coastguard Worker        - COMPILER=g++-6 C_COMPILER=gcc-6  BUILD_TYPE=Debug
37*58b9f456SAndroid Build Coastguard Worker        - ENABLE_SANITIZER=1
38*58b9f456SAndroid Build Coastguard Worker        - EXTRA_FLAGS="-fno-omit-frame-pointer -g -O2 -fsanitize=undefined,address -fuse-ld=gold"
39*58b9f456SAndroid Build Coastguard Worker    - compiler: clang
40*58b9f456SAndroid Build Coastguard Worker      env: COMPILER=clang++ C_COMPILER=clang BUILD_TYPE=Debug
41*58b9f456SAndroid Build Coastguard Worker    - compiler: clang
42*58b9f456SAndroid Build Coastguard Worker      env: COMPILER=clang++ C_COMPILER=clang BUILD_TYPE=Release
43*58b9f456SAndroid Build Coastguard Worker    # Clang w/ libc++
44*58b9f456SAndroid Build Coastguard Worker    - compiler: clang
45*58b9f456SAndroid Build Coastguard Worker      addons:
46*58b9f456SAndroid Build Coastguard Worker        apt:
47*58b9f456SAndroid Build Coastguard Worker          packages:
48*58b9f456SAndroid Build Coastguard Worker            clang-3.8
49*58b9f456SAndroid Build Coastguard Worker      env:
50*58b9f456SAndroid Build Coastguard Worker        - COMPILER=clang++-3.8 C_COMPILER=clang-3.8 BUILD_TYPE=Debug
51*58b9f456SAndroid Build Coastguard Worker        - LIBCXX_BUILD=1
52*58b9f456SAndroid Build Coastguard Worker        - EXTRA_FLAGS="-stdlib=libc++"
53*58b9f456SAndroid Build Coastguard Worker    - compiler: clang
54*58b9f456SAndroid Build Coastguard Worker      addons:
55*58b9f456SAndroid Build Coastguard Worker        apt:
56*58b9f456SAndroid Build Coastguard Worker          packages:
57*58b9f456SAndroid Build Coastguard Worker            clang-3.8
58*58b9f456SAndroid Build Coastguard Worker      env:
59*58b9f456SAndroid Build Coastguard Worker        - COMPILER=clang++-3.8 C_COMPILER=clang-3.8 BUILD_TYPE=Release
60*58b9f456SAndroid Build Coastguard Worker        - LIBCXX_BUILD=1
61*58b9f456SAndroid Build Coastguard Worker        - EXTRA_FLAGS="-stdlib=libc++"
62*58b9f456SAndroid Build Coastguard Worker    # Clang w/ 32bit libc++
63*58b9f456SAndroid Build Coastguard Worker    - compiler: clang
64*58b9f456SAndroid Build Coastguard Worker      addons:
65*58b9f456SAndroid Build Coastguard Worker        apt:
66*58b9f456SAndroid Build Coastguard Worker          packages:
67*58b9f456SAndroid Build Coastguard Worker            - clang-3.8
68*58b9f456SAndroid Build Coastguard Worker            - g++-multilib
69*58b9f456SAndroid Build Coastguard Worker      env:
70*58b9f456SAndroid Build Coastguard Worker        - COMPILER=clang++-3.8 C_COMPILER=clang-3.8 BUILD_TYPE=Debug
71*58b9f456SAndroid Build Coastguard Worker        - LIBCXX_BUILD=1
72*58b9f456SAndroid Build Coastguard Worker        - BUILD_32_BITS=ON
73*58b9f456SAndroid Build Coastguard Worker        - EXTRA_FLAGS="-stdlib=libc++ -m32"
74*58b9f456SAndroid Build Coastguard Worker    # Clang w/ 32bit libc++
75*58b9f456SAndroid Build Coastguard Worker    - compiler: clang
76*58b9f456SAndroid Build Coastguard Worker      addons:
77*58b9f456SAndroid Build Coastguard Worker        apt:
78*58b9f456SAndroid Build Coastguard Worker          packages:
79*58b9f456SAndroid Build Coastguard Worker            - clang-3.8
80*58b9f456SAndroid Build Coastguard Worker            - g++-multilib
81*58b9f456SAndroid Build Coastguard Worker      env:
82*58b9f456SAndroid Build Coastguard Worker        - COMPILER=clang++-3.8 C_COMPILER=clang-3.8 BUILD_TYPE=Release
83*58b9f456SAndroid Build Coastguard Worker        - LIBCXX_BUILD=1
84*58b9f456SAndroid Build Coastguard Worker        - BUILD_32_BITS=ON
85*58b9f456SAndroid Build Coastguard Worker        - EXTRA_FLAGS="-stdlib=libc++ -m32"
86*58b9f456SAndroid Build Coastguard Worker    # Clang w/ libc++, ASAN, UBSAN
87*58b9f456SAndroid Build Coastguard Worker    - compiler: clang
88*58b9f456SAndroid Build Coastguard Worker      addons:
89*58b9f456SAndroid Build Coastguard Worker        apt:
90*58b9f456SAndroid Build Coastguard Worker          packages:
91*58b9f456SAndroid Build Coastguard Worker            clang-3.8
92*58b9f456SAndroid Build Coastguard Worker      env:
93*58b9f456SAndroid Build Coastguard Worker        - COMPILER=clang++-3.8 C_COMPILER=clang-3.8 BUILD_TYPE=Debug
94*58b9f456SAndroid Build Coastguard Worker        - LIBCXX_BUILD=1 LIBCXX_SANITIZER="Undefined;Address"
95*58b9f456SAndroid Build Coastguard Worker        - ENABLE_SANITIZER=1
96*58b9f456SAndroid Build Coastguard Worker        - EXTRA_FLAGS="-stdlib=libc++ -g -O2 -fno-omit-frame-pointer -fsanitize=undefined,address -fno-sanitize-recover=all"
97*58b9f456SAndroid Build Coastguard Worker        - UBSAN_OPTIONS=print_stacktrace=1
98*58b9f456SAndroid Build Coastguard Worker    # Clang w/ libc++ and MSAN
99*58b9f456SAndroid Build Coastguard Worker    - compiler: clang
100*58b9f456SAndroid Build Coastguard Worker      addons:
101*58b9f456SAndroid Build Coastguard Worker        apt:
102*58b9f456SAndroid Build Coastguard Worker          packages:
103*58b9f456SAndroid Build Coastguard Worker            clang-3.8
104*58b9f456SAndroid Build Coastguard Worker      env:
105*58b9f456SAndroid Build Coastguard Worker        - COMPILER=clang++-3.8 C_COMPILER=clang-3.8 BUILD_TYPE=Debug
106*58b9f456SAndroid Build Coastguard Worker        - LIBCXX_BUILD=1 LIBCXX_SANITIZER=MemoryWithOrigins
107*58b9f456SAndroid Build Coastguard Worker        - ENABLE_SANITIZER=1
108*58b9f456SAndroid Build Coastguard Worker        - EXTRA_FLAGS="-stdlib=libc++ -g -O2 -fno-omit-frame-pointer -fsanitize=memory -fsanitize-memory-track-origins"
109*58b9f456SAndroid Build Coastguard Worker    # Clang w/ libc++ and MSAN
110*58b9f456SAndroid Build Coastguard Worker    - compiler: clang
111*58b9f456SAndroid Build Coastguard Worker      addons:
112*58b9f456SAndroid Build Coastguard Worker        apt:
113*58b9f456SAndroid Build Coastguard Worker          packages:
114*58b9f456SAndroid Build Coastguard Worker            clang-3.8
115*58b9f456SAndroid Build Coastguard Worker      env:
116*58b9f456SAndroid Build Coastguard Worker        - COMPILER=clang++-3.8 C_COMPILER=clang-3.8 BUILD_TYPE=RelWithDebInfo
117*58b9f456SAndroid Build Coastguard Worker        - LIBCXX_BUILD=1 LIBCXX_SANITIZER=Thread
118*58b9f456SAndroid Build Coastguard Worker        - ENABLE_SANITIZER=1
119*58b9f456SAndroid Build Coastguard Worker        - EXTRA_FLAGS="-stdlib=libc++ -g -O2 -fno-omit-frame-pointer -fsanitize=thread -fno-sanitize-recover=all"
120*58b9f456SAndroid Build Coastguard Worker    - os: osx
121*58b9f456SAndroid Build Coastguard Worker      osx_image: xcode8.3
122*58b9f456SAndroid Build Coastguard Worker      compiler: clang
123*58b9f456SAndroid Build Coastguard Worker      env:
124*58b9f456SAndroid Build Coastguard Worker        - COMPILER=clang++ BUILD_TYPE=Debug
125*58b9f456SAndroid Build Coastguard Worker    - os: osx
126*58b9f456SAndroid Build Coastguard Worker      osx_image: xcode8.3
127*58b9f456SAndroid Build Coastguard Worker      compiler: clang
128*58b9f456SAndroid Build Coastguard Worker      env:
129*58b9f456SAndroid Build Coastguard Worker        - COMPILER=clang++ BUILD_TYPE=Release
130*58b9f456SAndroid Build Coastguard Worker    - os: osx
131*58b9f456SAndroid Build Coastguard Worker      osx_image: xcode8.3
132*58b9f456SAndroid Build Coastguard Worker      compiler: clang
133*58b9f456SAndroid Build Coastguard Worker      env:
134*58b9f456SAndroid Build Coastguard Worker        - COMPILER=clang++ BUILD_TYPE=Release BUILD_32_BITS=ON
135*58b9f456SAndroid Build Coastguard Worker    - os: osx
136*58b9f456SAndroid Build Coastguard Worker      osx_image: xcode8.3
137*58b9f456SAndroid Build Coastguard Worker      compiler: gcc
138*58b9f456SAndroid Build Coastguard Worker      env:
139*58b9f456SAndroid Build Coastguard Worker        - COMPILER=g++-7 C_COMPILER=gcc-7  BUILD_TYPE=Debug
140*58b9f456SAndroid Build Coastguard Worker
141*58b9f456SAndroid Build Coastguard Workerbefore_script:
142*58b9f456SAndroid Build Coastguard Worker  - if [ -n "${LIBCXX_BUILD}" ]; then
143*58b9f456SAndroid Build Coastguard Worker      source .travis-libcxx-setup.sh;
144*58b9f456SAndroid Build Coastguard Worker    fi
145*58b9f456SAndroid Build Coastguard Worker  - if [ -n "${ENABLE_SANITIZER}" ]; then
146*58b9f456SAndroid Build Coastguard Worker      export EXTRA_OPTIONS="-DBENCHMARK_ENABLE_ASSEMBLY_TESTS=OFF";
147*58b9f456SAndroid Build Coastguard Worker    else
148*58b9f456SAndroid Build Coastguard Worker      export EXTRA_OPTIONS="";
149*58b9f456SAndroid Build Coastguard Worker    fi
150*58b9f456SAndroid Build Coastguard Worker  - mkdir -p build && cd build
151*58b9f456SAndroid Build Coastguard Worker
152*58b9f456SAndroid Build Coastguard Workerbefore_install:
153*58b9f456SAndroid Build Coastguard Worker  - if [ -z "$BUILD_32_BITS" ]; then
154*58b9f456SAndroid Build Coastguard Worker      export BUILD_32_BITS=OFF && echo disabling 32 bit build;
155*58b9f456SAndroid Build Coastguard Worker    fi
156*58b9f456SAndroid Build Coastguard Worker  - if [ -n "${INSTALL_GCC6_FROM_PPA}" ]; then
157*58b9f456SAndroid Build Coastguard Worker      sudo add-apt-repository -y "ppa:ubuntu-toolchain-r/test";
158*58b9f456SAndroid Build Coastguard Worker      sudo apt-get update --option Acquire::Retries=100 --option Acquire::http::Timeout="60";
159*58b9f456SAndroid Build Coastguard Worker    fi
160*58b9f456SAndroid Build Coastguard Worker
161*58b9f456SAndroid Build Coastguard Workerinstall:
162*58b9f456SAndroid Build Coastguard Worker  - if [ -n "${INSTALL_GCC6_FROM_PPA}" ]; then
163*58b9f456SAndroid Build Coastguard Worker      travis_wait sudo -E apt-get -yq --no-install-suggests --no-install-recommends install g++-6;
164*58b9f456SAndroid Build Coastguard Worker    fi
165*58b9f456SAndroid Build Coastguard Worker  - if [ "${TRAVIS_OS_NAME}" == "linux" -a "${BUILD_32_BITS}" == "OFF" ]; then
166*58b9f456SAndroid Build Coastguard Worker      travis_wait sudo -E apt-get -y --no-install-suggests --no-install-recommends install llvm-3.9-tools;
167*58b9f456SAndroid Build Coastguard Worker      sudo cp /usr/lib/llvm-3.9/bin/FileCheck /usr/local/bin/;
168*58b9f456SAndroid Build Coastguard Worker    fi
169*58b9f456SAndroid Build Coastguard Worker  - if [ "${BUILD_TYPE}" == "Coverage" -a "${TRAVIS_OS_NAME}" == "linux" ]; then
170*58b9f456SAndroid Build Coastguard Worker      PATH=~/.local/bin:${PATH};
171*58b9f456SAndroid Build Coastguard Worker      pip install --user --upgrade pip;
172*58b9f456SAndroid Build Coastguard Worker      travis_wait pip install --user cpp-coveralls;
173*58b9f456SAndroid Build Coastguard Worker    fi
174*58b9f456SAndroid Build Coastguard Worker  - if [ "${C_COMPILER}" == "gcc-7" -a "${TRAVIS_OS_NAME}" == "osx" ]; then
175*58b9f456SAndroid Build Coastguard Worker      rm -f /usr/local/include/c++;
176*58b9f456SAndroid Build Coastguard Worker      brew update;
177*58b9f456SAndroid Build Coastguard Worker      travis_wait brew install gcc@7;
178*58b9f456SAndroid Build Coastguard Worker    fi
179*58b9f456SAndroid Build Coastguard Worker  - if [ "${TRAVIS_OS_NAME}" == "linux" ]; then
180*58b9f456SAndroid Build Coastguard Worker      sudo apt-get update -qq;
181*58b9f456SAndroid Build Coastguard Worker      sudo apt-get install -qq unzip;
182*58b9f456SAndroid Build Coastguard Worker      wget https://github.com/bazelbuild/bazel/releases/download/0.10.1/bazel-0.10.1-installer-linux-x86_64.sh --output-document bazel-installer.sh;
183*58b9f456SAndroid Build Coastguard Worker      travis_wait sudo bash bazel-installer.sh;
184*58b9f456SAndroid Build Coastguard Worker    fi
185*58b9f456SAndroid Build Coastguard Worker  - if [ "${TRAVIS_OS_NAME}" == "osx" ]; then
186*58b9f456SAndroid Build Coastguard Worker      curl -L -o bazel-installer.sh https://github.com/bazelbuild/bazel/releases/download/0.10.1/bazel-0.10.1-installer-darwin-x86_64.sh;
187*58b9f456SAndroid Build Coastguard Worker      travis_wait sudo bash bazel-installer.sh;
188*58b9f456SAndroid Build Coastguard Worker    fi
189*58b9f456SAndroid Build Coastguard Worker
190*58b9f456SAndroid Build Coastguard Workerscript:
191*58b9f456SAndroid Build Coastguard Worker  - cmake -DCMAKE_C_COMPILER=${C_COMPILER} -DCMAKE_CXX_COMPILER=${COMPILER} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_CXX_FLAGS="${EXTRA_FLAGS}" -DBENCHMARK_DOWNLOAD_DEPENDENCIES=ON -DBENCHMARK_BUILD_32_BITS=${BUILD_32_BITS} ${EXTRA_OPTIONS} ..
192*58b9f456SAndroid Build Coastguard Worker  - make
193*58b9f456SAndroid Build Coastguard Worker  - ctest -C ${BUILD_TYPE} --output-on-failure
194*58b9f456SAndroid Build Coastguard Worker  - bazel test -c dbg --define google_benchmark.have_regex=posix --announce_rc --verbose_failures --test_output=errors --keep_going //test/...
195*58b9f456SAndroid Build Coastguard Worker
196*58b9f456SAndroid Build Coastguard Workerafter_success:
197*58b9f456SAndroid Build Coastguard Worker  - if [ "${BUILD_TYPE}" == "Coverage" -a "${TRAVIS_OS_NAME}" == "linux" ]; then
198*58b9f456SAndroid Build Coastguard Worker      coveralls --include src --include include --gcov-options '\-lp' --root .. --build-root .;
199*58b9f456SAndroid Build Coastguard Worker    fi
200