blob: 77d990a766156e5b484e1751c032d7995c069526 [file] [log] [blame]
onqtame85b1bb2016-06-26 16:41:09 +03001# this file is HEAVILY influenced by https://github.com/boostorg/hana/blob/master/.travis.yml
2
onqtame4c75fc2016-05-21 01:24:48 +03003sudo: false
4language: c++
5
6notifications:
onqtamf5169772016-09-09 18:33:13 +03007 email: false
onqtame4c75fc2016-05-21 01:24:48 +03008 # gitter
9 webhooks:
10 urls: https://webhooks.gitter.im/e/10941dd1c67e5e967706
11 on_success: change
12 on_failure: always
13git:
onqtam9f934f82016-08-02 12:42:19 +030014 depth: 500
onqtame4c75fc2016-05-21 01:24:48 +030015
16# both apt and ccache make the builds slower...
17#cache:
18# - apt
19# - ccache
20
21env:
22 global:
23# - USE_CCACHE=1
24# - CCACHE_SLOPPINESS=pch_defines,time_macros
25# - CCACHE_COMPRESS=1
26# - CCACHE_MAXSIZE=200M
27# - CCACHE_CPP2=1
28 - CMAKE_OPTIONS_GLOBAL="-DCMAKE_EXPORT_COMPILE_COMMANDS=ON"
29 # Workaround for https://github.com/travis-ci/travis-ci/issues/4681
30 # "Defining the build matrix only with matrix.include leads to an additional, unwanted job"
31 matrix:
32 - TRAVIS_EMPTY_JOB_WORKAROUND=true
33
34addons:
35 coverity_scan:
36 # COVERITY_SCAN_TOKEN added as env var in travis project
37 project:
38 name: onqtam/doctest
39 notification_email: vik.kirilov@gmail.com
40 build_command_prepend: cd examples/hello_world && cmake .
41 build_command: make
42 branch_pattern: coverity_scan
43 # these apt sources will be referenced later (by using *name)
44 apt:
onqtam2c8036f2016-06-26 17:12:42 +030045 sources: &apt_sources
46 - ubuntu-toolchain-r-test
onqtam7e775f92016-11-15 02:41:10 +020047 - llvm-toolchain-precise
onqtamb382bd32016-08-01 20:53:56 +030048 - llvm-toolchain-precise-3.5
49 - llvm-toolchain-precise-3.6
50 - llvm-toolchain-precise-3.7
51 - llvm-toolchain-precise-3.8
onqtamfd62aa02016-11-15 03:00:44 +020052 - llvm-toolchain-precise-3.9
onqtame4c75fc2016-05-21 01:24:48 +030053
54compiler: clang
55os: linux
56
57matrix:
58 exclude:
59 - env: TRAVIS_EMPTY_JOB_WORKAROUND=true
60
61 include:
onqtamd1737e42016-08-01 19:05:07 +030062 # coverage
63 - env: COMPILER=g++ COVERALLS_SERVICE_NAME=travis-ci
64 compiler: gcc
65 addons:
66 apt:
67 packages: ["lcov", "curl"]
68
onqtam529c92c2016-08-02 17:51:59 +030069 # GCC 4.4
70 - env: COMPILER=g++-4.4
71 compiler: gcc
72 addons: &gcc44
73 apt:
74 packages: ["g++-4.4", "valgrind", "g++-4.4-multilib", "libc6-dbg", "libc6-dbg:i386"]
75 sources: *apt_sources
76
77 # GCC 4.5
78 - env: COMPILER=g++-4.5
79 compiler: gcc
80 addons: &gcc45
81 apt:
82 packages: ["g++-4.5", "valgrind", "g++-4.5-multilib", "libc6-dbg", "libc6-dbg:i386"]
83 sources: *apt_sources
84
85 # GCC 4.6
86 - env: COMPILER=g++-4.6
87 compiler: gcc
88 addons: &gcc46
89 apt:
90 packages: [ "valgrind", "g++-4.6-multilib", "libc6-dbg", "libc6-dbg:i386"]
91 sources: *apt_sources
92
93 # GCC 4.7
94 - env: COMPILER=g++-4.7
95 compiler: gcc
96 addons: &gcc47
97 apt:
98 packages: ["g++-4.7", "valgrind", "g++-4.7-multilib", "libc6-dbg", "libc6-dbg:i386"]
99 sources: *apt_sources
100
101 # GCC 4.8
102 - env: COMPILER=g++-4.8 HAS_ASAN_32=true HAS_ASAN_64=true
103 compiler: gcc
104 addons: &gcc48
105 apt:
106 packages: ["g++-4.8", "valgrind", "g++-4.8-multilib", "libc6-dbg", "libc6-dbg:i386"]
107 sources: *apt_sources
108
109 # GCC 4.9
onqtamb1a3de82016-10-10 22:22:00 +0300110 - env: COMPILER=g++-4.9 HAS_UBSAN_32=true HAS_ASAN_64=true HAS_UBSAN_64=true # no ASAN_32 - errors when using ASAN_OPTIONS - probably g++ 4.9 bug
onqtam529c92c2016-08-02 17:51:59 +0300111 compiler: gcc
112 addons: &gcc49
113 apt:
114 packages: ["g++-4.9", "valgrind", "g++-4.9-multilib", "libc6-dbg", "libc6-dbg:i386"]
115 sources: *apt_sources
116
117 # GCC 5
118 - env: COMPILER=g++-5 HAS_ASAN_32=true HAS_UBSAN_32=true HAS_ASAN_64=true HAS_UBSAN_64=true ADDITIONAL_CXX_FLAGS=" -fuse-ld=gold"
119 compiler: gcc
120 addons: &gcc5
121 apt:
122 packages: ["g++-5", "valgrind", "g++-5-multilib", "libc6-dbg", "libc6-dbg:i386"]
123 sources: *apt_sources
124
125 # GCC 6
126 - env: COMPILER=g++-6 HAS_ASAN_32=true HAS_UBSAN_32=true HAS_ASAN_64=true HAS_UBSAN_64=true ADDITIONAL_CXX_FLAGS=" -fuse-ld=gold"
127 compiler: gcc
128 addons: &gcc6
129 apt:
130 packages: ["g++-6", "valgrind", "g++-6-multilib", "libc6-dbg", "libc6-dbg:i386"]
131 sources: *apt_sources
132
133 # Clang 3.4
onqtamc30ab662016-08-05 01:13:08 +0300134 - env: COMPILER=clang++ HAS_ASAN_64=true HAS_UBSAN_64=true
onqtam529c92c2016-08-02 17:51:59 +0300135 addons: &clang
136 apt:
137 packages: [ "valgrind", "g++-multilib", "libc6-dbg", "libc6-dbg:i386", "g++-6"]
138 sources: *apt_sources
139
140 # Clang 3.5
onqtamc30ab662016-08-05 01:13:08 +0300141 - env: COMPILER=clang++-3.5 HAS_ASAN_64=true HAS_UBSAN_64=true
onqtam529c92c2016-08-02 17:51:59 +0300142 addons: &clang35
143 apt:
144 packages: ["clang-3.5", "valgrind", "g++-multilib", "libc6-dbg", "libc6-dbg:i386", "g++-6"]
145 sources: *apt_sources
146
147 # Clang 3.6
onqtamc30ab662016-08-05 01:13:08 +0300148 - env: COMPILER=clang++-3.6 HAS_ASAN_64=true HAS_UBSAN_64=true
onqtam529c92c2016-08-02 17:51:59 +0300149 addons: &clang36
150 apt:
151 packages: ["clang-3.6", "valgrind", "g++-multilib", "libc6-dbg", "libc6-dbg:i386", "g++-6"]
152 sources: *apt_sources
153
154 # Clang 3.7
onqtamc30ab662016-08-05 01:13:08 +0300155 - env: COMPILER=clang++-3.7
onqtam529c92c2016-08-02 17:51:59 +0300156 addons: &clang37
157 apt:
158 packages: ["clang-3.7", "valgrind", "g++-multilib", "libc6-dbg", "libc6-dbg:i386", "g++-6"]
159 sources: *apt_sources
160
161 # Clang 3.8
onqtamc30ab662016-08-05 01:13:08 +0300162 - env: COMPILER=clang++-3.8 HAS_ASAN_64=true HAS_UBSAN_64=true
onqtam529c92c2016-08-02 17:51:59 +0300163 addons: &clang38
164 apt:
165 packages: ["clang-3.8", "valgrind", "g++-multilib", "libc6-dbg", "libc6-dbg:i386", "g++-6"]
166 sources: *apt_sources
167
onqtam44025452016-11-15 01:25:24 +0200168 # Clang 3.9
169 - env: COMPILER=clang++-3.9 HAS_ASAN_64=true HAS_UBSAN_64=true
170 addons: &clang39
171 apt:
172 packages: ["clang-3.9", "valgrind", "g++-multilib", "libc6-dbg", "libc6-dbg:i386", "g++-6"]
173 sources: *apt_sources
174
onqtam529c92c2016-08-02 17:51:59 +0300175 # Xcode 6.1 Clang
176 - env: COMPILER=clang++
177 os: osx
178
179 # Xcode 6.2 Clang
180 - env: COMPILER=clang++
181 osx_image: beta-xcode6.2
182 os: osx
183
184 # Xcode 6.3 Clang
185 - env: COMPILER=clang++
186 osx_image: beta-xcode6.3
187 os: osx
188
189 # Xcode 6.4 Clang
190 - env: COMPILER=clang++
191 osx_image: xcode6.4
192 os: osx
193
194 # Xcode 7 Clang
195 - env: COMPILER=clang++ HAS_ASAN_32=true HAS_ASAN_64=true
196 osx_image: xcode7
197 os: osx
198
199 # Xcode 7.1 Clang
200 - env: COMPILER=clang++ HAS_ASAN_32=true HAS_ASAN_64=true
201 osx_image: xcode7.1
202 os: osx
203
204 # Xcode 7.2 Clang
205 - env: COMPILER=clang++ HAS_ASAN_32=true HAS_ASAN_64=true
206 osx_image: xcode7.2
207 os: osx
208
209 # Xcode 7.3 Clang
210 - env: COMPILER=clang++ HAS_ASAN_32=true HAS_ASAN_64=true
211 osx_image: xcode7.3
212 os: osx
213
214 # Xcode 8 Clang
215 - env: COMPILER=clang++ HAS_ASAN_32=true HAS_ASAN_64=true
216 osx_image: xcode8
217 os: osx
218
onqtam3a6cb172016-11-16 16:35:30 +0200219 # Xcode 8.1 Clang
220 - env: COMPILER=clang++ HAS_ASAN_32=true HAS_ASAN_64=true
221 osx_image: xcode8.1
222 os: osx
223
onqtam529c92c2016-08-02 17:51:59 +0300224 # OSX GCC 4.4
225 - env: COMPILER=g++-4.4
226 compiler: gcc
onqtamb1a3de82016-10-10 22:22:00 +0300227 osx_image: beta-xcode6.2
onqtam529c92c2016-08-02 17:51:59 +0300228 os: osx
229
230 # OSX GCC 4.5
231 - env: COMPILER=g++-4.5
232 compiler: gcc
onqtam5cab8e92016-10-10 17:58:38 +0300233 osx_image: beta-xcode6.3
onqtam529c92c2016-08-02 17:51:59 +0300234 os: osx
235
236 # OSX GCC 4.6
237 - env: COMPILER=g++-4.6
238 compiler: gcc
onqtam5cab8e92016-10-10 17:58:38 +0300239 osx_image: beta-xcode6.3
onqtam529c92c2016-08-02 17:51:59 +0300240 os: osx
241
242 # OSX GCC 4.7
243 - env: COMPILER=g++-4.7
244 compiler: gcc
onqtam5cab8e92016-10-10 17:58:38 +0300245 osx_image: beta-xcode6.3
onqtam529c92c2016-08-02 17:51:59 +0300246 os: osx
247
248 # OSX GCC 4.8
249 - env: COMPILER=g++-4.8 HAS_ASAN_32=true HAS_ASAN_64=true
250 compiler: gcc
onqtam5cab8e92016-10-10 17:58:38 +0300251 osx_image: beta-xcode6.3
onqtam529c92c2016-08-02 17:51:59 +0300252 os: osx
253
254 # OSX GCC 4.9
onqtamb1a3de82016-10-10 22:22:00 +0300255 - env: COMPILER=g++-4.9 HAS_UBSAN_32=true HAS_UBSAN_64=true # no ASAN_32/ASAN_64 - errors when using ASAN_OPTIONS - probably g++ 4.9 bug
onqtam529c92c2016-08-02 17:51:59 +0300256 compiler: gcc
onqtam5cab8e92016-10-10 17:58:38 +0300257 osx_image: beta-xcode6.3
onqtam529c92c2016-08-02 17:51:59 +0300258 os: osx
259
260 # OSX GCC 5
261 - env: COMPILER=g++-5 HAS_ASAN_32=true HAS_UBSAN_32=true HAS_ASAN_64=true HAS_UBSAN_64=true
262 compiler: gcc
onqtam5cab8e92016-10-10 17:58:38 +0300263 osx_image: beta-xcode6.3
onqtam529c92c2016-08-02 17:51:59 +0300264 os: osx
265
266 # OSX GCC 6
267 - env: COMPILER=g++-6 HAS_ASAN_32=true HAS_UBSAN_32=true HAS_ASAN_64=true HAS_UBSAN_64=true
268 compiler: gcc
onqtam5cab8e92016-10-10 17:58:38 +0300269 osx_image: beta-xcode6.3
onqtam529c92c2016-08-02 17:51:59 +0300270 os: osx
271
272 # OSX LLVM-GCC
273 - env: COMPILER=g++
274 compiler: gcc
275 os: osx
onqtame4c75fc2016-05-21 01:24:48 +0300276
onqtam3ffb8872016-06-07 23:46:09 +0300277 allow_failures:
onqtamfd62aa02016-11-15 03:00:44 +0200278
279 # Clang 3.9 - failing because the llvm 3.9 ppa is not yet whitelisted...
280 - env: COMPILER=clang++-3.9 HAS_ASAN_64=true HAS_UBSAN_64=true
281
onqtamb1a3de82016-10-10 22:22:00 +0300282 # for some reason some of these builds fail sometimes...
onqtam5cab8e92016-10-10 17:58:38 +0300283
284 # OSX GCC 4.4
285 - env: COMPILER=g++-4.4
onqtamc6555cf2016-09-20 15:07:28 +0300286 compiler: gcc
onqtamb1a3de82016-10-10 22:22:00 +0300287 osx_image: beta-xcode6.2
onqtam5cab8e92016-10-10 17:58:38 +0300288 os: osx
289
290 # OSX GCC 4.5
291 - env: COMPILER=g++-4.5
292 compiler: gcc
293 osx_image: beta-xcode6.3
294 os: osx
295
296 # OSX GCC 4.6
297 - env: COMPILER=g++-4.6
298 compiler: gcc
299 osx_image: beta-xcode6.3
300 os: osx
301
302 # OSX GCC 4.7
303 - env: COMPILER=g++-4.7
304 compiler: gcc
305 osx_image: beta-xcode6.3
306 os: osx
307
308 # OSX GCC 4.8
309 - env: COMPILER=g++-4.8 HAS_ASAN_32=true HAS_ASAN_64=true
310 compiler: gcc
311 osx_image: beta-xcode6.3
onqtamc6555cf2016-09-20 15:07:28 +0300312 os: osx
onqtam3ffb8872016-06-07 23:46:09 +0300313
onqtamb1a3de82016-10-10 22:22:00 +0300314 # OSX GCC 4.9
315 - env: COMPILER=g++-4.9 HAS_UBSAN_32=true HAS_UBSAN_64=true # no ASAN_32/ASAN_64 - errors when using ASAN_OPTIONS - probably g++ 4.9 bug
316 compiler: gcc
317 osx_image: beta-xcode6.3
318 os: osx
319
320 # OSX GCC 5
321 - env: COMPILER=g++-5 HAS_ASAN_32=true HAS_UBSAN_32=true HAS_ASAN_64=true HAS_UBSAN_64=true
322 compiler: gcc
323 osx_image: beta-xcode6.3
324 os: osx
325
326 # OSX GCC 6
327 - env: COMPILER=g++-6 HAS_ASAN_32=true HAS_UBSAN_32=true HAS_ASAN_64=true HAS_UBSAN_64=true
328 compiler: gcc
329 osx_image: beta-xcode6.3
330 os: osx
331
onqtame4c75fc2016-05-21 01:24:48 +0300332before_install:
onqtam2c8036f2016-06-26 17:12:42 +0300333 - git submodule update --init --recursive
334
335install:
onqtam01158572016-06-28 14:29:32 +0300336 ############################################################################
onqtamc7aaa962016-09-10 02:16:57 +0300337 # All the dependencies are installed in ${TRAVIS_BUILD_DIR}/deps/
338 ############################################################################
339
340 - DEPS_DIR="${TRAVIS_BUILD_DIR}/deps"
341 - mkdir -p ${DEPS_DIR} && cd ${DEPS_DIR}
342
343 ############################################################################
344 # Install a recent CMake
345 ############################################################################
346
347 - |
348 if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then
349 CMAKE_URL="http://www.cmake.org/files/v3.5/cmake-3.5.2-Linux-x86_64.tar.gz"
350 mkdir cmake && travis_retry wget --no-check-certificate --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C cmake
351 export PATH=${DEPS_DIR}/cmake/bin:${PATH}
352 fi
353
354 ############################################################################
355 # Go back to ${TRAVIS_BUILD_DIR}
356 ############################################################################
357
358 - cd ${TRAVIS_BUILD_DIR}
359
360 ############################################################################
onqtam01158572016-06-28 14:29:32 +0300361 # Install stuff with homebrew under OSX
362 ############################################################################
onqtamc7aaa962016-09-10 02:16:57 +0300363
onqtam23c6a342016-06-28 14:09:10 +0300364 - |
onqtame4c75fc2016-05-21 01:24:48 +0300365 if [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then
366 brew update
367 # brew install ccache
368 brew install valgrind
369 # cmake
370 if brew list -1 | grep -q "^cmake\$"; then
371 brew outdated cmake || brew upgrade cmake
372 else
373 brew install cmake
374 fi
375 # gcc
376 if [[ "${COMPILER}" = "g++-4.4" ]]; then
377 brew install gcc44
378 fi
379 if [[ "${COMPILER}" = "g++-4.5" ]]; then
380 brew install gcc45
381 fi
382 if [[ "${COMPILER}" = "g++-4.6" ]]; then
383 brew install gcc46
384 fi
385 if [[ "${COMPILER}" = "g++-4.7" ]]; then
386 brew install gcc47
387 fi
388 if [[ "${COMPILER}" = "g++-4.8" ]]; then
onqtamb1a3de82016-10-10 22:22:00 +0300389 brew install gcc48
onqtame4c75fc2016-05-21 01:24:48 +0300390 fi
391 if [[ "${COMPILER}" = "g++-4.9" ]]; then
392 brew install gcc49
393 fi
394 if [[ "${COMPILER}" = "g++-5" ]]; then
395 brew install gcc5
396 fi
397 if [[ "${COMPILER}" = "g++-6" ]]; then
398 brew install gcc6
399 fi
400 fi
onqtame4c75fc2016-05-21 01:24:48 +0300401 - export CXX="${COMPILER}"
onqtam9f934f82016-08-02 12:42:19 +0300402# - export CXX="ccache ${COMPILER}"
onqtame4c75fc2016-05-21 01:24:48 +0300403# - ccache -s
onqtam7dec6aa2016-06-26 16:01:15 +0300404
405before_script:
406 - ${CXX} --version
onqtame4c75fc2016-05-21 01:24:48 +0300407
408script:
409 # coverage - do not continue with other build configurations after that
410 - |
411 if [[ "${COVERALLS_SERVICE_NAME}" = "travis-ci" ]]; then
412 cmake ${CMAKE_OPTIONS_GLOBAL} -DCMAKE_BUILD_TYPE=Debug .
onqtam316fce22016-05-21 16:57:13 +0300413 make -k -j2 && make coveralls
onqtame4c75fc2016-05-21 01:24:48 +0300414 exit
415 fi
416
417 # initial run with options
onqtamcc350302016-06-28 14:36:28 +0300418 - cmake ${CMAKE_OPTIONS_GLOBAL} ${CMAKE_OPTIONS} -DCMAKE_CXX_COMPILER=${CXX} .
onqtame4c75fc2016-05-21 01:24:48 +0300419
onqtam1586ea22016-05-21 18:02:26 +0300420 # debug x64
onqtamfa5a8522016-06-26 20:15:56 +0300421 - cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="${ADDITIONAL_CXX_FLAGS} -m64" .
onqtam1586ea22016-05-21 18:02:26 +0300422 - make clean && make -k -j2
onqtam8e44b182016-05-22 05:28:31 +0300423 # valgrind for 64bit under osx fails TOO
424 - if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then cmake -DTEST_MODE=VALGRIND . && ctest --output-on-failure ; fi
onqtam5cab8e92016-10-10 17:58:38 +0300425 - cmake -DTEST_MODE=COMPARE . && ctest --output-on-failure
onqtam1586ea22016-05-21 18:02:26 +0300426 # release x64
onqtamfa5a8522016-06-26 20:15:56 +0300427 - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="${ADDITIONAL_CXX_FLAGS} -m64" .
onqtam1586ea22016-05-21 18:02:26 +0300428 - make clean && make -k -j2
onqtam8e44b182016-05-22 05:28:31 +0300429 # valgrind for 64bit under osx fails TOO
430 - if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then cmake -DTEST_MODE=VALGRIND . && ctest --output-on-failure ; fi
onqtam5cab8e92016-10-10 17:58:38 +0300431 - cmake -DTEST_MODE=COMPARE . && ctest --output-on-failure
onqtame4c75fc2016-05-21 01:24:48 +0300432 # debug x86
onqtamfa5a8522016-06-26 20:15:56 +0300433 - cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="${ADDITIONAL_CXX_FLAGS} -m32" .
onqtam316fce22016-05-21 16:57:13 +0300434 - make clean && make -k -j2
onqtame4c75fc2016-05-21 01:24:48 +0300435 # valgrind for 32bit under osx fails
436 - if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then cmake -DTEST_MODE=VALGRIND . && ctest --output-on-failure ; fi
onqtam1586ea22016-05-21 18:02:26 +0300437 - cmake -DTEST_MODE=COMPARE . && ctest --output-on-failure
onqtame4c75fc2016-05-21 01:24:48 +0300438 # release x86
onqtamfa5a8522016-06-26 20:15:56 +0300439 - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="${ADDITIONAL_CXX_FLAGS} -m32" .
onqtam316fce22016-05-21 16:57:13 +0300440 - make clean && make -k -j2
onqtame4c75fc2016-05-21 01:24:48 +0300441 # valgrind for 32bit under osx fails
442 - if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then cmake -DTEST_MODE=VALGRIND . && ctest --output-on-failure ; fi
onqtam1586ea22016-05-21 18:02:26 +0300443 - cmake -DTEST_MODE=COMPARE . && ctest --output-on-failure
onqtame4c75fc2016-05-21 01:24:48 +0300444
445 # sanitizers - again 32/64 bit Debug/Release configs through address/undefined sanitizers
onqtamfba7fb72016-08-22 14:18:24 +0300446 - cmake -DTEST_MODE=NORMAL .
onqtame4c75fc2016-05-21 01:24:48 +0300447 # on separate commands because when something fails I want to see which one exactly
onqtam84b19bc2016-08-26 12:40:31 +0300448 # TODO: when this http://stackoverflow.com/questions/39081183 gets resolved - add these to ASAN as well: check_initialization_order=true:strict_init_order=true
449 - if [[ "${HAS_ASAN_64}" = "true" ]]; then cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="${ADDITIONAL_CXX_FLAGS} -g -fno-omit-frame-pointer -m64 -fsanitize=address" . && make clean && make -k -j2 && ASAN_OPTIONS=verbosity=2:strict_string_checks=true:detect_odr_violation=2:detect_stack_use_after_return=true ctest --output-on-failure ; fi
450 - if [[ "${HAS_ASAN_32}" = "true" ]]; then cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="${ADDITIONAL_CXX_FLAGS} -g -fno-omit-frame-pointer -m32 -fsanitize=address" . && make clean && make -k -j2 && ASAN_OPTIONS=verbosity=2:strict_string_checks=true:detect_odr_violation=2:detect_stack_use_after_return=true ctest --output-on-failure ; fi
451 - if [[ "${HAS_ASAN_64}" = "true" ]]; then cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="${ADDITIONAL_CXX_FLAGS} -g -fno-omit-frame-pointer -m64 -fsanitize=address" . && make clean && make -k -j2 && ASAN_OPTIONS=verbosity=2:strict_string_checks=true:detect_odr_violation=2:detect_stack_use_after_return=true ctest --output-on-failure ; fi
452 - if [[ "${HAS_ASAN_32}" = "true" ]]; then cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="${ADDITIONAL_CXX_FLAGS} -g -fno-omit-frame-pointer -m32 -fsanitize=address" . && make clean && make -k -j2 && ASAN_OPTIONS=verbosity=2:strict_string_checks=true:detect_odr_violation=2:detect_stack_use_after_return=true ctest --output-on-failure ; fi
453 - if [[ "${HAS_UBSAN_64}" = "true" ]]; then cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="${ADDITIONAL_CXX_FLAGS} -g -fno-omit-frame-pointer -m64 -fsanitize=undefined" . && make clean && make -k -j2 && UBSAN_OPTIONS=verbosity=2 ctest --output-on-failure ; fi
454 - if [[ "${HAS_UBSAN_32}" = "true" ]]; then cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="${ADDITIONAL_CXX_FLAGS} -g -fno-omit-frame-pointer -m32 -fsanitize=undefined" . && make clean && make -k -j2 && UBSAN_OPTIONS=verbosity=2 ctest --output-on-failure ; fi
455 - if [[ "${HAS_UBSAN_64}" = "true" ]]; then cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="${ADDITIONAL_CXX_FLAGS} -g -fno-omit-frame-pointer -m64 -fsanitize=undefined" . && make clean && make -k -j2 && UBSAN_OPTIONS=verbosity=2 ctest --output-on-failure ; fi
456 - if [[ "${HAS_UBSAN_32}" = "true" ]]; then cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="${ADDITIONAL_CXX_FLAGS} -g -fno-omit-frame-pointer -m32 -fsanitize=undefined" . && make clean && make -k -j2 && UBSAN_OPTIONS=verbosity=2 ctest --output-on-failure ; fi
onqtame4c75fc2016-05-21 01:24:48 +0300457
onqtam5cab8e92016-10-10 17:58:38 +0300458 # test c++0x mode for warnings
459 - cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="${ADDITIONAL_CXX_FLAGS} -m64" -DWITH_CPP11=1 .
460 - make clean && make -k -j2
461
onqtame4c75fc2016-05-21 01:24:48 +0300462# - ccache -s
463
onqtam2dd55282016-06-13 18:05:38 +0300464#after_script:
465# - cat compile_commands.json