diff options
| author | Zachary Turner <zturner@google.com> | 2015-10-28 17:43:26 +0000 |
|---|---|---|
| committer | Zachary Turner <zturner@google.com> | 2015-10-28 17:43:26 +0000 |
| commit | c432c8f856e0bd84de980a9d9bb2d31b06fa95b1 (patch) | |
| tree | 4efa528e074a6e2df782345e4cd97f5d85d038c4 /lldb/test/functionalities/target_command/TestTargetCommand.py | |
| parent | a8a3bd210086b50242903ed95048fe5e53897878 (diff) | |
Move lldb/test to lldb/packages/Python/lldbsuite/test.
This is the conclusion of an effort to get LLDB's Python code
structured into a bona-fide Python package. This has a number
of benefits, but most notably the ability to more easily share
Python code between different but related pieces of LLDB's Python
infrastructure (for example, `scripts` can now share code with
`test`).
llvm-svn: 251532
Diffstat (limited to 'lldb/test/functionalities/target_command/TestTargetCommand.py')
| -rw-r--r-- | lldb/test/functionalities/target_command/TestTargetCommand.py | 201 |
1 files changed, 0 insertions, 201 deletions
diff --git a/lldb/test/functionalities/target_command/TestTargetCommand.py b/lldb/test/functionalities/target_command/TestTargetCommand.py deleted file mode 100644 index 7ffc64c3667c..000000000000 --- a/lldb/test/functionalities/target_command/TestTargetCommand.py +++ /dev/null @@ -1,201 +0,0 @@ -""" -Test some target commands: create, list, select, variable. -""" - -from __future__ import print_function - -import use_lldb_suite - -import lldb -import sys -from lldbtest import * -import lldbutil - -class targetCommandTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - # Find the line numbers for our breakpoints. - self.line_b = line_number('b.c', '// Set break point at this line.') - self.line_c = line_number('c.c', '// Set break point at this line.') - - def test_target_command(self): - """Test some target commands: create, list, select.""" - da = {'C_SOURCES': 'a.c', 'EXE': 'a.out'} - self.build(dictionary=da) - self.addTearDownCleanup(dictionary=da) - - db = {'C_SOURCES': 'b.c', 'EXE': 'b.out'} - self.build(dictionary=db) - self.addTearDownCleanup(dictionary=db) - - dc = {'C_SOURCES': 'c.c', 'EXE': 'c.out'} - self.build(dictionary=dc) - self.addTearDownCleanup(dictionary=dc) - - self.do_target_command() - - # rdar://problem/9763907 - # 'target variable' command fails if the target program has been run - @expectedFailureAndroid(archs=['aarch64']) - def test_target_variable_command(self): - """Test 'target variable' command before and after starting the inferior.""" - d = {'C_SOURCES': 'globals.c', 'EXE': 'globals'} - self.build(dictionary=d) - self.addTearDownCleanup(dictionary=d) - - self.do_target_variable_command('globals') - - @expectedFailureAndroid(archs=['aarch64']) - def test_target_variable_command_no_fail(self): - """Test 'target variable' command before and after starting the inferior.""" - d = {'C_SOURCES': 'globals.c', 'EXE': 'globals'} - self.build(dictionary=d) - self.addTearDownCleanup(dictionary=d) - - self.do_target_variable_command_no_fail('globals') - - def do_target_command(self): - """Exercise 'target create', 'target list', 'target select' commands.""" - exe_a = os.path.join(os.getcwd(), "a.out") - exe_b = os.path.join(os.getcwd(), "b.out") - exe_c = os.path.join(os.getcwd(), "c.out") - - self.runCmd("target list") - output = self.res.GetOutput() - if output.startswith("No targets"): - # We start from index 0. - base = 0 - else: - # Find the largest index of the existing list. - import re - pattern = re.compile("target #(\d+):") - for line in reversed(output.split(os.linesep)): - match = pattern.search(line) - if match: - # We will start from (index + 1) .... - base = int(match.group(1), 10) + 1 - #print("base is:", base) - break; - - self.runCmd("target create " + exe_a, CURRENT_EXECUTABLE_SET) - self.runCmd("run", RUN_SUCCEEDED) - - self.runCmd("target create " + exe_b, CURRENT_EXECUTABLE_SET) - lldbutil.run_break_set_by_file_and_line (self, 'b.c', self.line_b, num_expected_locations=1, loc_exact=True) - self.runCmd("run", RUN_SUCCEEDED) - - self.runCmd("target create " + exe_c, CURRENT_EXECUTABLE_SET) - lldbutil.run_break_set_by_file_and_line (self, 'c.c', self.line_c, num_expected_locations=1, loc_exact=True) - self.runCmd("run", RUN_SUCCEEDED) - - self.runCmd("target list") - - self.runCmd("target select %d" % base) - self.runCmd("thread backtrace") - - self.runCmd("target select %d" % (base + 2)) - self.expect("thread backtrace", STOPPED_DUE_TO_BREAKPOINT, - substrs = ['c.c:%d' % self.line_c, - 'stop reason = breakpoint']) - - self.runCmd("target select %d" % (base + 1)) - self.expect("thread backtrace", STOPPED_DUE_TO_BREAKPOINT, - substrs = ['b.c:%d' % self.line_b, - 'stop reason = breakpoint']) - - self.runCmd("target list") - - def do_target_variable_command(self, exe_name): - """Exercise 'target variable' command before and after starting the inferior.""" - self.runCmd("file " + exe_name, CURRENT_EXECUTABLE_SET) - - self.expect("target variable my_global_char", VARIABLES_DISPLAYED_CORRECTLY, - substrs = ["my_global_char", "'X'"]) - self.expect("target variable my_global_str", VARIABLES_DISPLAYED_CORRECTLY, - substrs = ['my_global_str', '"abc"']) - self.expect("target variable my_static_int", VARIABLES_DISPLAYED_CORRECTLY, - substrs = ['my_static_int', '228']) - self.expect("target variable my_global_str_ptr", matching=False, - substrs = ['"abc"']) - self.expect("target variable *my_global_str_ptr", matching=True, - substrs = ['"abc"']) - self.expect("target variable *my_global_str", VARIABLES_DISPLAYED_CORRECTLY, - substrs = ['a']) - - self.runCmd("b main") - self.runCmd("run") - - self.expect("target variable my_global_str", VARIABLES_DISPLAYED_CORRECTLY, - substrs = ['my_global_str', '"abc"']) - self.expect("target variable my_static_int", VARIABLES_DISPLAYED_CORRECTLY, - substrs = ['my_static_int', '228']) - self.expect("target variable my_global_str_ptr", matching=False, - substrs = ['"abc"']) - self.expect("target variable *my_global_str_ptr", matching=True, - substrs = ['"abc"']) - self.expect("target variable *my_global_str", VARIABLES_DISPLAYED_CORRECTLY, - substrs = ['a']) - self.expect("target variable my_global_char", VARIABLES_DISPLAYED_CORRECTLY, - substrs = ["my_global_char", "'X'"]) - - self.runCmd("c") - - # rdar://problem/9763907 - # 'target variable' command fails if the target program has been run - self.expect("target variable my_global_str", VARIABLES_DISPLAYED_CORRECTLY, - substrs = ['my_global_str', '"abc"']) - self.expect("target variable my_static_int", VARIABLES_DISPLAYED_CORRECTLY, - substrs = ['my_static_int', '228']) - self.expect("target variable my_global_str_ptr", matching=False, - substrs = ['"abc"']) - self.expect("target variable *my_global_str_ptr", matching=True, - substrs = ['"abc"']) - self.expect("target variable *my_global_str", VARIABLES_DISPLAYED_CORRECTLY, - substrs = ['a']) - self.expect("target variable my_global_char", VARIABLES_DISPLAYED_CORRECTLY, - substrs = ["my_global_char", "'X'"]) - - def do_target_variable_command_no_fail(self, exe_name): - """Exercise 'target variable' command before and after starting the inferior.""" - self.runCmd("file " + exe_name, CURRENT_EXECUTABLE_SET) - - self.expect("target variable my_global_char", VARIABLES_DISPLAYED_CORRECTLY, - substrs = ["my_global_char", "'X'"]) - self.expect("target variable my_global_str", VARIABLES_DISPLAYED_CORRECTLY, - substrs = ['my_global_str', '"abc"']) - self.expect("target variable my_static_int", VARIABLES_DISPLAYED_CORRECTLY, - substrs = ['my_static_int', '228']) - self.expect("target variable my_global_str_ptr", matching=False, - substrs = ['"abc"']) - self.expect("target variable *my_global_str_ptr", matching=True, - substrs = ['"abc"']) - self.expect("target variable *my_global_str", VARIABLES_DISPLAYED_CORRECTLY, - substrs = ['a']) - - self.runCmd("b main") - self.runCmd("run") - - # New feature: you don't need to specify the variable(s) to 'target vaiable'. - # It will find all the global and static variables in the current compile unit. - self.expect("target variable", - substrs = ['my_global_char', - 'my_global_str', - 'my_global_str_ptr', - 'my_static_int']) - - self.expect("target variable my_global_str", VARIABLES_DISPLAYED_CORRECTLY, - substrs = ['my_global_str', '"abc"']) - self.expect("target variable my_static_int", VARIABLES_DISPLAYED_CORRECTLY, - substrs = ['my_static_int', '228']) - self.expect("target variable my_global_str_ptr", matching=False, - substrs = ['"abc"']) - self.expect("target variable *my_global_str_ptr", matching=True, - substrs = ['"abc"']) - self.expect("target variable *my_global_str", VARIABLES_DISPLAYED_CORRECTLY, - substrs = ['a']) - self.expect("target variable my_global_char", VARIABLES_DISPLAYED_CORRECTLY, - substrs = ["my_global_char", "'X'"]) |
