image: "flowdalic/debian-testing-dev:1.14" before_script: - | readarray TOOLS <<EOF c++ cc clang clang++ clang-tidy doxygen g++ gcc include-what-you-use meson nasm valgrind EOF for tool in ${TOOLS[@]}; do echo -n "$tool version: " $tool --version done variables: BUILDDTYPE: debugoptimized CC: gcc CXX: g++ EXTRA_NINJA_ARGS: -v EMPER_IO: "false" stages: - smoke-test - test .meson-test: artifacts: paths: - build-*/meson-logs when: on_failure reports: junit: build-*/meson-logs/testlog.junit.xml smoke-test-suite: extends: - .meson-test stage: smoke-test script: make smoke-test-suite fast-static-analysis: stage: smoke-test script: make fast-static-analysis variables: EMPER_IO: "true" iwyu: stage: smoke-test script: IWYU_TOOL="${CI_PROJECT_DIR}/tools/iwyu_tool.py" make iwyu variables: EMPER_IO: "true" clang-tidy: stage: smoke-test script: make tidy variables: EMPER_IO: "true" .test: extends: - .meson-test stage: test script: - make test .gcc: variables: CC: gcc CXX: g++ .clang: variables: CC: clang CXX: clang++ .emper-ws-scheduling: variables: EMPER_DEFAULT_SCHEDULING_STRATEGY: "work_stealing" .emper-laws-scheduling: variables: EMPER_DEFAULT_SCHEDULING_STRATEGY: "locality_aware_work_stealing" .emper-worker-no-sleep: variables: EMPER_WORKER_SLEEP: 'false' .emper-stats: variables: EMPER_STATS: 'true' .emper-userspace-rcu: variables: EMPER_USERSPACE_RCU: 'true' .default-library-static: variables: EMPER_DEFAULT_LIBRARY: 'static' .clang-sanitizer: extends: - .clang - .default-library-static variables: # Clang's sanitizers require undefined symbols to be allowed when # linking. See also: # - https://github.com/mesonbuild/meson/issues/764 # - https://mesonbuild.com/Builtin-options.html EMPER_B_LUNDEF: 'false' .clang-sanitizer-undefined: extends: - .clang-sanitizer variables: EMPER_B_SANITIZE: 'undefined' #.clang-sanitizer-memory: # extends: # - .clang-sanitizer # variables: # EMPER_B_SANITIZE: 'memory' #.sanitizer-address: # extends: # - .default-library-static # variables: # EMPER_B_SANITIZE: 'address' .release-build: variables: BUILDTYPE: release .debug-build: variables: BUILDTYPE: debug .worker-wakeup-strategy-all: variables: EMPER_WORKER_WAKEUP_STRATEGY: "all" .do-not-log-timestamp: variables: EMPER_LOG_TIMESTAMP: "false" .locked-ws-queues: variables: EMPER_LOCKED_WS_QUEUE: "true" .futex-wakeup-semaphore: variables: EMPER_WAKEUP_SEMAPHORE_IMPLEMENTATION: "futex" .locked-wakeup-semaphore: variables: EMPER_WAKEUP_SEMAPHORE_IMPLEMENTATION: "locked" .set-affinity-on-block: variables: EMPER_SET_AFFINITY_ON_BLOCK: 'true' test-gcc: extends: - .test - .gcc test-gcc-release: extends: - test-gcc - .release-build test-gcc-debug: extends: - test-gcc - .debug-build test-clang: extends: - .test - .clang test-clang-release: extends: - test-clang - .release-build test-clang-debug: extends: - test-clang - .debug-build test-worker-no-sleep: extends: - .test - .emper-worker-no-sleep test-with-stats: extends: - .test - .emper-stats test-with-userspace-rcu: extends: - .test - .emper-userspace-rcu test-clang-sanitizer-undefined: extends: - .test - .clang-sanitizer-undefined #test-clang-sanitizer-memory: # extends: # - .test # - .clang-sanitizer-memory #test-clang-sanitizer-address: # extends: # - .test # - .clang # - .sanitizer-address test-laws: extends: - .test - .emper-laws-scheduling test-laws-release: extends: - test-laws - .release-build test-worker-wakeup-strategy-all: extends: - .test - .worker-wakeup-strategy-all test-do-not-log-timestamp: extends: - .test - .do-not-log-timestamp test-locked-ws-queues: extends: - .test - .locked-ws-queues test-futex-wakeup-semaphore: extends: - .test - .futex-wakeup-semaphore test-locked-wakeup-semaphore: extends: - .test - .locked-wakeup-semaphore test-set-affinity-on-block: extends: - .test - .set-affinity-on-block