blob: 3fb7d8ec8e238459ad62a0c569051a99f0be4e4c [file] [log] [blame]
# Testing for the Jenkins monorepo_build.py script
#
# RUN: export TESTING=1
# RUN: export JOB_NAME="FOO"
# RUN: export BUILD_NUMBER=321
# RUN: export BRANCH=master
# Tell monorepo_build.py to just print commands instead of running.
# RUN: mkdir -p %t.SANDBOX/host-compiler/lib %t.SANDBOX/host-compiler/bin %t.SANDBOX/llvm-project/llvm %t.SANDBOX/llvm-project/clang %t.SANDBOX/llvm-project/libcxx %t.SANDBOX/llvm-project/compiler-rt %t.SANDBOX/llvm-project/debuginfo-tests %t.SANDBOX/llvm-project/clang-tools-extra %t.SANDBOX/llvm-project/lldb
# RUN: touch %t.SANDBOX/host-compiler/bin/clang
# RUN: python %{src_root}/zorg/jenkins/monorepo_build.py clang all > %t.log
# RUN: FileCheck --check-prefix CHECK-SIMPLE < %t.log %s
# CHECK-SIMPLE: @@@ Build Directory @@@
# CHECK-SIMPLE: cd
# CHECK-SIMPLE: 'mkdir' '-p'
# CHECK-SIMPLE: @@@@@@
# CHECK-SIMPLE: @@@ Build Clang @@@
# CHECK-SIMPLE: cd
# CHECK-SIMPLE: 'mkdir' './Build' './Root'
# CHECK-SIMPLE: cd
# CHECK-SIMPLE: '/usr/local/bin/cmake' '-G' 'Ninja' '-C'
# CHECK-SIMPLE: '-DLLVM_ENABLE_ASSERTIONS:BOOL=FALSE'
# CHECK-SIMPLE: '-DCMAKE_BUILD_TYPE=RelWithDebInfo'
# CHECK-SIMPLE: '-DLLVM_ENABLE_PROJECTS=clang;clang-tools-extra;compiler-rt;libcxx'
# CHECK-SIMPLE: '-DCMAKE_MAKE_PROGRAM=/usr/local/bin/ninja'
# CHECK-SIMPLE: '-DLLVM_VERSION_PATCH=99'
# CHECK-SIMPLE: '-DLLVM_VERSION_SUFFIX=""'
# CHECK-SIMPLE: '-DLLVM_BUILD_EXTERNAL_COMPILER_RT=On'
# CHECK-SIMPLE: '-DCLANG_COMPILER_RT_CMAKE_ARGS
# CHECK-SIMPLE: Apple.cmake'
# CHECK-SIMPLE: '-DCOMPILER_RT_BUILD_SANITIZERS=On'
# CHECK-SIMPLE: '-DCMAKE_INSTALL_PREFIX
# CHECK-SIMPLE: '-DCLANG_APPEND_VC_REV=On'
# CHECK-SIMPLE: '-DLLVM_BUILD_TESTS=On'
# CHECK-SIMPLE: '-DLLVM_INCLUDE_TESTS=On'
# CHECK-SIMPLE: '-DCLANG_INCLUDE_TESTS=On'
# CHECK-SIMPLE: '-DLLVM_INCLUDE_UTILS=On'
# CHECK-SIMPLE: '-DCMAKE_MACOSX_RPATH=On'
# CHECK-SIMPLE: '-DLLVM_ENABLE_LTO=Off
# CHECK-SIMPLE-NOT: -DLLVM_PARALLEL_LINK_JOBS
# CHECK-SIMPLE: @@@@@@
# CHECK-SIMPLE: @@@ Ninja @@@
# CHECK-SIMPLE: cd
# CHECK-SIMPLE: '/usr/local/bin/ninja' '-v' 'install'
# CHECK-SIMPLE: @@@@@@
# CHECK-SIMPLE: @@@ Tests @@@
# CHECK-SIMPLE: cd
# CHECK-SIMPLE: 'env' 'MALLOC_LOG_FILE=/dev/null' '/usr/local/bin/ninja' '-v' '-k' '0' 'check-all'
# Now Check Assertion Builds have --enable assertions
# RUN: python %{src_root}/zorg/jenkins/monorepo_build.py clang all --assertions > %t-assert.log
# RUN: FileCheck --check-prefix CHECK-ASSERT < %t-assert.log %s
# CHECK-ASSERT: '/usr/local/bin/cmake' '-G' 'Ninja' '-C'
# CHECK-ASSERT: '-DLLVM_ENABLE_ASSERTIONS:BOOL=TRUE'
# Check that sccache is enabled when --sccache arg is passed
# RUN: python %{src_root}/zorg/jenkins/monorepo_build.py clang all --sccache > %t-sccache.log
# RUN: FileCheck --check-prefix CHECK-SCCACHE < %t-sccache.log %s
# CHECK-SCCACHE: '/usr/local/bin/cmake' '-G' 'Ninja' '-C'
# CHECK-SCCACHE: '-DCMAKE_C_COMPILER_LAUNCHER=/usr/local/bin/sccache'
# CHECK-SCCACHE: '-DCMAKE_CXX_COMPILER_LAUNCHER=/usr/local/bin/sccache'
# Check LTO
# RUN: python %{src_root}/zorg/jenkins/monorepo_build.py clang all --lto > %t-lto.log
# RUN: FileCheck --check-prefix CHECK-LTO < %t-lto.log %s
# CHECK-LTO: -DLLVM_PARALLEL_LINK_JOBS
# CHECK-LTO-NOT:: '-DLLVM_ENABLE_LTO=Off
# Now try just a build
# RUN: python %{src_root}/zorg/jenkins/monorepo_build.py clang build --lto
# RUN: python %{src_root}/zorg/jenkins/monorepo_build.py clang build
# Just a test
# RUN: python %{src_root}/zorg/jenkins/monorepo_build.py clang test
# CMake
# RUN: python %{src_root}/zorg/jenkins/monorepo_build.py cmake all --debug > %t-cmake.log
# RUN: FileCheck --check-prefix CHECK-CMAKE < %t-cmake.log %s
# CHECK-CMAKE: '/usr/local/bin/cmake' '-G' 'Ninja'
# CHECK-CMAKE: -DLLVM_BUILD_EXAMPLES=On
# CHECK-CMAKE: '-DCMAKE_BUILD_TYPE=Debug'
# CHECK-CMAKE: '-DLLVM_ENABLE_ASSERTIONS=Off'
# CHECK-CMAKE: -DLLVM_LIT_ARGS=--xunit-xml-output=testresults.xunit.xml -v -vv --timeout=600
# CHECK-CMAKE: '/usr/local/bin/ninja' '-v' 'all'
# CHECK-CMAKE: '/usr/local/bin/ninja' '-v' '-k' '0' 'check-all'
# RUN: python %{src_root}/zorg/jenkins/monorepo_build.py cmake build
# RUN: python %{src_root}/zorg/jenkins/monorepo_build.py cmake test
# RUN: python %{src_root}/zorg/jenkins/monorepo_build.py cmake testlong
# RUN: python %{src_root}/zorg/jenkins/monorepo_build.py cmake all --lto | FileCheck --check-prefix CHECK-CMAKELTO %s
# CHECK-CMAKELTO: '/usr/local/bin/cmake' '-G' 'Ninja'
# CHECK-CMAKELTO: '-DLLVM_BUILD_EXAMPLES=Off'
# CHECK-CMAKELTO-NOT:: '-DLLVM_ENABLE_LTO=Off
# CHECK-CMAKELTO: '-DLLVM_PARALLEL_LINK_JOBS=1'
# CHECK-CMAKELTO: '-DCMAKE_BUILD_TYPE=Release'
# RUN: env MAX_PARALLEL_LINKS=2 python %{src_root}/zorg/jenkins/monorepo_build.py cmake all --lto | FileCheck --check-prefix CHECK-CMAKE-PAR-LTO %s
# CHECK-CMAKE-PAR-LTO: '/usr/local/bin/cmake' '-G' 'Ninja'
# CHECK-CMAKE-PAR-LTO: '-DLLVM_BUILD_EXAMPLES=Off'
# CHECK-CMAKE-PAR-LTO-NOT:: '-DLLVM_ENABLE_LTO=Off
# CHECK-CMAKE-PAR-LTO: '-DLLVM_PARALLEL_LINK_JOBS=2'
# CHECK-CMAKE-PAR-LTO: '-DCMAKE_BUILD_TYPE=Release'
# RUN: env MAX_PARALLEL_TESTS=2 python %{src_root}/zorg/jenkins/monorepo_build.py cmake all | FileCheck --check-prefix CHECK-CMAKE-2-TESTS %s
# CHECK-CMAKE-2-TESTS: '/usr/local/bin/cmake' '-G' 'Ninja'
# CHECK-CMAKE-2-TESTS: '-DLLVM_LIT_ARGS=--xunit-xml-output=testresults.xunit.xml -v -vv --timeout=600 -j 2'
# RUN: python %{src_root}/zorg/jenkins/monorepo_build.py cmake all --cmake-type=RelWithDebugInfo | FileCheck --check-prefix CHECK-CMAKE-UPLOADS %s
# CHECK-CMAKE-UPLOADS: @@@ Uploading Artifact @@@
# RUN: python %{src_root}/zorg/jenkins/monorepo_build.py static-analyzer-benchmarks | FileCheck --check-prefix CHECK-STATIC-ANALYZER-BENCHMARKS %s
# CHECK-STATIC-ANALYZER-BENCHMARKS: @@@ Static Analyzer Benchmarks @@@
# CHECK-STATIC-ANALYZER-BENCHMARKS: cd [[WORKSPACE:.*]]/test-suite-ClangAnalyzer/
# CHECK-STATIC-ANALYZER-BENCHMARKS: '[[WORKSPACE]]/utils-analyzer/SATestBuild.py' '--strictness' '0'
# CHECK-STATIC-ANALYZER-BENCHMARKS: @@@@@@
# RUN: python %{src_root}/zorg/jenkins/monorepo_build.py cmake all --globalisel | FileCheck --check-prefix CHECK-GISEL %s
# CHECK-GISEL: '/usr/local/bin/cmake' '-G' 'Ninja'
# CHECK-GISEL: '-DLLVM_BUILD_GLOBAL_ISEL=ON'
# RUN: python %{src_root}/zorg/jenkins/monorepo_build.py clang all --lto --cmake-flag="-DFOO" | FileCheck --check-prefix CHECK-CMAKEFLAGS %s
# CHECK-CMAKEFLAGS: '-DFOO'
# Make sure you can pass new build targetss.
# RUN: python %{src_root}/zorg/jenkins/monorepo_build.py cmake build --cmake-build-target foo --cmake-build-target bar | FileCheck --check-prefix CHECK-BTARGETS %s
# CHECK-BTARGETS: '/usr/local/bin/ninja' '-v' 'foo' 'bar'
# Make sure you can pass new test targets.
# RUN: python %{src_root}/zorg/jenkins/monorepo_build.py cmake test --cmake-test-target foo --cmake-test-target bar | FileCheck --check-prefix CHECK-TTARGETS %s
# CHECK-TTARGETS: '/usr/local/bin/ninja' '-v' '-k' '0' 'foo' 'bar'
# Test long should always do check-all, since that is what many bots expect.
# RUN: python %{src_root}/zorg/jenkins/monorepo_build.py cmake testlong | FileCheck --check-prefix CHECK-TTARGETS2 %s
# CHECK-TTARGETS2: '/usr/local/bin/ninja' '-v' '-k' '0' 'check-all'
# Test to check if timeout flag is actually being set.
# RUN: python %{src_root}/zorg/jenkins/monorepo_build.py cmake all --timeout=900 > %t-timeout.log
# RUN: FileCheck --check-prefix CHECK-TIMEOUT < %t-timeout.log %s
# CHECK-TIMEOUT: --timeout=900
# Test to check if default timeout is being set to 600.
# RUN: python %{src_root}/zorg/jenkins/monorepo_build.py cmake all > %t-timeout-default.log
# RUN: FileCheck --check-prefix CHECK-TIMEOUT-DEFAULT < %t-timeout-default.log %s
# CHECK-TIMEOUT-DEFAULT: --timeout=600