mirror of
https://github.com/irungentoo/toxcore.git
synced 2024-03-22 13:30:51 +08:00
1859d0f44a
Most system headers contain functions (e.g. `memcpy` in `string.h`) which aren't needed in our own header files. For the most part, our own headers should only include types needed to declare our own types and functions. We now enforce this so we think twice about which headers we really need in the .h files.
135 lines
3.0 KiB
YAML
135 lines
3.0 KiB
YAML
---
|
|
version: 2
|
|
|
|
workflows:
|
|
version: 2
|
|
program-analysis:
|
|
jobs:
|
|
# Dynamic analysis
|
|
- asan
|
|
- tsan
|
|
- msan
|
|
# Static analysis
|
|
- clang-analyze
|
|
- clang-tidy
|
|
- cpplint
|
|
- infer
|
|
- static-analysis
|
|
|
|
jobs:
|
|
asan:
|
|
working_directory: ~/work
|
|
docker:
|
|
- image: ubuntu
|
|
|
|
steps:
|
|
- run: &apt_install
|
|
apt-get update &&
|
|
DEBIAN_FRONTEND=noninteractive
|
|
apt-get install -y --no-install-recommends
|
|
clang
|
|
cmake
|
|
git
|
|
libconfig-dev
|
|
libgtest-dev
|
|
libopus-dev
|
|
libsodium-dev
|
|
libvpx-dev
|
|
llvm-dev
|
|
ninja-build
|
|
pkg-config
|
|
- checkout
|
|
- run: CC=clang .circleci/cmake-asan
|
|
|
|
tsan:
|
|
working_directory: ~/work
|
|
docker:
|
|
- image: ubuntu
|
|
|
|
steps:
|
|
- run: *apt_install
|
|
- checkout
|
|
- run: CC=clang .circleci/cmake-tsan
|
|
|
|
msan:
|
|
working_directory: ~/work
|
|
docker:
|
|
- image: toxchat/toktok-stack:latest-msan
|
|
|
|
steps:
|
|
- checkout
|
|
- run: rm -rf /src/workspace/c-toxcore/* && mv * /src/workspace/c-toxcore/
|
|
# TODO(iphydf): Remove "|| true" once this works.
|
|
- run: cd /src/workspace && bazel test //c-toxcore/auto_tests:lossless_packet_test || true
|
|
|
|
infer:
|
|
working_directory: ~/work
|
|
docker:
|
|
- image: toxchat/infer
|
|
|
|
steps:
|
|
- run: *apt_install
|
|
- checkout
|
|
- run: infer --no-progress-bar -- cc
|
|
auto_tests/auto_test_support.c
|
|
auto_tests/lossless_packet_test.c
|
|
testing/misc_tools.c
|
|
toxav/*.c
|
|
toxcore/*.c
|
|
toxencryptsave/*.c
|
|
-lpthread
|
|
$(pkg-config --cflags --libs libsodium opus vpx)
|
|
|
|
static-analysis:
|
|
working_directory: ~/work
|
|
docker:
|
|
- image: ubuntu
|
|
|
|
steps:
|
|
- run: *apt_install
|
|
- run: apt-get install -y --no-install-recommends cppcheck g++ llvm-dev
|
|
- checkout
|
|
- run: other/analysis/check_includes
|
|
- run: other/analysis/check_logger_levels
|
|
- run: other/analysis/run-check-recursion
|
|
- run: other/analysis/run-clang
|
|
- run: other/analysis/run-cppcheck
|
|
- run: other/analysis/run-gcc
|
|
|
|
clang-analyze:
|
|
working_directory: ~/work
|
|
docker:
|
|
- image: ubuntu
|
|
|
|
steps:
|
|
- run: *apt_install
|
|
- checkout
|
|
- run: other/analysis/run-clang-analyze
|
|
|
|
clang-tidy:
|
|
working_directory: ~/work
|
|
docker:
|
|
- image: ubuntu
|
|
|
|
steps:
|
|
- run: *apt_install
|
|
- run: apt-get install -y --no-install-recommends clang-tidy-12
|
|
- checkout
|
|
- run: cmake . -B_build -GNinja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
|
|
- run:
|
|
other/analysis/run-clang-tidy ||
|
|
other/analysis/run-clang-tidy ||
|
|
other/analysis/run-clang-tidy
|
|
|
|
cpplint:
|
|
working_directory: ~/work
|
|
docker:
|
|
- image: ubuntu
|
|
|
|
steps:
|
|
- run: *apt_install
|
|
- run: apt-get install -y --no-install-recommends python3-pip
|
|
- checkout
|
|
- run: pip install cpplint
|
|
- run: other/analysis/run-cpplint
|