From 7006997e1286dffb73e1b73ed7773cbe5e94780a Mon Sep 17 00:00:00 2001 From: sdong Date: Thu, 25 Jun 2020 17:40:08 -0700 Subject: [PATCH] Add ASAN CircleCI Run (#7027) Summary: ASAN run is powerful in finding memory leak bugs. Running it as a part of the pre-merge CI can help contributors avoid to merge some code with bugs. Pull Request resolved: https://github.com/facebook/rocksdb/pull/7027 Test Plan: Watch the test result. Reviewed By: pdillinger Differential Revision: D22222371 fbshipit-source-id: 92f9ce19e01a94ba5f9b765e154f7bcdece5c2a9 --- .circleci/config.yml | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a2408facd..4d4fe5ed0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -63,12 +63,26 @@ jobs: resource_class: 2xlarge steps: - checkout # check out the code in the project directory - - run: sudo sh -c 'echo "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main" >> /etc/apt/sources.list' - - run: sudo sh -c 'echo "deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main" >> /etc/apt/sources.list' + - run: echo "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main" | sudo tee -a /etc/apt/sources.list + - run: echo "deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main" | sudo tee -a /etc/apt/sources.list - run: sudo apt-get update -y - run: sudo apt-get install -y clang-10 - run: CC=clang-10 CXX=clang++-10 ROCKSDB_DISABLE_ALIGNED_NEW=1 USE_CLANG=1 make all -j32 # aligned new doesn't work for reason we haven't figured out + build-linux-clang10-asan: + machine: + image: ubuntu-1604:201903-01 + resource_class: 2xlarge + steps: + - checkout # check out the code in the project directory + - run: pyenv global 3.5.2 + - run: echo "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main" | sudo tee -a /etc/apt/sources.list + - run: echo "deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main" | sudo tee -a /etc/apt/sources.list + - run: sudo apt-get update -y + - run: sudo apt-get install -y clang-10 + - run: sudo apt-get install -y libgflags-dev + - run: SKIP_FORMAT_BUCK_CHECKS=1 COMPILE_WITH_ASAN=1 CC=clang-10 CXX=clang++-10 ROCKSDB_DISABLE_ALIGNED_NEW=1 USE_CLANG=1 PRINT_PARALLEL_OUTPUTS=1 make asan_check -j32 # aligned new doesn't work for reason we haven't figured out + build-linux-cmake: machine: image: ubuntu-1604:201903-01 @@ -140,6 +154,9 @@ workflows: build-linux-clang10-no-test: jobs: - build-linux-clang10-no-test + build-linux-clang10-asan: + jobs: + - build-linux-clang10-asan build-linux-cmake: jobs: - build-linux-cmake