12 echo "No Sanitizer type selected - run Address"
19 if [ "${SANITIZER}" = "address" ]
21 export ASAN_OPTIONS="suppressions=$WORKSPACE/tools/address_sanitizer.supp"
22 SANITIZER_OPTIONS="-Denable_address_sanitizer=ON -Denable_undefined_sanitizer=OFF -Denable_thread_sanitizer=OFF"
23 elif [ "${SANITIZER}" = "thread" ]
25 export TSAN_OPTIONS="memory_limit_mb=1500 suppressions=$WORKSPACE/tools/thread_sanitizer.supp"
26 SANITIZER_OPTIONS="-Denable_address_sanitizer=OFF -Denable_undefined_sanitizer=OFF -Denable_thread_sanitizer=ON"
27 elif [ "${SANITIZER}" = "undefined" ]
29 export UBSAN_OPTIONS="print_stacktrace=1"
30 SANITIZER_OPTIONS="-Denable_address_sanitizer=OFF -Denable_undefined_sanitizer=ON -Denable_thread_sanitizer=OFF"
32 die "Unknown Sanitizer type selected ${SANITIZER} - Exiting"
37 ### Check the node installation
44 echo "$pkg is installed. Good."
46 die "please install $pkg before proceeding"
53 ### Cleanup previous runs
55 [ -n "$WORKSPACE" ] || die "No WORKSPACE"
56 [ -d "$WORKSPACE" ] || die "WORKSPACE ($WORKSPACE) does not exist"
63 rm -rf "$d" || die "Could not remove $d"
65 mkdir "$d" || die "Could not create $d"
69 do_cleanup "$WORKSPACE/build"
71 NUMPROC="$(nproc)" || NUMPROC=1
75 ctest -D ExperimentalStart || true
77 cmake -Denable_documentation=OFF \
78 -Denable_compile_optimizations=ON -Denable_compile_warnings=ON \
79 -Denable_mallocators=OFF \
80 -Denable_smpi=ON -Denable_testsuite_smpi_MPICH3=ON -Denable_model-checking=OFF \
82 -Denable_memcheck=OFF -Denable_memcheck_xml=OFF -Denable_testsuite_smpi_MBI=OFF -Denable_testsuite_McMini=OFF -Denable_coverage=OFF\
83 -Denable_fortran=OFF -Denable_python=OFF -DLTO_EXTRA_FLAG="auto" -DCMAKE_CXX_COMPILER_LAUNCHER=ccache\
84 ${SANITIZER_OPTIONS} "$WORKSPACE"
87 ctest --no-compress-output -D ExperimentalTest || true
89 if [ -f Testing/TAG ] ; then
90 xsltproc "$WORKSPACE"/tools/jenkins/ctest2junit.xsl Testing/"$(head -n 1 < Testing/TAG)"/Test.xml > CTestResults_"${SANITIZER}".xml
91 mv CTestResults_"${SANITIZER}".xml "$WORKSPACE"