Newer
Older
image: "flowdalic/debian-testing-dev:1.14"
before_script:
- |

Florian Schmaus
committed
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
stages:
- smoke-test
.meson-test:
artifacts:
paths:
- build-*/meson-logs
when: on_failure
reports:
junit: build-*/meson-logs/testlog.junit.xml
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"
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-userspace-rcu:
variables:
EMPER_USERSPACE_RCU: 'true'
.emper-pipe-sleep-strategy:
variables:
EMPER_WORKER_SLEEP_STRATEGY: 'pipe'
.emper-no-completer:
variables:
EMPER_IO_COMPLETER_BEHAVIOR: 'none'
.emper-single-uring:
variables:
EMPER_IO_SINGLE_URING: 'true'

Florian Fischer
committed
.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'

Florian Fischer
committed
.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"
.emper-worker-wakeup-strategy-throttle:
variables:
EMPER_WORKER_WAKEUP_STRATEGY: "throttle"
.do-not-log-timestamp:
variables:
EMPER_LOG_TIMESTAMP: "none"
.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'
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
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
test-with-userspace-rcu:
extends:
- .test
- .emper-userspace-rcu

Florian Fischer
committed
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

Florian Fischer
committed
test-worker-wakeup-strategy-throttle:
extends:
- .test
- .emper-worker-wakeup-strategy-throttle
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
test-mmapped-log:
extends:
- .meson-test
script: make && EMPER_LOG_FILE=emper.log make test
test-single-uring:
extends:
- .test
- .emper-single-uring
test-pipe-sleep-strategy:
extends:
- .test
- .emper-pipe-sleep-strategy
test-pipe-sleep-strategy-no-completer:
extends:
- .test
- .emper-pipe-sleep-strategy
- .emper-no-completer