mirror of
https://github.com/irungentoo/toxcore.git
synced 2024-03-22 13:30:51 +08:00
de4af4c270
Instead of synchronously handling events as they happen in `tox_iterate`, this first collects all events in a structure and then lets the client process them. This allows clients to process events in parallel, since the data structure returned is mostly immutable. This also makes toxcore compatible with languages that don't (easily) support callbacks from C into the non-C language. If we remove the callbacks, this allows us to add fields to the events without breaking the API.
136 lines
3.1 KiB
YAML
136 lines
3.1 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
|
|
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
|