diff options
| author | Michael J. Spencer <bigcheesegs@gmail.com> | 2010-09-24 09:01:13 +0000 | 
|---|---|---|
| committer | Michael J. Spencer <bigcheesegs@gmail.com> | 2010-09-24 09:01:13 +0000 | 
| commit | 10d274d874666b4efaff535d4d48a65fe8d51bbb (patch) | |
| tree | 7893af990330399b2dcd658c959f7efbc32480bd | |
| parent | 1444f47deb30fe8e2ca49222764361a07d716c16 (diff) | |
| download | bcm5719-llvm-10d274d874666b4efaff535d4d48a65fe8d51bbb.tar.gz bcm5719-llvm-10d274d874666b4efaff535d4d48a65fe8d51bbb.zip  | |
CMake: Build unittests.
llvm-svn: 114725
| -rw-r--r-- | llvm/CMakeLists.txt | 7 | ||||
| -rw-r--r-- | llvm/test/CMakeLists.txt | 10 | ||||
| -rw-r--r-- | llvm/unittests/CMakeLists.txt | 95 | ||||
| -rw-r--r-- | llvm/utils/unittest/CMakeLists.txt | 34 | ||||
| -rw-r--r-- | llvm/utils/unittest/googletest/include/gtest/internal/gtest-port.h | 3 | 
5 files changed, 146 insertions, 3 deletions
diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt index dba292925b8..7959f65647b 100644 --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -305,7 +305,6 @@ add_subdirectory(lib/Analysis/IPA)  add_subdirectory(lib/MC)  add_subdirectory(lib/MC/MCParser)  add_subdirectory(lib/MC/MCDisassembler) -add_subdirectory(test)  add_subdirectory(utils/FileCheck)  add_subdirectory(utils/count) @@ -370,6 +369,12 @@ add_subdirectory(tools)  option(LLVM_BUILD_EXAMPLES "Build LLVM example programs." OFF)  add_subdirectory(examples) +option(LLVM_BUILD_TESTS "Build LLVM unit tests." OFF) +add_subdirectory(test) +add_subdirectory(utils/unittest) +add_subdirectory(unittests) + +  add_subdirectory(cmake/modules)  install(DIRECTORY include/ diff --git a/llvm/test/CMakeLists.txt b/llvm/test/CMakeLists.txt index eab2992e809..38280573311 100644 --- a/llvm/test/CMakeLists.txt +++ b/llvm/test/CMakeLists.txt @@ -52,7 +52,15 @@ if(PYTHONINTERP_FOUND)    set(LLVM_TOOLS_DIR "${LLVM_TOOLS_BINARY_DIR}/${CMAKE_CFG_INTDIR}")    set(LLVMGCCDIR "")    set(PYTHON_EXECUTABLE ${PYTHON_EXECUTABLE}) -  set(LLVM_BUILD_MODE ${CMAKE_CFG_INTDIR}) +  if (CMAKE_CONFIGURATION_TYPES) +    # FIXME: We have no idea. It could be any of them... So just output all of +    # them. +    set(LLVM_BUILD_MODE "${CMAKE_CONFIGURATION_TYPES}") +  elseif (CMAKE_BUILD_TYPE) +    set(LLVM_BUILD_MODE "${CMAKE_BUILD_TYPE}") +  else() +    set(LLVM_BUILD_MODE "None") +  endif()    set(ENABLE_SHARED ${LLVM_SHARED_LIBS_ENABLED})    set(SHLIBPATH_VAR ${SHLIBPATH_VAR}) diff --git a/llvm/unittests/CMakeLists.txt b/llvm/unittests/CMakeLists.txt new file mode 100644 index 00000000000..595ec21454e --- /dev/null +++ b/llvm/unittests/CMakeLists.txt @@ -0,0 +1,95 @@ +function(add_llvm_unittest test_name) +  if (CMAKE_BUILD_TYPE) +    set(CMAKE_RUNTIME_OUTPUT_DIRECTORY +      ${LLVM_BINARY_DIR}/unittests/${test_name}/${CMAKE_BUILD_TYPE}) +  else() +    set(CMAKE_RUNTIME_OUTPUT_DIRECTORY +      ${LLVM_BINARY_DIR}/unittests/${test_name}) +  endif() +  if( NOT LLVM_BUILD_TESTS ) +    set(EXCLUDE_FROM_ALL ON) +  endif() +  add_llvm_executable(${test_name}Tests ${ARGN}) +endfunction() + +include_directories(${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include) + +set(LLVM_LINK_COMPONENTS +  jit +  interpreter +  nativecodegen +  BitWriter +  BitReader +  AsmParser +  Core +  System +  Support +  ) + +set(LLVM_USED_LIBS +  gtest +  gtest_main +  ) + +add_llvm_unittest(ADT +  ADT/APFloatTest.cpp +  ADT/APIntTest.cpp +  ADT/BitVectorTest.cpp +  ADT/DAGDeltaAlgorithmTest.cpp +  ADT/DeltaAlgorithmTest.cpp +  ADT/DenseMapTest.cpp +  ADT/DenseSetTest.cpp +  ADT/ilistTest.cpp +  ADT/ImmutableSetTest.cpp +  ADT/SmallBitVectorTest.cpp +  ADT/SmallStringTest.cpp +  ADT/SmallVectorTest.cpp +  ADT/SparseBitVectorTest.cpp +  ADT/StringMapTest.cpp +  ADT/StringRefTest.cpp +  ADT/TripleTest.cpp +  ADT/TwineTest.cpp +  ADT/ValueMapTest.cpp +  ) + +add_llvm_unittest(Analysis +  Analysis/ScalarEvolutionTest.cpp +  ) + +add_llvm_unittest(ExecutionEngine +  ExecutionEngine/ExecutionEngineTest.cpp +  ) + +add_llvm_unittest(JIT +  ExecutionEngine/JIT/JITEventListenerTest.cpp +  ExecutionEngine/JIT/JITMemoryManagerTest.cpp +  ExecutionEngine/JIT/JITTest.cpp +  ExecutionEngine/JIT/MultiJITTest.cpp +  ) + +add_llvm_unittest(Support +  Support/AllocatorTest.cpp +  Support/Casting.cpp +  Support/CommandLineTest.cpp +  Support/ConstantRangeTest.cpp +  Support/LeakDetectorTest.cpp +  Support/MathExtrasTest.cpp +  Support/raw_ostream_test.cpp +  Support/RegexTest.cpp +  Support/System.cpp +  Support/TypeBuilderTest.cpp +  Support/ValueHandleTest.cpp +  ) + +add_llvm_unittest(Transforms +  Transforms/Utils/Cloning.cpp +  ) + +add_llvm_unittest(VMCore +  VMCore/ConstantsTest.cpp +  VMCore/DerivedTypesTest.cpp +  VMCore/InstructionsTest.cpp +  VMCore/MetadataTest.cpp +  VMCore/PassManagerTest.cpp +  VMCore/VerifierTest.cpp +  ) diff --git a/llvm/utils/unittest/CMakeLists.txt b/llvm/utils/unittest/CMakeLists.txt new file mode 100644 index 00000000000..70685463014 --- /dev/null +++ b/llvm/utils/unittest/CMakeLists.txt @@ -0,0 +1,34 @@ +######################################################################## +# Experimental CMake build script for Google Test. +# +# Consider this a prototype.  It will change drastically.  For now, +# this is only for people on the cutting edge. +# +# To run the tests for Google Test itself on Linux, use 'make test' or +# ctest.  You can select which tests to run using 'ctest -R regex'. +# For more options, run 'ctest --help'. +######################################################################## +# +# Project-wide settings + +# Where gtest's .h files can be found. +include_directories( +  googletest/include +  ) + +if(WIN32) +  add_definitions(-DGTEST_OS_WINDOWS=1) +endif() + +add_llvm_library(gtest +  googletest/gtest.cc +  googletest/gtest-death-test.cc +  googletest/gtest-filepath.cc +  googletest/gtest-port.cc +  googletest/gtest-test-part.cc +  googletest/gtest-typed-test.cc +  ) + +add_llvm_library(gtest_main +  UnitTestMain/TestMain.cpp +  ) diff --git a/llvm/utils/unittest/googletest/include/gtest/internal/gtest-port.h b/llvm/utils/unittest/googletest/include/gtest/internal/gtest-port.h index 9683271e48f..3d076eb44c7 100644 --- a/llvm/utils/unittest/googletest/include/gtest/internal/gtest-port.h +++ b/llvm/utils/unittest/googletest/include/gtest/internal/gtest-port.h @@ -403,7 +403,8 @@  // defining __GNUC__ and friends, but cannot compile GCC's tuple  // implementation.  MSVC 2008 (9.0) provides TR1 tuple in a 323 MB  // Feature Pack download, which we cannot assume the user has. -#if (defined(__GNUC__) && !defined(__CUDACC__) && (GTEST_GCC_VER_ >= 40000)) \ +#if (defined(__GNUC__) && !(defined(__CUDACC__) || defined(__clang__)) \ +                       && (GTEST_GCC_VER_ >= 40000)) \      || _MSC_VER >= 1600  #define GTEST_USE_OWN_TR1_TUPLE 0  #else  | 

