"DebugInfo/CodeView:DebugInfoCodeViewTests",
"DebugInfo/DWARF:DebugInfoDWARFTests",
"DebugInfo/MSF:DebugInfoMSFTests",
-
- # FIXME: Add.
- #"DebugInfo/PDB:DebugInfoPDBTests",
+ "DebugInfo/PDB:DebugInfoPDBTests",
"Demangle:DemangleTests",
# FIXME: Add.
"tools/llvm-exegesis:LLVMExegesisTests",
]
- # Target-dependend unit tests.
+ # Target-dependent 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.
--- /dev/null
+import("//llvm/utils/unittest/unittest.gni")
+
+unittest("DebugInfoPDBTests") {
+ deps = [
+ "//llvm/lib/DebugInfo/CodeView",
+ "//llvm/lib/DebugInfo/MSF",
+ "//llvm/lib/DebugInfo/PDB",
+ "//llvm/lib/Testing/Support",
+ ]
+ sources = [
+ "HashTableTest.cpp",
+ "NativeSymbolReuseTest.cpp",
+ "PDBApiTest.cpp",
+ "StringTableBuilderTest.cpp",
+ ]
+
+ # DebugInfoPDBTests uses llvm::getInputFileDirectory(), which expects
+ # a file called llvm.srcdir.txt next to the test executable that contains
+ # the path of the source directory (which contains this file).
+ # lit doesn't change the cwd while running googletests, so the cwd isn't
+ # well-defined. This means this has to be an absolute path.
+ # FIXME: This doesn't work with swarming. This should really be a data
+ # dependency, and the cwd while tests requiring input files run should
+ # be required to be some fixed directory.
+ # FIXME: Also, the GN way is to write this file at build time. But since
+ # there's only one use of this, and since this is a pattern that hopefully
+ # will disappear again, and since it doesn't have any measurable performance
+ # hit, write the file at GN time.
+ # Note: This line here implicitly depends on unittest() setting output_dir to
+ # target_out_dir.
+ write_file("$target_out_dir/llvm.srcdir.txt", rebase_path("."))
+}
# run the unit test binary if necessary. Using target_out_dir here
# means that //clang/unittests/Format gets its binary in
# out/gn/obj/clang/unittests/Format/FormatTests, which seems fine.
+ #
+ # If you change output_dir here, look through
+ # `git grep target_out_dir '*/unittests/*'` and update those too.
output_dir = target_out_dir
deps += [ "//llvm/utils/unittest/UnitTestMain" ]
testonly = true