@@ -2,102 +2,123 @@ language: generic
2
2
3
3
sudo : false
4
4
5
- # Save common build configurations as shortcuts, so we can reference them later.
6
- addons_shortcuts :
7
- addons_clang35 : &clang35
8
- apt :
9
- sources : [ 'ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.5' ]
10
- packages : [ 'clang-3.5', 'llvm-3.5-dev' ]
11
- addons_clang36 : &clang36
12
- apt :
13
- sources : [ 'ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.6' ]
14
- packages : [ 'clang-3.6' ]
15
- addons_clang37 : &clang37
16
- apt :
17
- sources : [ 'ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.7' ]
18
- packages : [ 'clang-3.7' ]
19
- addons_clang38 : &clang38
20
- apt :
21
- sources : [ 'ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.8' ]
22
- packages : [ 'clang-3.8']
23
- addons_clang39 : &clang39
24
- apt :
25
- sources : [ 'ubuntu-toolchain-r-test', 'llvm-toolchain-precise' ]
26
- packages : [ 'clang-3.9']
27
- addons_gcc47 : &gcc47
28
- apt :
29
- sources : [ 'ubuntu-toolchain-r-test' ]
30
- packages : [ 'g++-4.7' ]
31
- addons_gcc48 : &gcc48
32
- apt :
33
- sources : [ 'ubuntu-toolchain-r-test' ]
34
- packages : [ 'g++-4.8' ]
35
- addons_gcc49 : &gcc49
36
- apt :
37
- sources : [ 'ubuntu-toolchain-r-test' ]
38
- packages : [ 'g++-4.9' ]
39
- addons_gcc5 : &gcc5
40
- apt :
41
- sources : [ 'ubuntu-toolchain-r-test' ]
42
- packages : [ 'g++-5' ]
43
-
44
5
matrix :
45
6
include :
7
+ # clang++ 4.0 via mason with -flto and -fsanitize=cfi
8
+ - os : linux
9
+ compiler : " clang++-40-mason"
10
+ env : CXX=clang++-4.0 CXXFLAGS="-flto -fsanitize=cfi -fvisibility=hidden" LDFLAGS="-flto -fsanitize=cfi -fvisibility=hidden"
11
+ addons :
12
+ apt :
13
+ sources : [ 'ubuntu-toolchain-r-test' ]
14
+ packages : [ 'libstdc++-4.9-dev' ]
15
+ before_install :
16
+ - git submodule update --init
17
+ - ./.mason/mason install clang++ 4.0.1
18
+ - export PATH=$(./.mason/mason prefix clang++ 4.0.1)/bin:${PATH}
19
+ - ./.mason/mason install binutils 2.27
20
+ - export PATH=$(./.mason/mason prefix binutils 2.27)/bin:${PATH}
21
+ # clang++ 4.0 via mason with -fsanitize=address
22
+ - os : linux
23
+ compiler : " clang++-40-mason"
24
+ env : CXX=clang++-4.0 CXXFLAGS="-fsanitize=address -fsanitize-address-use-after-scope -fno-omit-frame-pointer -fno-common" LDFLAGS="-fsanitize=address" ASAN_OPTIONS=check_initialization_order=1:detect_stack_use_after_return=1
25
+ sudo : required
26
+ addons :
27
+ apt :
28
+ sources : [ 'ubuntu-toolchain-r-test' ]
29
+ packages : [ 'libstdc++-4.9-dev' ]
30
+ before_install :
31
+ - git submodule update --init
32
+ - ./.mason/mason install clang++ 4.0.1
33
+ - export PATH=$(./.mason/mason prefix clang++ 4.0.1)/bin:${PATH}
34
+ # clang++ 4.0 via mason with -fsanitize=undefined
35
+ - os : linux
36
+ compiler : " clang++-40-mason"
37
+ env : CXX=clang++-4.0 CXXFLAGS="-fsanitize=undefined" LDFLAGS="-fsanitize=undefined"
38
+ addons :
39
+ apt :
40
+ sources : [ 'ubuntu-toolchain-r-test' ]
41
+ packages : [ 'libstdc++-4.9-dev' ]
42
+ before_install :
43
+ - git submodule update --init
44
+ - ./.mason/mason install clang++ 4.0.1
45
+ - export PATH=$(./.mason/mason prefix clang++ 4.0.1)/bin:${PATH}
46
+ # clang++ 4.0 via mason with -fsanitize=integer
47
+ - os : linux
48
+ compiler : " clang++-40-mason"
49
+ env : CXX=clang++-4.0 CXXFLAGS="-fsanitize=integer" LDFLAGS="-fsanitize=integer"
50
+ addons :
51
+ apt :
52
+ sources : [ 'ubuntu-toolchain-r-test' ]
53
+ packages : [ 'libstdc++-4.9-dev' ]
54
+ before_install :
55
+ - git submodule update --init
56
+ - ./.mason/mason install clang++ 4.0.1
57
+ - export PATH=$(./.mason/mason prefix clang++ 4.0.1)/bin:${PATH}
58
+ # clang++ 4.0 via mason with -fsanitize=safe-stack
59
+ - os : linux
60
+ compiler : " clang++-40-mason"
61
+ env : CXX=clang++-4.0 CXXFLAGS="-fsanitize=safe-stack" LDFLAGS="-fsanitize=safe-stack"
62
+ addons :
63
+ apt :
64
+ sources : [ 'ubuntu-toolchain-r-test' ]
65
+ packages : [ 'libstdc++-4.9-dev' ]
66
+ before_install :
67
+ - git submodule update --init
68
+ - ./.mason/mason install clang++ 4.0.1
69
+ - export PATH=$(./.mason/mason prefix clang++ 4.0.1)/bin:${PATH}
46
70
- os : osx
47
- osx_image : xcode7
48
- env : TEST_GYP_BUILD=True
71
+ osx_image : xcode8
72
+ env : OSX_OLDEST_SUPPORTED=10.7 TEST_GYP_BUILD=True
73
+ compiler : clang
74
+ - os : osx
75
+ osx_image : xcode8
76
+ env : OSX_OLDEST_SUPPORTED=10.12
49
77
compiler : clang
50
78
- os : linux
51
79
compiler : " clang35"
52
80
env : CXX=clang++-3.5 COVERAGE=True
53
- addons : *clang35
81
+ addons :
82
+ apt :
83
+ sources : [ 'ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.5' ]
84
+ packages : [ 'clang-3.5', 'libstdc++-4.9-dev' ]
54
85
- os : linux
55
86
compiler : " clang36"
56
87
env : CXX=clang++-3.6
57
- addons : *clang36
58
- - os : linux
59
- compiler : " clang37"
60
- env : CXX=clang++-3.7
61
- addons : *clang37
62
- - os : linux
63
- compiler : " clang38"
64
- env : CXX=clang++-3.8
65
- addons : *clang38
66
- - os : linux
67
- compiler : " clang38"
68
- env : CXX=clang++-3.8 CXX_STD=c++14
69
- addons : *clang38
70
- # not whitelisted yet: https://github.com/travis-ci/apt-package-whitelist/issues/2764
71
- # - os: linux
72
- # compiler: "clang39"
73
- # env: CXX=clang++-3.9
74
- # addons: *clang39
75
- - os : linux
76
- compiler : " gcc47"
77
- env : CXX=g++-4.7
78
- addons : *gcc47
88
+ addons :
89
+ apt :
90
+ sources : [ 'ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.6' ]
91
+ packages : [ 'clang-3.6' ]
79
92
- os : linux
80
93
compiler : " gcc48"
81
94
env : CXX=g++-4.8
82
- addons : *gcc48
95
+ addons :
96
+ apt :
97
+ sources : [ 'ubuntu-toolchain-r-test' ]
98
+ packages : [ 'g++-4.8' ]
83
99
- os : linux
84
100
compiler : " gcc49"
85
101
env : CXX=g++-4.9
86
- addons : *gcc49
87
- - os : linux
88
- compiler : " gcc49"
89
- env : CXX=g++-4.9 CXX_STD=c++14
90
- addons : *gcc49
102
+ addons :
103
+ apt :
104
+ sources : [ 'ubuntu-toolchain-r-test' ]
105
+ packages : [ 'g++-4.9' ]
91
106
- os : linux
92
107
compiler : " gcc5"
93
- env : CXX=g++-5 CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0"
94
- addons : *gcc5
108
+ env : CXX=g++-5
109
+ addons :
110
+ apt :
111
+ sources : [ 'ubuntu-toolchain-r-test' ]
112
+ packages : [ 'g++-5' ]
95
113
- os : linux
96
- compiler : " gcc5"
97
- env : CXX=g++-5 CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=1"
98
- addons : *gcc5
114
+ compiler : " gcc6"
115
+ env : CXX=g++-6 CXX_STD=c++14
116
+ addons :
117
+ apt :
118
+ sources : [ 'ubuntu-toolchain-r-test' ]
119
+ packages : [ 'g++-6' ]
99
120
100
- before_install :
121
+ install :
101
122
- echo ${CXX}
102
123
- if [[ $(uname -s) == 'Linux' ]]; then
103
124
export PYTHONPATH=$(pwd)/.local/lib/python2.7/site-packages;
@@ -108,7 +129,17 @@ before_install:
108
129
PYTHONUSERBASE=$(pwd)/.local pip install --user cpp-coveralls;
109
130
fi
110
131
111
- install :
132
+ script :
133
+ # Build in Release
134
+ - make
135
+ - make test
136
+ - make bench
137
+ - make sizes
138
+ - scripts/run_compilation_failure_tests.sh
139
+ - make clean;
140
+ # Build in Debug
141
+ - export BUILDTYPE=Debug
142
+ - make
112
143
- make test
113
144
- make bench
114
145
- make sizes
@@ -118,11 +149,11 @@ install:
118
149
make gyp;
119
150
fi
120
151
121
- script :
152
+ after_script :
122
153
- if [[ ${COVERAGE:-0} == 'True' ]]; then
123
154
make clean;
124
155
make coverage;
125
156
./out/cov-test;
126
157
cp unit*gc* test/;
127
- ./.local/bin/cpp-coveralls --gcov /usr/bin/llvm-cov-3.5 --gcov-options '\-lp' -i optional.hpp -i recursive_wrapper.hpp -i variant.hpp -i variant_io.hpp;
158
+ ./.local/bin/cpp-coveralls --gcov /usr/bin/llvm-cov-3.5 --gcov-options '\-lp' -i optional.hpp -i recursive_wrapper.hpp -i variant.hpp -i variant_io.hpp variant_cast.hpp ;
128
159
fi
0 commit comments