@@ -242,6 +242,76 @@ jobs:
242
242
- name: Run tests
243
243
run: cd build; ctest . -V -L CORE -j2
244
244
245
+ # This job takes approximately N minutes
246
+ check-ubuntu-22_04-make-clang:
247
+ runs-on: ubuntu-22.04
248
+ env:
249
+ CC: "ccache /usr/bin/clang"
250
+ CXX: "ccache /usr/bin/clang++"
251
+ steps:
252
+ - uses: actions/checkout@v3
253
+ with:
254
+ submodules: recursive
255
+ - name: Fetch dependencies
256
+ env:
257
+ # This is needed in addition to -yq to prevent apt-get from asking for
258
+ # user input
259
+ DEBIAN_FRONTEND: noninteractive
260
+ run: |
261
+ sudo apt-get update
262
+ sudo apt-get install --no-install-recommends -yq clang clang-14 gdb maven jq flex bison libxml2-utils cpanminus ccache z3
263
+ make -C src minisat2-download
264
+ cpanm Thread::Pool::Simple
265
+ - name: Confirm z3 solver is available and log the version installed
266
+ run: z3 --version
267
+ - name: Download cvc-5 from the releases page and make sure it can be deployed
268
+ run: |
269
+ wget -O cvc5 https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-Linux
270
+ chmod u+x cvc5
271
+ mv cvc5 /usr/local/bin
272
+ cvc5 --version
273
+ - name: Prepare ccache
274
+ uses: actions/cache@v3
275
+ with:
276
+ path: .ccache
277
+ key: ${{ runner.os }}-22.04-make-clang-${{ github.ref }}-${{ github.sha }}-PR
278
+ restore-keys: |
279
+ ${{ runner.os }}-22.04-make-clang-${{ github.ref }}
280
+ ${{ runner.os }}-22.04-make-clang
281
+ - name: ccache environment
282
+ run: |
283
+ echo "CCACHE_BASEDIR=$PWD" >> $GITHUB_ENV
284
+ echo "CCACHE_DIR=$PWD/.ccache" >> $GITHUB_ENV
285
+ - name: Zero ccache stats and limit in size
286
+ run: ccache -z --max-size=500M
287
+ - name: Perform C/C++ library syntax check
288
+ run: |
289
+ make -C src/ansi-c library_check
290
+ make -C src/cpp library_check
291
+ - name: Build with make
292
+ run: |
293
+ make -C src -j2
294
+ make -C unit -j2
295
+ make -C jbmc/src -j2
296
+ make -C jbmc/unit -j2
297
+ - name: Print ccache stats
298
+ run: ccache -s
299
+ - name: Run unit tests
300
+ run: |
301
+ make -C unit test
302
+ make -C jbmc/unit test
303
+ make TAGS="[z3]" -C unit test
304
+ - name: Run expected failure unit tests
305
+ run: |
306
+ make TAGS="[!shouldfail]" -C unit test
307
+ make TAGS="[!shouldfail]" -C jbmc/unit test
308
+ - name: Run regression tests
309
+ run: |
310
+ make -C regression test-parallel JOBS=2
311
+ make -C regression/cbmc test-paths-lifo
312
+ env PATH=$PATH:`pwd`/src/solvers make -C regression/cbmc test-cprover-smt2
313
+ make -C jbmc/regression test-parallel JOBS=2
314
+
245
315
# This job takes approximately 41 minutes
246
316
check-ubuntu-22_04-cmake-gcc:
247
317
runs-on: ubuntu-22.04
0 commit comments