image: "flowdalic/debian-testing-dev:1.4" 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 stages: - smoke-test - test smoke-test: stage: smoke-test script: make smoke-test variables: BUILDDTYPE: debugoptmized CC: gcc CXX: g++ EXTRA_NINJA_ARGS: -v EMPER_IO: "false" .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-worker-stats: variables: EMPER_WORKER_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" 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-worker-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