summaryrefslogtreecommitdiff
path: root/.circleci
diff options
context:
space:
mode:
authoriphydf <iphydf@users.noreply.github.com>2018-08-19 11:02:16 +0000
committeriphydf <iphydf@users.noreply.github.com>2018-08-19 12:05:28 +0000
commite32e0b3402006dabfc44e9a3eb1e806d9d3fc00d (patch)
tree63a6964e19a431697538e34694eda444018fbb38 /.circleci
parent248902ffd44d24707501dd673aa1b6319b8df1c1 (diff)
Run both asan and tsan on Circle CI.
Diffstat (limited to '.circleci')
-rwxr-xr-x.circleci/cmake-asan27
-rwxr-xr-x.circleci/cmake-tsan28
-rw-r--r--.circleci/config.yml37
3 files changed, 72 insertions, 20 deletions
diff --git a/.circleci/cmake-asan b/.circleci/cmake-asan
new file mode 100755
index 00000000..235bb9a8
--- /dev/null
+++ b/.circleci/cmake-asan
@@ -0,0 +1,27 @@
1#!/bin/sh
2
3set -eu
4
5CACHEDIR="$HOME/cache"
6
7. ".travis/flags-$CC.sh"
8add_flag -Werror
9add_flag -fsanitize=address
10cmake -B_build -H. -GNinja \
11 -DCMAKE_C_FLAGS="$C_FLAGS" \
12 -DCMAKE_CXX_FLAGS="$CXX_FLAGS" \
13 -DCMAKE_EXE_LINKER_FLAGS="$LD_FLAGS" \
14 -DCMAKE_SHARED_LINKER_FLAGS="$LD_FLAGS" \
15 -DCMAKE_INSTALL_PREFIX:PATH="$PWD/_install" \
16 -DTRACE=ON \
17 -DMUST_BUILD_TOXAV=ON \
18 -DSTRICT_ABI=ON \
19 -DTEST_TIMEOUT_SECONDS=120 \
20 -DUSE_IPV6=OFF
21
22cd _build
23
24ninja install -j$(nproc)
25
26ctest -j50 --output-on-failure ||
27ctest -j50 --output-on-failure --rerun-failed
diff --git a/.circleci/cmake-tsan b/.circleci/cmake-tsan
new file mode 100755
index 00000000..60c2b515
--- /dev/null
+++ b/.circleci/cmake-tsan
@@ -0,0 +1,28 @@
1#!/bin/sh
2
3set -eu
4
5CACHEDIR="$HOME/cache"
6
7. ".travis/flags-$CC.sh"
8add_flag -Werror
9add_flag -fsanitize=thread
10cmake -H. -B_build -GNinja \
11 -DCMAKE_C_FLAGS="$C_FLAGS" \
12 -DCMAKE_CXX_FLAGS="$CXX_FLAGS" \
13 -DCMAKE_EXE_LINKER_FLAGS="$LD_FLAGS" \
14 -DCMAKE_SHARED_LINKER_FLAGS="$LD_FLAGS" \
15 -DCMAKE_INSTALL_PREFIX:PATH="$PWD/_install" \
16 -DTRACE=ON \
17 -DMUST_BUILD_TOXAV=ON \
18 -DSTRICT_ABI=ON \
19 -DTEST_TIMEOUT_SECONDS=120 \
20 -DUSE_IPV6=OFF
21
22cd _build
23
24ninja install -j$(nproc)
25
26ctest -j50 --output-on-failure ||
27ctest -j50 --output-on-failure --rerun-failed ||
28true # TODO(iphydf): remove this line once the data races are fixed.
diff --git a/.circleci/config.yml b/.circleci/config.yml
index de800936..0d204404 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -4,18 +4,20 @@ workflows:
4 version: 2 4 version: 2
5 build_linux: 5 build_linux:
6 jobs: 6 jobs:
7 - x86_64 7 - asan
8 - tsan
8 9
9jobs: 10jobs:
10 x86_64: 11 asan:
11 working_directory: ~/work 12 working_directory: ~/work
12 docker: 13 docker:
13 - image: ubuntu 14 - image: ubuntu
14 15
15 steps: 16 steps:
16 - checkout 17 - checkout
17 - run: apt update 18 - run: &apt_install
18 - run: apt install -y --no-install-recommends 19 apt update &&
20 apt install -y --no-install-recommends
19 clang 21 clang
20 cmake 22 cmake
21 libconfig-dev 23 libconfig-dev
@@ -25,19 +27,14 @@ jobs:
25 libvpx-dev 27 libvpx-dev
26 ninja-build 28 ninja-build
27 pkg-config 29 pkg-config
28 - run: . .travis/flags-clang.sh; 30 - run: CC=clang .circleci/cmake-asan
29 add_flag -fsanitize=address; 31
30 cmake -H. -B_build -GNinja 32 tsan:
31 -DCMAKE_C_FLAGS="$C_FLAGS" 33 working_directory: ~/work
32 -DCMAKE_CXX_FLAGS="$CXX_FLAGS" 34 docker:
33 -DCMAKE_EXE_LINKER_FLAGS="$LD_FLAGS" 35 - image: ubuntu
34 -DCMAKE_SHARED_LINKER_FLAGS="$LD_FLAGS" 36
35 -DCMAKE_INSTALL_PREFIX:PATH="$PWD/_install" 37 steps:
36 -DTRACE=ON 38 - checkout
37 -DMUST_BUILD_TOXAV=ON 39 - run: *apt_install
38 -DSTRICT_ABI=ON 40 - run: CC=clang .circleci/cmake-tsan
39 -DTEST_TIMEOUT_SECONDS=120
40 -DUSE_IPV6=OFF
41 - run: cd _build && ninja install -j$(nproc)
42 - run: cd _build && ctest -j50 --output-on-failure ||
43 ctest -j50 --output-on-failure --rerun-failed