29
29
python-ruby-version : {python: 3.9, ruby: 2.7, other: linker-bfd}
30
30
- compiler : clang
31
31
python-ruby-version : {python: 3.9, ruby: 2.7, other: linker-gold}
32
+ include :
33
+ - compiler : gcc
34
+ python-ruby-version : {python: 3.9, ruby: 2.7, other: sanitizers}
32
35
33
36
steps :
34
37
- uses : actions/checkout@v2
88
91
elif [ "${{ matrix.python-ruby-version.other }}" = "test-debug" ] ; then
89
92
# Test hat debug build works fine
90
93
EXPLICIT_MAKE_VARS="DEBUG=1"
94
+ elif [ "${{ matrix.python-ruby-version.other }}" = "sanitizers" ] ; then
95
+ sanitizers='-fsanitize=address,undefined'
96
+ EXPLICIT_MAKE_VARS="CFLAGS='-g -I$DESTDIR/usr/include $sanitizers' LDFLAGS='-L$DESTDIR/usr/lib $sanitizers' LDLIBS= CPPFLAGS="
91
97
else
92
98
EXPLICIT_MAKE_VARS=
93
99
fi
@@ -139,18 +145,18 @@ jobs:
139
145
- name : Run tests
140
146
run : |
141
147
echo "::group::make install"
142
- make -j$(nproc) install $EXPLICIT_MAKE_VARS -k
148
+ eval make -j$(nproc) install $EXPLICIT_MAKE_VARS -k
143
149
echo "::endgroup::"
144
150
echo "::group::make install-pywrap"
145
- make -j$(nproc) install-pywrap $EXPLICIT_MAKE_VARS -k
151
+ eval make -j$(nproc) install-pywrap $EXPLICIT_MAKE_VARS -k
146
152
echo "::endgroup::"
147
153
echo "::group::make install-rubywrap"
148
- make -j$(nproc) install-rubywrap $EXPLICIT_MAKE_VARS -k
154
+ eval make -j$(nproc) install-rubywrap $EXPLICIT_MAKE_VARS -k
149
155
echo "::endgroup::"
150
156
151
157
# Now that everything is installed, run "make all" to build everything which may have not been built
152
158
echo "::group::make all"
153
- make -j$(nproc) all $EXPLICIT_MAKE_VARS -k
159
+ eval make -j$(nproc) all $EXPLICIT_MAKE_VARS -k
154
160
echo "::endgroup::"
155
161
156
162
# Set up environment variables for the tests and show variables (to help debugging issues)
@@ -164,7 +170,7 @@ jobs:
164
170
165
171
# Run tests
166
172
echo "::group::make test"
167
- make test $EXPLICIT_MAKE_VARS
173
+ eval make test $EXPLICIT_MAKE_VARS
168
174
echo "::endgroup::"
169
175
170
176
# Test Python and Ruby wrappers
@@ -184,6 +190,6 @@ jobs:
184
190
# Test that "git status" looks clean, or print a clear error message
185
191
git status --short | sed -n 's/^??/error: missing .gitignore entry for/p' | (! grep '^')
186
192
# Clean up everything and show which file needs to be added to "make clean"
187
- make clean distclean $EXPLICIT_MAKE_VARS
193
+ eval make clean distclean $EXPLICIT_MAKE_VARS
188
194
git ls-files --ignored --others --exclude-standard | sed 's/^/error: "make clean distclean" did not remove /' | (! grep '^')
189
195
echo "::endgroup::"
0 commit comments