From c432c8f856e0bd84de980a9d9bb2d31b06fa95b1 Mon Sep 17 00:00:00 2001 From: Zachary Turner Date: Wed, 28 Oct 2015 17:43:26 +0000 Subject: 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 --- .../lldbsuite/test/lang/c/strings/TestCStrings.py | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 lldb/packages/Python/lldbsuite/test/lang/c/strings/TestCStrings.py (limited to 'lldb/packages/Python/lldbsuite/test/lang/c/strings/TestCStrings.py') diff --git a/lldb/packages/Python/lldbsuite/test/lang/c/strings/TestCStrings.py b/lldb/packages/Python/lldbsuite/test/lang/c/strings/TestCStrings.py new file mode 100644 index 00000000000..f1d9be2149f --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/lang/c/strings/TestCStrings.py @@ -0,0 +1,54 @@ +""" +Tests that C strings work as expected in expressions +""" +import lldb +from lldbtest import * +import lldbutil + +class CStringsTestCase(TestBase): + + mydir = TestBase.compute_mydir(__file__) + + @expectedFailureWindows("llvm.org/pr21765") + def test_with_run_command(self): + """Tests that C strings work as expected in expressions""" + self.build() + self.runCmd("file a.out", CURRENT_EXECUTABLE_SET) + + line = line_number('main.c', '// breakpoint 1') + lldbutil.run_break_set_by_file_and_line (self, "main.c", line, num_expected_locations=1, loc_exact=True) + + self.runCmd("process launch", RUN_SUCCEEDED) + + self.expect("expression -- a[2]", + patterns = ["\((const )?char\) \$0 = 'c'"]) + + self.expect("expression -- z[2]", + startstr = "(const char) $1 = 'x'") + + # On Linux, the expression below will test GNU indirect function calls. + self.expect("expression -- (int)strlen(\"hello\")", + startstr = "(int) $2 = 5") + + self.expect("expression -- \"world\"[2]", + startstr = "(const char) $3 = 'r'") + + self.expect("expression -- \"\"[0]", + startstr = "(const char) $4 = '\\0'") + + self.expect("expr --raw -- \"hello\"", + substrs = ['[0] = \'h\'', + '[5] = \'\\0\'']) + + self.expect("p \"hello\"", + substrs = ['[6]) $', 'hello']) + + self.expect("p (char*)\"hello\"", + substrs = ['(char *) $', ' = 0x', + 'hello']) + + self.expect("p (int)strlen(\"\")", + substrs = ['(int) $', ' = 0']) + + self.expect("expression !z", + substrs = ['false']) -- cgit v1.2.3