Skip to content
Merged
1 change: 1 addition & 0 deletions .dev/lsan.supp
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
leak:libfontconfig.so
20 changes: 19 additions & 1 deletion .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,24 @@ test-lin-ancient-cran:
# Restore checking vignettes if upgrading our R dependency means knitr can be installed.
- R CMD check --no-manual --no-build-vignettes --ignore-vignettes $(ls -1t data.table_*.tar.gz | head -n 1)

# run the main checks with Address(+Leak),UBSanitizer enabled
test-lin-san:
<<: *test-lin
image: registry.gitlab.com/rdatatable/dockerfiles/r-devel-clang-san
variables:
# must be set for most of the process because there are pseudo-leaks everywhere
ASAN_OPTIONS: "detect_leaks=0"
# fontconfig is known to leak; add more suppressions as discovered
LSAN_OPTIONS: "suppressions=$CI_PROJECT_DIR/.dev/lsan.supp"
UBSAN_OPTIONS: "print_stacktrace=1"
script:
- *install-deps
- |
res1=0; ASAN_OPTIONS=detect_leaks=1 R CMD check --no-manual $(ls -1t data.table_*.tar.gz | head -n 1) || res1=$?
res2=0; perl -nle '(print, $a=1) if /: runtime error: |ERROR: LeakSanitizer/../SUMMARY.*Sanitizer/ }{ exit $a' data.table.Rcheck/**/*.Rout* || res2=$?
# fail if R CMD check had failed or if sanitizer output found
if [ $res1 -ne 0 ] || [ $res2 -ne 0 ]; then exit 1; fi

.test-win-template: &test-win
<<: *test
tags:
Expand Down Expand Up @@ -311,7 +329,7 @@ integration:
- saas-linux-medium-amd64
only:
- master
needs: ["mirror-packages","build","test-lin-rel","test-lin-rel-cran","test-lin-dev-gcc-strict-cran","test-lin-dev-clang-cran","test-lin-rel-vanilla","test-lin-ancient-cran","test-win-rel","test-win-dev" ,"test-win-old","test-mac-rel","test-mac-old"]
needs: ["mirror-packages","build","test-lin-rel","test-lin-rel-cran","test-lin-dev-gcc-strict-cran","test-lin-dev-clang-cran","test-lin-rel-vanilla","test-lin-ancient-cran","test-lin-san","test-win-rel","test-win-dev" ,"test-win-old","test-mac-rel","test-mac-old"]
script:
- R --version
- *install-deps ## markdown pkg not present in r-pkgdown image
Expand Down
Loading