[llvm] r350411 - [gn build] Start adding build files for LLVM unittests

Nico Weber via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 4 09:14:55 PST 2019


Author: nico
Date: Fri Jan  4 09:14:55 2019
New Revision: 350411

URL: http://llvm.org/viewvc/llvm-project?rev=350411&view=rev
Log:
[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

Added:
    llvm/trunk/utils/gn/secondary/llvm/unittests/
    llvm/trunk/utils/gn/secondary/llvm/unittests/ADT/
    llvm/trunk/utils/gn/secondary/llvm/unittests/ADT/BUILD.gn
    llvm/trunk/utils/gn/secondary/llvm/unittests/Analysis/
    llvm/trunk/utils/gn/secondary/llvm/unittests/Analysis/BUILD.gn
    llvm/trunk/utils/gn/secondary/llvm/unittests/AsmParser/
    llvm/trunk/utils/gn/secondary/llvm/unittests/AsmParser/BUILD.gn
    llvm/trunk/utils/gn/secondary/llvm/unittests/BUILD.gn
    llvm/trunk/utils/gn/secondary/llvm/unittests/BinaryFormat/
    llvm/trunk/utils/gn/secondary/llvm/unittests/BinaryFormat/BUILD.gn
    llvm/trunk/utils/gn/secondary/llvm/unittests/Bitcode/
    llvm/trunk/utils/gn/secondary/llvm/unittests/Bitcode/BUILD.gn
    llvm/trunk/utils/gn/secondary/llvm/unittests/CodeGen/
    llvm/trunk/utils/gn/secondary/llvm/unittests/CodeGen/BUILD.gn
    llvm/trunk/utils/gn/secondary/llvm/unittests/DebugInfo/
    llvm/trunk/utils/gn/secondary/llvm/unittests/DebugInfo/CodeView/
    llvm/trunk/utils/gn/secondary/llvm/unittests/DebugInfo/CodeView/BUILD.gn
    llvm/trunk/utils/gn/secondary/llvm/unittests/DebugInfo/DWARF/
    llvm/trunk/utils/gn/secondary/llvm/unittests/DebugInfo/DWARF/BUILD.gn
    llvm/trunk/utils/gn/secondary/llvm/unittests/DebugInfo/MSF/
    llvm/trunk/utils/gn/secondary/llvm/unittests/DebugInfo/MSF/BUILD.gn
    llvm/trunk/utils/gn/secondary/llvm/unittests/Demangle/
    llvm/trunk/utils/gn/secondary/llvm/unittests/Demangle/BUILD.gn
Modified:
    llvm/trunk/utils/gn/build/sync_source_lists_from_cmake.py
    llvm/trunk/utils/gn/secondary/llvm/test/BUILD.gn

Modified: llvm/trunk/utils/gn/build/sync_source_lists_from_cmake.py
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/gn/build/sync_source_lists_from_cmake.py?rev=350411&r1=350410&r2=350411&view=diff
==============================================================================
--- llvm/trunk/utils/gn/build/sync_source_lists_from_cmake.py (original)
+++ llvm/trunk/utils/gn/build/sync_source_lists_from_cmake.py Fri Jan  4 09:14:55 2019
@@ -21,9 +21,9 @@ def sync_source_lists():
     gn_files = subprocess.check_output(
             ['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)
-    # 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))$',
                               re.MULTILINE)
 
@@ -57,12 +57,18 @@ def sync_source_lists():
 
 
 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' ]
     for c in checked:
         for root, _, _ in os.walk(os.path.join(c, 'unittests')):
             cmake_file = os.path.join(root, 'CMakeLists.txt')
             if not os.path.exists(cmake_file):
                 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')
             if not os.path.exists(gn_file):
                 print('missing GN file %s for unittest CMake file %s' %

Modified: llvm/trunk/utils/gn/secondary/llvm/test/BUILD.gn
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/gn/secondary/llvm/test/BUILD.gn?rev=350411&r1=350410&r2=350411&view=diff
==============================================================================
--- llvm/trunk/utils/gn/secondary/llvm/test/BUILD.gn (original)
+++ llvm/trunk/utils/gn/secondary/llvm/test/BUILD.gn Fri Jan  4 09:14:55 2019
@@ -241,6 +241,7 @@ group("test") {
     "//llvm/tools/sanstats",
     "//llvm/tools/verify-uselistorder",
     "//llvm/tools/yaml2obj",
+    "//llvm/unittests",
     "//llvm/utils/FileCheck",
     "//llvm/utils/TableGen:llvm-tblgen",
     "//llvm/utils/count",
@@ -261,7 +262,6 @@ group("test") {
     ]
   }
 
-  # FIXME: dep on "//llvm/unittests" once it exists
   # FIXME: llvm_build_examples
   testonly = true
 }

Added: llvm/trunk/utils/gn/secondary/llvm/unittests/ADT/BUILD.gn
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/gn/secondary/llvm/unittests/ADT/BUILD.gn?rev=350411&view=auto
==============================================================================
--- llvm/trunk/utils/gn/secondary/llvm/unittests/ADT/BUILD.gn (added)
+++ llvm/trunk/utils/gn/secondary/llvm/unittests/ADT/BUILD.gn Fri Jan  4 09:14:55 2019
@@ -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",
+  ]
+}

Added: llvm/trunk/utils/gn/secondary/llvm/unittests/Analysis/BUILD.gn
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/gn/secondary/llvm/unittests/Analysis/BUILD.gn?rev=350411&view=auto
==============================================================================
--- llvm/trunk/utils/gn/secondary/llvm/unittests/Analysis/BUILD.gn (added)
+++ llvm/trunk/utils/gn/secondary/llvm/unittests/Analysis/BUILD.gn Fri Jan  4 09:14:55 2019
@@ -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",
+  ]
+}

Added: llvm/trunk/utils/gn/secondary/llvm/unittests/AsmParser/BUILD.gn
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/gn/secondary/llvm/unittests/AsmParser/BUILD.gn?rev=350411&view=auto
==============================================================================
--- llvm/trunk/utils/gn/secondary/llvm/unittests/AsmParser/BUILD.gn (added)
+++ llvm/trunk/utils/gn/secondary/llvm/unittests/AsmParser/BUILD.gn Fri Jan  4 09:14:55 2019
@@ -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",
+  ]
+}

Added: llvm/trunk/utils/gn/secondary/llvm/unittests/BUILD.gn
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/gn/secondary/llvm/unittests/BUILD.gn?rev=350411&view=auto
==============================================================================
--- llvm/trunk/utils/gn/secondary/llvm/unittests/BUILD.gn (added)
+++ llvm/trunk/utils/gn/secondary/llvm/unittests/BUILD.gn Fri Jan  4 09:14:55 2019
@@ -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
+}

Added: llvm/trunk/utils/gn/secondary/llvm/unittests/BinaryFormat/BUILD.gn
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/gn/secondary/llvm/unittests/BinaryFormat/BUILD.gn?rev=350411&view=auto
==============================================================================
--- llvm/trunk/utils/gn/secondary/llvm/unittests/BinaryFormat/BUILD.gn (added)
+++ llvm/trunk/utils/gn/secondary/llvm/unittests/BinaryFormat/BUILD.gn Fri Jan  4 09:14:55 2019
@@ -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",
+  ]
+}

Added: llvm/trunk/utils/gn/secondary/llvm/unittests/Bitcode/BUILD.gn
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/gn/secondary/llvm/unittests/Bitcode/BUILD.gn?rev=350411&view=auto
==============================================================================
--- llvm/trunk/utils/gn/secondary/llvm/unittests/Bitcode/BUILD.gn (added)
+++ llvm/trunk/utils/gn/secondary/llvm/unittests/Bitcode/BUILD.gn Fri Jan  4 09:14:55 2019
@@ -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",
+  ]
+}

Added: llvm/trunk/utils/gn/secondary/llvm/unittests/CodeGen/BUILD.gn
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/gn/secondary/llvm/unittests/CodeGen/BUILD.gn?rev=350411&view=auto
==============================================================================
--- llvm/trunk/utils/gn/secondary/llvm/unittests/CodeGen/BUILD.gn (added)
+++ llvm/trunk/utils/gn/secondary/llvm/unittests/CodeGen/BUILD.gn Fri Jan  4 09:14:55 2019
@@ -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",
+  ]
+}

Added: llvm/trunk/utils/gn/secondary/llvm/unittests/DebugInfo/CodeView/BUILD.gn
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/gn/secondary/llvm/unittests/DebugInfo/CodeView/BUILD.gn?rev=350411&view=auto
==============================================================================
--- llvm/trunk/utils/gn/secondary/llvm/unittests/DebugInfo/CodeView/BUILD.gn (added)
+++ llvm/trunk/utils/gn/secondary/llvm/unittests/DebugInfo/CodeView/BUILD.gn Fri Jan  4 09:14:55 2019
@@ -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",
+  ]
+}

Added: llvm/trunk/utils/gn/secondary/llvm/unittests/DebugInfo/DWARF/BUILD.gn
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/gn/secondary/llvm/unittests/DebugInfo/DWARF/BUILD.gn?rev=350411&view=auto
==============================================================================
--- llvm/trunk/utils/gn/secondary/llvm/unittests/DebugInfo/DWARF/BUILD.gn (added)
+++ llvm/trunk/utils/gn/secondary/llvm/unittests/DebugInfo/DWARF/BUILD.gn Fri Jan  4 09:14:55 2019
@@ -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",
+  ]
+}

Added: llvm/trunk/utils/gn/secondary/llvm/unittests/DebugInfo/MSF/BUILD.gn
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/gn/secondary/llvm/unittests/DebugInfo/MSF/BUILD.gn?rev=350411&view=auto
==============================================================================
--- llvm/trunk/utils/gn/secondary/llvm/unittests/DebugInfo/MSF/BUILD.gn (added)
+++ llvm/trunk/utils/gn/secondary/llvm/unittests/DebugInfo/MSF/BUILD.gn Fri Jan  4 09:14:55 2019
@@ -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",
+  ]
+}

Added: llvm/trunk/utils/gn/secondary/llvm/unittests/Demangle/BUILD.gn
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/gn/secondary/llvm/unittests/Demangle/BUILD.gn?rev=350411&view=auto
==============================================================================
--- llvm/trunk/utils/gn/secondary/llvm/unittests/Demangle/BUILD.gn (added)
+++ llvm/trunk/utils/gn/secondary/llvm/unittests/Demangle/BUILD.gn Fri Jan  4 09:14:55 2019
@@ -0,0 +1,11 @@
+import("//llvm/utils/unittest/unittest.gni")
+
+unittest("DemangleTests") {
+  deps = [
+    "//llvm/lib/Demangle",
+  ]
+  sources = [
+    "ItaniumDemangleTest.cpp",
+    "PartialDemangleTest.cpp",
+  ]
+}




More information about the llvm-commits mailing list