From 9cccfb97ac4b2db15936ef18ab585bbb76af771f Mon Sep 17 00:00:00 2001 From: Everett Maus Date: Thu, 8 Aug 2019 09:16:54 -0700 Subject: [PATCH 01/18] Take one on adding MSAN --- azure-pipelines.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 0a96fc48c..397d4ea77 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -3,6 +3,7 @@ variables: cmakeStdArgs: '-DBUILD_DOTNET_BINDINGS=True -DBUILD_JAVA_BINDINGS=True -DBUILD_PYTHON_BINDINGS=True -G "Ninja" ../' asanEnv: 'CXXFLAGS="${CXXFLAGS} -fsanitize=address -fno-omit-frame-pointer" CFLAGS="${CFLAGS} -fsanitize=address -fno-omit-frame-pointer"' ubsanEnv: 'CXXFLAGS="${CXXFLAGS} -fsanitize=undefined" CFLAGS="${CFLAGS} -fsanitize=undefined"' + msanEnv: 'CXXFLAGS="${CXXFLAGS} -fsanitize=memory -fno-omit-frame-pointer -g -O2" CFLAGS="${CFLAGS} -fsanitize=memory -fno-omit-frame-pointer -g -O2"' jobs: @@ -55,6 +56,9 @@ jobs: releaseSTGcc: cmdLine: 'CC=gcc CXX=g++ cmake -DCMAKE_BUILD_TYPE=Release -DSINGLE_THREADED=ON $(cmakeStdArgs)' runUnitTest: 'True' + msanClang: + cmdLine: 'CC=clang CXX=clang++ $(msanEnv) cmake $(cmakeStdArgs)' + runUnitTest: 'True' # gccX86: # cmdLine: 'CXXFLAGS="${CXXFLAGS} -m32" CFLAGS="${CFLAGS} -m32" CC=gcc-5 CXX=g++-5 cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo $(cmakeStdArgs)' # runUnitTest: 'True' From ed29e1ffa5f7d468dd5e87dd2da0a1528aa09da7 Mon Sep 17 00:00:00 2001 From: Everett Maus Date: Thu, 8 Aug 2019 18:36:33 -0700 Subject: [PATCH 02/18] Second pass at getting MSAN working with azure pipelines --- azure-pipelines.yml | 7 ++++--- scripts/build_libcxx_msan.sh | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 scripts/build_libcxx_msan.sh diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 397d4ea77..a43a53dd2 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -3,7 +3,8 @@ variables: cmakeStdArgs: '-DBUILD_DOTNET_BINDINGS=True -DBUILD_JAVA_BINDINGS=True -DBUILD_PYTHON_BINDINGS=True -G "Ninja" ../' asanEnv: 'CXXFLAGS="${CXXFLAGS} -fsanitize=address -fno-omit-frame-pointer" CFLAGS="${CFLAGS} -fsanitize=address -fno-omit-frame-pointer"' ubsanEnv: 'CXXFLAGS="${CXXFLAGS} -fsanitize=undefined" CFLAGS="${CFLAGS} -fsanitize=undefined"' - msanEnv: 'CXXFLAGS="${CXXFLAGS} -fsanitize=memory -fno-omit-frame-pointer -g -O2" CFLAGS="${CFLAGS} -fsanitize=memory -fno-omit-frame-pointer -g -O2"' + msanEnv: 'CC=clang LDFLAGS="-L../libcxx/libcxx_msan/lib -lc++abi -Wl,-rpath=../libcxx/libcxx_msan/lib" CXX=clang++ CXXFLAGS="${CXXFLAGS} -stdlib=libc++ -fsanitize-memory-track-origins -fsanitize=memory -fPIE -fno-omit-frame-pointer -g -O2" CFLAGS="${CFLAGS} -stdlib=libc -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer -g -O2"' + jobs: @@ -57,8 +58,8 @@ jobs: cmdLine: 'CC=gcc CXX=g++ cmake -DCMAKE_BUILD_TYPE=Release -DSINGLE_THREADED=ON $(cmakeStdArgs)' runUnitTest: 'True' msanClang: - cmdLine: 'CC=clang CXX=clang++ $(msanEnv) cmake $(cmakeStdArgs)' - runUnitTest: 'True' + cmdLine: '$(asanEnv) cmake $(cmakeStdArgs) && ../scripts/build_libcxx_msan.sh' + runUnitTest: 'False' # asanEnv doesn't seem to get picked up by unit tests # gccX86: # cmdLine: 'CXXFLAGS="${CXXFLAGS} -m32" CFLAGS="${CFLAGS} -m32" CC=gcc-5 CXX=g++-5 cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo $(cmakeStdArgs)' # runUnitTest: 'True' diff --git a/scripts/build_libcxx_msan.sh b/scripts/build_libcxx_msan.sh new file mode 100644 index 000000000..3ee0dd441 --- /dev/null +++ b/scripts/build_libcxx_msan.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +cd .. +mkdir libcxx +cd libcxx +# Checkout LLVM, libc++ and libc++abi +svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm +(cd llvm/projects && svn co http://llvm.org/svn/llvm-project/libcxx/trunk libcxx) +(cd llvm/projects && svn co http://llvm.org/svn/llvm-project/libcxxabi/trunk libcxxabi) + +# Build libc++ with MSan: +mkdir libcxx_msan && cd libcxx_msan +cmake ../llvm -DCMAKE_BUILD_TYPE=Release -DLLVM_USE_SANITIZER=Memory -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ +make cxx -j4 +cd ../build \ No newline at end of file From b96f0e4b7bbd6950deff167ffda02e4b235e742d Mon Sep 17 00:00:00 2001 From: Everett Maus Date: Thu, 8 Aug 2019 19:08:06 -0700 Subject: [PATCH 03/18] Commenting out non-MSAN builds for testing --- azure-pipelines.yml | 146 ++++++++++++++++++++++---------------------- 1 file changed, 73 insertions(+), 73 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index a43a53dd2..a03d484d5 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -8,27 +8,27 @@ variables: jobs: -- job: "LinuxPythonDebug" - displayName: "Ubuntu build - python make - debug" - pool: - vmImage: "Ubuntu-16.04" - strategy: - matrix: - MT: - cmdLine: 'python scripts/mk_make.py -d --java --dotnet' - ST: - cmdLine: './configure --single-threaded' - steps: - - script: $(cmdLine) - - script: | - set -e - cd build - make -j3 - make -j3 examples - make -j3 test-z3 - cd .. - - template: scripts/test-z3.yml - - template: scripts/test-regressions.yml +#- job: "LinuxPythonDebug" +# displayName: "Ubuntu build - python make - debug" +# pool: +# vmImage: "Ubuntu-16.04" +# strategy: +# matrix: +# MT: +# cmdLine: 'python scripts/mk_make.py -d --java --dotnet' +# ST: +# cmdLine: './configure --single-threaded' +# steps: +# - script: $(cmdLine) +# - script: | +# set -e +# cd build +# make -j3 +# make -j3 examples +# make -j3 test-z3 +# cd .. +# - template: scripts/test-z3.yml +# - template: scripts/test-regressions.yml # ./cpp_example # ./c_example @@ -45,18 +45,18 @@ jobs: vmImage: "Ubuntu-16.04" strategy: matrix: - debugClang: - cmdLine: 'CC=clang CXX=clang++ cmake $(cmakeStdArgs)' - runUnitTest: 'True' - releaseClang: - cmdLine: 'CC=clang CXX=clang++ cmake -DCMAKE_BUILD_TYPE=Release $(cmakeStdArgs)' - runUnitTest: 'True' - debugGcc: - cmdLine: 'CC=gcc CXX=g++ cmake $(cmakeStdArgs)' - runUnitTest: 'True' - releaseSTGcc: - cmdLine: 'CC=gcc CXX=g++ cmake -DCMAKE_BUILD_TYPE=Release -DSINGLE_THREADED=ON $(cmakeStdArgs)' - runUnitTest: 'True' +# debugClang: +# cmdLine: 'CC=clang CXX=clang++ cmake $(cmakeStdArgs)' +# runUnitTest: 'True' +# releaseClang: +# cmdLine: 'CC=clang CXX=clang++ cmake -DCMAKE_BUILD_TYPE=Release $(cmakeStdArgs)' +# runUnitTest: 'True' +# debugGcc: +# cmdLine: 'CC=gcc CXX=g++ cmake $(cmakeStdArgs)' +# runUnitTest: 'True' +# releaseSTGcc: +# cmdLine: 'CC=gcc CXX=g++ cmake -DCMAKE_BUILD_TYPE=Release -DSINGLE_THREADED=ON $(cmakeStdArgs)' +# runUnitTest: 'True' msanClang: cmdLine: '$(asanEnv) cmake $(cmakeStdArgs) && ../scripts/build_libcxx_msan.sh' runUnitTest: 'False' # asanEnv doesn't seem to get picked up by unit tests @@ -87,47 +87,47 @@ jobs: - template: scripts/test-regressions.yml -- job: "Windows2017" - displayName: "Windows 2017 build" - pool: - vmImage: "vs2017-win2016" - steps: - - script: scripts\vsts-vs2017.cmd x64 +#- job: "Windows2017" +# displayName: "Windows 2017 build" +# pool: +# vmImage: "vs2017-win2016" +# steps: +# - script: scripts\vsts-vs2017.cmd x64 -- job: "MacOS" - displayName: "MacOS build" - pool: - vmImage: "macOS-10.14" - steps: - - script: python scripts/mk_make.py -d --java --dotnet - - script: | - set -e - cd build - make -j3 - make -j3 examples - make -j3 test-z3 - ./cpp_example - ./c_example - cd .. - - template: scripts/test-z3.yml - - template: scripts/test-regressions.yml +#- job: "MacOS" +# displayName: "MacOS build" +# pool: +# vmImage: "macOS-10.14" +# steps: +# - script: python scripts/mk_make.py -d --java --dotnet +# - script: | +# set -e +# cd build +# make -j3 +# make -j3 examples +# make -j3 test-z3 +# ./cpp_example +# ./c_example +# cd .. +# - template: scripts/test-z3.yml +# - template: scripts/test-regressions.yml -- job: "MacOSCMake" - displayName: "MacOS build with CMake" - pool: - vmImage: "macOS-10.14" - steps: - - script: brew install ninja - - script: | - set -e - mkdir build - cd build - CC=clang CXX=clang++ cmake -DBUILD_JAVA_BINDINGS=True -DBUILD_PYTHON_BINDINGS=True -DBUILD_DOTNET_BINDINGS=False -G "Ninja" ../ - ninja - ninja test-z3 - cd .. - - template: scripts/test-z3.yml - - template: scripts/test-examples-cmake.yml - - template: scripts/test-regressions.yml +#- job: "MacOSCMake" +# displayName: "MacOS build with CMake" +# pool: +# vmImage: "macOS-10.14" +# steps: +# - script: brew install ninja +# - script: | +# set -e +# mkdir build +# cd build +# CC=clang CXX=clang++ cmake -DBUILD_JAVA_BINDINGS=True -DBUILD_PYTHON_BINDINGS=True -DBUILD_DOTNET_BINDINGS=False -G "Ninja" ../ +# ninja +# ninja test-z3 +# cd .. +# - template: scripts/test-z3.yml +# - template: scripts/test-examples-cmake.yml +# - template: scripts/test-regressions.yml # - template: scripts/test-java-cmake.yml From 3dc898384ff859b21d7ea8fd9eb7843c6b0e9e99 Mon Sep 17 00:00:00 2001 From: Everett Maus Date: Thu, 8 Aug 2019 19:12:05 -0700 Subject: [PATCH 04/18] Fixing a chmod issue. --- azure-pipelines.yml | 3 ++- scripts/build_libcxx_msan.sh | 0 2 files changed, 2 insertions(+), 1 deletion(-) mode change 100644 => 100755 scripts/build_libcxx_msan.sh diff --git a/azure-pipelines.yml b/azure-pipelines.yml index a03d484d5..8b8d15564 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -58,7 +58,7 @@ jobs: # cmdLine: 'CC=gcc CXX=g++ cmake -DCMAKE_BUILD_TYPE=Release -DSINGLE_THREADED=ON $(cmakeStdArgs)' # runUnitTest: 'True' msanClang: - cmdLine: '$(asanEnv) cmake $(cmakeStdArgs) && ../scripts/build_libcxx_msan.sh' + cmdLine: '$(asanEnv) cmake $(cmakeStdArgs)' runUnitTest: 'False' # asanEnv doesn't seem to get picked up by unit tests # gccX86: # cmdLine: 'CXXFLAGS="${CXXFLAGS} -m32" CFLAGS="${CFLAGS} -m32" CC=gcc-5 CXX=g++-5 cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo $(cmakeStdArgs)' @@ -68,6 +68,7 @@ jobs: # runUnitTest: 'False' steps: - script: sudo apt-get install ninja-build + - script: ./scripts/build_libcxx_msan.sh - script: | set -e mkdir build diff --git a/scripts/build_libcxx_msan.sh b/scripts/build_libcxx_msan.sh old mode 100644 new mode 100755 From bf3bc1432fd33b2ea42f529f6125e8e2aba1d94e Mon Sep 17 00:00:00 2001 From: Everett Maus Date: Thu, 8 Aug 2019 19:17:40 -0700 Subject: [PATCH 05/18] Fixing a bug. --- scripts/build_libcxx_msan.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/scripts/build_libcxx_msan.sh b/scripts/build_libcxx_msan.sh index 3ee0dd441..4eaee9132 100755 --- a/scripts/build_libcxx_msan.sh +++ b/scripts/build_libcxx_msan.sh @@ -1,6 +1,5 @@ #!/bin/sh -cd .. mkdir libcxx cd libcxx # Checkout LLVM, libc++ and libc++abi @@ -12,4 +11,4 @@ svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm mkdir libcxx_msan && cd libcxx_msan cmake ../llvm -DCMAKE_BUILD_TYPE=Release -DLLVM_USE_SANITIZER=Memory -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ make cxx -j4 -cd ../build \ No newline at end of file +cd .. \ No newline at end of file From cc6f185e40ab3f453dea1087fea2f43c11f3188d Mon Sep 17 00:00:00 2001 From: Everett Maus Date: Thu, 8 Aug 2019 19:59:20 -0700 Subject: [PATCH 06/18] Examples are failing to build for strange reasons. --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 8b8d15564..789aad5fd 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -81,8 +81,8 @@ jobs: cd build ./test-z3 -a cd .. - condition: eq(variables['runUnitTest'], 'True') - template: scripts/test-examples-cmake.yml + condition: eq(variables['runUnitTest'], 'True') # - template: scripts/test-jupyter.yml # - template: scripts/test-java-cmake.yml - template: scripts/test-regressions.yml From 45c17dc256842d54c16f61eb7417375d9af564cf Mon Sep 17 00:00:00 2001 From: Everett Maus Date: Thu, 8 Aug 2019 20:01:38 -0700 Subject: [PATCH 07/18] Examples are still failing. --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 789aad5fd..58ccbf9c2 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -81,8 +81,8 @@ jobs: cd build ./test-z3 -a cd .. - - template: scripts/test-examples-cmake.yml condition: eq(variables['runUnitTest'], 'True') +# - template: scripts/test-examples-cmake.yml # - template: scripts/test-jupyter.yml # - template: scripts/test-java-cmake.yml - template: scripts/test-regressions.yml From 2bcd3280fa80f12df15c06cfcc59af5fe5377a6d Mon Sep 17 00:00:00 2001 From: Everett Maus Date: Thu, 8 Aug 2019 20:40:54 -0700 Subject: [PATCH 08/18] Testing a new configuration --- azure-pipelines.yml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 58ccbf9c2..21ab7be96 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -48,18 +48,23 @@ jobs: # debugClang: # cmdLine: 'CC=clang CXX=clang++ cmake $(cmakeStdArgs)' # runUnitTest: 'True' +# runExample: 'True' # releaseClang: # cmdLine: 'CC=clang CXX=clang++ cmake -DCMAKE_BUILD_TYPE=Release $(cmakeStdArgs)' # runUnitTest: 'True' +# runExample: 'True' # debugGcc: # cmdLine: 'CC=gcc CXX=g++ cmake $(cmakeStdArgs)' # runUnitTest: 'True' +# runExample: 'True' # releaseSTGcc: # cmdLine: 'CC=gcc CXX=g++ cmake -DCMAKE_BUILD_TYPE=Release -DSINGLE_THREADED=ON $(cmakeStdArgs)' # runUnitTest: 'True' +# runExample: 'True' msanClang: - cmdLine: '$(asanEnv) cmake $(cmakeStdArgs)' - runUnitTest: 'False' # asanEnv doesn't seem to get picked up by unit tests + cmdLine: '$(msanEnv) cmake $(cmakeStdArgs)' + runUnitTest: 'True' + runExample: 'False' # Examples don't seem to build with MSAN # gccX86: # cmdLine: 'CXXFLAGS="${CXXFLAGS} -m32" CFLAGS="${CFLAGS} -m32" CC=gcc-5 CXX=g++-5 cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo $(cmakeStdArgs)' # runUnitTest: 'True' @@ -82,7 +87,9 @@ jobs: ./test-z3 -a cd .. condition: eq(variables['runUnitTest'], 'True') -# - template: scripts/test-examples-cmake.yml + - template: | + scripts/test-examples-cmake.yml + condition: eq(variables['runExample'], 'True') # - template: scripts/test-jupyter.yml # - template: scripts/test-java-cmake.yml - template: scripts/test-regressions.yml From 179242ed297fa3d1ae4ae92a8fd7e183e0c2a221 Mon Sep 17 00:00:00 2001 From: Everett Maus Date: Thu, 8 Aug 2019 20:50:19 -0700 Subject: [PATCH 09/18] More template changes... --- azure-pipelines.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 21ab7be96..07cb06cd6 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -87,9 +87,8 @@ jobs: ./test-z3 -a cd .. condition: eq(variables['runUnitTest'], 'True') - - template: | - scripts/test-examples-cmake.yml - condition: eq(variables['runExample'], 'True') + - ${{if eq(runExample, 'True'}} + - template: scripts/test-examples-cmake.yml # - template: scripts/test-jupyter.yml # - template: scripts/test-java-cmake.yml - template: scripts/test-regressions.yml From 85601453cdb7382e52171a34055fb37a53f0bb0c Mon Sep 17 00:00:00 2001 From: Everett Maus Date: Thu, 8 Aug 2019 20:52:25 -0700 Subject: [PATCH 10/18] Missed a colon. --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 07cb06cd6..01e49f3ca 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -87,7 +87,7 @@ jobs: ./test-z3 -a cd .. condition: eq(variables['runUnitTest'], 'True') - - ${{if eq(runExample, 'True'}} + - ${{if eq(runExample, 'True'}}: - template: scripts/test-examples-cmake.yml # - template: scripts/test-jupyter.yml # - template: scripts/test-java-cmake.yml From 0d89c024860f8af34e348d79f409dbce577d417a Mon Sep 17 00:00:00 2001 From: Everett Maus Date: Thu, 8 Aug 2019 20:53:47 -0700 Subject: [PATCH 11/18] Missed a paren as well. --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 01e49f3ca..07f629ade 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -87,7 +87,7 @@ jobs: ./test-z3 -a cd .. condition: eq(variables['runUnitTest'], 'True') - - ${{if eq(runExample, 'True'}}: + - ${{if eq(runExample, 'True')}}: - template: scripts/test-examples-cmake.yml # - template: scripts/test-jupyter.yml # - template: scripts/test-java-cmake.yml From 1ff11b36bd95e988ff1a1a18adc9c5f50828eb10 Mon Sep 17 00:00:00 2001 From: Everett Maus Date: Thu, 8 Aug 2019 20:54:29 -0700 Subject: [PATCH 12/18] More syntax errors... --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 07f629ade..586b4408c 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -87,7 +87,7 @@ jobs: ./test-z3 -a cd .. condition: eq(variables['runUnitTest'], 'True') - - ${{if eq(runExample, 'True')}}: + - ${{if eq(variables['runExample'], 'True')}}: - template: scripts/test-examples-cmake.yml # - template: scripts/test-jupyter.yml # - template: scripts/test-java-cmake.yml From d01aa01ec9ae99c414519ff621cf677fca469ce0 Mon Sep 17 00:00:00 2001 From: Everett Maus Date: Thu, 8 Aug 2019 21:00:39 -0700 Subject: [PATCH 13/18] And some includes now. --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 586b4408c..8e30f0e23 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -72,7 +72,7 @@ jobs: # cmdLine: '$(asanEnv) cmake $(cmakeStdArgs)' # runUnitTest: 'False' steps: - - script: sudo apt-get install ninja-build + - script: sudo apt-get install ninja-build libc++-dev libc++abi-dev - script: ./scripts/build_libcxx_msan.sh - script: | set -e From f1a713a116fdfa9834370f1c10c60d1c071f4a13 Mon Sep 17 00:00:00 2001 From: Everett Maus Date: Fri, 9 Aug 2019 09:17:17 -0700 Subject: [PATCH 14/18] Restoring commented out pipelines --- azure-pipelines.yml | 197 +++++++++++++++++++++++++------------------- 1 file changed, 110 insertions(+), 87 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 8e30f0e23..4ea076c96 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -8,27 +8,27 @@ variables: jobs: -#- job: "LinuxPythonDebug" -# displayName: "Ubuntu build - python make - debug" -# pool: -# vmImage: "Ubuntu-16.04" -# strategy: -# matrix: -# MT: -# cmdLine: 'python scripts/mk_make.py -d --java --dotnet' -# ST: -# cmdLine: './configure --single-threaded' -# steps: -# - script: $(cmdLine) -# - script: | -# set -e -# cd build -# make -j3 -# make -j3 examples -# make -j3 test-z3 -# cd .. -# - template: scripts/test-z3.yml -# - template: scripts/test-regressions.yml +- job: "LinuxPythonDebug" + displayName: "Ubuntu build - python make - debug" + pool: + vmImage: "Ubuntu-16.04" + strategy: + matrix: + MT: + cmdLine: 'python scripts/mk_make.py -d --java --dotnet' + ST: + cmdLine: './configure --single-threaded' + steps: + - script: $(cmdLine) + - script: | + set -e + cd build + make -j3 + make -j3 examples + make -j3 test-z3 + cd .. + - template: scripts/test-z3.yml + - template: scripts/test-regressions.yml # ./cpp_example # ./c_example @@ -39,38 +39,16 @@ jobs: # build documentation # Asan, ubsan, msan -- job: "LinuxCMake" +- job: "LinuxMSan" displayName: "Ubuntu build - cmake" pool: vmImage: "Ubuntu-16.04" strategy: matrix: -# debugClang: -# cmdLine: 'CC=clang CXX=clang++ cmake $(cmakeStdArgs)' -# runUnitTest: 'True' -# runExample: 'True' -# releaseClang: -# cmdLine: 'CC=clang CXX=clang++ cmake -DCMAKE_BUILD_TYPE=Release $(cmakeStdArgs)' -# runUnitTest: 'True' -# runExample: 'True' -# debugGcc: -# cmdLine: 'CC=gcc CXX=g++ cmake $(cmakeStdArgs)' -# runUnitTest: 'True' -# runExample: 'True' -# releaseSTGcc: -# cmdLine: 'CC=gcc CXX=g++ cmake -DCMAKE_BUILD_TYPE=Release -DSINGLE_THREADED=ON $(cmakeStdArgs)' -# runUnitTest: 'True' -# runExample: 'True' msanClang: cmdLine: '$(msanEnv) cmake $(cmakeStdArgs)' runUnitTest: 'True' runExample: 'False' # Examples don't seem to build with MSAN -# gccX86: -# cmdLine: 'CXXFLAGS="${CXXFLAGS} -m32" CFLAGS="${CFLAGS} -m32" CC=gcc-5 CXX=g++-5 cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo $(cmakeStdArgs)' -# runUnitTest: 'True' -# asan: -# cmdLine: '$(asanEnv) cmake $(cmakeStdArgs)' -# runUnitTest: 'False' steps: - script: sudo apt-get install ninja-build libc++-dev libc++abi-dev - script: ./scripts/build_libcxx_msan.sh @@ -94,47 +72,92 @@ jobs: - template: scripts/test-regressions.yml -#- job: "Windows2017" -# displayName: "Windows 2017 build" -# pool: -# vmImage: "vs2017-win2016" -# steps: -# - script: scripts\vsts-vs2017.cmd x64 - -#- job: "MacOS" -# displayName: "MacOS build" -# pool: -# vmImage: "macOS-10.14" -# steps: -# - script: python scripts/mk_make.py -d --java --dotnet -# - script: | -# set -e -# cd build -# make -j3 -# make -j3 examples -# make -j3 test-z3 -# ./cpp_example -# ./c_example -# cd .. -# - template: scripts/test-z3.yml -# - template: scripts/test-regressions.yml - - -#- job: "MacOSCMake" -# displayName: "MacOS build with CMake" -# pool: -# vmImage: "macOS-10.14" -# steps: -# - script: brew install ninja -# - script: | -# set -e -# mkdir build -# cd build -# CC=clang CXX=clang++ cmake -DBUILD_JAVA_BINDINGS=True -DBUILD_PYTHON_BINDINGS=True -DBUILD_DOTNET_BINDINGS=False -G "Ninja" ../ -# ninja -# ninja test-z3 -# cd .. -# - template: scripts/test-z3.yml -# - template: scripts/test-examples-cmake.yml -# - template: scripts/test-regressions.yml +- job: "LinuxCMake" + displayName: "Ubuntu build - cmake" + pool: + vmImage: "Ubuntu-16.04" + strategy: + matrix: + debugClang: + cmdLine: 'CC=clang CXX=clang++ cmake $(cmakeStdArgs)' + runUnitTest: 'True' + releaseClang: + cmdLine: 'CC=clang CXX=clang++ cmake -DCMAKE_BUILD_TYPE=Release $(cmakeStdArgs)' + runUnitTest: 'True' + debugGcc: + cmdLine: 'CC=gcc CXX=g++ cmake $(cmakeStdArgs)' + runUnitTest: 'True' + releaseSTGcc: + cmdLine: 'CC=gcc CXX=g++ cmake -DCMAKE_BUILD_TYPE=Release -DSINGLE_THREADED=ON $(cmakeStdArgs)' + runUnitTest: 'True' +# gccX86: +# cmdLine: 'CXXFLAGS="${CXXFLAGS} -m32" CFLAGS="${CFLAGS} -m32" CC=gcc-5 CXX=g++-5 cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo $(cmakeStdArgs)' +# runUnitTest: 'True' +# asan: +# cmdLine: '$(asanEnv) cmake $(cmakeStdArgs)' +# runUnitTest: 'False' + steps: + - script: sudo apt-get install ninja-build + - script: | + set -e + mkdir build + cd build + $(cmdLine) + ninja + ninja test-z3 + cd .. + - script: | + cd build + ./test-z3 -a + cd .. + condition: eq(variables['runUnitTest'], 'True') + - template: scripts/test-examples-cmake.yml +# - template: scripts/test-jupyter.yml # - template: scripts/test-java-cmake.yml + - template: scripts/test-regressions.yml + + +- job: "Windows2017" + displayName: "Windows 2017 build" + pool: + vmImage: "vs2017-win2016" + steps: + - script: scripts\vsts-vs2017.cmd x64 + +- job: "MacOS" + displayName: "MacOS build" + pool: + vmImage: "macOS-10.14" + steps: + - script: python scripts/mk_make.py -d --java --dotnet + - script: | + set -e + cd build + make -j3 + make -j3 examples + make -j3 test-z3 + ./cpp_example + ./c_example + cd .. + - template: scripts/test-z3.yml + - template: scripts/test-regressions.yml + + +- job: "MacOSCMake" + displayName: "MacOS build with CMake" + pool: + vmImage: "macOS-10.14" + steps: + - script: brew install ninja + - script: | + set -e + mkdir build + cd build + CC=clang CXX=clang++ cmake -DBUILD_JAVA_BINDINGS=True -DBUILD_PYTHON_BINDINGS=True -DBUILD_DOTNET_BINDINGS=False -G "Ninja" ../ + ninja + ninja test-z3 + cd .. + - template: scripts/test-z3.yml + - template: scripts/test-examples-cmake.yml + - template: scripts/test-regressions.yml + - template: scripts/test-java-cmake.yml From 42b557cf905530b84203176422a6c69cf1d42d03 Mon Sep 17 00:00:00 2001 From: Everett Maus Date: Fri, 9 Aug 2019 10:33:47 -0700 Subject: [PATCH 15/18] Restoring commented out template --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 4ea076c96..81e90fadf 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -160,4 +160,4 @@ jobs: - template: scripts/test-z3.yml - template: scripts/test-examples-cmake.yml - template: scripts/test-regressions.yml - - template: scripts/test-java-cmake.yml +# - template: scripts/test-java-cmake.yml From ec36e232e5cfedb2ca101d283e4cb4f54bc83d41 Mon Sep 17 00:00:00 2001 From: Everett Maus Date: Fri, 9 Aug 2019 10:34:42 -0700 Subject: [PATCH 16/18] Fixing a spacing issue when undoing a comment --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 81e90fadf..90c946ba1 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -160,4 +160,4 @@ jobs: - template: scripts/test-z3.yml - template: scripts/test-examples-cmake.yml - template: scripts/test-regressions.yml -# - template: scripts/test-java-cmake.yml +# - template: scripts/test-java-cmake.yml From 8e3f5b0c1d8011642a46295d82e07e99b7933865 Mon Sep 17 00:00:00 2001 From: Everett Maus Date: Mon, 12 Aug 2019 15:56:50 -0700 Subject: [PATCH 17/18] Add MSAN_SYMBOLIZER_PATH to the environment to get symbolization --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 90c946ba1..5110b968e 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -5,7 +5,6 @@ variables: ubsanEnv: 'CXXFLAGS="${CXXFLAGS} -fsanitize=undefined" CFLAGS="${CFLAGS} -fsanitize=undefined"' msanEnv: 'CC=clang LDFLAGS="-L../libcxx/libcxx_msan/lib -lc++abi -Wl,-rpath=../libcxx/libcxx_msan/lib" CXX=clang++ CXXFLAGS="${CXXFLAGS} -stdlib=libc++ -fsanitize-memory-track-origins -fsanitize=memory -fPIE -fno-omit-frame-pointer -g -O2" CFLAGS="${CFLAGS} -stdlib=libc -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer -g -O2"' - jobs: - job: "LinuxPythonDebug" @@ -57,6 +56,7 @@ jobs: mkdir build cd build $(cmdLine) + export MSAN_SYMBOLIZER_PATH=/usr/lib/llvm-3.8/bin/llvm-symbolizer ninja ninja test-z3 cd .. From 73083977e2e7e552e731fec0818d8a2ae2925f07 Mon Sep 17 00:00:00 2001 From: Everett Maus Date: Mon, 12 Aug 2019 17:31:57 -0700 Subject: [PATCH 18/18] Trying a different clang version that should be installed --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 5110b968e..8c3f548f7 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -56,12 +56,12 @@ jobs: mkdir build cd build $(cmdLine) - export MSAN_SYMBOLIZER_PATH=/usr/lib/llvm-3.8/bin/llvm-symbolizer ninja ninja test-z3 cd .. - script: | cd build + export MSAN_SYMBOLIZER_PATH=/usr/lib/llvm-6.0/bin/llvm-symbolizer ./test-z3 -a cd .. condition: eq(variables['runUnitTest'], 'True')