This reverts commit aa495214b3.
As discussed in https://github.com/llvm/llvm-project/issues/53475 this patch
allows for using LLD-as-a-lib. It also lets clients link only the drivers that
they want (see unit tests).
This also adds the unit test infra as in the other LLVM projects. Among the
test coverage, I've added the original issue from @krzysz00, see:
https://github.com/ROCmSoftwarePlatform/D108850-lld-bug-reproduction
Important note: this doesn't allow (yet) linking in parallel. This will come a
bit later hopefully, in subsequent patches, for COFF at least.
Differential revision: https://reviews.llvm.org/D119049
48 lines
1.6 KiB
Python
48 lines
1.6 KiB
Python
# -*- Python -*-
|
|
|
|
# Configuration file for the 'lit' test runner.
|
|
|
|
import os
|
|
import subprocess
|
|
|
|
import lit.formats
|
|
|
|
# name: The name of this test suite.
|
|
config.name = "LLD-Unit"
|
|
|
|
# suffixes: A list of file extensions to treat as test files.
|
|
config.suffixes = []
|
|
|
|
# test_source_root: The root path where tests are located.
|
|
# test_exec_root: The root path where tests should be run.
|
|
config.test_exec_root = os.path.join(config.lld_obj_root, "unittests")
|
|
config.test_source_root = config.test_exec_root
|
|
|
|
# testFormat: The test format to use to interpret tests.
|
|
config.test_format = lit.formats.GoogleTest(config.llvm_build_mode, "Tests")
|
|
|
|
# Propagate the temp directory. Windows requires this because it uses \Windows\
|
|
# if none of these are present.
|
|
if "TMP" in os.environ:
|
|
config.environment["TMP"] = os.environ["TMP"]
|
|
if "TEMP" in os.environ:
|
|
config.environment["TEMP"] = os.environ["TEMP"]
|
|
|
|
# Propagate HOME as it can be used to override incorrect homedir in passwd
|
|
# that causes the tests to fail.
|
|
if "HOME" in os.environ:
|
|
config.environment["HOME"] = os.environ["HOME"]
|
|
|
|
# Win32 seeks DLLs along %PATH%.
|
|
if sys.platform in ["win32", "cygwin"] and os.path.isdir(config.shlibdir):
|
|
config.environment["PATH"] = os.path.pathsep.join((
|
|
config.shlibdir, config.environment["PATH"]))
|
|
|
|
# Win32 may use %SYSTEMDRIVE% during file system shell operations, so propogate.
|
|
if sys.platform == "win32" and "SYSTEMDRIVE" in os.environ:
|
|
config.environment["SYSTEMDRIVE"] = os.environ["SYSTEMDRIVE"]
|
|
|
|
# Expand the LLD source path so that unittests can use associated input files.
|
|
# (see AsLibELF/ROCm.cpp test)
|
|
config.environment["LLD_SRC_DIR"] = config.lld_src_dir
|