Add travis sanitizers tests. (#3557)
* Add travis sanitizers tests. * Add gcc-7 in Travis. * Add SANITIZER_PATH for CMake. * Enable sanitizer tests in Travis. * Fix memory leaks in tests. * Fix all memory leaks reported by Address Sanitizer. * tests/cpp/helpers.h/CreateDMatrix now returns raw pointer.
This commit is contained in:
committed by
Rory Mitchell
parent
983cb0b374
commit
cf2d86a4f6
@@ -149,9 +149,39 @@ if [ ${TASK} == "cpp_test" ]; then
|
||||
make cover
|
||||
fi
|
||||
|
||||
|
||||
if [ ${TASK} == "distributed_test" ]; then
|
||||
set -e
|
||||
make all || exit -1
|
||||
cd tests/distributed
|
||||
./runtests.sh
|
||||
fi
|
||||
|
||||
if [ ${TASK} == "sanitizer_test" ]; then
|
||||
set -e
|
||||
# Build gtest via cmake
|
||||
wget -nc https://github.com/google/googletest/archive/release-1.7.0.zip
|
||||
unzip -n release-1.7.0.zip
|
||||
mv googletest-release-1.7.0 gtest && cd gtest
|
||||
CC=gcc-7 CXX=g++-7 cmake -DCMAKE_CXX_FLAGS="-fuse-ld=gold" \
|
||||
-DCMAKE_C_FLAGS="-fuse-ld=gold"
|
||||
make
|
||||
mkdir lib && mv libgtest.a lib
|
||||
cd ..
|
||||
rm -rf release-1.7.0.zip
|
||||
|
||||
mkdir build && cd build
|
||||
CC=gcc-7 CXX=g++-7 cmake .. -DGOOGLE_TEST=ON -DGTEST_ROOT=$PWD/../gtest/ \
|
||||
-DUSE_SANITIZER=ON -DENABLED_SANITIZERS="address" \
|
||||
-DCMAKE_BUILD_TYPE=Debug \
|
||||
-DSANITIZER_PATH=/usr/lib/x86_64-linux-gnu/ \
|
||||
-DCMAKE_CXX_FLAGS="-fuse-ld=gold" \
|
||||
-DCMAKE_C_FLAGS="-fuse-ld=gold"
|
||||
make
|
||||
cd ..
|
||||
|
||||
export ASAN_SYMBOLIZER_PATH=$(which llvm-symbolizer)
|
||||
ASAN_OPTIONS=symbolize=1 ./testxgboost
|
||||
rm -rf build
|
||||
exit 0
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user