From 817b3a6fe3a4452eb61a2503c8beaa7267ca0351 Mon Sep 17 00:00:00 2001 From: Jordan Rupprecht Date: Mon, 3 Aug 2020 17:33:37 -0700 Subject: [PATCH] [test] Use abspath instead of realpath sometimes In these two cases, use of `os.path.realpath` is problematic: - The name of the compiler is significant [1] . For testing purposes, we might provide a compiler called "clang" which is actually a symlink to some build script (which does some flag processing before invoking the real clang). The destination the symlink may not be called "clang", but we still want it to be treated as such. - When using a build system that puts build artifacts in an arbitrary build location, and later creates a symlink for it (e.g. creates a "/lldbsuite/test/dotest.py" symlinks that points to "/build/artifact//dotest.py"), looking at the realpath will not match the "test" convention required here. [1] See `Makefile.rules` in the lldb tree, e.g. we use different flags if the compiler is named "clang" Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D85175 --- lldb/packages/Python/lldbsuite/test/dotest.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lldb/packages/Python/lldbsuite/test/dotest.py b/lldb/packages/Python/lldbsuite/test/dotest.py index 3fb802f..f43685c 100644 --- a/lldb/packages/Python/lldbsuite/test/dotest.py +++ b/lldb/packages/Python/lldbsuite/test/dotest.py @@ -241,7 +241,7 @@ def parseOptionsAndInitTestdirs(): do_help = True if args.compiler: - configuration.compiler = os.path.realpath(args.compiler) + configuration.compiler = os.path.abspath(args.compiler) if not is_exe(configuration.compiler): configuration.compiler = which(args.compiler) if not is_exe(configuration.compiler): @@ -461,7 +461,7 @@ def setupSysPath(): if "DOTEST_PROFILE" in os.environ and "DOTEST_SCRIPT_DIR" in os.environ: scriptPath = os.environ["DOTEST_SCRIPT_DIR"] else: - scriptPath = os.path.dirname(os.path.realpath(__file__)) + scriptPath = os.path.dirname(os.path.abspath(__file__)) if not scriptPath.endswith('test'): print("This script expects to reside in lldb's test directory.") sys.exit(-1) -- 2.7.4