diff options
| author | Oleksiy Vyalov <ovyalov@google.com> | 2015-07-29 22:18:16 +0000 |
|---|---|---|
| committer | Oleksiy Vyalov <ovyalov@google.com> | 2015-07-29 22:18:16 +0000 |
| commit | abb5a35d05fc0d513e3ac7be1571ceaddb5b191d (patch) | |
| tree | 55e932e4336009857e11d181fba5d23b29008756 /lldb/test/functionalities/breakpoint | |
| parent | 44fc1c0a735e06d5e1c2158792ebf91103db4ce7 (diff) | |
| download | bcm5719-llvm-abb5a35d05fc0d513e3ac7be1571ceaddb5b191d.tar.gz bcm5719-llvm-abb5a35d05fc0d513e3ac7be1571ceaddb5b191d.zip | |
Make DWARF at_comp_dir symbolic links configurable via plugin.symbol-file.dwarf.comp-dir-symlink-paths setting.
http://reviews.llvm.org/D11586
llvm-svn: 243580
Diffstat (limited to 'lldb/test/functionalities/breakpoint')
3 files changed, 88 insertions, 0 deletions
diff --git a/lldb/test/functionalities/breakpoint/comp_dir_symlink/Makefile b/lldb/test/functionalities/breakpoint/comp_dir_symlink/Makefile new file mode 100644 index 00000000000..0ac34a186b2 --- /dev/null +++ b/lldb/test/functionalities/breakpoint/comp_dir_symlink/Makefile @@ -0,0 +1,7 @@ +LEVEL = ../../../make + +CXX_SOURCES := main.cpp + +EXE := CompDirSymLink + +include $(LEVEL)/Makefile.rules diff --git a/lldb/test/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py b/lldb/test/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py new file mode 100644 index 00000000000..67a29a4aeb5 --- /dev/null +++ b/lldb/test/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py @@ -0,0 +1,68 @@ +""" +Test breakpoint command with AT_comp_dir set to symbolic link. +""" +import os +import unittest2 +import lldb +from lldbtest import * +import lldbutil +import shutil + + +_EXE_NAME = 'CompDirSymLink' # Must match Makefile +_SRC_FILE = 'main.cpp' +_COMP_DIR_SYM_LINK_PROP = 'plugin.symbol-file.dwarf.comp-dir-symlink-paths' + +class CompDirSymLinkTestCase(TestBase): + + mydir = TestBase.compute_mydir(__file__) + + def setUp(self): + # Call super's setUp(). + TestBase.setUp(self) + # Find the line number to break inside main(). + self.line = line_number(_SRC_FILE, '// Set break point at this line.') + self.src_path = os.path.join(os.getcwd(), _SRC_FILE) + + @dwarf_test + @skipIfHostWindows + def test_symlink_paths_set(self): + pwd_symlink = self.create_src_symlink() + self.build(pwd_symlink) + self.runCmd("settings set %s %s" % (_COMP_DIR_SYM_LINK_PROP, pwd_symlink)) + lldbutil.run_break_set_by_file_and_line(self, self.src_path, self.line) + + @dwarf_test + @skipUnlessHostLinux + def test_symlink_paths_set_procselfcwd(self): + pwd_symlink = '/proc/self/cwd' + self.build(pwd_symlink) + self.runCmd("settings set %s %s" % (_COMP_DIR_SYM_LINK_PROP, pwd_symlink)) + lldbutil.run_break_set_by_file_and_line(self, self.src_path, self.line) + + @dwarf_test + @skipIfHostWindows + def test_symlink_paths_unset(self): + pwd_symlink = self.create_src_symlink() + self.build(pwd_symlink) + self.runCmd('settings clear ' + _COMP_DIR_SYM_LINK_PROP) + self.assertRaises(AssertionError, lldbutil.run_break_set_by_file_and_line, self, self.src_path, self.line) + + def create_src_symlink(self): + pwd_symlink = os.path.join(os.getcwd(), 'pwd_symlink') + os.symlink(os.getcwd(), pwd_symlink) + self.addTearDownHook(lambda: os.remove(pwd_symlink)) + return pwd_symlink + + def build(self, pwd_symlink): + self.buildDwarf(None, None, {'PWD': pwd_symlink}, True) + + exe = os.path.join(os.getcwd(), _EXE_NAME) + self.runCmd('file ' + exe, CURRENT_EXECUTABLE_SET) + + +if __name__ == '__main__': + import atexit + lldb.SBDebugger.Initialize() + atexit.register(lambda: lldb.SBDebugger.Terminate()) + unittest2.main() diff --git a/lldb/test/functionalities/breakpoint/comp_dir_symlink/main.cpp b/lldb/test/functionalities/breakpoint/comp_dir_symlink/main.cpp new file mode 100644 index 00000000000..fef06a011e9 --- /dev/null +++ b/lldb/test/functionalities/breakpoint/comp_dir_symlink/main.cpp @@ -0,0 +1,13 @@ +//===-- main.cpp ------------------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +int main (int argc, char const *argv[]) +{ + return 0; // Set break point at this line. +} |

