Index: llvm/utils/gn/secondary/llvm/unittests/BUILD.gn =================================================================== --- llvm/utils/gn/secondary/llvm/unittests/BUILD.gn +++ llvm/utils/gn/secondary/llvm/unittests/BUILD.gn @@ -8,9 +8,7 @@ "BinaryFormat:BinaryFormatTests", "Bitcode:BitcodeTests", "CodeGen:CodeGenTests", - - # FIXME: Add. - #"CodeGen/GlobalISel:GlobalISelTests", + "CodeGen/GlobalISel:GlobalISelTests", "DebugInfo/CodeView:DebugInfoCodeViewTests", "DebugInfo/DWARF:DebugInfoDWARFTests", "DebugInfo/MSF:DebugInfoMSFTests", @@ -28,9 +26,7 @@ "LineEditor:LineEditorTests", "Linker:LinkerTests", "MC:MCTests", - - # FIXME: Add. - #"MI:MITests", + "MI:MITests", "Object:ObjectTests", "ObjectYAML:ObjectYAMLTests", "OptRemarks:OptRemarksTests", @@ -49,9 +45,7 @@ "Transforms/Utils:UtilsTests", "Transforms/Vectorize:VectorizeTests", "XRay:XRayTests", - - # FIXME: Add more: - #"tools/llvm-cfi-verify:CFIVerifyTests", + "tools/llvm-cfi-verify:CFIVerifyTests", "tools/llvm-exegesis:LLVMExegesisTests", ] Index: llvm/utils/gn/secondary/llvm/unittests/CodeGen/GlobalISel/BUILD.gn =================================================================== --- /dev/null +++ llvm/utils/gn/secondary/llvm/unittests/CodeGen/GlobalISel/BUILD.gn @@ -0,0 +1,19 @@ +import("//llvm/utils/unittest/unittest.gni") + +unittest_with_custom_main("GlobalISelTests") { + deps = [ + "//llvm/lib/CodeGen", + "//llvm/lib/CodeGen/GlobalISel", + "//llvm/lib/CodeGen/MIRParser", + "//llvm/lib/IR", + "//llvm/lib/MC", + "//llvm/lib/Support", + "//llvm/lib/Target", + "//llvm/lib/Target:TargetsToBuild", + ] + sources = [ + "LegalizerHelperTest.cpp", + "LegalizerInfoTest.cpp", + "PatternMatchTest.cpp", + ] +} Index: llvm/utils/gn/secondary/llvm/unittests/MI/BUILD.gn =================================================================== --- /dev/null +++ llvm/utils/gn/secondary/llvm/unittests/MI/BUILD.gn @@ -0,0 +1,16 @@ +import("//llvm/utils/unittest/unittest.gni") + +unittest_with_custom_main("MITests") { + deps = [ + "//llvm/lib/CodeGen", + "//llvm/lib/CodeGen/MIRParser", + "//llvm/lib/IR", + "//llvm/lib/MC", + "//llvm/lib/Support", + "//llvm/lib/Target", + "//llvm/lib/Target:TargetsToBuild", + ] + sources = [ + "LiveIntervalTest.cpp", + ] +} Index: llvm/utils/gn/secondary/llvm/unittests/tools/llvm-cfi-verify/BUILD.gn =================================================================== --- /dev/null +++ llvm/utils/gn/secondary/llvm/unittests/tools/llvm-cfi-verify/BUILD.gn @@ -0,0 +1,21 @@ +import("//llvm/utils/unittest/unittest.gni") + +unittest_with_custom_main("CFIVerifyTests") { + deps = [ + "//llvm/lib/DebugInfo/Symbolize", + "//llvm/lib/MC", + "//llvm/lib/MC/MCParser", + "//llvm/lib/Object", + "//llvm/lib/Support", + "//llvm/lib/Target:AllTargetsAsmParsers", + "//llvm/lib/Target:AllTargetsAsmPrinters", + "//llvm/lib/Target:AllTargetsDescs", + "//llvm/lib/Target:AllTargetsDisassemblers", + "//llvm/lib/Target:AllTargetsInfos", + "//llvm/tools/llvm-cfi-verify/lib", + ] + sources = [ + "FileAnalysis.cpp", + "GraphBuilder.cpp", + ] +} Index: llvm/utils/gn/secondary/llvm/utils/unittest/unittest.gni =================================================================== --- llvm/utils/gn/secondary/llvm/utils/unittest/unittest.gni +++ llvm/utils/gn/secondary/llvm/utils/unittest/unittest.gni @@ -1,12 +1,17 @@ -# This file defines a template for adding a unittest binary. +# This file defines templates for adding unittest binaries. # -# It's a thin wrapper around GN's built-in executable() target type and -# accepts the same parameters. +# They are thin wrappers around GN's built-in executable() target type and +# accept the same parameters. # -# Example use: +# Example uses: # # unittest("FormatTest") { -# sources = [ ... ] +# sources = [ ... ] # Must not contain a main() function. +# ... +# } +# +# unittest_with_custom_main("FormatTest") { +# sources = [ ... ] # Must contain a main() function. # ... # } @@ -42,3 +47,20 @@ set_defaults("unittest") { configs = shared_binary_target_configs } + +# Like unittest(), but depends on //llvm/utils/unittest:gtest instead of +# //llvm/utils/unittest/UnitTestMain. +template("unittest_with_custom_main") { + executable(target_name) { + forward_variables_from(invoker, "*") + assert(!defined(invoker.output_dir), "cannot set unittest output_dir") + assert(!defined(invoker.testonly), "cannot set unittest testonly") + output_dir = target_out_dir + deps += [ "//llvm/utils/unittest:gtest" ] + testonly = true + } +} + +set_defaults("unittest_with_custom_main") { + configs = shared_binary_target_configs +}