blob: 3cd7f2f051dacccfff5faef0b854a19cffb8b7c8 [file] [log] [blame]
NAKAMURA Takumib3d37e32010-12-07 07:41:23 +00001function(add_llvm_unittest test_dirname)
2 string(REGEX MATCH "([^/]+)$" test_name ${test_dirname})
Michael J. Spenceree6944f2010-09-24 09:01:13 +00003 if (CMAKE_BUILD_TYPE)
4 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
NAKAMURA Takumib3d37e32010-12-07 07:41:23 +00005 ${LLVM_BINARY_DIR}/unittests/${test_dirname}/${CMAKE_BUILD_TYPE})
Michael J. Spenceree6944f2010-09-24 09:01:13 +00006 else()
7 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
NAKAMURA Takumib3d37e32010-12-07 07:41:23 +00008 ${LLVM_BINARY_DIR}/unittests/${test_dirname})
Michael J. Spenceree6944f2010-09-24 09:01:13 +00009 endif()
10 if( NOT LLVM_BUILD_TESTS )
11 set(EXCLUDE_FROM_ALL ON)
12 endif()
Oscar Fuentes066de852010-09-25 20:25:25 +000013 add_llvm_executable(${test_name}Tests ${ARGN})
Oscar Fuentesda975632010-10-28 14:38:35 +000014 add_dependencies(UnitTests ${test_name}Tests)
Oscar Fuentes0b85d072011-02-20 22:06:10 +000015 set_target_properties(${test_name}Tests PROPERTIES FOLDER "Tests")
Michael J. Spenceree6944f2010-09-24 09:01:13 +000016endfunction()
17
Oscar Fuentesda975632010-10-28 14:38:35 +000018add_custom_target(UnitTests)
Oscar Fuentes0b85d072011-02-20 22:06:10 +000019set_target_properties(UnitTests PROPERTIES FOLDER "Tests")
Oscar Fuentesda975632010-10-28 14:38:35 +000020
Michael J. Spenceree6944f2010-09-24 09:01:13 +000021include_directories(${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include)
Michael J. Spencer8a806ae2010-10-19 18:04:19 +000022add_definitions(-DGTEST_HAS_RTTI=0)
Oscar Fuentes104e9922011-05-11 13:53:08 +000023if( LLVM_COMPILER_IS_GCC_COMPATIBLE )
Oscar Fuentes3bf22792011-01-13 15:31:45 +000024 llvm_replace_compiler_option(CMAKE_CXX_FLAGS "-frtti" "-fno-rtti")
25elseif( MSVC )
26 llvm_replace_compiler_option(CMAKE_CXX_FLAGS "/GR" "/GR-")
27endif()
28
Michael J. Spencerf2ca4cb2010-11-24 19:20:05 +000029if (NOT LLVM_ENABLE_THREADS)
30 add_definitions(-DGTEST_HAS_PTHREAD=0)
31endif()
Michael J. Spenceree6944f2010-09-24 09:01:13 +000032
Frits van Bommel729b2942010-12-07 10:22:07 +000033if(SUPPORTS_NO_VARIADIC_MACROS_FLAG)
34 add_definitions("-Wno-variadic-macros")
35endif()
36
Michael J. Spenceree6944f2010-09-24 09:01:13 +000037set(LLVM_LINK_COMPONENTS
38 jit
39 interpreter
40 nativecodegen
41 BitWriter
42 BitReader
43 AsmParser
44 Core
Michael J. Spenceree6944f2010-09-24 09:01:13 +000045 Support
46 )
47
48set(LLVM_USED_LIBS
49 gtest
50 gtest_main
Michael J. Spencerf2ca4cb2010-11-24 19:20:05 +000051 LLVMSupport # gtest needs it for raw_ostream.
Michael J. Spenceree6944f2010-09-24 09:01:13 +000052 )
53
54add_llvm_unittest(ADT
55 ADT/APFloatTest.cpp
56 ADT/APIntTest.cpp
57 ADT/BitVectorTest.cpp
58 ADT/DAGDeltaAlgorithmTest.cpp
59 ADT/DeltaAlgorithmTest.cpp
60 ADT/DenseMapTest.cpp
61 ADT/DenseSetTest.cpp
Dale Johannesena197cba2010-11-19 23:23:22 +000062 ADT/FoldingSet.cpp
Michael J. Spenceree6944f2010-09-24 09:01:13 +000063 ADT/ilistTest.cpp
64 ADT/ImmutableSetTest.cpp
Jakob Stoklund Olesen2a6899c2010-12-21 00:04:46 +000065 ADT/IntEqClassesTest.cpp
Jakob Stoklund Olesen8dc92672010-11-19 04:47:19 +000066 ADT/IntervalMapTest.cpp
Argyrios Kyrtzidis0f5b6872011-06-15 19:19:09 +000067 ADT/PackedVectorTest.cpp
Michael J. Spenceree6944f2010-09-24 09:01:13 +000068 ADT/SmallBitVectorTest.cpp
69 ADT/SmallStringTest.cpp
70 ADT/SmallVectorTest.cpp
71 ADT/SparseBitVectorTest.cpp
72 ADT/StringMapTest.cpp
73 ADT/StringRefTest.cpp
74 ADT/TripleTest.cpp
75 ADT/TwineTest.cpp
Chandler Carruthd916ce32011-12-16 08:58:59 +000076 ADT/VariadicFunctionTest.cpp
Douglas Gregorc576d3d2010-09-27 16:40:43 +000077 )
Michael J. Spenceree6944f2010-09-24 09:01:13 +000078
79add_llvm_unittest(Analysis
80 Analysis/ScalarEvolutionTest.cpp
81 )
82
83add_llvm_unittest(ExecutionEngine
84 ExecutionEngine/ExecutionEngineTest.cpp
85 )
86
NAKAMURA Takumi0f60ddc2010-11-19 03:19:42 +000087set(JITTestsSources
Michael J. Spenceree6944f2010-09-24 09:01:13 +000088 ExecutionEngine/JIT/JITEventListenerTest.cpp
89 ExecutionEngine/JIT/JITMemoryManagerTest.cpp
90 ExecutionEngine/JIT/JITTest.cpp
91 ExecutionEngine/JIT/MultiJITTest.cpp
92 )
93
NAKAMURA Takumi0f60ddc2010-11-19 03:19:42 +000094if(MSVC)
95 list(APPEND JITTestsSources ExecutionEngine/JIT/JITTests.def)
96endif()
97
NAKAMURA Takumib3d37e32010-12-07 07:41:23 +000098add_llvm_unittest(ExecutionEngine/JIT ${JITTestsSources})
NAKAMURA Takumi0f60ddc2010-11-19 03:19:42 +000099
NAKAMURA Takumide0cfe82011-12-16 06:21:08 +0000100if(MINGW OR CYGWIN)
NAKAMURA Takumib9dec1f2010-11-26 09:32:02 +0000101 set_property(TARGET JITTests PROPERTY LINK_FLAGS -Wl,--export-all-symbols)
102endif()
103
NAKAMURA Takumib3d37e32010-12-07 07:41:23 +0000104add_llvm_unittest(Transforms/Utils
Michael J. Spencer12647eb2010-10-11 21:22:34 +0000105 Transforms/Utils/Cloning.cpp
106 )
107
NAKAMURA Takumi130a2dd2010-11-19 03:19:32 +0000108set(VMCoreSources
Michael J. Spencer12647eb2010-10-11 21:22:34 +0000109 VMCore/ConstantsTest.cpp
Michael J. Spencer12647eb2010-10-11 21:22:34 +0000110 VMCore/InstructionsTest.cpp
111 VMCore/MetadataTest.cpp
112 VMCore/PassManagerTest.cpp
NAKAMURA Takumib08ca272010-11-14 12:37:51 +0000113 VMCore/ValueMapTest.cpp
Michael J. Spencer12647eb2010-10-11 21:22:34 +0000114 VMCore/VerifierTest.cpp
Rafael Espindola47f79bb2012-01-02 07:49:53 +0000115 VMCore/pr11677.cpp
Michael J. Spencer12647eb2010-10-11 21:22:34 +0000116 )
117
NAKAMURA Takumi130a2dd2010-11-19 03:19:32 +0000118# MSVC9 and 8 cannot compile ValueMapTest.cpp due to their bug.
119# See issue#331418 in Visual Studio.
120if(MSVC AND MSVC_VERSION LESS 1600)
121 list(REMOVE_ITEM VMCoreSources VMCore/ValueMapTest.cpp)
122endif()
123
124add_llvm_unittest(VMCore ${VMCoreSources})
125
Michael J. Spencer12647eb2010-10-11 21:22:34 +0000126set(LLVM_LINK_COMPONENTS
Michael J. Spencer12647eb2010-10-11 21:22:34 +0000127 Support
128 Core
129 )
130
Michael J. Spenceree6944f2010-09-24 09:01:13 +0000131add_llvm_unittest(Support
132 Support/AllocatorTest.cpp
133 Support/Casting.cpp
134 Support/CommandLineTest.cpp
135 Support/ConstantRangeTest.cpp
Michael J. Spencer5e0b2bf2010-10-21 20:28:21 +0000136 Support/EndianTest.cpp
Manuel Klimek76f13012011-12-16 13:09:10 +0000137 Support/JSONParserTest.cpp
Michael J. Spenceree6944f2010-09-24 09:01:13 +0000138 Support/LeakDetectorTest.cpp
139 Support/MathExtrasTest.cpp
Michael J. Spencer013d15a2010-11-29 22:29:04 +0000140 Support/Path.cpp
Michael J. Spenceree6944f2010-09-24 09:01:13 +0000141 Support/raw_ostream_test.cpp
142 Support/RegexTest.cpp
Michael J. Spencer4c099b82010-10-11 21:56:16 +0000143 Support/SwapByteOrderTest.cpp
Michael J. Spencer013d15a2010-11-29 22:29:04 +0000144 Support/TimeValue.cpp
Michael J. Spenceree6944f2010-09-24 09:01:13 +0000145 Support/TypeBuilderTest.cpp
146 Support/ValueHandleTest.cpp
147 )