diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2019-02-21 09:05:27 +0000 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2019-02-21 09:05:27 +0000 |
commit | 0e98ad264551e6bae1c919be68a6de794f2b6355 (patch) | |
tree | 3fe0a2bd62e7a3aa2d725da5414efa1e112bd342 /lldb/packages/Python | |
parent | 8b96fad85cba7d021eca2f0cc04f7e9dec76d441 (diff) | |
download | bcm5719-llvm-0e98ad264551e6bae1c919be68a6de794f2b6355.tar.gz bcm5719-llvm-0e98ad264551e6bae1c919be68a6de794f2b6355.zip |
testsuite: Fix TestCompDirSymLink and TestSourceManager on Linux with symlinked build dir
Getting failure when building in a directory which is symlinked elsewhere:
Failing Tests (1):
lldb-Suite :: functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py
lldb-Suite :: source-manager/TestSourceManager.py
For TestCompDirSymLink:
------------------------------------------------------------------------------
runCmd: file .../lldb-test-build.noindex/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.test_symlink_paths_set_procselfcwd_dwarf/CompDirSymLink
output: Current executable set to '.../lldb-test-build.noindex/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.test_symlink_paths_set_procselfcwd_dwarf/CompDirSymLink' (x86_64).
runCmd: settings set plugin.symbol-file.dwarf.comp-dir-symlink-paths /proc/self/cwd
output: None
runCmd: breakpoint set -f ".../lldb-test-build.noindex/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.test_symlink_paths_set_procselfcwd_dwarf/relative.cpp" -l 11
output: Breakpoint 1: no locations (pending).
WARNING: Unable to resolve breakpoint to any actual locations.
It is because /proc/self/cwd (used above for plugin.symbol-file.dwarf.comp-dir-symlink-paths) points to an already resolved directory:
(cd /tmp;mkdir real;ln -s real symlink;cd symlink;ls -l /proc/self/cwd)
lrwxrwxrwx 1 jkratoch jkratoch 0 Feb 20 19:55 /proc/self/cwd -> /tmp/real/
------------------------------------------------------------------------------
For TestSourceManager the resolving is done by 'make -C' as found by Pavel Labath.
Differential Revision: https://reviews.llvm.org/D58465
llvm-svn: 354556
Diffstat (limited to 'lldb/packages/Python')
-rw-r--r-- | lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py | 2 | ||||
-rw-r--r-- | lldb/packages/Python/lldbsuite/test/source-manager/TestSourceManager.py | 14 |
2 files changed, 12 insertions, 4 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py b/lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py index 4385304c88b..29778aad95a 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py @@ -48,6 +48,8 @@ class CompDirSymLinkTestCase(TestBase): "settings set %s %s" % (_COMP_DIR_SYM_LINK_PROP, pwd_symlink)) src_path = self.getBuildArtifact(_SRC_FILE) + # /proc/self/cwd points to a realpath form of current directory. + src_path = os.path.realpath(src_path) lldbutil.run_break_set_by_file_and_line(self, src_path, self.line) @skipIf(hostoslist=["windows"]) diff --git a/lldb/packages/Python/lldbsuite/test/source-manager/TestSourceManager.py b/lldb/packages/Python/lldbsuite/test/source-manager/TestSourceManager.py index ea822decdb6..2ee691621c7 100644 --- a/lldb/packages/Python/lldbsuite/test/source-manager/TestSourceManager.py +++ b/lldb/packages/Python/lldbsuite/test/source-manager/TestSourceManager.py @@ -158,12 +158,15 @@ class SourceManagerTestCase(TestBase): error=True, substrs=['''error: the replacement path doesn't exist: "/q/r/s/t/u"''']) + # 'make -C' has resolved current directory to its realpath form. + builddir_real = os.path.realpath(self.getBuildDir()) + hidden_real = os.path.realpath(hidden) # Set target.source-map settings. self.runCmd("settings set target.source-map %s %s" % - (self.getBuildDir(), hidden)) + (builddir_real, hidden_real)) # And verify that the settings work. self.expect("settings show target.source-map", - substrs=[self.getBuildDir(), hidden]) + substrs=[builddir_real, hidden_real]) # Display main() and verify that the source mapping has been kicked in. self.expect("source list -n main", SOURCE_DISPLAYED_CORRECTLY, @@ -238,11 +241,14 @@ class SourceManagerTestCase(TestBase): self.build() hidden = self.getBuildArtifact("hidden") lldbutil.mkdir_p(hidden) + # 'make -C' has resolved current directory to its realpath form. + builddir_real = os.path.realpath(self.getBuildDir()) + hidden_real = os.path.realpath(hidden) self.runCmd("settings set target.source-map %s %s" % - (self.getBuildDir(), hidden)) + (builddir_real, hidden_real)) exe = self.getBuildArtifact("a.out") - main = os.path.join(self.getBuildDir(), "hidden", "main-copy.c") + main = os.path.join(builddir_real, "hidden", "main-copy.c") self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET) lldbutil.run_break_set_by_file_and_line( |