diff options
author | iphydf <iphydf@users.noreply.github.com> | 2018-08-19 11:02:16 +0000 |
---|---|---|
committer | iphydf <iphydf@users.noreply.github.com> | 2018-08-19 12:05:28 +0000 |
commit | e32e0b3402006dabfc44e9a3eb1e806d9d3fc00d (patch) | |
tree | 63a6964e19a431697538e34694eda444018fbb38 /.circleci | |
parent | 248902ffd44d24707501dd673aa1b6319b8df1c1 (diff) |
Run both asan and tsan on Circle CI.
Diffstat (limited to '.circleci')
-rwxr-xr-x | .circleci/cmake-asan | 27 | ||||
-rwxr-xr-x | .circleci/cmake-tsan | 28 | ||||
-rw-r--r-- | .circleci/config.yml | 37 |
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 | |||
3 | set -eu | ||
4 | |||
5 | CACHEDIR="$HOME/cache" | ||
6 | |||
7 | . ".travis/flags-$CC.sh" | ||
8 | add_flag -Werror | ||
9 | add_flag -fsanitize=address | ||
10 | cmake -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 | |||
22 | cd _build | ||
23 | |||
24 | ninja install -j$(nproc) | ||
25 | |||
26 | ctest -j50 --output-on-failure || | ||
27 | ctest -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 | |||
3 | set -eu | ||
4 | |||
5 | CACHEDIR="$HOME/cache" | ||
6 | |||
7 | . ".travis/flags-$CC.sh" | ||
8 | add_flag -Werror | ||
9 | add_flag -fsanitize=thread | ||
10 | cmake -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 | |||
22 | cd _build | ||
23 | |||
24 | ninja install -j$(nproc) | ||
25 | |||
26 | ctest -j50 --output-on-failure || | ||
27 | ctest -j50 --output-on-failure --rerun-failed || | ||
28 | true # 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 | ||
9 | jobs: | 10 | jobs: |
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 | ||