From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpng3.m.smailru.net (smtpng3.m.smailru.net [94.100.177.149]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id D5988440F3C for ; Wed, 6 Nov 2019 14:49:33 +0300 (MSK) From: "Alexander V. Tikhonov" Date: Wed, 6 Nov 2019 14:49:31 +0300 Message-Id: <4f0eded688b6954a1a4231f4a4900f12b9980d8f.1573040909.git.avtikhon@tarantool.org> Subject: [Tarantool-patches] [PATCH v1] test: need ASAN testing in commit process List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kirill Yukhin , Alexander Turenko Cc: tarantool-patches@freelists.org, tarantool-patches@dev.tarantool.org Added ASAN tesing in commit process, used clang-8 for ASAN build under debian-buster image. Added for testing only the passing test suites, the rest of the tests not used and will be enabled durring issue #4360. Closes #4359 (cherry picked from commit 55f7586ac36760f31255fee7b70606f466f30e04) --- Github: https://github.com/tarantool/tarantool/tree/avtikhon/asan_1.10 .gitlab-ci.yml | 5 +++++ .travis.mk | 24 ++++++++++++++++++++++++ test/app-tap/json.skipcond | 7 +++++++ test/unit/guard.skipcond | 7 +++++++ test/unit/msgpack.skipcond | 7 +++++++ 5 files changed, 50 insertions(+) create mode 100644 test/app-tap/json.skipcond create mode 100644 test/unit/guard.skipcond create mode 100644 test/unit/msgpack.skipcond diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 04bb4b1cc..5d3702ae5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -85,6 +85,11 @@ release_lto_clang8: script: - ${GITLAB_MAKE} test_debian_no_deps +release_asan_clang8: + <<: *docker_test_clang8_definition + script: + - ${GITLAB_MAKE} test_asan_debian_no_deps + osx_13_release: <<: *release_only_definition <<: *vbox_definition diff --git a/.travis.mk b/.travis.mk index bfb3016da..8454eb4a5 100644 --- a/.travis.mk +++ b/.travis.mk @@ -16,6 +16,9 @@ test: test_$(TRAVIS_OS_NAME) # Redirect some targets via docker test_linux: docker_test_debian coverage: docker_coverage_debian +lto: docker_test_debian +lto_clang8: docker_test_debian_clang8 +asan: docker_test_asan_debian docker_%: mkdir -p ~/.cache/ccache @@ -68,6 +71,8 @@ deps_buster_clang_8: deps_debian apt-get update apt-get install -y clang-8 llvm-8-dev +# Release + build_debian: cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_WERROR=ON ${CMAKE_EXTRA_PARAMS} make -j @@ -77,6 +82,10 @@ test_debian_no_deps: build_debian test_debian: deps_debian test_debian_no_deps +test_debian_clang8: deps_debian deps_buster_clang_8 test_debian_no_deps + +# Debug with coverage + build_coverage_debian: cmake . -DCMAKE_BUILD_TYPE=Debug -DENABLE_GCOV=ON make -j @@ -97,6 +106,21 @@ test_coverage_debian_no_deps: build_coverage_debian coverage_debian: deps_debian test_coverage_debian_no_deps +# ASAN + +build_asan_debian: + CC=clang-8 CXX=clang++-8 cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_WERROR=ON ${CMAKE_EXTRA_PARAMS} + CC=clang-8 CXX=clang++-8 cmake . -DENABLE_ASAN=ON ${CMAKE_EXTRA_PARAMS} + make -j + +test_asan_debian_no_deps: build_asan_debian + # temporary excluded engine/ and replication/ suites with some tests from other suites by issue #4360 + cd test && ASAN=ON ASAN_OPTIONS=detect_leaks=0 ./test-run.py --force $(TEST_RUN_EXTRA_PARAMS) \ + app/ app-tap/ box/ box-py/ box-tap/ engine_long/ long_run-py/ luajit-tap/ \ + replication-py/ small/ sql/ sql-tap/ swim/ unit/ vinyl/ wal_off/ xlog/ xlog-py/ + +test_asan_debian: deps_debian deps_buster_clang_8 test_asan_debian_no_deps + ####### # OSX # ####### diff --git a/test/app-tap/json.skipcond b/test/app-tap/json.skipcond new file mode 100644 index 000000000..e46fd1088 --- /dev/null +++ b/test/app-tap/json.skipcond @@ -0,0 +1,7 @@ +import os + +# Disabled at ASAN build due to issue #4360. +if os.getenv("ASAN") == 'ON': + self.skip = 1 + +# vim: set ft=python: diff --git a/test/unit/guard.skipcond b/test/unit/guard.skipcond new file mode 100644 index 000000000..e46fd1088 --- /dev/null +++ b/test/unit/guard.skipcond @@ -0,0 +1,7 @@ +import os + +# Disabled at ASAN build due to issue #4360. +if os.getenv("ASAN") == 'ON': + self.skip = 1 + +# vim: set ft=python: diff --git a/test/unit/msgpack.skipcond b/test/unit/msgpack.skipcond new file mode 100644 index 000000000..e46fd1088 --- /dev/null +++ b/test/unit/msgpack.skipcond @@ -0,0 +1,7 @@ +import os + +# Disabled at ASAN build due to issue #4360. +if os.getenv("ASAN") == 'ON': + self.skip = 1 + +# vim: set ft=python: -- 2.17.1