[gn build] Start adding build files for LLVM unittests
Adds build files for //llvm/unittest/[A-D]. Also teach sync_source_lists_from_cmake.py to not complain about missing BUILD.gn files for CMakeLists.txt files that just call add_subdirectory() without calling add_.+_unittest, like e.g. llvm/unittests/Target/CMakeLists.txt. (Omits CodeGen/GlobalISel and DebugInfo/PDB because their build files are somewhat interesting, and this patch is already on the larger side.) Differential Revision: https://reviews.llvm.org/D56212 llvm-svn: 350411
This commit is contained in:
parent
421c17fe45
commit
2c497b51bc
|
@ -21,9 +21,9 @@ def sync_source_lists():
|
||||||
gn_files = subprocess.check_output(
|
gn_files = subprocess.check_output(
|
||||||
['git', 'ls-files', '*BUILD.gn']).splitlines()
|
['git', 'ls-files', '*BUILD.gn']).splitlines()
|
||||||
|
|
||||||
# Matches e.g. | "foo.cpp",|.
|
# Matches e.g. | "foo.cpp",|, captures |foo| in group 1.
|
||||||
gn_cpp_re = re.compile(r'^\s*"([^"]+\.(?:cpp|h))",$', re.MULTILINE)
|
gn_cpp_re = re.compile(r'^\s*"([^"]+\.(?:cpp|h))",$', re.MULTILINE)
|
||||||
# Matches e.g. | "foo.cpp"|.
|
# Matches e.g. | foo.cpp|, captures |foo| in group 1.
|
||||||
cmake_cpp_re = re.compile(r'^\s*([A-Za-z_0-9/-]+\.(?:cpp|h))$',
|
cmake_cpp_re = re.compile(r'^\s*([A-Za-z_0-9/-]+\.(?:cpp|h))$',
|
||||||
re.MULTILINE)
|
re.MULTILINE)
|
||||||
|
|
||||||
|
@ -57,12 +57,18 @@ def sync_source_lists():
|
||||||
|
|
||||||
|
|
||||||
def sync_unittests():
|
def sync_unittests():
|
||||||
|
# Matches e.g. |add_llvm_unittest_with_input_files|.
|
||||||
|
unittest_re = re.compile(r'^add_\S+_unittest', re.MULTILINE)
|
||||||
|
|
||||||
|
# FIXME: Add 'llvm' here once it's complete.
|
||||||
checked = [ 'clang', 'lld' ]
|
checked = [ 'clang', 'lld' ]
|
||||||
for c in checked:
|
for c in checked:
|
||||||
for root, _, _ in os.walk(os.path.join(c, 'unittests')):
|
for root, _, _ in os.walk(os.path.join(c, 'unittests')):
|
||||||
cmake_file = os.path.join(root, 'CMakeLists.txt')
|
cmake_file = os.path.join(root, 'CMakeLists.txt')
|
||||||
if not os.path.exists(cmake_file):
|
if not os.path.exists(cmake_file):
|
||||||
continue
|
continue
|
||||||
|
if not unittest_re.search(open(cmake_file).read()):
|
||||||
|
continue # Skip CMake files that just add subdirectories.
|
||||||
gn_file = os.path.join('llvm/utils/gn/secondary', root, 'BUILD.gn')
|
gn_file = os.path.join('llvm/utils/gn/secondary', root, 'BUILD.gn')
|
||||||
if not os.path.exists(gn_file):
|
if not os.path.exists(gn_file):
|
||||||
print('missing GN file %s for unittest CMake file %s' %
|
print('missing GN file %s for unittest CMake file %s' %
|
||||||
|
|
|
@ -241,6 +241,7 @@ group("test") {
|
||||||
"//llvm/tools/sanstats",
|
"//llvm/tools/sanstats",
|
||||||
"//llvm/tools/verify-uselistorder",
|
"//llvm/tools/verify-uselistorder",
|
||||||
"//llvm/tools/yaml2obj",
|
"//llvm/tools/yaml2obj",
|
||||||
|
"//llvm/unittests",
|
||||||
"//llvm/utils/FileCheck",
|
"//llvm/utils/FileCheck",
|
||||||
"//llvm/utils/TableGen:llvm-tblgen",
|
"//llvm/utils/TableGen:llvm-tblgen",
|
||||||
"//llvm/utils/count",
|
"//llvm/utils/count",
|
||||||
|
@ -261,7 +262,6 @@ group("test") {
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
# FIXME: dep on "//llvm/unittests" once it exists
|
|
||||||
# FIXME: llvm_build_examples
|
# FIXME: llvm_build_examples
|
||||||
testonly = true
|
testonly = true
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,79 @@
|
||||||
|
import("//llvm/utils/unittest/unittest.gni")
|
||||||
|
|
||||||
|
unittest("ADTTests") {
|
||||||
|
# ADT is a headers-only library so there's no //llvm/lib/ADT to depend on.
|
||||||
|
# Also see note in //llvm/lib/Support/BUILD.gn.
|
||||||
|
deps = [
|
||||||
|
# Some tests include files from IR, but there's no library dependency.
|
||||||
|
"//llvm/include/llvm/IR:public_tablegen",
|
||||||
|
"//llvm/lib/Support",
|
||||||
|
]
|
||||||
|
sources = [
|
||||||
|
"APFloatTest.cpp",
|
||||||
|
"APIntTest.cpp",
|
||||||
|
"APSIntTest.cpp",
|
||||||
|
"AnyTest.cpp",
|
||||||
|
"ArrayRefTest.cpp",
|
||||||
|
"BitVectorTest.cpp",
|
||||||
|
"BitmaskEnumTest.cpp",
|
||||||
|
"BreadthFirstIteratorTest.cpp",
|
||||||
|
"BumpPtrListTest.cpp",
|
||||||
|
"DAGDeltaAlgorithmTest.cpp",
|
||||||
|
"DeltaAlgorithmTest.cpp",
|
||||||
|
"DenseMapTest.cpp",
|
||||||
|
"DenseSetTest.cpp",
|
||||||
|
"DepthFirstIteratorTest.cpp",
|
||||||
|
"EquivalenceClassesTest.cpp",
|
||||||
|
"FoldingSet.cpp",
|
||||||
|
"FunctionExtrasTest.cpp",
|
||||||
|
"FunctionRefTest.cpp",
|
||||||
|
"HashingTest.cpp",
|
||||||
|
"IListBaseTest.cpp",
|
||||||
|
"IListIteratorTest.cpp",
|
||||||
|
"IListNodeBaseTest.cpp",
|
||||||
|
"IListNodeTest.cpp",
|
||||||
|
"IListSentinelTest.cpp",
|
||||||
|
"IListTest.cpp",
|
||||||
|
"ImmutableListTest.cpp",
|
||||||
|
"ImmutableMapTest.cpp",
|
||||||
|
"ImmutableSetTest.cpp",
|
||||||
|
"IntEqClassesTest.cpp",
|
||||||
|
"IntervalMapTest.cpp",
|
||||||
|
"IntrusiveRefCntPtrTest.cpp",
|
||||||
|
"IteratorTest.cpp",
|
||||||
|
"MakeUniqueTest.cpp",
|
||||||
|
"MapVectorTest.cpp",
|
||||||
|
"MappedIteratorTest.cpp",
|
||||||
|
"OptionalTest.cpp",
|
||||||
|
"PackedVectorTest.cpp",
|
||||||
|
"PointerEmbeddedIntTest.cpp",
|
||||||
|
"PointerIntPairTest.cpp",
|
||||||
|
"PointerSumTypeTest.cpp",
|
||||||
|
"PointerUnionTest.cpp",
|
||||||
|
"PostOrderIteratorTest.cpp",
|
||||||
|
"PriorityWorklistTest.cpp",
|
||||||
|
"RangeAdapterTest.cpp",
|
||||||
|
"SCCIteratorTest.cpp",
|
||||||
|
"STLExtrasTest.cpp",
|
||||||
|
"ScopeExitTest.cpp",
|
||||||
|
"SequenceTest.cpp",
|
||||||
|
"SetVectorTest.cpp",
|
||||||
|
"SimpleIListTest.cpp",
|
||||||
|
"SmallPtrSetTest.cpp",
|
||||||
|
"SmallSetTest.cpp",
|
||||||
|
"SmallStringTest.cpp",
|
||||||
|
"SmallVectorTest.cpp",
|
||||||
|
"SparseBitVectorTest.cpp",
|
||||||
|
"SparseMultiSetTest.cpp",
|
||||||
|
"SparseSetTest.cpp",
|
||||||
|
"StatisticTest.cpp",
|
||||||
|
"StringExtrasTest.cpp",
|
||||||
|
"StringMapTest.cpp",
|
||||||
|
"StringRefTest.cpp",
|
||||||
|
"StringSwitchTest.cpp",
|
||||||
|
"TinyPtrVectorTest.cpp",
|
||||||
|
"TripleTest.cpp",
|
||||||
|
"TwineTest.cpp",
|
||||||
|
"VariadicFunctionTest.cpp",
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
import("//llvm/utils/unittest/unittest.gni")
|
||||||
|
|
||||||
|
unittest("AnalysisTests") {
|
||||||
|
deps = [
|
||||||
|
"//llvm/lib/Analysis",
|
||||||
|
"//llvm/lib/AsmParser",
|
||||||
|
"//llvm/lib/IR",
|
||||||
|
"//llvm/lib/Support",
|
||||||
|
]
|
||||||
|
sources = [
|
||||||
|
"AliasAnalysisTest.cpp",
|
||||||
|
"AliasSetTrackerTest.cpp",
|
||||||
|
"BasicAliasAnalysisTest.cpp",
|
||||||
|
"BlockFrequencyInfoTest.cpp",
|
||||||
|
"BranchProbabilityInfoTest.cpp",
|
||||||
|
"CFGTest.cpp",
|
||||||
|
"CGSCCPassManagerTest.cpp",
|
||||||
|
"CallGraphTest.cpp",
|
||||||
|
"DivergenceAnalysisTest.cpp",
|
||||||
|
"GlobalsModRefTest.cpp",
|
||||||
|
"LazyCallGraphTest.cpp",
|
||||||
|
"LoopInfoTest.cpp",
|
||||||
|
"MemoryBuiltinsTest.cpp",
|
||||||
|
"MemorySSATest.cpp",
|
||||||
|
"OrderedBasicBlockTest.cpp",
|
||||||
|
"OrderedInstructionsTest.cpp",
|
||||||
|
"PhiValuesTest.cpp",
|
||||||
|
"ProfileSummaryInfoTest.cpp",
|
||||||
|
"ScalarEvolutionTest.cpp",
|
||||||
|
"SparsePropagation.cpp",
|
||||||
|
"TBAATest.cpp",
|
||||||
|
"TargetLibraryInfoTest.cpp",
|
||||||
|
"UnrollAnalyzerTest.cpp",
|
||||||
|
"ValueLatticeTest.cpp",
|
||||||
|
"ValueTrackingTest.cpp",
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
import("//llvm/utils/unittest/unittest.gni")
|
||||||
|
|
||||||
|
unittest("AsmParserTests") {
|
||||||
|
deps = [
|
||||||
|
"//llvm/lib/AsmParser",
|
||||||
|
"//llvm/lib/IR",
|
||||||
|
"//llvm/lib/Support",
|
||||||
|
]
|
||||||
|
sources = [
|
||||||
|
"AsmParserTest.cpp",
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,66 @@
|
||||||
|
import("//llvm/lib/Target/targets.gni")
|
||||||
|
|
||||||
|
group("unittests") {
|
||||||
|
deps = [
|
||||||
|
"ADT:ADTTests",
|
||||||
|
"Analysis:AnalysisTests",
|
||||||
|
"AsmParser:AsmParserTests",
|
||||||
|
"BinaryFormat:BinaryFormatTests",
|
||||||
|
"Bitcode:BitcodeTests",
|
||||||
|
"CodeGen:CodeGenTests",
|
||||||
|
|
||||||
|
# FIXME: Add.
|
||||||
|
#"CodeGen/GlobalISel:GlobalISelTests",
|
||||||
|
"DebugInfo/CodeView:DebugInfoCodeViewTests",
|
||||||
|
"DebugInfo/DWARF:DebugInfoDWARFTests",
|
||||||
|
"DebugInfo/MSF:DebugInfoMSFTests",
|
||||||
|
|
||||||
|
# FIXME: Add.
|
||||||
|
#"DebugInfo/PDB:DebugInfoPDBTests",
|
||||||
|
"Demangle:DemangleTests",
|
||||||
|
|
||||||
|
# FIXME: Add more:
|
||||||
|
#"ExecutionEngine:ExecutionEngineTests",
|
||||||
|
#"ExecutionEngine/MCJIT:MCJITTests",
|
||||||
|
#"ExecutionEngine/Orc:OrcJITTests",
|
||||||
|
#"FuzzMutate:FuzzMutateTests",
|
||||||
|
#"IR:IRTests",
|
||||||
|
#"LineEditor:LineEditorTests",
|
||||||
|
#"MC:MCTests",
|
||||||
|
#"MI:MITests",
|
||||||
|
#"Object:ObjectTests",
|
||||||
|
#"ObjectYAML:ObjectYAMLTests",
|
||||||
|
#"Option:OptionTests",
|
||||||
|
#"Passes:PluginsTests",
|
||||||
|
#"ProfileData:ProfileDataTests",
|
||||||
|
#"Support:SupportTests",
|
||||||
|
#"Support/DynamicLibrary:DynamicLibraryTests",
|
||||||
|
#"Transforms/IPO:IPOTests",
|
||||||
|
#"Transforms/Scalar:ScalarTests",
|
||||||
|
#"Transforms/Utils:UtilsTests",
|
||||||
|
#"XRay:XRayTests",
|
||||||
|
#"tools/llvm-cfi-verify:CFIVerifyTests",
|
||||||
|
#"tools/llvm-exegesis:LLVMExegesisTests",
|
||||||
|
]
|
||||||
|
|
||||||
|
# Target-dependend unit tests.
|
||||||
|
# FIXME: This matches how they are set up in the cmake build,
|
||||||
|
# but if we disable an arch after building with it on, this
|
||||||
|
# setup leaves behind stale executables.
|
||||||
|
# FIXME: Add AArch64, ARM these once the Targets exist.
|
||||||
|
#if (llvm_build_AArch64) {
|
||||||
|
#deps += [
|
||||||
|
#"Target/AArch64:AArch64Tests",
|
||||||
|
#"tools/llvm-exegesis/AArch64:LLVMExegesisAArch64Tests",
|
||||||
|
#]
|
||||||
|
#}
|
||||||
|
#if (llvm_build_ARM) {
|
||||||
|
#deps += [ "tools/llvm-exegesis/ARM:LLVMExegesisARMTests" ]
|
||||||
|
#}
|
||||||
|
if (llvm_build_X86) {
|
||||||
|
# FIXME: Add:
|
||||||
|
#deps += [ "tools/llvm-exegesis/X86:LLVMExegesisX86Tests" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
testonly = true
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
import("//llvm/utils/unittest/unittest.gni")
|
||||||
|
|
||||||
|
unittest("BinaryFormatTests") {
|
||||||
|
deps = [
|
||||||
|
"//llvm/lib/BinaryFormat",
|
||||||
|
]
|
||||||
|
sources = [
|
||||||
|
"DwarfTest.cpp",
|
||||||
|
"MachOTest.cpp",
|
||||||
|
"MsgPackReaderTest.cpp",
|
||||||
|
"MsgPackTypesTest.cpp",
|
||||||
|
"MsgPackWriterTest.cpp",
|
||||||
|
"TestFileMagic.cpp",
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
import("//llvm/utils/unittest/unittest.gni")
|
||||||
|
|
||||||
|
unittest("BitcodeTests") {
|
||||||
|
deps = [
|
||||||
|
"//llvm/lib/AsmParser",
|
||||||
|
"//llvm/lib/Bitcode/Reader",
|
||||||
|
"//llvm/lib/Bitcode/Writer",
|
||||||
|
"//llvm/lib/IR",
|
||||||
|
"//llvm/lib/Support",
|
||||||
|
]
|
||||||
|
sources = [
|
||||||
|
"BitReaderTest.cpp",
|
||||||
|
"BitstreamReaderTest.cpp",
|
||||||
|
"BitstreamWriterTest.cpp",
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
import("//llvm/utils/unittest/unittest.gni")
|
||||||
|
|
||||||
|
unittest("CodeGenTests") {
|
||||||
|
deps = [
|
||||||
|
"//llvm/lib/Analysis",
|
||||||
|
"//llvm/lib/AsmParser",
|
||||||
|
"//llvm/lib/CodeGen",
|
||||||
|
"//llvm/lib/CodeGen/AsmPrinter",
|
||||||
|
"//llvm/lib/CodeGen/SelectionDAG",
|
||||||
|
"//llvm/lib/IR",
|
||||||
|
"//llvm/lib/MC",
|
||||||
|
"//llvm/lib/Support",
|
||||||
|
"//llvm/lib/Target",
|
||||||
|
"//llvm/lib/Target:TargetsToBuild",
|
||||||
|
]
|
||||||
|
sources = [
|
||||||
|
"AArch64SelectionDAGTest.cpp",
|
||||||
|
"DIEHashTest.cpp",
|
||||||
|
"LowLevelTypeTest.cpp",
|
||||||
|
"MachineInstrBundleIteratorTest.cpp",
|
||||||
|
"MachineInstrTest.cpp",
|
||||||
|
"MachineOperandTest.cpp",
|
||||||
|
"ScalableVectorMVTsTest.cpp",
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
import("//llvm/utils/unittest/unittest.gni")
|
||||||
|
|
||||||
|
unittest("DebugInfoCodeViewTests") {
|
||||||
|
deps = [
|
||||||
|
"//llvm/lib/DebugInfo/CodeView",
|
||||||
|
"//llvm/lib/Testing/Support",
|
||||||
|
]
|
||||||
|
sources = [
|
||||||
|
"RandomAccessVisitorTest.cpp",
|
||||||
|
"TypeHashingTest.cpp",
|
||||||
|
"TypeIndexDiscoveryTest.cpp",
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
import("//llvm/utils/unittest/unittest.gni")
|
||||||
|
|
||||||
|
unittest("DebugInfoDWARFTests") {
|
||||||
|
deps = [
|
||||||
|
"//llvm/lib/CodeGen/AsmPrinter",
|
||||||
|
"//llvm/lib/DebugInfo/DWARF",
|
||||||
|
"//llvm/lib/MC",
|
||||||
|
"//llvm/lib/Object",
|
||||||
|
"//llvm/lib/ObjectYAML",
|
||||||
|
"//llvm/lib/Support",
|
||||||
|
"//llvm/lib/Target:TargetsToBuild",
|
||||||
|
"//llvm/lib/Testing/Support",
|
||||||
|
]
|
||||||
|
sources = [
|
||||||
|
"DWARFDebugInfoTest.cpp",
|
||||||
|
"DWARFDebugLineTest.cpp",
|
||||||
|
"DWARFFormValueTest.cpp",
|
||||||
|
"DwarfGenerator.cpp",
|
||||||
|
"DwarfUtils.cpp",
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
import("//llvm/utils/unittest/unittest.gni")
|
||||||
|
|
||||||
|
unittest("DebugInfoMSFTests") {
|
||||||
|
deps = [
|
||||||
|
"//llvm/lib/DebugInfo/MSF",
|
||||||
|
"//llvm/lib/Testing/Support",
|
||||||
|
]
|
||||||
|
sources = [
|
||||||
|
"MSFBuilderTest.cpp",
|
||||||
|
"MSFCommonTest.cpp",
|
||||||
|
"MappedBlockStreamTest.cpp",
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
import("//llvm/utils/unittest/unittest.gni")
|
||||||
|
|
||||||
|
unittest("DemangleTests") {
|
||||||
|
deps = [
|
||||||
|
"//llvm/lib/Demangle",
|
||||||
|
]
|
||||||
|
sources = [
|
||||||
|
"ItaniumDemangleTest.cpp",
|
||||||
|
"PartialDemangleTest.cpp",
|
||||||
|
]
|
||||||
|
}
|
Loading…
Reference in New Issue