- tags
- web
-.unit_test: &unit_test_job
+.unit_test_common: &unit_test_common
<<: *default_triggering_rules
stage: unit
before_script:
- make unit
after_script:
- *kyua_report_html
+
+.unit_test: &unit_test_job
+ <<: *unit_test_common
artifacts:
paths:
- kyua.log
expire_in: "1 day"
when: on_failure
+.unit_test_tsan: &unit_test_tsan_job
+ <<: *unit_test_common
+ allow_failure: true
+ after_script:
+ - *kyua_report_html
+ - find lib -name 'tsan.*' -exec python3 util/parse_tsan.py {} \;
+ artifacts:
+ expire_in: "1 day"
+ paths:
+ - lib/*/tests/tsan.*
+ - tsan/
+ - kyua.log
+ - kyua.results
+ - kyua_html/
+ when: on_failure
+
.cppcheck_args: &run_cppcheck |
cppcheck --enable=warning,performance,portability,information,missingInclude --include=config.h --std=c11 --language=c --project=compile_commands.json --error-exitcode=2 -j ${TEST_PARALLEL_JOBS:-1} --xml --output-file=cppcheck.results --relative-paths="$CI_PROJECT_DIR" --inline-suppr --suppressions-list=util/suppressions.txt
variables:
TSAN_OPTIONS: ${TSAN_OPTIONS_COMMON}
<<: *base_image
- <<: *unit_test_job
+ <<: *unit_test_tsan_job
needs:
- job: gcc:tsan
artifacts: true
- allow_failure: true
- after_script:
- - *kyua_report_html
- - find lib -name 'tsan.*' -exec python3 util/parse_tsan.py {} \;
- artifacts:
- expire_in: "1 day"
- paths:
- - lib/*/tests/tsan.*
- - tsan/
- - kyua.log
- - kyua.results
- - kyua_html/
- when: on_failure
clang:tsan:
<<: *base_image
variables:
TSAN_OPTIONS: ${TSAN_OPTIONS_COMMON}
<<: *base_image
- <<: *unit_test_job
+ <<: *unit_test_tsan_job
needs:
- job: clang:tsan
artifacts: true
- allow_failure: true
- after_script:
- - *kyua_report_html
- - find lib -name 'tsan.*' -exec python3 util/parse_tsan.py {} \;
- artifacts:
- expire_in: "1 day"
- paths:
- - lib/*/tests/tsan.*
- - tsan/
- - kyua.log
- - kyua.results
- - kyua_html/
- when: on_failure
# Jobs for mutex-based atomics on Debian SID (amd64)
mutexatomics: