diff options
Diffstat (limited to 'packages/Python/lldbsuite/test/expression_command')
124 files changed, 0 insertions, 4582 deletions
diff --git a/packages/Python/lldbsuite/test/expression_command/.categories b/packages/Python/lldbsuite/test/expression_command/.categories deleted file mode 100644 index 897e40a99dda..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/.categories +++ /dev/null @@ -1 +0,0 @@ -expression diff --git a/packages/Python/lldbsuite/test/expression_command/anonymous-struct/Makefile b/packages/Python/lldbsuite/test/expression_command/anonymous-struct/Makefile deleted file mode 100644 index 8a7102e347af..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/anonymous-struct/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := main.cpp - -include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/expression_command/anonymous-struct/TestCallUserAnonTypedef.py b/packages/Python/lldbsuite/test/expression_command/anonymous-struct/TestCallUserAnonTypedef.py deleted file mode 100644 index 1108b1215329..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/anonymous-struct/TestCallUserAnonTypedef.py +++ /dev/null @@ -1,45 +0,0 @@ -""" -Test calling user defined functions using expression evaluation. -This test checks that typesystem lookup works correctly for typedefs of -untagged structures. - -Ticket: https://llvm.org/bugs/show_bug.cgi?id=26790 -""" - -from __future__ import print_function - -import lldb - -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class TestExprLookupAnonStructTypedef(TestBase): - mydir = TestBase.compute_mydir(__file__) - - def setUp(self): - TestBase.setUp(self) - # Find the breakpoint - self.line = line_number('main.cpp', '// lldb testsuite break') - - @expectedFailureAll( - oslist=['linux'], - archs=['arm'], - bugnumber="llvm.org/pr27868") - def test(self): - """Test typedeffed untagged struct arguments for function call expressions""" - self.build() - - self.runCmd("file "+self.getBuildArtifact("a.out"), - CURRENT_EXECUTABLE_SET) - lldbutil.run_break_set_by_file_and_line( - self, - "main.cpp", - self.line, - num_expected_locations=-1, - loc_exact=True - ) - - self.runCmd("run", RUN_SUCCEEDED) - self.expect("expr multiply(&s)", substrs=['$0 = 1']) diff --git a/packages/Python/lldbsuite/test/expression_command/anonymous-struct/main.cpp b/packages/Python/lldbsuite/test/expression_command/anonymous-struct/main.cpp deleted file mode 100644 index 5b170c5f943a..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/anonymous-struct/main.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include <tgmath.h> - -typedef struct { - float f; - int i; -} my_untagged_struct; - -double multiply(my_untagged_struct *s) -{ - return s->f * s->i; -} - -double multiply(my_untagged_struct *s, int x) -{ - return multiply(s) * x; -} - -int main(int argc, char **argv) -{ - my_untagged_struct s = { - .f = (float)argc, - .i = argc, - }; - // lldb testsuite break - return !(multiply(&s, argc) == pow(argc, 3)); -} diff --git a/packages/Python/lldbsuite/test/expression_command/calculator_mode/TestCalculatorMode.py b/packages/Python/lldbsuite/test/expression_command/calculator_mode/TestCalculatorMode.py deleted file mode 100644 index 46ea111bf031..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/calculator_mode/TestCalculatorMode.py +++ /dev/null @@ -1,27 +0,0 @@ -""" -Test calling an expression without a target. -""" - -from __future__ import print_function - - -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class TestCalculatorMode(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - - def test__calculator_mode(self): - """Test calling expressions in the dummy target.""" - self.expect("expression 11 + 22", "11 + 22 didn't get the expected result", substrs=["33"]) - # Now try it with a specific language: - self.expect("expression -l c -- 11 + 22", "11 + 22 didn't get the expected result", substrs=["33"]) - diff --git a/packages/Python/lldbsuite/test/expression_command/call-function/Makefile b/packages/Python/lldbsuite/test/expression_command/call-function/Makefile deleted file mode 100644 index 9d4f3b7f1412..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/call-function/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := main.cpp - -include $(LEVEL)/Makefile.rules - -clean:: - rm -rf $(wildcard *.o *.d *.dSYM) diff --git a/packages/Python/lldbsuite/test/expression_command/call-function/TestCallBuiltinFunction.py b/packages/Python/lldbsuite/test/expression_command/call-function/TestCallBuiltinFunction.py deleted file mode 100644 index 87787f3479a2..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/call-function/TestCallBuiltinFunction.py +++ /dev/null @@ -1,53 +0,0 @@ -""" -Tests calling builtin functions using expression evaluation. -""" - -from __future__ import print_function - - -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class ExprCommandCallBuiltinFunction(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - # Builtins are expanded by Clang, so debug info shouldn't matter. - NO_DEBUG_INFO_TESTCASE = True - - def setUp(self): - TestBase.setUp(self) - # Find the line number to break for main.c. - self.line = line_number( - 'main.cpp', - '// Please test these expressions while stopped at this line:') - - def test(self): - self.build() - - # Set breakpoint in main and run exe - self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET) - lldbutil.run_break_set_by_file_and_line( - self, "main.cpp", self.line, num_expected_locations=-1, loc_exact=True) - - self.runCmd("run", RUN_SUCCEEDED) - - interp = self.dbg.GetCommandInterpreter() - result = lldb.SBCommandReturnObject() - - # Test different builtin functions. - - interp.HandleCommand("expr __builtin_isinf(0.0f)", result) - self.assertEqual(result.GetOutput(), "(int) $0 = 0\n") - - interp.HandleCommand("expr __builtin_isnormal(0.0f)", result) - self.assertEqual(result.GetOutput(), "(int) $1 = 0\n") - - interp.HandleCommand("expr __builtin_constant_p(1)", result) - self.assertEqual(result.GetOutput(), "(int) $2 = 1\n") - - interp.HandleCommand("expr __builtin_abs(-14)", result) - self.assertEqual(result.GetOutput(), "(int) $3 = 14\n") diff --git a/packages/Python/lldbsuite/test/expression_command/call-function/TestCallStdStringFunction.py b/packages/Python/lldbsuite/test/expression_command/call-function/TestCallStdStringFunction.py deleted file mode 100644 index 8f2ea371f2b1..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/call-function/TestCallStdStringFunction.py +++ /dev/null @@ -1,57 +0,0 @@ -""" -Test calling std::String member functions. -""" - -from __future__ import print_function - - -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class ExprCommandCallFunctionTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - # Find the line number to break for main.c. - self.line = line_number( - 'main.cpp', - '// Please test these expressions while stopped at this line:') - - @expectedFailureAll( - compiler="icc", - bugnumber="llvm.org/pr14437, fails with ICC 13.1") - @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr21765") - def test_with(self): - """Test calling std::String member function.""" - self.build() - self.runCmd("file " + self.getBuildArtifact("a.out"), - CURRENT_EXECUTABLE_SET) - - # Some versions of GCC encode two locations for the 'return' statement - # in main.cpp - lldbutil.run_break_set_by_file_and_line( - self, "main.cpp", self.line, num_expected_locations=-1, loc_exact=True) - - self.runCmd("run", RUN_SUCCEEDED) - - self.expect("print str", - substrs=['Hello world']) - - # Calling this function now succeeds, but we follow the typedef return type through to - # const char *, and thus don't invoke the Summary formatter. - - # clang's libstdc++ on ios arm64 inlines std::string::c_str() always; - # skip this part of the test. - triple = self.dbg.GetSelectedPlatform().GetTriple() - do_cstr_test = True - if triple == "arm64-apple-ios" or triple == "arm64-apple-tvos" or triple == "armv7k-apple-watchos" or triple == "arm64-apple-bridgeos": - do_cstr_test = False - if do_cstr_test: - self.expect("print str.c_str()", - substrs=['Hello world']) diff --git a/packages/Python/lldbsuite/test/expression_command/call-function/TestCallStopAndContinue.py b/packages/Python/lldbsuite/test/expression_command/call-function/TestCallStopAndContinue.py deleted file mode 100644 index d832983bdb64..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/call-function/TestCallStopAndContinue.py +++ /dev/null @@ -1,53 +0,0 @@ -""" -Test calling a function, stopping in the call, continue and gather the result on stop. -""" - -from __future__ import print_function - - -import lldb -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class ExprCommandCallStopContinueTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - # Find the line number to break for main.c. - self.line = line_number( - 'main.cpp', - '// Please test these expressions while stopped at this line:') - self.func_line = line_number('main.cpp', '{5, "five"}') - - def test(self): - """Test gathering result from interrupted function call.""" - self.build() - self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET) - - # Some versions of GCC encode two locations for the 'return' statement - # in main.cpp - lldbutil.run_break_set_by_file_and_line( - self, "main.cpp", self.line, num_expected_locations=-1, loc_exact=True) - - self.runCmd("run", RUN_SUCCEEDED) - - lldbutil.run_break_set_by_file_and_line( - self, - "main.cpp", - self.func_line, - num_expected_locations=-1, - loc_exact=True) - - self.expect("expr -i false -- returnsFive()", error=True, - substrs=['Execution was interrupted, reason: breakpoint']) - - self.runCmd("continue", "Continue completed") - self.expect( - "thread list", - substrs=[ - 'stop reason = User Expression thread plan', - r'Completed expression: (Five) $0 = (number = 5, name = "five")']) diff --git a/packages/Python/lldbsuite/test/expression_command/call-function/TestCallUserDefinedFunction.py b/packages/Python/lldbsuite/test/expression_command/call-function/TestCallUserDefinedFunction.py deleted file mode 100644 index 0eb7086b6160..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/call-function/TestCallUserDefinedFunction.py +++ /dev/null @@ -1,58 +0,0 @@ -""" -Test calling user defined functions using expression evaluation. - -Note: - LLDBs current first choice of evaluating functions is using the IR interpreter, - which is only supported on Hexagon. Otherwise JIT is used for the evaluation. - -""" - -from __future__ import print_function - - -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class ExprCommandCallUserDefinedFunction(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - # Find the line number to break for main.c. - self.line = line_number( - 'main.cpp', - '// Please test these expressions while stopped at this line:') - - def test(self): - """Test return values of user defined function calls.""" - self.build() - - # Set breakpoint in main and run exe - self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET) - lldbutil.run_break_set_by_file_and_line( - self, "main.cpp", self.line, num_expected_locations=-1, loc_exact=True) - - self.runCmd("run", RUN_SUCCEEDED) - - # Test recursive function call. - self.expect("expr fib(5)", substrs=['$0 = 5']) - - # Test function with more than one paramter - self.expect("expr add(4,8)", substrs=['$1 = 12']) - - # Test nesting function calls in function paramters - self.expect("expr add(add(5,2),add(3,4))", substrs=['$2 = 14']) - self.expect("expr add(add(5,2),fib(5))", substrs=['$3 = 12']) - - # Test function with pointer paramter - self.expect( - "exp stringCompare((const char*) \"Hello world\")", - substrs=['$4 = true']) - self.expect( - "exp stringCompare((const char*) \"Hellworld\")", - substrs=['$5 = false']) diff --git a/packages/Python/lldbsuite/test/expression_command/call-function/main.cpp b/packages/Python/lldbsuite/test/expression_command/call-function/main.cpp deleted file mode 100644 index cc5f52dbf567..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/call-function/main.cpp +++ /dev/null @@ -1,53 +0,0 @@ -#include <iostream> -#include <string> -#include <cstring> - -struct Five -{ - int number; - const char *name; -}; - -Five -returnsFive() -{ - Five my_five = {5, "five"}; - return my_five; -} - -unsigned int -fib(unsigned int n) -{ - if (n < 2) - return n; - else - return fib(n - 1) + fib(n - 2); -} - -int -add(int a, int b) -{ - return a + b; -} - -bool -stringCompare(const char *str) -{ - if (strcmp( str, "Hello world" ) == 0) - return true; - else - return false; -} - -int main (int argc, char const *argv[]) -{ - std::string str = "Hello world"; - std::cout << str << std::endl; - std::cout << str.c_str() << std::endl; - Five main_five = returnsFive(); -#if 0 - print str - print str.c_str() -#endif - return 0; // Please test these expressions while stopped at this line: -} diff --git a/packages/Python/lldbsuite/test/expression_command/call-overridden-method/Makefile b/packages/Python/lldbsuite/test/expression_command/call-overridden-method/Makefile deleted file mode 100644 index 9d4f3b7f1412..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/call-overridden-method/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := main.cpp - -include $(LEVEL)/Makefile.rules - -clean:: - rm -rf $(wildcard *.o *.d *.dSYM) diff --git a/packages/Python/lldbsuite/test/expression_command/call-overridden-method/TestCallOverriddenMethod.py b/packages/Python/lldbsuite/test/expression_command/call-overridden-method/TestCallOverriddenMethod.py deleted file mode 100644 index 1e61aa9f46e0..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/call-overridden-method/TestCallOverriddenMethod.py +++ /dev/null @@ -1,49 +0,0 @@ -""" -Test calling an overriden method. - -Note: - This verifies that LLDB is correctly building the method overrides table. - If this table is not built correctly then calls to overridden methods in - derived classes may generate references to non-existant vtable entries, - as the compiler treats the overridden method as a totally new virtual - method definition. - <rdar://problem/14205774> - -""" - -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class ExprCommandCallOverriddenMethod(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - # Find the line number to break for main.c. - self.line = line_number('main.cpp', '// Set breakpoint here') - - @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr21765") - def test(self): - """Test calls to overridden methods in derived classes.""" - self.build() - - # Set breakpoint in main and run exe - self.runCmd("file " + self.getBuildArtifact("a.out"), - CURRENT_EXECUTABLE_SET) - lldbutil.run_break_set_by_file_and_line( - self, "main.cpp", self.line, num_expected_locations=-1, loc_exact=True) - - self.runCmd("run", RUN_SUCCEEDED) - - # Test call to method in base class (this should always work as the base - # class method is never an override). - self.expect("expr b->foo()") - - # Test call to overridden method in derived class (this will fail if the - # overrides table is not correctly set up, as Derived::foo will be assigned - # a vtable entry that does not exist in the compiled program). - self.expect("expr d.foo()") diff --git a/packages/Python/lldbsuite/test/expression_command/call-overridden-method/main.cpp b/packages/Python/lldbsuite/test/expression_command/call-overridden-method/main.cpp deleted file mode 100644 index 54ae705d2978..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/call-overridden-method/main.cpp +++ /dev/null @@ -1,16 +0,0 @@ -class Base { -public: - virtual ~Base() {} - virtual void foo() {} -}; - -class Derived : public Base { -public: - virtual void foo() {} -}; - -int main() { - Derived d; - Base *b = &d; - return 0; // Set breakpoint here -} diff --git a/packages/Python/lldbsuite/test/expression_command/call-restarts/Makefile b/packages/Python/lldbsuite/test/expression_command/call-restarts/Makefile deleted file mode 100644 index 1c93ae1de439..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/call-restarts/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -C_SOURCES := lotta-signals.c - -include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/expression_command/call-restarts/TestCallThatRestarts.py b/packages/Python/lldbsuite/test/expression_command/call-restarts/TestCallThatRestarts.py deleted file mode 100644 index 1182b156e80c..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/call-restarts/TestCallThatRestarts.py +++ /dev/null @@ -1,166 +0,0 @@ -""" -Test calling a function that hits a signal set to auto-restart, make sure the call completes. -""" - -from __future__ import print_function - - -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class ExprCommandThatRestartsTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - NO_DEBUG_INFO_TESTCASE = True - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - - self.main_source = "lotta-signals.c" - self.main_source_spec = lldb.SBFileSpec(self.main_source) - - @skipIfFreeBSD # llvm.org/pr19246: intermittent failure - @skipIfDarwin # llvm.org/pr19246: intermittent failure - @skipIfWindows # Test relies on signals, unsupported on Windows - @expectedFlakeyAndroid(bugnumber="llvm.org/pr19246") - def test(self): - """Test calling function that hits a signal and restarts.""" - self.build() - self.call_function() - - def check_after_call(self, num_sigchld): - after_call = self.sigchld_no.GetValueAsSigned(-1) - self.assertTrue( - after_call - - self.start_sigchld_no == num_sigchld, - "Really got %d SIGCHLD signals through the call." % - (num_sigchld)) - self.start_sigchld_no = after_call - - # Check that we are back where we were before: - frame = self.thread.GetFrameAtIndex(0) - self.assertTrue( - self.orig_frame_pc == frame.GetPC(), - "Restored the zeroth frame correctly") - - def call_function(self): - (target, process, self.thread, bkpt) = lldbutil.run_to_source_breakpoint(self, - 'Stop here in main.', self.main_source_spec) - - # Make sure the SIGCHLD behavior is pass/no-stop/no-notify: - return_obj = lldb.SBCommandReturnObject() - self.dbg.GetCommandInterpreter().HandleCommand( - "process handle SIGCHLD -s 0 -p 1 -n 0", return_obj) - self.assertTrue(return_obj.Succeeded(), "Set SIGCHLD to pass, no-stop") - - # The sigchld_no variable should be 0 at this point. - self.sigchld_no = target.FindFirstGlobalVariable("sigchld_no") - self.assertTrue( - self.sigchld_no.IsValid(), - "Got a value for sigchld_no") - - self.start_sigchld_no = self.sigchld_no.GetValueAsSigned(-1) - self.assertTrue( - self.start_sigchld_no != -1, - "Got an actual value for sigchld_no") - - options = lldb.SBExpressionOptions() - # processing 30 signals takes a while, increase the expression timeout - # a bit - options.SetTimeoutInMicroSeconds(3000000) # 3s - options.SetUnwindOnError(True) - - frame = self.thread.GetFrameAtIndex(0) - # Store away the PC to check that the functions unwind to the right - # place after calls - self.orig_frame_pc = frame.GetPC() - - num_sigchld = 30 - value = frame.EvaluateExpression( - "call_me (%d)" % - (num_sigchld), options) - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Success()) - self.assertTrue(value.GetValueAsSigned(-1) == num_sigchld) - - self.check_after_call(num_sigchld) - - # Okay, now try with a breakpoint in the called code in the case where - # we are ignoring breakpoint hits. - handler_bkpt = target.BreakpointCreateBySourceRegex( - "Got sigchld %d.", self.main_source_spec) - self.assertTrue(handler_bkpt.GetNumLocations() > 0) - options.SetIgnoreBreakpoints(True) - options.SetUnwindOnError(True) - - value = frame.EvaluateExpression( - "call_me (%d)" % - (num_sigchld), options) - - self.assertTrue(value.IsValid() and value.GetError().Success()) - self.assertTrue(value.GetValueAsSigned(-1) == num_sigchld) - self.check_after_call(num_sigchld) - - # Now set the signal to print but not stop and make sure that calling - # still works: - self.dbg.GetCommandInterpreter().HandleCommand( - "process handle SIGCHLD -s 0 -p 1 -n 1", return_obj) - self.assertTrue( - return_obj.Succeeded(), - "Set SIGCHLD to pass, no-stop, notify") - - value = frame.EvaluateExpression( - "call_me (%d)" % - (num_sigchld), options) - - self.assertTrue(value.IsValid() and value.GetError().Success()) - self.assertTrue(value.GetValueAsSigned(-1) == num_sigchld) - self.check_after_call(num_sigchld) - - # Now set this unwind on error to false, and make sure that we still - # complete the call: - options.SetUnwindOnError(False) - value = frame.EvaluateExpression( - "call_me (%d)" % - (num_sigchld), options) - - self.assertTrue(value.IsValid() and value.GetError().Success()) - self.assertTrue(value.GetValueAsSigned(-1) == num_sigchld) - self.check_after_call(num_sigchld) - - # Okay, now set UnwindOnError to true, and then make the signal behavior to stop - # and see that now we do stop at the signal point: - - self.dbg.GetCommandInterpreter().HandleCommand( - "process handle SIGCHLD -s 1 -p 1 -n 1", return_obj) - self.assertTrue( - return_obj.Succeeded(), - "Set SIGCHLD to pass, stop, notify") - - value = frame.EvaluateExpression( - "call_me (%d)" % - (num_sigchld), options) - self.assertTrue( - value.IsValid() and value.GetError().Success() == False) - - # Set signal handling back to no-stop, and continue and we should end - # up back in out starting frame: - self.dbg.GetCommandInterpreter().HandleCommand( - "process handle SIGCHLD -s 0 -p 1 -n 1", return_obj) - self.assertTrue( - return_obj.Succeeded(), - "Set SIGCHLD to pass, no-stop, notify") - - error = process.Continue() - self.assertTrue( - error.Success(), - "Continuing after stopping for signal succeeds.") - - frame = self.thread.GetFrameAtIndex(0) - self.assertTrue( - frame.GetPC() == self.orig_frame_pc, - "Continuing returned to the place we started.") diff --git a/packages/Python/lldbsuite/test/expression_command/call-restarts/lotta-signals.c b/packages/Python/lldbsuite/test/expression_command/call-restarts/lotta-signals.c deleted file mode 100644 index f5c15b41e2de..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/call-restarts/lotta-signals.c +++ /dev/null @@ -1,61 +0,0 @@ -#include <unistd.h> -#include <stdio.h> -#include <signal.h> - -static int sigchld_no; -static int nosig_no; -static int weird_value; - -void -sigchld_handler (int signo) -{ - sigchld_no++; - printf ("Got sigchld %d.\n", sigchld_no); -} - -int -call_me (int some_value) -{ - int ret_val = 0; - int i; - for (i = 0; i < some_value; i++) - { - int result = 0; - if (i%2 == 0) - result = kill (getpid(), SIGCHLD); - else - sigchld_no++; - - usleep(1000); - if (result == 0) - ret_val++; - } - usleep (10000); - return ret_val; -} - -int -call_me_nosig (int some_value) -{ - int ret_val = 0; - int i; - for (i = 0; i < some_value; i++) - weird_value += i % 4; - - nosig_no += some_value; - return some_value; -} - -int -main () -{ - int ret_val; - signal (SIGCHLD, sigchld_handler); - - ret_val = call_me (2); // Stop here in main. - - ret_val = call_me_nosig (10); - - return 0; - -} diff --git a/packages/Python/lldbsuite/test/expression_command/call-throws/Makefile b/packages/Python/lldbsuite/test/expression_command/call-throws/Makefile deleted file mode 100644 index ac07b31c48cc..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/call-throws/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -LEVEL = ../../make - -OBJC_SOURCES := call-throws.m - -include $(LEVEL)/Makefile.rules -LDFLAGS += -framework Foundation diff --git a/packages/Python/lldbsuite/test/expression_command/call-throws/TestCallThatThrows.py b/packages/Python/lldbsuite/test/expression_command/call-throws/TestCallThatThrows.py deleted file mode 100644 index c6b90ba5ba02..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/call-throws/TestCallThatThrows.py +++ /dev/null @@ -1,104 +0,0 @@ -""" -Test calling a function that throws an ObjC exception, make sure that it doesn't propagate the exception. -""" - -from __future__ import print_function - - -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class ExprCommandWithThrowTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - - self.main_source = "call-throws.m" - self.main_source_spec = lldb.SBFileSpec(self.main_source) - - @skipUnlessDarwin - def test(self): - """Test calling a function that throws and ObjC exception.""" - self.build() - self.call_function() - - def check_after_call(self): - # Check that we are back where we were before: - frame = self.thread.GetFrameAtIndex(0) - self.assertTrue( - self.orig_frame_pc == frame.GetPC(), - "Restored the zeroth frame correctly") - - def call_function(self): - """Test calling function that throws.""" - (target, process, self.thread, bkpt) = lldbutil.run_to_source_breakpoint(self, - 'I am about to throw.', self.main_source_spec) - - options = lldb.SBExpressionOptions() - options.SetUnwindOnError(True) - - frame = self.thread.GetFrameAtIndex(0) - # Store away the PC to check that the functions unwind to the right - # place after calls - self.orig_frame_pc = frame.GetPC() - - value = frame.EvaluateExpression("[my_class callMeIThrow]", options) - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Success() == False) - - self.check_after_call() - - # Okay, now try with a breakpoint in the called code in the case where - # we are ignoring breakpoint hits. - handler_bkpt = target.BreakpointCreateBySourceRegex( - "I felt like it", self.main_source_spec) - self.assertTrue(handler_bkpt.GetNumLocations() > 0) - options.SetIgnoreBreakpoints(True) - options.SetUnwindOnError(True) - - value = frame.EvaluateExpression("[my_class callMeIThrow]", options) - - self.assertTrue( - value.IsValid() and value.GetError().Success() == False) - self.check_after_call() - - # Now set the ObjC language breakpoint and make sure that doesn't - # interfere with the call: - exception_bkpt = target.BreakpointCreateForException( - lldb.eLanguageTypeObjC, False, True) - self.assertTrue(exception_bkpt.GetNumLocations() > 0) - - options.SetIgnoreBreakpoints(True) - options.SetUnwindOnError(True) - - value = frame.EvaluateExpression("[my_class callMeIThrow]", options) - - self.assertTrue( - value.IsValid() and value.GetError().Success() == False) - self.check_after_call() - - # Now turn off exception trapping, and call a function that catches the exceptions, - # and make sure the function actually completes, and we get the right - # value: - options.SetTrapExceptions(False) - value = frame.EvaluateExpression("[my_class iCatchMyself]", options) - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Success()) - self.assertTrue(value.GetValueAsUnsigned() == 57) - self.check_after_call() - options.SetTrapExceptions(True) - - # Now set this unwind on error to false, and make sure that we stop - # where the exception was thrown - options.SetUnwindOnError(False) - value = frame.EvaluateExpression("[my_class callMeIThrow]", options) - - self.assertTrue( - value.IsValid() and value.GetError().Success() == False) - self.check_after_call() diff --git a/packages/Python/lldbsuite/test/expression_command/call-throws/call-throws.m b/packages/Python/lldbsuite/test/expression_command/call-throws/call-throws.m deleted file mode 100644 index a184718be7dd..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/call-throws/call-throws.m +++ /dev/null @@ -1,47 +0,0 @@ -#import <Foundation/Foundation.h> - -@interface MyClass : NSObject -{ -} -- (int) callMeIThrow; -- (int) iCatchMyself; -@end - -@implementation MyClass -- (int) callMeIThrow -{ - NSException *e = [NSException - exceptionWithName:@"JustForTheHeckOfItException" - reason:@"I felt like it" - userInfo:nil]; - @throw e; - return 56; -} - -- (int) iCatchMyself -{ - int return_value = 55; - @try - { - return_value = [self callMeIThrow]; - } - @catch (NSException *e) - { - return_value = 57; - } - return return_value; -} -@end - -int -main () -{ - int return_value; - MyClass *my_class = [[MyClass alloc] init]; - - NSLog (@"I am about to throw."); - - return_value = [my_class iCatchMyself]; - - return return_value; -} diff --git a/packages/Python/lldbsuite/test/expression_command/char/Makefile b/packages/Python/lldbsuite/test/expression_command/char/Makefile deleted file mode 100644 index 8a7102e347af..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/char/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := main.cpp - -include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/expression_command/char/TestExprsChar.py b/packages/Python/lldbsuite/test/expression_command/char/TestExprsChar.py deleted file mode 100644 index a9679b7dd368..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/char/TestExprsChar.py +++ /dev/null @@ -1,67 +0,0 @@ -from __future__ import print_function - - -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class ExprCharTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - - self.main_source = "main.cpp" - self.main_source_spec = lldb.SBFileSpec(self.main_source) - - def do_test(self, dictionary=None): - """These basic expression commands should work as expected.""" - self.build(dictionary=dictionary) - - (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(self, - '// Break here', self.main_source_spec) - frame = thread.GetFrameAtIndex(0) - - value = frame.EvaluateExpression("foo(c)") - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Success()) - self.assertEqual(value.GetValueAsSigned(0), 1) - - value = frame.EvaluateExpression("foo(sc)") - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Success()) - self.assertEqual(value.GetValueAsSigned(0), 2) - - value = frame.EvaluateExpression("foo(uc)") - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Success()) - self.assertEqual(value.GetValueAsSigned(0), 3) - - def test_default_char(self): - self.do_test() - - @expectedFailureAll( - archs=[ - "arm", - "aarch64", - "powerpc64le", - "s390x"], - bugnumber="llvm.org/pr23069") - def test_signed_char(self): - self.do_test(dictionary={'CFLAGS_EXTRAS': '-fsigned-char'}) - - @expectedFailureAll( - archs=[ - "i[3-6]86", - "x86_64", - "arm64", - 'armv7', - 'armv7k'], - bugnumber="llvm.org/pr23069, <rdar://problem/28721938>") - @expectedFailureAll(triple='mips*', bugnumber="llvm.org/pr23069") - def test_unsigned_char(self): - self.do_test(dictionary={'CFLAGS_EXTRAS': '-funsigned-char'}) diff --git a/packages/Python/lldbsuite/test/expression_command/char/main.cpp b/packages/Python/lldbsuite/test/expression_command/char/main.cpp deleted file mode 100644 index c8b0beb1b355..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/char/main.cpp +++ /dev/null @@ -1,10 +0,0 @@ -int foo(char c) { return 1; } -int foo(signed char c) { return 2; } -int foo(unsigned char c) { return 3; } - -int main() { - char c = 0; - signed char sc = 0; - unsigned char uc = 0; - return 0; // Break here -} diff --git a/packages/Python/lldbsuite/test/expression_command/completion/.categories b/packages/Python/lldbsuite/test/expression_command/completion/.categories deleted file mode 100644 index 3a3f4df6416b..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/completion/.categories +++ /dev/null @@ -1 +0,0 @@ -cmdline diff --git a/packages/Python/lldbsuite/test/expression_command/completion/Makefile b/packages/Python/lldbsuite/test/expression_command/completion/Makefile deleted file mode 100644 index 6fc26a9193f0..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/completion/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := main.cpp other.cpp - -include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/expression_command/completion/TestExprCompletion.py b/packages/Python/lldbsuite/test/expression_command/completion/TestExprCompletion.py deleted file mode 100644 index 536b9e0abcdd..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/completion/TestExprCompletion.py +++ /dev/null @@ -1,257 +0,0 @@ -""" -Test the lldb command line completion mechanism for the 'expr' command. -""" - -from __future__ import print_function - -import random -import os -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbplatform -from lldbsuite.test import lldbutil - -class CommandLineExprCompletionTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - NO_DEBUG_INFO_TESTCASE = True - - def test_expr_completion(self): - self.build() - self.main_source = "main.cpp" - self.main_source_spec = lldb.SBFileSpec(self.main_source) - self.dbg.CreateTarget(self.getBuildArtifact("a.out")) - - # Try the completion before we have a context to complete on. - self.assume_no_completions('expr some_expr') - self.assume_no_completions('expr ') - self.assume_no_completions('expr f') - - - (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(self, - '// Break here', self.main_source_spec) - - # Completing member functions - self.complete_exactly('expr some_expr.FooNoArgs', - 'expr some_expr.FooNoArgsBar()') - self.complete_exactly('expr some_expr.FooWithArgs', - 'expr some_expr.FooWithArgsBar(') - self.complete_exactly('expr some_expr.FooWithMultipleArgs', - 'expr some_expr.FooWithMultipleArgsBar(') - self.complete_exactly('expr some_expr.FooUnderscore', - 'expr some_expr.FooUnderscoreBar_()') - self.complete_exactly('expr some_expr.FooNumbers', - 'expr some_expr.FooNumbersBar1()') - self.complete_exactly('expr some_expr.StaticMemberMethod', - 'expr some_expr.StaticMemberMethodBar()') - - # Completing static functions - self.complete_exactly('expr Expr::StaticMemberMethod', - 'expr Expr::StaticMemberMethodBar()') - - # Completing member variables - self.complete_exactly('expr some_expr.MemberVariab', - 'expr some_expr.MemberVariableBar') - - # Multiple completions - self.completions_contain('expr some_expr.', - ['some_expr.FooNumbersBar1()', - 'some_expr.FooUnderscoreBar_()', - 'some_expr.FooWithArgsBar(', - 'some_expr.MemberVariableBar']) - - self.completions_contain('expr some_expr.Foo', - ['some_expr.FooNumbersBar1()', - 'some_expr.FooUnderscoreBar_()', - 'some_expr.FooWithArgsBar(']) - - self.completions_contain('expr ', - ['static_cast', - 'reinterpret_cast', - 'dynamic_cast']) - - self.completions_contain('expr 1 + ', - ['static_cast', - 'reinterpret_cast', - 'dynamic_cast']) - - # Completion expr without spaces - # This is a bit awkward looking for the user, but that's how - # the completion API works at the moment. - self.completions_contain('expr 1+', - ['1+some_expr', "1+static_cast"]) - - # Test with spaces - self.complete_exactly('expr some_expr .FooNoArgs', - 'expr some_expr .FooNoArgsBar()') - self.complete_exactly('expr some_expr .FooNoArgs', - 'expr some_expr .FooNoArgsBar()') - self.complete_exactly('expr some_expr .FooNoArgs', - 'expr some_expr .FooNoArgsBar()') - self.complete_exactly('expr some_expr. FooNoArgs', - 'expr some_expr. FooNoArgsBar()') - self.complete_exactly('expr some_expr . FooNoArgs', - 'expr some_expr . FooNoArgsBar()') - self.complete_exactly('expr Expr :: StaticMemberMethod', - 'expr Expr :: StaticMemberMethodBar()') - self.complete_exactly('expr Expr ::StaticMemberMethod', - 'expr Expr ::StaticMemberMethodBar()') - self.complete_exactly('expr Expr:: StaticMemberMethod', - 'expr Expr:: StaticMemberMethodBar()') - - # Test that string literals don't break our parsing logic. - self.complete_exactly('expr const char *cstr = "some_e"; char c = *cst', - 'expr const char *cstr = "some_e"; char c = *cstr') - self.complete_exactly('expr const char *cstr = "some_e" ; char c = *cst', - 'expr const char *cstr = "some_e" ; char c = *cstr') - # Requesting completions inside an incomplete string doesn't provide any - # completions. - self.complete_exactly('expr const char *cstr = "some_e', - 'expr const char *cstr = "some_e') - - # Completing inside double dash should do nothing - self.assume_no_completions('expr -i0 -- some_expr.', 10) - self.assume_no_completions('expr -i0 -- some_expr.', 11) - - # Test with expr arguments - self.complete_exactly('expr -i0 -- some_expr .FooNoArgs', - 'expr -i0 -- some_expr .FooNoArgsBar()') - self.complete_exactly('expr -i0 -- some_expr .FooNoArgs', - 'expr -i0 -- some_expr .FooNoArgsBar()') - - # Addrof and deref - self.complete_exactly('expr (*(&some_expr)).FooNoArgs', - 'expr (*(&some_expr)).FooNoArgsBar()') - self.complete_exactly('expr (*(&some_expr)) .FooNoArgs', - 'expr (*(&some_expr)) .FooNoArgsBar()') - self.complete_exactly('expr (* (&some_expr)) .FooNoArgs', - 'expr (* (&some_expr)) .FooNoArgsBar()') - self.complete_exactly('expr (* (& some_expr)) .FooNoArgs', - 'expr (* (& some_expr)) .FooNoArgsBar()') - - # Addrof and deref (part 2) - self.complete_exactly('expr (&some_expr)->FooNoArgs', - 'expr (&some_expr)->FooNoArgsBar()') - self.complete_exactly('expr (&some_expr) ->FooNoArgs', - 'expr (&some_expr) ->FooNoArgsBar()') - self.complete_exactly('expr (&some_expr) -> FooNoArgs', - 'expr (&some_expr) -> FooNoArgsBar()') - self.complete_exactly('expr (&some_expr)-> FooNoArgs', - 'expr (&some_expr)-> FooNoArgsBar()') - - # Builtin arg - self.complete_exactly('expr static_ca', - 'expr static_cast') - - # From other files - self.complete_exactly('expr fwd_decl_ptr->Hidden', - 'expr fwd_decl_ptr->HiddenMember') - - - # Types - self.complete_exactly('expr LongClassNa', - 'expr LongClassName') - self.complete_exactly('expr LongNamespaceName::NestedCla', - 'expr LongNamespaceName::NestedClass') - - # Namespaces - self.complete_exactly('expr LongNamespaceNa', - 'expr LongNamespaceName::') - - # Multiple arguments - self.complete_exactly('expr &some_expr + &some_e', - 'expr &some_expr + &some_expr') - self.complete_exactly('expr SomeLongVarNameWithCapitals + SomeLongVarName', - 'expr SomeLongVarNameWithCapitals + SomeLongVarNameWithCapitals') - self.complete_exactly('expr SomeIntVar + SomeIntV', - 'expr SomeIntVar + SomeIntVar') - - # Multiple statements - self.complete_exactly('expr long LocalVariable = 0; LocalVaria', - 'expr long LocalVariable = 0; LocalVariable') - - # Custom Decls - self.complete_exactly('expr auto l = [](int LeftHandSide, int bx){ return LeftHandS', - 'expr auto l = [](int LeftHandSide, int bx){ return LeftHandSide') - self.complete_exactly('expr struct LocalStruct { long MemberName; } ; LocalStruct S; S.Mem', - 'expr struct LocalStruct { long MemberName; } ; LocalStruct S; S.MemberName') - - # Completing function call arguments - self.complete_exactly('expr some_expr.FooWithArgsBar(some_exp', - 'expr some_expr.FooWithArgsBar(some_expr') - self.complete_exactly('expr some_expr.FooWithArgsBar(SomeIntV', - 'expr some_expr.FooWithArgsBar(SomeIntVar') - self.complete_exactly('expr some_expr.FooWithMultipleArgsBar(SomeIntVar, SomeIntVa', - 'expr some_expr.FooWithMultipleArgsBar(SomeIntVar, SomeIntVar') - - # Function return values - self.complete_exactly('expr some_expr.Self().FooNoArgs', - 'expr some_expr.Self().FooNoArgsBar()') - self.complete_exactly('expr some_expr.Self() .FooNoArgs', - 'expr some_expr.Self() .FooNoArgsBar()') - self.complete_exactly('expr some_expr.Self(). FooNoArgs', - 'expr some_expr.Self(). FooNoArgsBar()') - - def test_expr_completion_with_descriptions(self): - self.build() - self.main_source = "main.cpp" - self.main_source_spec = lldb.SBFileSpec(self.main_source) - self.dbg.CreateTarget(self.getBuildArtifact("a.out")) - - (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(self, - '// Break here', self.main_source_spec) - - self.check_completion_with_desc("expr ", [ - # VarDecls have their type as description. - ["some_expr", "Expr &"], - # builtin types have no description. - ["int", ""], - ["float", ""] - ]) - self.check_completion_with_desc("expr some_expr.", [ - # Functions have their signature as description. - ["some_expr.Self()", "Expr &Self()"], - ["some_expr.operator=(", "inline Expr &operator=(const Expr &)"], - ["some_expr.FooNumbersBar1()", "int FooNumbersBar1()"], - ["some_expr.StaticMemberMethodBar()", "static int StaticMemberMethodBar()"], - ["some_expr.FooWithArgsBar(", "int FooWithArgsBar(int)"], - ["some_expr.FooNoArgsBar()", "int FooNoArgsBar()"], - ["some_expr.FooUnderscoreBar_()", "int FooUnderscoreBar_()"], - ["some_expr.FooWithMultipleArgsBar(", "int FooWithMultipleArgsBar(int, int)"], - ["some_expr.~Expr()", "inline ~Expr()"], - # FieldDecls have their type as description. - ["some_expr.MemberVariableBar", "int"], - ]) - - def assume_no_completions(self, str_input, cursor_pos = None): - interp = self.dbg.GetCommandInterpreter() - match_strings = lldb.SBStringList() - if cursor_pos is None: - cursor_pos = len(str_input) - num_matches = interp.HandleCompletion(str_input, cursor_pos, 0, -1, match_strings) - - available_completions = [] - for m in match_strings: - available_completions.append(m) - - self.assertEquals(num_matches, 0, "Got matches, but didn't expect any: " + str(available_completions)) - - def completions_contain(self, str_input, items): - interp = self.dbg.GetCommandInterpreter() - match_strings = lldb.SBStringList() - num_matches = interp.HandleCompletion(str_input, len(str_input), 0, -1, match_strings) - common_match = match_strings.GetStringAtIndex(0) - - for item in items: - found = False - for m in match_strings: - if m == item: - found = True - if not found: - # Transform match_strings to a python list with strings - available_completions = [] - for m in match_strings: - available_completions.append(m) - self.assertTrue(found, "Couldn't find completion " + item + " in completions " + str(available_completions)) diff --git a/packages/Python/lldbsuite/test/expression_command/completion/main.cpp b/packages/Python/lldbsuite/test/expression_command/completion/main.cpp deleted file mode 100644 index 908bebbebff5..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/completion/main.cpp +++ /dev/null @@ -1,35 +0,0 @@ -namespace LongNamespaceName { class NestedClass { long m; }; } - -// Defined in other.cpp, we only have a forward declaration here. -struct ForwardDecl; -extern ForwardDecl fwd_decl; - -class LongClassName { long i ; }; - -class Expr { -public: - int FooNoArgsBar() { return 1; } - int FooWithArgsBar(int i) { return i; } - int FooWithMultipleArgsBar(int i, int j) { return i + j; } - int FooUnderscoreBar_() { return 4; } - int FooNumbersBar1() { return 8; } - int MemberVariableBar = 0; - Expr &Self() { return *this; } - static int StaticMemberMethodBar() { return 82; } -}; - -int main() -{ - LongClassName a; - LongNamespaceName::NestedClass NestedFoo; - long SomeLongVarNameWithCapitals = 44; - int SomeIntVar = 33; - Expr some_expr; - some_expr.FooNoArgsBar(); - some_expr.FooWithArgsBar(1); - some_expr.FooUnderscoreBar_(); - some_expr.FooNumbersBar1(); - Expr::StaticMemberMethodBar(); - ForwardDecl *fwd_decl_ptr = &fwd_decl; - return 0; // Break here -} diff --git a/packages/Python/lldbsuite/test/expression_command/completion/other.cpp b/packages/Python/lldbsuite/test/expression_command/completion/other.cpp deleted file mode 100644 index 1f8a488639b9..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/completion/other.cpp +++ /dev/null @@ -1,4 +0,0 @@ -struct ForwardDecl { - long HiddenMemberName; -}; -ForwardDecl fwd_decl; diff --git a/packages/Python/lldbsuite/test/expression_command/dont_allow_jit/Makefile b/packages/Python/lldbsuite/test/expression_command/dont_allow_jit/Makefile deleted file mode 100644 index 50d4ab65a6ec..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/dont_allow_jit/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -LEVEL = ../../make - -C_SOURCES := main.c -CFLAGS_EXTRAS += -std=c99 - -include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/expression_command/dont_allow_jit/TestAllowJIT.py b/packages/Python/lldbsuite/test/expression_command/dont_allow_jit/TestAllowJIT.py deleted file mode 100644 index 05c67902a3ab..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/dont_allow_jit/TestAllowJIT.py +++ /dev/null @@ -1,90 +0,0 @@ -""" -Test that --allow-jit=false does disallow JITting: -""" - -from __future__ import print_function - - -import os -import time -import re -import lldb -import lldbsuite.test.lldbutil as lldbutil -from lldbsuite.test.lldbtest import * -from lldbsuite.test.decorators import * - -class TestAllowJIT(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - # If your test case doesn't stress debug info, the - # set this to true. That way it won't be run once for - # each debug info format. - NO_DEBUG_INFO_TESTCASE = True - - def test_allow_jit_expr_command(self): - """Test the --allow-jit command line flag""" - self.build() - self.main_source_file = lldb.SBFileSpec("main.c") - self.expr_cmd_test() - - def test_allow_jit_options(self): - """Test the SetAllowJIT SBExpressionOption setting""" - self.build() - self.main_source_file = lldb.SBFileSpec("main.c") - self.expr_options_test() - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - - def expr_cmd_test(self): - (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(self, - "Set a breakpoint here", self.main_source_file) - - frame = thread.GetFrameAtIndex(0) - - # First make sure we can call the function with - interp = self.dbg.GetCommandInterpreter() - self.expect("expr --allow-jit 1 -- call_me(10)", - substrs = ["(int) $", "= 18"]) - # Now make sure it fails with the "can't IR interpret message" if allow-jit is false: - self.expect("expr --allow-jit 0 -- call_me(10)", - error=True, - substrs = ["Can't run the expression locally"]) - - def expr_options_test(self): - (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(self, - "Set a breakpoint here", self.main_source_file) - - frame = thread.GetFrameAtIndex(0) - - # First make sure we can call the function with the default option set. - options = lldb.SBExpressionOptions() - # Check that the default is to allow JIT: - self.assertEqual(options.GetAllowJIT(), True, "Default is true") - - # Now use the options: - result = frame.EvaluateExpression("call_me(10)", options) - self.assertTrue(result.GetError().Success(), "expression succeeded") - self.assertEqual(result.GetValueAsSigned(), 18, "got the right value.") - - # Now disallow JIT and make sure it fails: - options.SetAllowJIT(False) - # Check that we got the right value: - self.assertEqual(options.GetAllowJIT(), False, "Got False after setting to False") - - # Again use it and ensure we fail: - result = frame.EvaluateExpression("call_me(10)", options) - self.assertTrue(result.GetError().Fail(), "expression failed with no JIT") - self.assertTrue("Can't run the expression locally" in result.GetError().GetCString(), "Got right error") - - # Finally set the allow JIT value back to true and make sure that works: - options.SetAllowJIT(True) - self.assertEqual(options.GetAllowJIT(), True, "Set back to True correctly") - - # And again, make sure this works: - result = frame.EvaluateExpression("call_me(10)", options) - self.assertTrue(result.GetError().Success(), "expression succeeded") - self.assertEqual(result.GetValueAsSigned(), 18, "got the right value.") - diff --git a/packages/Python/lldbsuite/test/expression_command/dont_allow_jit/main.c b/packages/Python/lldbsuite/test/expression_command/dont_allow_jit/main.c deleted file mode 100644 index ebd8ae11a73a..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/dont_allow_jit/main.c +++ /dev/null @@ -1,15 +0,0 @@ -#include <stdio.h> - -int -call_me(int input) -{ - return printf("I was called: %d.\n", input); -} - -int -main() -{ - int test_var = 10; - printf ("Set a breakpoint here: %d.\n", test_var); - return call_me(100); -} diff --git a/packages/Python/lldbsuite/test/expression_command/expr-in-syscall/Makefile b/packages/Python/lldbsuite/test/expression_command/expr-in-syscall/Makefile deleted file mode 100644 index 8a7102e347af..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/expr-in-syscall/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := main.cpp - -include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/expression_command/expr-in-syscall/TestExpressionInSyscall.py b/packages/Python/lldbsuite/test/expression_command/expr-in-syscall/TestExpressionInSyscall.py deleted file mode 100644 index dd31424dbbdc..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/expr-in-syscall/TestExpressionInSyscall.py +++ /dev/null @@ -1,92 +0,0 @@ -"""Test that we are able to evaluate expressions when the inferior is blocked in a syscall""" - -from __future__ import print_function - - -import os -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class ExprSyscallTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - @expectedFailureAll( - oslist=["windows"], - bugnumber="llvm.org/pr21765, getpid() does not exist on Windows") - def test_setpgid(self): - self.build() - self.expr_syscall() - - def expr_syscall(self): - exe = self.getBuildArtifact("a.out") - - # Create a target by the debugger. - target = self.dbg.CreateTarget(exe) - self.assertTrue(target, VALID_TARGET) - - listener = lldb.SBListener("my listener") - - # launch the inferior and don't wait for it to stop - self.dbg.SetAsync(True) - error = lldb.SBError() - process = target.Launch(listener, - None, # argv - None, # envp - None, # stdin_path - None, # stdout_path - None, # stderr_path - None, # working directory - 0, # launch flags - False, # Stop at entry - error) # error - - self.assertTrue(process and process.IsValid(), PROCESS_IS_VALID) - - event = lldb.SBEvent() - - # Give the child enough time to reach the syscall, - # while clearing out all the pending events. - # The last WaitForEvent call will time out after 2 seconds. - while listener.WaitForEvent(2, event): - pass - - # now the process should be running (blocked in the syscall) - self.assertEqual( - process.GetState(), - lldb.eStateRunning, - "Process is running") - - # send the process a signal - process.SendAsyncInterrupt() - while listener.WaitForEvent(2, event): - pass - - # as a result the process should stop - # in all likelihood we have stopped in the middle of the sleep() - # syscall - self.assertEqual( - process.GetState(), - lldb.eStateStopped, - PROCESS_STOPPED) - thread = process.GetSelectedThread() - - # try evaluating a couple of expressions in this state - self.expect("expr release_flag = 1", substrs=[" = 1"]) - self.expect("print (int)getpid()", - substrs=[str(process.GetProcessID())]) - - # and run the process to completion - process.Continue() - - # process all events - while listener.WaitForEvent(10, event): - new_state = lldb.SBProcess.GetStateFromEvent(event) - if new_state == lldb.eStateExited: - break - - self.assertEqual(process.GetState(), lldb.eStateExited) - self.assertEqual(process.GetExitStatus(), 0) diff --git a/packages/Python/lldbsuite/test/expression_command/expr-in-syscall/main.cpp b/packages/Python/lldbsuite/test/expression_command/expr-in-syscall/main.cpp deleted file mode 100644 index 743b69434d5f..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/expr-in-syscall/main.cpp +++ /dev/null @@ -1,12 +0,0 @@ -#include <chrono> -#include <thread> - -volatile int release_flag = 0; - -int main(int argc, char const *argv[]) -{ - while (! release_flag) // Wait for debugger to attach - std::this_thread::sleep_for(std::chrono::seconds(3)); - - return 0; -} diff --git a/packages/Python/lldbsuite/test/expression_command/fixits/Makefile b/packages/Python/lldbsuite/test/expression_command/fixits/Makefile deleted file mode 100644 index 8a7102e347af..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/fixits/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := main.cpp - -include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/expression_command/fixits/TestFixIts.py b/packages/Python/lldbsuite/test/expression_command/fixits/TestFixIts.py deleted file mode 100644 index 9aa28f77a3fd..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/fixits/TestFixIts.py +++ /dev/null @@ -1,72 +0,0 @@ -""" -Test calling an expression with errors that a FixIt can fix. -""" - -from __future__ import print_function - - -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class ExprCommandWithFixits(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - - self.main_source = "main.cpp" - self.main_source_spec = lldb.SBFileSpec(self.main_source) - - @skipUnlessDarwin - def test_with_target(self): - """Test calling expressions with errors that can be fixed by the FixIts.""" - self.build() - self.try_expressions() - - def test_with_dummy_target(self): - """Test calling expressions in the dummy target with errors that can be fixed by the FixIts.""" - ret_val = lldb.SBCommandReturnObject() - result = self.dbg.GetCommandInterpreter().HandleCommand("expression ((1 << 16) - 1))", ret_val) - self.assertEqual(result, lldb.eReturnStatusSuccessFinishResult, "The expression was successful.") - self.assertTrue("Fix-it applied" in ret_val.GetError(), "Found the applied FixIt.") - - def try_expressions(self): - """Test calling expressions with errors that can be fixed by the FixIts.""" - (target, process, self.thread, bkpt) = lldbutil.run_to_source_breakpoint(self, - 'Stop here to evaluate expressions', self.main_source_spec) - - options = lldb.SBExpressionOptions() - options.SetAutoApplyFixIts(True) - - frame = self.thread.GetFrameAtIndex(0) - - # Try with one error: - value = frame.EvaluateExpression("my_pointer.first", options) - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Success()) - self.assertTrue(value.GetValueAsUnsigned() == 10) - - # Try with two errors: - two_error_expression = "my_pointer.second->a" - value = frame.EvaluateExpression(two_error_expression, options) - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Success()) - self.assertTrue(value.GetValueAsUnsigned() == 20) - - # Now turn off the fixits, and the expression should fail: - options.SetAutoApplyFixIts(False) - value = frame.EvaluateExpression(two_error_expression, options) - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Fail()) - error_string = value.GetError().GetCString() - self.assertTrue( - error_string.find("fixed expression suggested:") != -1, - "Fix was suggested") - self.assertTrue( - error_string.find("my_pointer->second.a") != -1, - "Fix was right") diff --git a/packages/Python/lldbsuite/test/expression_command/fixits/main.cpp b/packages/Python/lldbsuite/test/expression_command/fixits/main.cpp deleted file mode 100644 index 371d8333763b..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/fixits/main.cpp +++ /dev/null @@ -1,25 +0,0 @@ -#include <stdio.h> - -struct SubStruct -{ - int a; - int b; -}; - -struct MyStruct -{ - int first; - struct SubStruct second; -}; - -int -main() -{ - struct MyStruct my_struct = {10, {20, 30}}; - struct MyStruct *my_pointer = &my_struct; - printf ("Stop here to evaluate expressions: %d %d %p\n", my_pointer->first, my_pointer->second.a, my_pointer); - return 0; -} - - - diff --git a/packages/Python/lldbsuite/test/expression_command/formatters/Makefile b/packages/Python/lldbsuite/test/expression_command/formatters/Makefile deleted file mode 100644 index 8a7102e347af..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/formatters/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := main.cpp - -include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/expression_command/formatters/TestFormatters.py b/packages/Python/lldbsuite/test/expression_command/formatters/TestFormatters.py deleted file mode 100644 index ee5c4a0ee1df..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/formatters/TestFormatters.py +++ /dev/null @@ -1,286 +0,0 @@ -""" -Test using LLDB data formatters with frozen objects coming from the expression parser. -""" - -from __future__ import print_function - - -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class ExprFormattersTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - # Find the line number to break for main.cpp. - self.line = line_number('main.cpp', - '// Stop here') - - @skipIfFreeBSD # llvm.org/pr24691 skipping to avoid crashing the test runner - @expectedFailureAll( - oslist=['freebsd'], - bugnumber='llvm.org/pr19011 Newer Clang omits C1 complete object constructor') - @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr21765") - @skipIfTargetAndroid() # skipping to avoid crashing the test runner - @expectedFailureAndroid('llvm.org/pr24691') # we hit an assertion in clang - def test(self): - """Test expr + formatters for good interoperability.""" - self.build() - - # This is the function to remove the custom formats in order to have a - # clean slate for the next test case. - def cleanup(): - self.runCmd('type summary clear', check=False) - self.runCmd('type synthetic clear', check=False) - - # Execute the cleanup function during test case tear down. - self.addTearDownHook(cleanup) - - """Test expr + formatters for good interoperability.""" - self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET) - - lldbutil.run_break_set_by_file_and_line( - self, "main.cpp", self.line, loc_exact=True) - - self.runCmd("run", RUN_SUCCEEDED) - self.runCmd("command script import formatters.py") - self.runCmd("command script import foosynth.py") - - if self.TraceOn(): - self.runCmd("frame variable foo1 --show-types") - self.runCmd("frame variable foo1.b --show-types") - self.runCmd("frame variable foo1.b.b_ref --show-types") - - self.filecheck("expression --show-types -- *(new foo(47))", __file__, - '-check-prefix=EXPR-TYPES-NEW-FOO') - # EXPR-TYPES-NEW-FOO: (foo) ${{.*}} = { - # EXPR-TYPES-NEW-FOO-NEXT: (int) a = 47 - # EXPR-TYPES-NEW-FOO-NEXT: (int *) a_ptr = 0x - # EXPR-TYPES-NEW-FOO-NEXT: (bar) b = { - # EXPR-TYPES-NEW-FOO-NEXT: (int) i = 94 - # EXPR-TYPES-NEW-FOO-NEXT: (int *) i_ptr = 0x - # EXPR-TYPES-NEW-FOO-NEXT: (baz) b = { - # EXPR-TYPES-NEW-FOO-NEXT: (int) h = 97 - # EXPR-TYPES-NEW-FOO-NEXT: (int) k = 99 - # EXPR-TYPES-NEW-FOO-NEXT: } - # EXPR-TYPES-NEW-FOO-NEXT: (baz &) b_ref = 0x - # EXPR-TYPES-NEW-FOO-NEXT: } - # EXPR-TYPES-NEW-FOO-NEXT: } - - self.runCmd("type summary add -F formatters.foo_SummaryProvider foo") - - self.expect("expression new int(12)", - substrs=['(int *) $', ' = 0x']) - - self.runCmd( - "type summary add -s \"${var%pointer} -> ${*var%decimal}\" \"int *\"") - - self.expect("expression new int(12)", - substrs=['(int *) $', '= 0x', ' -> 12']) - - self.expect("expression foo1.a_ptr", - substrs=['(int *) $', '= 0x', ' -> 13']) - - self.filecheck("expression foo1", __file__, '-check-prefix=EXPR-FOO1') - # EXPR-FOO1: (foo) $ - # EXPR-FOO1-SAME: a = 12 - # EXPR-FOO1-SAME: a_ptr = {{[0-9]+}} -> 13 - # EXPR-FOO1-SAME: i = 24 - # EXPR-FOO1-SAME: i_ptr = {{[0-9]+}} -> 25 - # EXPR-FOO1-SAME: b_ref = {{[0-9]+}} - # EXPR-FOO1-SAME: h = 27 - # EXPR-FOO1-SAME: k = 29 - - self.filecheck("expression --ptr-depth=1 -- new foo(47)", __file__, - '-check-prefix=EXPR-PTR-DEPTH1') - # EXPR-PTR-DEPTH1: (foo *) $ - # EXPR-PTR-DEPTH1-SAME: a = 47 - # EXPR-PTR-DEPTH1-SAME: a_ptr = {{[0-9]+}} -> 48 - # EXPR-PTR-DEPTH1-SAME: i = 94 - # EXPR-PTR-DEPTH1-SAME: i_ptr = {{[0-9]+}} -> 95 - - self.filecheck("expression foo2", __file__, '-check-prefix=EXPR-FOO2') - # EXPR-FOO2: (foo) $ - # EXPR-FOO2-SAME: a = 121 - # EXPR-FOO2-SAME: a_ptr = {{[0-9]+}} -> 122 - # EXPR-FOO2-SAME: i = 242 - # EXPR-FOO2-SAME: i_ptr = {{[0-9]+}} -> 243 - # EXPR-FOO2-SAME: h = 245 - # EXPR-FOO2-SAME: k = 247 - - object_name = self.res.GetOutput() - object_name = object_name[7:] - object_name = object_name[0:object_name.find(' =')] - - self.filecheck("frame variable foo2", __file__, '-check-prefix=VAR-FOO2') - # VAR-FOO2: (foo) foo2 - # VAR-FOO2-SAME: a = 121 - # VAR-FOO2-SAME: a_ptr = {{[0-9]+}} -> 122 - # VAR-FOO2-SAME: i = 242 - # VAR-FOO2-SAME: i_ptr = {{[0-9]+}} -> 243 - # VAR-FOO2-SAME: h = 245 - # VAR-FOO2-SAME: k = 247 - - # The object is the same as foo2, so use the EXPR-FOO2 checks. - self.filecheck("expression $" + object_name, __file__, - '-check-prefix=EXPR-FOO2') - - self.runCmd("type summary delete foo") - self.runCmd( - "type synthetic add --python-class foosynth.FooSyntheticProvider foo") - - self.expect("expression --show-types -- $" + object_name, - substrs=['(foo) $', ' = {', '(int) *i_ptr = 243']) - - self.runCmd("n") - self.runCmd("n") - - self.runCmd("type synthetic delete foo") - self.runCmd("type summary add -F formatters.foo_SummaryProvider foo") - - self.expect( - "expression foo2", - substrs=[ - '(foo) $', - 'a = 7777', - 'a_ptr = ', - ' -> 122', - 'i = 242', - 'i_ptr = ', - ' -> 8888']) - - self.expect("expression $" + object_name + '.a', - substrs=['7777']) - - self.expect("expression *$" + object_name + '.b.i_ptr', - substrs=['8888']) - - self.expect( - "expression $" + - object_name, - substrs=[ - '(foo) $', - 'a = 121', - 'a_ptr = ', - ' -> 122', - 'i = 242', - 'i_ptr = ', - ' -> 8888', - 'h = 245', - 'k = 247']) - - self.runCmd("type summary delete foo") - self.runCmd( - "type synthetic add --python-class foosynth.FooSyntheticProvider foo") - - self.expect("expression --show-types -- $" + object_name, - substrs=['(foo) $', ' = {', '(int) *i_ptr = 8888']) - - self.runCmd("n") - - self.runCmd("type synthetic delete foo") - self.runCmd("type summary add -F formatters.foo_SummaryProvider foo") - - self.expect( - "expression $" + - object_name, - substrs=[ - '(foo) $', - 'a = 121', - 'a_ptr = ', - ' -> 122', - 'i = 242', - 'i_ptr = ', - ' -> 8888', - 'k = 247']) - - process = self.dbg.GetSelectedTarget().GetProcess() - thread = process.GetThreadAtIndex(0) - frame = thread.GetSelectedFrame() - - frozen = frame.EvaluateExpression("$" + object_name + ".a_ptr") - - a_data = frozen.GetPointeeData() - - error = lldb.SBError() - self.assertTrue( - a_data.GetUnsignedInt32( - error, - 0) == 122, - '*a_ptr = 122') - - self.runCmd("n") - self.runCmd("n") - self.runCmd("n") - - self.expect("frame variable numbers", - substrs=['1', '2', '3', '4', '5']) - - self.expect("expression numbers", - substrs=['1', '2', '3', '4', '5']) - - frozen = frame.EvaluateExpression("&numbers") - - a_data = frozen.GetPointeeData(0, 1) - - self.assertTrue( - a_data.GetUnsignedInt32( - error, - 0) == 1, - 'numbers[0] == 1') - self.assertTrue( - a_data.GetUnsignedInt32( - error, - 4) == 2, - 'numbers[1] == 2') - self.assertTrue( - a_data.GetUnsignedInt32( - error, - 8) == 3, - 'numbers[2] == 3') - self.assertTrue( - a_data.GetUnsignedInt32( - error, - 12) == 4, - 'numbers[3] == 4') - self.assertTrue( - a_data.GetUnsignedInt32( - error, - 16) == 5, - 'numbers[4] == 5') - - frozen = frame.EvaluateExpression("numbers") - - a_data = frozen.GetData() - - self.assertTrue( - a_data.GetUnsignedInt32( - error, - 0) == 1, - 'numbers[0] == 1') - self.assertTrue( - a_data.GetUnsignedInt32( - error, - 4) == 2, - 'numbers[1] == 2') - self.assertTrue( - a_data.GetUnsignedInt32( - error, - 8) == 3, - 'numbers[2] == 3') - self.assertTrue( - a_data.GetUnsignedInt32( - error, - 12) == 4, - 'numbers[3] == 4') - self.assertTrue( - a_data.GetUnsignedInt32( - error, - 16) == 5, - 'numbers[4] == 5') diff --git a/packages/Python/lldbsuite/test/expression_command/formatters/foosynth.py b/packages/Python/lldbsuite/test/expression_command/formatters/foosynth.py deleted file mode 100644 index 7b1284d2a769..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/formatters/foosynth.py +++ /dev/null @@ -1,33 +0,0 @@ -import lldb - - -class FooSyntheticProvider: - - def __init__(self, valobj, dict): - self.valobj = valobj - self.update() - - def update(self): - self.adjust_for_architecture() - - def num_children(self): - return 1 - - def get_child_at_index(self, index): - if index != 0: - return None - return self.i_ptr.Dereference() - - def get_child_index(self, name): - if name == "*i_ptr": - return 0 - return None - - def adjust_for_architecture(self): - self.lp64 = ( - self.valobj.GetTarget().GetProcess().GetAddressByteSize() == 8) - self.is_little = (self.valobj.GetTarget().GetProcess( - ).GetByteOrder() == lldb.eByteOrderLittle) - self.pointer_size = self.valobj.GetTarget().GetProcess().GetAddressByteSize() - self.bar = self.valobj.GetChildMemberWithName('b') - self.i_ptr = self.bar.GetChildMemberWithName('i_ptr') diff --git a/packages/Python/lldbsuite/test/expression_command/formatters/formatters.py b/packages/Python/lldbsuite/test/expression_command/formatters/formatters.py deleted file mode 100644 index dae84988af9e..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/formatters/formatters.py +++ /dev/null @@ -1,17 +0,0 @@ -def foo_SummaryProvider(valobj, dict): - a = valobj.GetChildMemberWithName('a') - a_ptr = valobj.GetChildMemberWithName('a_ptr') - bar = valobj.GetChildMemberWithName('b') - i = bar.GetChildMemberWithName('i') - i_ptr = bar.GetChildMemberWithName('i_ptr') - b_ref = bar.GetChildMemberWithName('b_ref') - b_ref_ptr = b_ref.AddressOf() - b_ref = b_ref_ptr.Dereference() - h = b_ref.GetChildMemberWithName('h') - k = b_ref.GetChildMemberWithName('k') - return 'a = ' + str(a.GetValueAsUnsigned(0)) + ', a_ptr = ' + \ - str(a_ptr.GetValueAsUnsigned(0)) + ' -> ' + str(a_ptr.Dereference().GetValueAsUnsigned(0)) + \ - ', i = ' + str(i.GetValueAsUnsigned(0)) + \ - ', i_ptr = ' + str(i_ptr.GetValueAsUnsigned(0)) + ' -> ' + str(i_ptr.Dereference().GetValueAsUnsigned(0)) + \ - ', b_ref = ' + str(b_ref.GetValueAsUnsigned(0)) + \ - ', h = ' + str(h.GetValueAsUnsigned(0)) + ' , k = ' + str(k.GetValueAsUnsigned(0)) diff --git a/packages/Python/lldbsuite/test/expression_command/formatters/main.cpp b/packages/Python/lldbsuite/test/expression_command/formatters/main.cpp deleted file mode 100644 index 1b8ce48041f9..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/formatters/main.cpp +++ /dev/null @@ -1,48 +0,0 @@ -#include <iostream> -#include <string> - -struct baz - { - int h; - int k; - baz(int a, int b) : h(a), k(b) {} - }; - -struct bar - { - int i; - int* i_ptr; - baz b; - baz& b_ref; - bar(int x) : i(x),i_ptr(new int(x+1)),b(i+3,i+5),b_ref(b) {} - }; - -struct foo - { - int a; - int* a_ptr; - bar b; - - foo(int x) : a(x), - a_ptr(new int(x+1)), - b(2*x) {} - - }; - -int main(int argc, char** argv) -{ - foo foo1(12); - foo foo2(121); - - foo2.a = 7777; // Stop here - *(foo2.b.i_ptr) = 8888; - foo2.b.b.h = 9999; - - *(foo1.a_ptr) = 9999; - foo1.b.i = 9999; - - int numbers[5] = {1,2,3,4,5}; - - return 0; - -} diff --git a/packages/Python/lldbsuite/test/expression_command/ir-interpreter-phi-nodes/Makefile b/packages/Python/lldbsuite/test/expression_command/ir-interpreter-phi-nodes/Makefile deleted file mode 100644 index bf2c0b2c1087..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/ir-interpreter-phi-nodes/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make
-
-CXX_SOURCES := main.cpp
-
-include $(LEVEL)/Makefile.rules
diff --git a/packages/Python/lldbsuite/test/expression_command/ir-interpreter-phi-nodes/TestIRInterpreterPHINodes.py b/packages/Python/lldbsuite/test/expression_command/ir-interpreter-phi-nodes/TestIRInterpreterPHINodes.py deleted file mode 100644 index a5607f195052..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/ir-interpreter-phi-nodes/TestIRInterpreterPHINodes.py +++ /dev/null @@ -1,43 +0,0 @@ -""" -Test PHI nodes work in the IR interpreter. -""" - -import os -import os.path - -import lldb -from lldbsuite.test.lldbtest import * -import lldbsuite.test.lldbutil as lldbutil - - -class IRInterpreterPHINodesTestCase(TestBase): - mydir = TestBase.compute_mydir(__file__) - - def test_phi_node_support(self): - """Test support for PHI nodes in the IR interpreter.""" - - self.build() - exe = self.getBuildArtifact("a.out") - self.runCmd('file ' + exe, CURRENT_EXECUTABLE_SET) - - # Break on the first assignment to i - line = line_number('main.cpp', 'i = 5') - lldbutil.run_break_set_by_file_and_line( - self, 'main.cpp', line, num_expected_locations=1, loc_exact=True) - - self.runCmd('run', RUN_SUCCEEDED) - - # The stop reason of the thread should be breakpoint - self.expect('thread list', STOPPED_DUE_TO_BREAKPOINT, - substrs=['stopped', 'stop reason = breakpoint']) - - self.runCmd('s') - - # The logical 'or' causes a PHI node to be generated. Execute without JIT - # to test that the interpreter can handle this - self.expect('expr -j 0 -- i == 3 || i == 5', substrs=['true']) - - self.runCmd('s') - self.expect('expr -j 0 -- i == 3 || i == 5', substrs=['false']) - self.runCmd('s') - self.expect('expr -j 0 -- i == 3 || i == 5', substrs=['true']) diff --git a/packages/Python/lldbsuite/test/expression_command/ir-interpreter-phi-nodes/main.cpp b/packages/Python/lldbsuite/test/expression_command/ir-interpreter-phi-nodes/main.cpp deleted file mode 100644 index b144f9cc1b47..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/ir-interpreter-phi-nodes/main.cpp +++ /dev/null @@ -1,17 +0,0 @@ -//===-- 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 i; - i = 5; - i = 2; - i = 3; - return 0; -} diff --git a/packages/Python/lldbsuite/test/expression_command/ir-interpreter/Makefile b/packages/Python/lldbsuite/test/expression_command/ir-interpreter/Makefile deleted file mode 100644 index c4169a9b1012..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/ir-interpreter/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -LEVEL = ../../make - -default: a.out - -C_SOURCES := main.c - -include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/expression_command/ir-interpreter/TestIRInterpreter.py b/packages/Python/lldbsuite/test/expression_command/ir-interpreter/TestIRInterpreter.py deleted file mode 100644 index d8a8038c8454..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/ir-interpreter/TestIRInterpreter.py +++ /dev/null @@ -1,95 +0,0 @@ -""" -Test the IR interpreter -""" - -from __future__ import print_function - -import unittest2 - -import os -import time -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class IRInterpreterTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - NO_DEBUG_INFO_TESTCASE = True - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - # Find the line number to break for main.c. - self.line = line_number('main.c', - '// Set breakpoint here') - - # Disable confirmation prompt to avoid infinite wait - self.runCmd("settings set auto-confirm true") - self.addTearDownHook( - lambda: self.runCmd("settings clear auto-confirm")) - - def build_and_run(self): - """Test the IR interpreter""" - self.build() - - self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET) - - lldbutil.run_break_set_by_file_and_line( - self, "main.c", self.line, num_expected_locations=1, loc_exact=False) - - self.runCmd("run", RUN_SUCCEEDED) - - @add_test_categories(['pyapi']) - # getpid() is POSIX, among other problems, see bug - @expectedFailureAll( - oslist=['windows'], - bugnumber="http://llvm.org/pr21765") - @expectedFailureAll( - oslist=['linux'], - archs=['arm'], - bugnumber="llvm.org/pr27868") - def test_ir_interpreter(self): - self.build_and_run() - - options = lldb.SBExpressionOptions() - options.SetLanguage(lldb.eLanguageTypeC_plus_plus) - - set_up_expressions = ["int $i = 9", "int $j = 3", "int $k = 5"] - - expressions = ["$i + $j", - "$i - $j", - "$i * $j", - "$i / $j", - "$i % $k", - "$i << $j", - "$i & $j", - "$i | $j", - "$i ^ $j"] - - for expression in set_up_expressions: - self.frame().EvaluateExpression(expression, options) - - for expression in expressions: - interp_expression = expression - jit_expression = "(int)getpid(); " + expression - - interp_result = self.frame().EvaluateExpression( - interp_expression, options).GetValueAsSigned() - jit_result = self.frame().EvaluateExpression( - jit_expression, options).GetValueAsSigned() - - self.assertEqual( - interp_result, - jit_result, - "While evaluating " + - expression) - - def test_type_conversions(self): - target = self.dbg.GetDummyTarget() - short_val = target.EvaluateExpression("(short)-1") - self.assertEqual(short_val.GetValueAsSigned(), -1) - long_val = target.EvaluateExpression("(long) "+ short_val.GetName()) - self.assertEqual(long_val.GetValueAsSigned(), -1) diff --git a/packages/Python/lldbsuite/test/expression_command/ir-interpreter/main.c b/packages/Python/lldbsuite/test/expression_command/ir-interpreter/main.c deleted file mode 100644 index 31204b21d972..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/ir-interpreter/main.c +++ /dev/null @@ -1,7 +0,0 @@ -#include <stdio.h> - -int main() -{ - printf("This is a dummy\n"); // Set breakpoint here - return 0; -} diff --git a/packages/Python/lldbsuite/test/expression_command/issue_11588/Makefile b/packages/Python/lldbsuite/test/expression_command/issue_11588/Makefile deleted file mode 100644 index 8a7102e347af..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/issue_11588/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := main.cpp - -include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/expression_command/issue_11588/Test11588.py b/packages/Python/lldbsuite/test/expression_command/issue_11588/Test11588.py deleted file mode 100644 index 09b0eaaa2b15..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/issue_11588/Test11588.py +++ /dev/null @@ -1,69 +0,0 @@ -""" -Test the solution to issue 11581. -valobj.AddressOf() returns None when an address is -expected in a SyntheticChildrenProvider -""" - -from __future__ import print_function - - -import os -import time -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class Issue11581TestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24778") - def test_11581_commands(self): - # This is the function to remove the custom commands in order to have a - # clean slate for the next test case. - def cleanup(): - self.runCmd('type synthetic clear', check=False) - - # Execute the cleanup function during test case tear down. - self.addTearDownHook(cleanup) - - """valobj.AddressOf() should return correct values.""" - self.build() - - (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(self, - 'Set breakpoint here.', - lldb.SBFileSpec("main.cpp", False)) - self.runCmd("command script import --allow-reload s11588.py") - self.runCmd( - "type synthetic add --python-class s11588.Issue11581SyntheticProvider StgClosure") - - self.expect("expr --show-types -- *((StgClosure*)(r14-1))", - substrs=["(StgClosure) $", - "(StgClosure *) &$", "0x", - "addr = ", - "load_address = "]) - - # register r14 is an x86_64 extension let's skip this part of the test - # if we are on a different architecture - if self.getArchitecture() == 'x86_64': - target = lldb.debugger.GetSelectedTarget() - process = target.GetProcess() - frame = process.GetSelectedThread().GetSelectedFrame() - pointer = frame.FindVariable("r14") - addr = pointer.GetValueAsUnsigned(0) - self.assertTrue(addr != 0, "could not read pointer to StgClosure") - addr = addr - 1 - self.runCmd("register write r14 %d" % addr) - self.expect( - "register read r14", substrs=[ - "0x", hex(addr)[ - 2:].rstrip("L")]) # Remove trailing 'L' if it exists - self.expect("expr --show-types -- *(StgClosure*)$r14", - substrs=["(StgClosure) $", - "(StgClosure *) &$", "0x", - "addr = ", - "load_address = ", - hex(addr)[2:].rstrip("L"), - str(addr)]) diff --git a/packages/Python/lldbsuite/test/expression_command/issue_11588/main.cpp b/packages/Python/lldbsuite/test/expression_command/issue_11588/main.cpp deleted file mode 100644 index 4f9ea3abf181..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/issue_11588/main.cpp +++ /dev/null @@ -1,54 +0,0 @@ -// -// 11588.cpp -// - -#include <iostream> - -class StgInfoTable {}; - -class StgHeader -{ -private: - StgInfoTable* info; -public: - StgHeader() - { - info = new StgInfoTable(); - } - ~StgHeader() - { - delete info; - } -}; - -class StgClosure -{ -private: - StgHeader header; - StgClosure* payload[1]; -public: - StgClosure(bool make_payload = true) - { - if (make_payload) - payload[0] = new StgClosure(false); - else - payload[0] = NULL; - } - ~StgClosure() - { - if (payload[0]) - delete payload[0]; - } -}; - -typedef unsigned long long int ptr_type; - -int main() -{ - StgClosure* r14_ = new StgClosure(); - r14_ = (StgClosure*)(((ptr_type)r14_ | 0x01)); // set the LSB to 1 for tagging - ptr_type r14 = (ptr_type)r14_; - int x = 0; - x = 3; - return (x-1); // Set breakpoint here. -} diff --git a/packages/Python/lldbsuite/test/expression_command/issue_11588/s11588.py b/packages/Python/lldbsuite/test/expression_command/issue_11588/s11588.py deleted file mode 100644 index 51c20423ed36..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/issue_11588/s11588.py +++ /dev/null @@ -1,28 +0,0 @@ -class Issue11581SyntheticProvider(object): - - def __init__(self, valobj, dict): - self.valobj = valobj - self.addrOf = valobj.AddressOf() - self.addr = valobj.GetAddress() - self.load_address = valobj.GetLoadAddress() - - def num_children(self): - return 3 - - def get_child_at_index(self, index): - if index == 0: - return self.addrOf - if index == 1: - return self.valobj.CreateValueFromExpression( - "addr", str(self.addr)) - if index == 2: - return self.valobj.CreateValueFromExpression( - "load_address", str(self.load_address)) - - def get_child_index(self, name): - if name == "addrOf": - return 0 - if name == "addr": - return 1 - if name == "load_address": - return 2 diff --git a/packages/Python/lldbsuite/test/expression_command/macros/Makefile b/packages/Python/lldbsuite/test/expression_command/macros/Makefile deleted file mode 100644 index 1ecd744be14b..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/macros/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := main.cpp - -DEBUG_INFO_FLAG = -g3 - - -include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/expression_command/macros/TestMacros.py b/packages/Python/lldbsuite/test/expression_command/macros/TestMacros.py deleted file mode 100644 index 817f6cb3944a..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/macros/TestMacros.py +++ /dev/null @@ -1,131 +0,0 @@ -from __future__ import print_function - - -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class TestMacros(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - @expectedFailureAll( - compiler="clang", - bugnumber="clang does not emit .debug_macro[.dwo] sections.") - @expectedFailureAll( - debug_info="dwo", - bugnumber="GCC produces multiple .debug_macro.dwo sections and the spec is unclear as to what it means") - @expectedFailureAll( - hostoslist=["windows"], - compiler="gcc", - triple='.*-android') - def test_expr_with_macros(self): - self.build() - - # Get main source file - src_file = "main.cpp" - hdr_file = "macro1.h" - src_file_spec = lldb.SBFileSpec(src_file) - self.assertTrue(src_file_spec.IsValid(), "Main source file") - - (target, process, thread, bp1) = lldbutil.run_to_source_breakpoint( - self, "Break here", src_file_spec) - - # Get frame for current thread - frame = thread.GetSelectedFrame() - - result = frame.EvaluateExpression("MACRO_1") - self.assertTrue( - result.IsValid() and result.GetValue() == "100", - "MACRO_1 = 100") - - result = frame.EvaluateExpression("MACRO_2") - self.assertTrue( - result.IsValid() and result.GetValue() == "200", - "MACRO_2 = 200") - - result = frame.EvaluateExpression("ONE") - self.assertTrue( - result.IsValid() and result.GetValue() == "1", - "ONE = 1") - - result = frame.EvaluateExpression("TWO") - self.assertTrue( - result.IsValid() and result.GetValue() == "2", - "TWO = 2") - - result = frame.EvaluateExpression("THREE") - self.assertTrue( - result.IsValid() and result.GetValue() == "3", - "THREE = 3") - - result = frame.EvaluateExpression("FOUR") - self.assertTrue( - result.IsValid() and result.GetValue() == "4", - "FOUR = 4") - - result = frame.EvaluateExpression("HUNDRED") - self.assertTrue( - result.IsValid() and result.GetValue() == "100", - "HUNDRED = 100") - - result = frame.EvaluateExpression("THOUSAND") - self.assertTrue( - result.IsValid() and result.GetValue() == "1000", - "THOUSAND = 1000") - - result = frame.EvaluateExpression("MILLION") - self.assertTrue(result.IsValid() and result.GetValue() - == "1000000", "MILLION = 1000000") - - result = frame.EvaluateExpression("MAX(ONE, TWO)") - self.assertTrue( - result.IsValid() and result.GetValue() == "2", - "MAX(ONE, TWO) = 2") - - result = frame.EvaluateExpression("MAX(THREE, TWO)") - self.assertTrue( - result.IsValid() and result.GetValue() == "3", - "MAX(THREE, TWO) = 3") - - # Get the thread of the process - thread.StepOver() - - # Get frame for current thread - frame = thread.GetSelectedFrame() - - result = frame.EvaluateExpression("MACRO_2") - self.assertTrue( - result.GetError().Fail(), - "Printing MACRO_2 fails in the mail file") - - result = frame.EvaluateExpression("FOUR") - self.assertTrue( - result.GetError().Fail(), - "Printing FOUR fails in the main file") - - thread.StepInto() - - # Get frame for current thread - frame = thread.GetSelectedFrame() - - result = frame.EvaluateExpression("ONE") - self.assertTrue( - result.IsValid() and result.GetValue() == "1", - "ONE = 1") - - result = frame.EvaluateExpression("MAX(ONE, TWO)") - self.assertTrue( - result.IsValid() and result.GetValue() == "2", - "MAX(ONE, TWO) = 2") - - # This time, MACRO_1 and MACRO_2 are not visible. - result = frame.EvaluateExpression("MACRO_1") - self.assertTrue(result.GetError().Fail(), - "Printing MACRO_1 fails in the header file") - - result = frame.EvaluateExpression("MACRO_2") - self.assertTrue(result.GetError().Fail(), - "Printing MACRO_2 fails in the header file") diff --git a/packages/Python/lldbsuite/test/expression_command/macros/macro1.h b/packages/Python/lldbsuite/test/expression_command/macros/macro1.h deleted file mode 100644 index e026bc018ace..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/macros/macro1.h +++ /dev/null @@ -1,17 +0,0 @@ - -#include "macro2.h" - -#define ONE 1 -#define TWO 2 -#define THREE 3 -#define FOUR 4 - -class Simple -{ -public: - int - Method() - { - return ONE + TWO; - }; -}; diff --git a/packages/Python/lldbsuite/test/expression_command/macros/macro2.h b/packages/Python/lldbsuite/test/expression_command/macros/macro2.h deleted file mode 100644 index cec6efbba990..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/macros/macro2.h +++ /dev/null @@ -1,8 +0,0 @@ -#define HUNDRED 100 -#define THOUSAND 1000 -#define MILLION 1000000 - -#define MAX(a, b)\ -((a) > (b) ?\ - (a):\ - (b)) diff --git a/packages/Python/lldbsuite/test/expression_command/macros/main.cpp b/packages/Python/lldbsuite/test/expression_command/macros/main.cpp deleted file mode 100644 index f2c2c101fa15..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/macros/main.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include "macro1.h" - -#define MACRO_1 100 -#define MACRO_2 200 - -int -main () -{ - int a = ONE + TWO; // Break here - - #undef MACRO_2 - #undef FOUR - - return Simple().Method(); -} diff --git a/packages/Python/lldbsuite/test/expression_command/options/Makefile b/packages/Python/lldbsuite/test/expression_command/options/Makefile deleted file mode 100644 index 81ae6f6f16ec..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/options/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := main.cpp foo.cpp - -include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/expression_command/options/TestExprOptions.py b/packages/Python/lldbsuite/test/expression_command/options/TestExprOptions.py deleted file mode 100644 index 13bc3b7ce2ac..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/options/TestExprOptions.py +++ /dev/null @@ -1,93 +0,0 @@ -""" -Test expression command options. - -Test cases: - -o test_expr_options: - Test expression command options. -""" - -from __future__ import print_function - - -import os -import time -import lldb -import lldbsuite.test.lldbutil as lldbutil -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * - - -class ExprOptionsTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - - self.main_source = "main.cpp" - self.main_source_spec = lldb.SBFileSpec(self.main_source) - self.line = line_number('main.cpp', '// breakpoint_in_main') - self.exe = self.getBuildArtifact("a.out") - - def test_expr_options(self): - """These expression command options should work as expected.""" - self.build() - - # Set debugger into synchronous mode - self.dbg.SetAsync(False) - - (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint( - self, '// breakpoint_in_main', self.main_source_spec) - - frame = thread.GetFrameAtIndex(0) - options = lldb.SBExpressionOptions() - - # test --language on C++ expression using the SB API's - - # Make sure we can evaluate a C++11 expression. - val = frame.EvaluateExpression('foo != nullptr') - self.assertTrue(val.IsValid()) - self.assertTrue(val.GetError().Success()) - self.DebugSBValue(val) - - # Make sure it still works if language is set to C++11: - options.SetLanguage(lldb.eLanguageTypeC_plus_plus_11) - val = frame.EvaluateExpression('foo != nullptr', options) - self.assertTrue(val.IsValid()) - self.assertTrue(val.GetError().Success()) - self.DebugSBValue(val) - - # Make sure it fails if language is set to C: - options.SetLanguage(lldb.eLanguageTypeC) - val = frame.EvaluateExpression('foo != nullptr', options) - self.assertTrue(val.IsValid()) - self.assertFalse(val.GetError().Success()) - - @skipIfDarwin - def test_expr_options_lang(self): - """These expression language options should work as expected.""" - self.build() - - # Set debugger into synchronous mode - self.dbg.SetAsync(False) - - (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint( - self, '// breakpoint_in_main', self.main_source_spec) - - frame = thread.GetFrameAtIndex(0) - options = lldb.SBExpressionOptions() - - # Make sure we can retrieve `id` variable if language is set to C++11: - options.SetLanguage(lldb.eLanguageTypeC_plus_plus_11) - val = frame.EvaluateExpression('id == 0', options) - self.assertTrue(val.IsValid()) - self.assertTrue(val.GetError().Success()) - self.DebugSBValue(val) - - # Make sure we can't retrieve `id` variable if language is set to ObjC: - options.SetLanguage(lldb.eLanguageTypeObjC) - val = frame.EvaluateExpression('id == 0', options) - self.assertTrue(val.IsValid()) - self.assertFalse(val.GetError().Success()) diff --git a/packages/Python/lldbsuite/test/expression_command/options/foo.cpp b/packages/Python/lldbsuite/test/expression_command/options/foo.cpp deleted file mode 100644 index 8a5a6a2b5416..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/options/foo.cpp +++ /dev/null @@ -1,11 +0,0 @@ -namespace ns { - int func(void) - { - return 0; - } -} - -extern "C" int foo(void) -{ - return ns::func(); -} diff --git a/packages/Python/lldbsuite/test/expression_command/options/main.cpp b/packages/Python/lldbsuite/test/expression_command/options/main.cpp deleted file mode 100644 index 0d30c79bd229..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/options/main.cpp +++ /dev/null @@ -1,17 +0,0 @@ -extern "C" int foo(void); -static int static_value = 0; -static int id = 1234; - -int -bar() -{ - static_value++; - id++; - return static_value + id; -} - -int main (int argc, char const *argv[]) -{ - bar(); // breakpoint_in_main - return foo(); -} diff --git a/packages/Python/lldbsuite/test/expression_command/persist_objc_pointeetype/Makefile b/packages/Python/lldbsuite/test/expression_command/persist_objc_pointeetype/Makefile deleted file mode 100644 index 8066198300fb..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/persist_objc_pointeetype/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -LEVEL = ../../make - -OBJC_SOURCES := main.m - -include $(LEVEL)/Makefile.rules -LDFLAGS += -framework Foundation -framework CloudKit - diff --git a/packages/Python/lldbsuite/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py b/packages/Python/lldbsuite/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py deleted file mode 100644 index b6471d0f8972..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py +++ /dev/null @@ -1,51 +0,0 @@ -""" -Test that we can p *objcObject -""" - -from __future__ import print_function - - -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class PersistObjCPointeeType(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - # Find the line number to break for main.cpp. - self.line = line_number('main.m', '// break here') - - @skipUnlessDarwin - @skipIf(archs=["i386", "i686"]) - @skipIf(debug_info="gmodules", archs=['arm64', 'armv7', 'armv7k']) # compile error with gmodules for iOS - def test_with(self): - """Test that we can p *objcObject""" - self.build() - - def cleanup(): - pass - - # Execute the cleanup function during test case tear down. - self.addTearDownHook(cleanup) - - self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET) - - lldbutil.run_break_set_by_file_and_line( - self, "main.m", self.line, loc_exact=True) - - self.runCmd("run", RUN_SUCCEEDED) - - self.expect("p *self", substrs=['_sc_name = nil', - '_sc_name2 = nil', - '_sc_name3 = nil', - '_sc_name4 = nil', - '_sc_name5 = nil', - '_sc_name6 = nil', - '_sc_name7 = nil', - '_sc_name8 = nil']) diff --git a/packages/Python/lldbsuite/test/expression_command/persist_objc_pointeetype/main.m b/packages/Python/lldbsuite/test/expression_command/persist_objc_pointeetype/main.m deleted file mode 100644 index a2b6b703d6c8..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/persist_objc_pointeetype/main.m +++ /dev/null @@ -1,80 +0,0 @@ -/* -clang -g ExtendSuperclass.m -o ExtendSuperclass -framework Foundation -framework ProtectedCloudStorage -F/System/Library/PrivateFrameworks/ -framework CloudKit && ./ExtendSuperclass -*/ -#include <assert.h> -#import <Foundation/Foundation.h> -#import <CloudKit/CloudKit.h> - -#define SuperClass CKDatabase - -@interface SubClass : SuperClass -@end - -// class extension -@interface SuperClass () -@property (nonatomic, strong) NSString *_sc_name; -@property (nonatomic, strong) NSString *_sc_name2; -@property (nonatomic, strong) NSString *_sc_name3; -@property (nonatomic, strong) NSString *_sc_name4; -@property (nonatomic, strong) NSString *_sc_name5; -@property (nonatomic, strong) NSString *_sc_name6; -@property (nonatomic, strong) NSString *_sc_name7; -@property (nonatomic, strong) NSString *_sc_name8; -@end - -@implementation SuperClass (MySuperClass) -- (id)initThatDoesNotAssert -{ - return [super init]; -} -@end - -@implementation SubClass -- (id)initThatDoesNotAssert -{ - assert(_sc_name == nil); - assert(_sc_name2 == nil); - assert(_sc_name3 == nil); - assert(_sc_name4 == nil); - assert(_sc_name5 == nil); - assert(_sc_name6 == nil); - assert(_sc_name7 == nil); - assert(_sc_name8 == nil); // break here - - if ((self = [super _initWithContainer:(CKContainer*)@"foo" scope:0xff])) { - assert(_sc_name == nil); - assert(_sc_name2 == nil); - assert(_sc_name3 == nil); - assert(_sc_name4 == nil); - assert(_sc_name5 == nil); - assert(_sc_name6 == nil); - assert(_sc_name7 == nil); - assert(_sc_name8 == nil); - - _sc_name = @"empty"; - } - return self; -} -@synthesize _sc_name; -@synthesize _sc_name2; -@synthesize _sc_name3; -@synthesize _sc_name4; -@synthesize _sc_name5; -@synthesize _sc_name6; -@synthesize _sc_name7; -@synthesize _sc_name8; -- (void)foo:(NSString*)bar { self._sc_name = bar; } -- (NSString*)description { return [NSString stringWithFormat:@"%p: %@", self, self._sc_name]; } -@end - -int main() -{ - SubClass *sc = [[SubClass alloc] initThatDoesNotAssert]; - NSLog(@"%@", sc); - [sc foo:@"bar"]; - NSLog(@"%@", sc); - sc._sc_name = @"bar2"; - NSLog(@"%@", sc); - NSLog(@"%@", sc._sc_name); - return 0; -} diff --git a/packages/Python/lldbsuite/test/expression_command/persistent_ptr_update/Makefile b/packages/Python/lldbsuite/test/expression_command/persistent_ptr_update/Makefile deleted file mode 100644 index db5f575866d9..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/persistent_ptr_update/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -LEVEL = ../../make - -C_SOURCES := main.c - -include $(LEVEL)/Makefile.rules - - diff --git a/packages/Python/lldbsuite/test/expression_command/persistent_ptr_update/TestPersistentPtrUpdate.py b/packages/Python/lldbsuite/test/expression_command/persistent_ptr_update/TestPersistentPtrUpdate.py deleted file mode 100644 index 7b963b5bfcd2..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/persistent_ptr_update/TestPersistentPtrUpdate.py +++ /dev/null @@ -1,41 +0,0 @@ -""" -Test that we can have persistent pointer variables -""" - -from __future__ import print_function - - -import lldb -import lldbsuite.test.lldbutil as lldbutil -from lldbsuite.test.lldbtest import * - - -class PersistentPtrUpdateTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - - def test(self): - """Test that we can have persistent pointer variables""" - self.build() - - def cleanup(): - pass - - # Execute the cleanup function during test case tear down. - self.addTearDownHook(cleanup) - - self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET) - - self.runCmd('break set -p here') - - self.runCmd("run", RUN_SUCCEEDED) - - self.runCmd("expr void* $foo = 0") - - self.runCmd("continue") - - self.expect("expr $foo", substrs=['$foo', '0x0']) diff --git a/packages/Python/lldbsuite/test/expression_command/persistent_ptr_update/main.c b/packages/Python/lldbsuite/test/expression_command/persistent_ptr_update/main.c deleted file mode 100644 index 73346969eccc..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/persistent_ptr_update/main.c +++ /dev/null @@ -1,11 +0,0 @@ -void* foo(void *p) -{ - return p; // break here -} - -int main() { - while (1) { - foo(0); - } - return 0; -} diff --git a/packages/Python/lldbsuite/test/expression_command/persistent_types/Makefile b/packages/Python/lldbsuite/test/expression_command/persistent_types/Makefile deleted file mode 100644 index 0d70f2595019..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/persistent_types/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -C_SOURCES := main.c - -include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/expression_command/persistent_types/TestNestedPersistentTypes.py b/packages/Python/lldbsuite/test/expression_command/persistent_types/TestNestedPersistentTypes.py deleted file mode 100644 index 8630d6f41b34..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/persistent_types/TestNestedPersistentTypes.py +++ /dev/null @@ -1,44 +0,0 @@ -""" -Test that nested persistent types work. -""" - -from __future__ import print_function - - -import os -import time -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class NestedPersistentTypesTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def test_persistent_types(self): - """Test that nested persistent types work.""" - self.build() - - self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET) - - self.runCmd("breakpoint set --name main") - - self.runCmd("run", RUN_SUCCEEDED) - - self.runCmd("expression struct $foo { int a; int b; };") - - self.runCmd( - "expression struct $bar { struct $foo start; struct $foo end; };") - - self.runCmd("expression struct $bar $my_bar = {{ 2, 3 }, { 4, 5 }};") - - self.expect("expression $my_bar", - substrs=['a = 2', 'b = 3', 'a = 4', 'b = 5']) - - self.expect("expression $my_bar.start.b", - substrs=['(int)', '3']) - - self.expect("expression $my_bar.end.b", - substrs=['(int)', '5']) diff --git a/packages/Python/lldbsuite/test/expression_command/persistent_types/TestPersistentTypes.py b/packages/Python/lldbsuite/test/expression_command/persistent_types/TestPersistentTypes.py deleted file mode 100644 index 403d24246a9d..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/persistent_types/TestPersistentTypes.py +++ /dev/null @@ -1,85 +0,0 @@ -""" -Test that lldb persistent types works correctly. -""" - -from __future__ import print_function - - -import os -import time -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class PersistenttypesTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def test_persistent_types(self): - """Test that lldb persistent types works correctly.""" - self.build() - - self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET) - - self.runCmd("breakpoint set --name main") - - self.runCmd("run", RUN_SUCCEEDED) - - self.runCmd("expression struct $foo { int a; int b; };") - - self.expect( - "expression struct $foo $my_foo; $my_foo.a = 2; $my_foo.b = 3;", - startstr="(int) $0 = 3") - - self.expect("expression $my_foo", - substrs=['a = 2', 'b = 3']) - - self.runCmd("expression typedef int $bar") - - self.expect("expression $bar i = 5; i", - startstr="($bar) $1 = 5") - - self.runCmd( - "expression struct $foobar { char a; char b; char c; char d; };") - self.runCmd("next") - - self.expect( - "memory read foo -t $foobar", - substrs=[ - '($foobar) 0x', - ' = ', - "a = 'H'", - "b = 'e'", - "c = 'l'", - "d = 'l'"]) # persistent types are OK to use for memory read - - self.expect( - "memory read foo -t foobar", - substrs=[ - '($foobar) 0x', - ' = ', - "a = 'H'", - "b = 'e'", - "c = 'l'", - "d = 'l'"], - matching=False, - error=True) # the type name is $foobar, make sure we settle for nothing less - - self.expect("expression struct { int a; int b; } x = { 2, 3 }; x", - substrs=['a = 2', 'b = 3']) - - self.expect( - "expression struct { int x; int y; int z; } object; object.y = 1; object.z = 3; object.x = 2; object", - substrs=[ - 'x = 2', - 'y = 1', - 'z = 3']) - - self.expect( - "expression struct A { int x; int y; }; struct { struct A a; int z; } object; object.a.y = 1; object.z = 3; object.a.x = 2; object", - substrs=[ - 'x = 2', - 'y = 1', - 'z = 3']) diff --git a/packages/Python/lldbsuite/test/expression_command/persistent_types/main.c b/packages/Python/lldbsuite/test/expression_command/persistent_types/main.c deleted file mode 100644 index 9e26e619bfdb..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/persistent_types/main.c +++ /dev/null @@ -1,14 +0,0 @@ -//===-- main.c --------------------------------------------------*- 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[]) -{ - const char* foo = "Hello world"; - return 0; -} diff --git a/packages/Python/lldbsuite/test/expression_command/persistent_variables/Makefile b/packages/Python/lldbsuite/test/expression_command/persistent_variables/Makefile deleted file mode 100644 index 0d70f2595019..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/persistent_variables/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -C_SOURCES := main.c - -include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/expression_command/persistent_variables/TestPersistentVariables.py b/packages/Python/lldbsuite/test/expression_command/persistent_variables/TestPersistentVariables.py deleted file mode 100644 index 441a60b5a463..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/persistent_variables/TestPersistentVariables.py +++ /dev/null @@ -1,55 +0,0 @@ -""" -Test that lldb persistent variables works correctly. -""" - -from __future__ import print_function - - -import os -import time -import lldb -from lldbsuite.test.lldbtest import * - - -class PersistentVariablesTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def test_persistent_variables(self): - """Test that lldb persistent variables works correctly.""" - self.build() - - self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET) - - self.runCmd("breakpoint set --source-pattern-regexp break") - - self.runCmd("run", RUN_SUCCEEDED) - - self.runCmd("expression int $i = i") - - self.expect("expression $i == i", - startstr="(bool) $0 = true") - - self.expect("expression $i + 1", - startstr="(int) $1 = 6") - - self.expect("expression $i + 3", - startstr="(int) $2 = 8") - - self.expect("expression $2 + $1", - startstr="(int) $3 = 14") - - self.expect("expression $3", - startstr="(int) $3 = 14") - - self.expect("expression $2", - startstr="(int) $2 = 8") - - self.expect("expression (int)-2", - startstr="(int) $4 = -2") - - self.expect("expression $4 > (int)31", - startstr="(bool) $5 = false") - - self.expect("expression (long)$4", - startstr="(long) $6 = -2") diff --git a/packages/Python/lldbsuite/test/expression_command/persistent_variables/main.c b/packages/Python/lldbsuite/test/expression_command/persistent_variables/main.c deleted file mode 100644 index fd41471df8ed..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/persistent_variables/main.c +++ /dev/null @@ -1,14 +0,0 @@ -//===-- main.c --------------------------------------------------*- 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[]) -{ - int i = 5; - return 0; // Set breakpoint here -} diff --git a/packages/Python/lldbsuite/test/expression_command/po_verbosity/Makefile b/packages/Python/lldbsuite/test/expression_command/po_verbosity/Makefile deleted file mode 100644 index b6592745356d..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/po_verbosity/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -LEVEL = ../../make - -OBJC_SOURCES := main.m - -include $(LEVEL)/Makefile.rules -LDFLAGS += -framework Foundation diff --git a/packages/Python/lldbsuite/test/expression_command/po_verbosity/TestPoVerbosity.py b/packages/Python/lldbsuite/test/expression_command/po_verbosity/TestPoVerbosity.py deleted file mode 100644 index 4530342ea52d..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/po_verbosity/TestPoVerbosity.py +++ /dev/null @@ -1,63 +0,0 @@ -""" -Test that the po command acts correctly. -""" - -from __future__ import print_function - - -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class PoVerbosityTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - # Find the line number to break for main.cpp. - self.line = line_number('main.m', - '// Stop here') - - @skipUnlessDarwin - def test(self): - """Test that the po command acts correctly.""" - self.build() - - # This is the function to remove the custom formats in order to have a - # clean slate for the next test case. - def cleanup(): - self.runCmd('type summary clear', check=False) - self.runCmd('type synthetic clear', check=False) - - # Execute the cleanup function during test case tear down. - self.addTearDownHook(cleanup) - - """Test expr + formatters for good interoperability.""" - self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET) - - lldbutil.run_break_set_by_file_and_line( - self, "main.m", self.line, loc_exact=True) - - self.runCmd("run", RUN_SUCCEEDED) - - self.expect("expr -O -v -- foo", - substrs=['(id) $', ' = 0x', '1 = 2', '2 = 3;']) - self.expect("expr -O -vfull -- foo", - substrs=['(id) $', ' = 0x', '1 = 2', '2 = 3;']) - self.expect("expr -O -- foo", matching=False, - substrs=['(id) $']) - - self.expect("expr -O -- 22", matching=False, - substrs=['(int) $']) - self.expect("expr -O -- 22", - substrs=['22']) - - self.expect("expr -O -vfull -- 22", - substrs=['(int) $', ' = 22']) - - self.expect("expr -O -v -- 22", - substrs=['(int) $', ' = 22']) diff --git a/packages/Python/lldbsuite/test/expression_command/po_verbosity/main.m b/packages/Python/lldbsuite/test/expression_command/po_verbosity/main.m deleted file mode 100644 index 9c79f850bf28..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/po_verbosity/main.m +++ /dev/null @@ -1,9 +0,0 @@ -#import <Foundation/Foundation.h> - -int main() -{ - [NSString initialize]; - id foo = @{@1 : @2, @2 : @3}; - int x = 34; - return 0; // Stop here -} diff --git a/packages/Python/lldbsuite/test/expression_command/pr35310/Makefile b/packages/Python/lldbsuite/test/expression_command/pr35310/Makefile deleted file mode 100644 index 8a7102e347af..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/pr35310/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := main.cpp - -include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/expression_command/pr35310/TestExprsBug35310.py b/packages/Python/lldbsuite/test/expression_command/pr35310/TestExprsBug35310.py deleted file mode 100644 index 6d019c7415fc..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/pr35310/TestExprsBug35310.py +++ /dev/null @@ -1,39 +0,0 @@ -from __future__ import print_function - -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class ExprBug35310(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - - self.main_source = "main.cpp" - self.main_source_spec = lldb.SBFileSpec(self.main_source) - - def test_issue35310(self): - """Test invoking functions with non-standard linkage names. - - The GNU abi_tag extension used by libstdc++ is a common source - of these, but they could originate from other reasons as well. - """ - self.build() - - (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(self, - '// Break here', self.main_source_spec) - frame = thread.GetFrameAtIndex(0) - - value = frame.EvaluateExpression("a.test_abi_tag()") - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Success()) - self.assertEqual(value.GetValueAsSigned(0), 1) - - value = frame.EvaluateExpression("a.test_asm_name()") - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Success()) - self.assertEqual(value.GetValueAsSigned(0), 2) diff --git a/packages/Python/lldbsuite/test/expression_command/pr35310/main.cpp b/packages/Python/lldbsuite/test/expression_command/pr35310/main.cpp deleted file mode 100644 index a8e8a5c737a0..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/pr35310/main.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include <stdio.h> - -class A { -public: - int __attribute__((abi_tag("cxx11"))) test_abi_tag() { - return 1; - } - int test_asm_name() asm("A_test_asm") { - return 2; - } -}; - -int main(int argc, char **argv) { - A a; - // Break here - a.test_abi_tag(); - a.test_asm_name(); - return 0; -} diff --git a/packages/Python/lldbsuite/test/expression_command/radar_43822994/Makefile b/packages/Python/lldbsuite/test/expression_command/radar_43822994/Makefile deleted file mode 100644 index 83b24da17b4d..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/radar_43822994/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := main.cpp -CXXFLAGS += -std=c++11 - -include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/expression_command/radar_43822994/TestScopedEnumType.py b/packages/Python/lldbsuite/test/expression_command/radar_43822994/TestScopedEnumType.py deleted file mode 100644 index 028047fc46bf..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/radar_43822994/TestScopedEnumType.py +++ /dev/null @@ -1,44 +0,0 @@ -from __future__ import print_function - - -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class ScopedEnumType(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def test(self): - self.build() - - self.main_source = "main.cpp" - self.main_source_spec = lldb.SBFileSpec(self.main_source) - (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(self, - '// Set break point at this line.', self.main_source_spec) - frame = thread.GetFrameAtIndex(0) - - self.expect("expr f == Foo::FooBar", - substrs=['(bool) $0 = true']) - - value = frame.EvaluateExpression("f == Foo::FooBar") - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Success()) - self.assertEqual(value.GetValueAsUnsigned(), 1) - - value = frame.EvaluateExpression("b == BarBar") - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Success()) - self.assertEqual(value.GetValueAsUnsigned(), 1) - - ## b is not a Foo - value = frame.EvaluateExpression("b == Foo::FooBar") - self.assertTrue(value.IsValid()) - self.assertFalse(value.GetError().Success()) - - ## integral is not implicitly convertible to a scoped enum - value = frame.EvaluateExpression("1 == Foo::FooBar") - self.assertTrue(value.IsValid()) - self.assertFalse(value.GetError().Success()) diff --git a/packages/Python/lldbsuite/test/expression_command/radar_43822994/main.cpp b/packages/Python/lldbsuite/test/expression_command/radar_43822994/main.cpp deleted file mode 100644 index b0d67d23dc5e..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/radar_43822994/main.cpp +++ /dev/null @@ -1,16 +0,0 @@ -enum class Foo { - FooBar = 42 -}; - -enum Bar { - BarBar = 3, - BarBarBar = 42 -}; - -int main(int argc, const char **argv) { - Foo f = Foo::FooBar; - Bar b = BarBar; - bool b1 = f == Foo::FooBar; - bool b2 = b == BarBar; - return 0; // Set break point at this line. -} diff --git a/packages/Python/lldbsuite/test/expression_command/radar_8638051/Makefile b/packages/Python/lldbsuite/test/expression_command/radar_8638051/Makefile deleted file mode 100644 index 0d70f2595019..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/radar_8638051/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -C_SOURCES := main.c - -include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/expression_command/radar_8638051/Test8638051.py b/packages/Python/lldbsuite/test/expression_command/radar_8638051/Test8638051.py deleted file mode 100644 index 0027fc226e37..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/radar_8638051/Test8638051.py +++ /dev/null @@ -1,40 +0,0 @@ -""" -Test the robustness of lldb expression parser. -""" - -from __future__ import print_function - - -import os -import time -import lldb -from lldbsuite.test.lldbtest import * - - -class Radar8638051TestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def test_expr_commands(self): - """The following expression commands should not crash.""" - self.build() - - self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET) - - self.runCmd("breakpoint set -n c") - - self.runCmd("run", RUN_SUCCEEDED) - - self.expect("expression val", - startstr="(int) $0 = 1") - # (int) $0 = 1 - - self.expect("expression *(&val)", - startstr="(int) $1 = 1") - # (int) $1 = 1 - - # rdar://problem/8638051 - # lldb expression command: Could this crash be avoided - self.expect("expression &val", - startstr="(int *) $2 = ") - # (int *) $2 = 0x.... diff --git a/packages/Python/lldbsuite/test/expression_command/radar_8638051/main.c b/packages/Python/lldbsuite/test/expression_command/radar_8638051/main.c deleted file mode 100644 index 1329fd69a2e1..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/radar_8638051/main.c +++ /dev/null @@ -1,54 +0,0 @@ -//===-- main.c --------------------------------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -#include <stdio.h> - -// This simple program is to demonstrate the capability of the lldb command -// "breakpoint command add" to add a set of commands to a breakpoint to be -// executed when the breakpoint is hit. -// -// In particular, we want to break within c(), but only if the immediate caller -// is a(). - -int a(int); -int b(int); -int c(int); - -int a(int val) -{ - if (val <= 1) - return b(val); - else if (val >= 3) - return c(val); // Find the line number where c's parent frame is a here. - - return val; -} - -int b(int val) -{ - return c(val); -} - -int c(int val) -{ - return val + 3; -} - -int main (int argc, char const *argv[]) -{ - int A1 = a(1); // a(1) -> b(1) -> c(1) - printf("a(1) returns %d\n", A1); - - int B2 = b(2); // b(2) -> c(2) - printf("b(2) returns %d\n", B2); - - int A3 = a(3); // a(3) -> c(3) - printf("a(3) returns %d\n", A3); - - return 0; -} diff --git a/packages/Python/lldbsuite/test/expression_command/radar_9531204/Makefile b/packages/Python/lldbsuite/test/expression_command/radar_9531204/Makefile deleted file mode 100644 index 0d70f2595019..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/radar_9531204/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -C_SOURCES := main.c - -include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/expression_command/radar_9531204/TestPrintfAfterUp.py b/packages/Python/lldbsuite/test/expression_command/radar_9531204/TestPrintfAfterUp.py deleted file mode 100644 index dc8ee77fd6fb..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/radar_9531204/TestPrintfAfterUp.py +++ /dev/null @@ -1,44 +0,0 @@ -""" -The evaluating printf(...) after break stop and then up a stack frame. -""" - -from __future__ import print_function - - -import os -import time -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class Radar9531204TestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - # rdar://problem/9531204 - def test_expr_commands(self): - """The evaluating printf(...) after break stop and then up a stack frame.""" - self.build() - - self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET) - - lldbutil.run_break_set_by_symbol( - self, 'foo', sym_exact=True, num_expected_locations=1) - - self.runCmd("run", RUN_SUCCEEDED) - - self.runCmd("frame variable") - - # This works fine. - self.runCmd('expression (int)printf("value is: %d.\\n", value);') - - # rdar://problem/9531204 - # "Error dematerializing struct" error when evaluating expressions "up" on the stack - self.runCmd('up') # frame select -r 1 - - self.runCmd("frame variable") - - # This does not currently. - self.runCmd('expression (int)printf("argc is: %d.\\n", argc)') diff --git a/packages/Python/lldbsuite/test/expression_command/radar_9531204/main.c b/packages/Python/lldbsuite/test/expression_command/radar_9531204/main.c deleted file mode 100644 index 2bf05f2b3065..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/radar_9531204/main.c +++ /dev/null @@ -1,25 +0,0 @@ -//===-- main.c --------------------------------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -#include <stdio.h> - -// breakpoint set -n foo -// -// -int foo (int value) -{ - printf ("I got the value: %d.\n", value); - return 0; -} - -int main (int argc, char **argv) -{ - foo (argc); - printf ("Hello there: %d.\n", argc); - return 0; -} diff --git a/packages/Python/lldbsuite/test/expression_command/radar_9673664/Makefile b/packages/Python/lldbsuite/test/expression_command/radar_9673664/Makefile deleted file mode 100644 index 0d70f2595019..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/radar_9673664/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -C_SOURCES := main.c - -include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/expression_command/radar_9673664/TestExprHelpExamples.py b/packages/Python/lldbsuite/test/expression_command/radar_9673664/TestExprHelpExamples.py deleted file mode 100644 index d18720ccf3f1..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/radar_9673664/TestExprHelpExamples.py +++ /dev/null @@ -1,47 +0,0 @@ -""" -Test example snippets from the lldb 'help expression' output. -""" - -from __future__ import print_function - - -import os -import time -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class Radar9673644TestCase(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.main_source = "main.c" - self.line = line_number(self.main_source, '// Set breakpoint here.') - - def test_expr_commands(self): - """The following expression commands should just work.""" - self.build() - - self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET) - - lldbutil.run_break_set_by_file_and_line( - self, - self.main_source, - self.line, - num_expected_locations=1, - loc_exact=True) - - self.runCmd("run", RUN_SUCCEEDED) - - # rdar://problem/9673664 lldb expression evaluation problem - - self.expect('expr char str[] = "foo"; str[0]', - substrs=["'f'"]) - # runCmd: expr char c[] = "foo"; c[0] - # output: (char) $0 = 'f' diff --git a/packages/Python/lldbsuite/test/expression_command/radar_9673664/main.c b/packages/Python/lldbsuite/test/expression_command/radar_9673664/main.c deleted file mode 100644 index 934abdfaef3e..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/radar_9673664/main.c +++ /dev/null @@ -1,16 +0,0 @@ -//===-- main.c --------------------------------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -#include <stdio.h> - -int main (int argc, char const *argv[]) -{ - printf("Hello, world.\n"); // Set breakpoint here. - - return 0; -} diff --git a/packages/Python/lldbsuite/test/expression_command/rdar42038760/Makefile b/packages/Python/lldbsuite/test/expression_command/rdar42038760/Makefile deleted file mode 100644 index f5a47fcc46cc..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/rdar42038760/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -LEVEL = ../../make -C_SOURCES := main.c -include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/expression_command/rdar42038760/TestScalarURem.py b/packages/Python/lldbsuite/test/expression_command/rdar42038760/TestScalarURem.py deleted file mode 100644 index 03424658f3ed..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/rdar42038760/TestScalarURem.py +++ /dev/null @@ -1,4 +0,0 @@ -from lldbsuite.test import lldbinline -from lldbsuite.test import decorators - -lldbinline.MakeInlineTest(__file__, globals(), None) diff --git a/packages/Python/lldbsuite/test/expression_command/rdar42038760/main.c b/packages/Python/lldbsuite/test/expression_command/rdar42038760/main.c deleted file mode 100644 index 98a957faf8bd..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/rdar42038760/main.c +++ /dev/null @@ -1,19 +0,0 @@ -// Make sure we IR-interpret the expression correctly. - -typedef unsigned int uint32_t; -struct S0 { - signed f2; -}; -static g_463 = 0x1561983AL; -void func_1(void) -{ - struct S0 l_19; - l_19.f2 = 419; - uint32_t l_4037 = 4294967295UL; - l_19.f2 = g_463; //%self.expect("expr ((l_4037 % (-(g_463))) | l_19.f2)", substrs=['(unsigned int) $0 = 358717883']) -} -int main() -{ - func_1(); - return 0; -} diff --git a/packages/Python/lldbsuite/test/expression_command/rdar44436068/Makefile b/packages/Python/lldbsuite/test/expression_command/rdar44436068/Makefile deleted file mode 100644 index f5a47fcc46cc..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/rdar44436068/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -LEVEL = ../../make -C_SOURCES := main.c -include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/expression_command/rdar44436068/Test128BitsInteger.py b/packages/Python/lldbsuite/test/expression_command/rdar44436068/Test128BitsInteger.py deleted file mode 100644 index c8308c16011e..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/rdar44436068/Test128BitsInteger.py +++ /dev/null @@ -1,4 +0,0 @@ -from lldbsuite.test import lldbinline -from lldbsuite.test import decorators - -lldbinline.MakeInlineTest(__file__, globals()) diff --git a/packages/Python/lldbsuite/test/expression_command/rdar44436068/main.c b/packages/Python/lldbsuite/test/expression_command/rdar44436068/main.c deleted file mode 100644 index 156dbf04a1b7..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/rdar44436068/main.c +++ /dev/null @@ -1,8 +0,0 @@ -int main(void) -{ - __int128_t n = 1; - n = n + n; - return n; //%self.expect("p n", substrs=['(__int128_t) $0 = 2']) - //%self.expect("p n + 6", substrs=['(__int128) $1 = 8']) - //%self.expect("p n + n", substrs=['(__int128) $2 = 4']) -} diff --git a/packages/Python/lldbsuite/test/expression_command/save_jit_objects/Makefile b/packages/Python/lldbsuite/test/expression_command/save_jit_objects/Makefile deleted file mode 100644 index 0d70f2595019..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/save_jit_objects/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -C_SOURCES := main.c - -include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/expression_command/save_jit_objects/TestSaveJITObjects.py b/packages/Python/lldbsuite/test/expression_command/save_jit_objects/TestSaveJITObjects.py deleted file mode 100644 index fe6816f6aba1..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/save_jit_objects/TestSaveJITObjects.py +++ /dev/null @@ -1,53 +0,0 @@ -""" -Test that LLDB can emit JIT objects when the appropriate setting is enabled -""" - -from __future__ import print_function - -import os -import time -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class SaveJITObjectsTestCase(TestBase): - mydir = TestBase.compute_mydir(__file__) - - def enumerateJITFiles(self): - return [f for f in os.listdir(self.getBuildDir()) if f.startswith("jit")] - - def countJITFiles(self): - return len(self.enumerateJITFiles()) - - def cleanJITFiles(self): - for j in self.enumerateJITFiles(): - os.remove(j) - return - - @expectedFailureAll(oslist=["windows"]) - def test_save_jit_objects(self): - self.build() - os.chdir(self.getBuildDir()) - src_file = "main.c" - src_file_spec = lldb.SBFileSpec(src_file) - - (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint( - self, "break", src_file_spec) - - frame = thread.frames[0] - - self.cleanJITFiles() - frame.EvaluateExpression("(void*)malloc(0x1)") - self.assertTrue(self.countJITFiles() == 0, - "No files emitted with save-jit-objects=false") - - self.runCmd("settings set target.save-jit-objects true") - frame.EvaluateExpression("(void*)malloc(0x1)") - jit_files_count = self.countJITFiles() - self.cleanJITFiles() - self.assertTrue(jit_files_count != 0, - "At least one file emitted with save-jit-objects=true") - - process.Kill() - os.chdir(self.getSourceDir()) diff --git a/packages/Python/lldbsuite/test/expression_command/save_jit_objects/main.c b/packages/Python/lldbsuite/test/expression_command/save_jit_objects/main.c deleted file mode 100644 index ec4c943dfe39..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/save_jit_objects/main.c +++ /dev/null @@ -1,14 +0,0 @@ -//===-- main.c --------------------------------------------------*- 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[]) -{ - const char* foo = "Hello world"; // break here - return 0; -} diff --git a/packages/Python/lldbsuite/test/expression_command/test/Makefile b/packages/Python/lldbsuite/test/expression_command/test/Makefile deleted file mode 100644 index 8a7102e347af..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/test/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := main.cpp - -include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/expression_command/test/TestExprs.py b/packages/Python/lldbsuite/test/expression_command/test/TestExprs.py deleted file mode 100644 index deae7feb3ac1..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/test/TestExprs.py +++ /dev/null @@ -1,253 +0,0 @@ -""" -Test many basic expression commands and SBFrame.EvaluateExpression() API. - -Test cases: - -o test_many_expr_commands: - Test many basic expression commands. -o test_evaluate_expression_python: - Use Python APIs (SBFrame.EvaluateExpression()) to evaluate expressions. -o test_expr_commands_can_handle_quotes: - Throw some expression commands with quotes at lldb. -""" - -from __future__ import print_function - - -import unittest2 - -import os -import time -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class BasicExprCommandsTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - # Find the line number to break for main.c. - self.line = line_number( - 'main.cpp', - '// Please test many expressions while stopped at this line:') - - # Disable confirmation prompt to avoid infinite wait - self.runCmd("settings set auto-confirm true") - self.addTearDownHook( - lambda: self.runCmd("settings clear auto-confirm")) - - def build_and_run(self): - """These basic expression commands should work as expected.""" - self.build() - - self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET) - - lldbutil.run_break_set_by_file_and_line( - self, "main.cpp", self.line, num_expected_locations=1, loc_exact=False) - - self.runCmd("run", RUN_SUCCEEDED) - - @unittest2.expectedFailure( - "llvm.org/pr17135 <rdar://problem/14874559> APFloat::toString does not identify the correct (i.e. least) precision.") - def test_floating_point_expr_commands(self): - self.build_and_run() - - self.expect("expression 2.234f", - patterns=["\(float\) \$.* = 2\.234"]) - # (float) $2 = 2.234 - - def test_many_expr_commands(self): - self.build_and_run() - - self.expect("expression 2", - patterns=["\(int\) \$.* = 2"]) - # (int) $0 = 1 - - self.expect("expression 2ull", - patterns=["\(unsigned long long\) \$.* = 2"]) - # (unsigned long long) $1 = 2 - - self.expect("expression 0.5f", - patterns=["\(float\) \$.* = 0\.5"]) - # (float) $2 = 0.5 - - self.expect("expression 2.234", - patterns=["\(double\) \$.* = 2\.234"]) - # (double) $3 = 2.234 - - self.expect("expression 2+3", - patterns=["\(int\) \$.* = 5"]) - # (int) $4 = 5 - - self.expect("expression argc", - patterns=["\(int\) \$.* = 1"]) - # (int) $5 = 1 - - self.expect("expression argc + 22", - patterns=["\(int\) \$.* = 23"]) - # (int) $6 = 23 - - self.expect("expression argv", - patterns=["\(const char \*\*\) \$.* = 0x"]) - # (const char *) $7 = ... - - self.expect("expression argv[0]", - substrs=["(const char *)", - "a.out"]) - # (const char *) $8 = 0x... "/Volumes/data/lldb/svn/trunk/test/expression_command/test/a.out" - - @add_test_categories(['pyapi']) - def test_evaluate_expression_python(self): - """Test SBFrame.EvaluateExpression() API for evaluating an expression.""" - self.build() - - exe = self.getBuildArtifact("a.out") - - target = self.dbg.CreateTarget(exe) - self.assertTrue(target, VALID_TARGET) - - # Create the breakpoint. - filespec = lldb.SBFileSpec("main.cpp", False) - breakpoint = target.BreakpointCreateByLocation(filespec, self.line) - self.assertTrue(breakpoint, VALID_BREAKPOINT) - - # Verify the breakpoint just created. - self.expect(str(breakpoint), BREAKPOINT_CREATED, exe=False, - substrs=['main.cpp', - str(self.line)]) - - # Launch the process, and do not stop at the entry point. - # Pass 'X Y Z' as the args, which makes argc == 4. - process = target.LaunchSimple( - ['X', 'Y', 'Z'], None, self.get_process_working_directory()) - - if not process: - self.fail("SBTarget.LaunchProcess() failed") - - if process.GetState() != lldb.eStateStopped: - self.fail("Process should be in the 'stopped' state, " - "instead the actual state is: '%s'" % - lldbutil.state_type_to_str(process.GetState())) - - thread = lldbutil.get_one_thread_stopped_at_breakpoint( - process, breakpoint) - self.assertIsNotNone( - thread, "Expected one thread to be stopped at the breakpoint") - - # The filename of frame #0 should be 'main.cpp' and function is main. - self.expect(lldbutil.get_filenames(thread)[0], - "Break correctly at main.cpp", exe=False, - startstr="main.cpp") - self.expect(lldbutil.get_function_names(thread)[0], - "Break correctly at main()", exe=False, - startstr="main") - - # We should be stopped on the breakpoint with a hit count of 1. - self.assertTrue(breakpoint.GetHitCount() == 1, BREAKPOINT_HIT_ONCE) - - # - # Use Python API to evaluate expressions while stopped in a stack frame. - # - frame = thread.GetFrameAtIndex(0) - - val = frame.EvaluateExpression("2.234") - self.expect(val.GetValue(), "2.345 evaluated correctly", exe=False, - startstr="2.234") - self.expect(val.GetTypeName(), "2.345 evaluated correctly", exe=False, - startstr="double") - self.DebugSBValue(val) - - val = frame.EvaluateExpression("argc") - self.expect(val.GetValue(), "Argc evaluated correctly", exe=False, - startstr="4") - self.DebugSBValue(val) - - val = frame.EvaluateExpression("*argv[1]") - self.expect(val.GetValue(), "Argv[1] evaluated correctly", exe=False, - startstr="'X'") - self.DebugSBValue(val) - - val = frame.EvaluateExpression("*argv[2]") - self.expect(val.GetValue(), "Argv[2] evaluated correctly", exe=False, - startstr="'Y'") - self.DebugSBValue(val) - - val = frame.EvaluateExpression("*argv[3]") - self.expect(val.GetValue(), "Argv[3] evaluated correctly", exe=False, - startstr="'Z'") - self.DebugSBValue(val) - - callee_break = target.BreakpointCreateByName( - "a_function_to_call", None) - self.assertTrue(callee_break.GetNumLocations() > 0) - - # Make sure ignoring breakpoints works from the command line: - self.expect("expression -i true -- a_function_to_call()", - substrs=['(int) $', ' 1']) - self.assertTrue(callee_break.GetHitCount() == 1) - - # Now try ignoring breakpoints using the SB API's: - options = lldb.SBExpressionOptions() - options.SetIgnoreBreakpoints(True) - value = frame.EvaluateExpression('a_function_to_call()', options) - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetValueAsSigned(0) == 2) - self.assertTrue(callee_break.GetHitCount() == 2) - - # rdar://problem/8686536 - # CommandInterpreter::HandleCommand is stripping \'s from input for - # WantsRawCommand commands - def test_expr_commands_can_handle_quotes(self): - """Throw some expression commands with quotes at lldb.""" - self.build() - - self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET) - - lldbutil.run_break_set_by_file_and_line( - self, "main.cpp", self.line, num_expected_locations=1, loc_exact=False) - - self.runCmd("run", RUN_SUCCEEDED) - - # runCmd: expression 'a' - # output: (char) $0 = 'a' - self.expect("expression 'a'", - substrs=['(char) $', - "'a'"]) - - # runCmd: expression (int) printf ("\n\n\tHello there!\n") - # output: (int) $1 = 16 - self.expect(r'''expression (int) printf ("\n\n\tHello there!\n")''', - substrs=['(int) $', - '16']) - - # runCmd: expression (int) printf("\t\x68\n") - # output: (int) $2 = 3 - self.expect(r'''expression (int) printf("\t\x68\n")''', - substrs=['(int) $', - '3']) - - # runCmd: expression (int) printf("\"\n") - # output: (int) $3 = 2 - self.expect(r'''expression (int) printf("\"\n")''', - substrs=['(int) $', - '2']) - - # runCmd: expression (int) printf("'\n") - # output: (int) $4 = 2 - self.expect(r'''expression (int) printf("'\n")''', - substrs=['(int) $', - '2']) - - # runCmd: command alias print_hi expression (int) printf ("\n\tHi!\n") - # output: - self.runCmd( - r'''command alias print_hi expression (int) printf ("\n\tHi!\n")''') - # This fails currently. - self.expect('print_hi', - substrs=['(int) $', - '6']) diff --git a/packages/Python/lldbsuite/test/expression_command/test/TestExprs2.py b/packages/Python/lldbsuite/test/expression_command/test/TestExprs2.py deleted file mode 100644 index 88412e6b7c82..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/test/TestExprs2.py +++ /dev/null @@ -1,75 +0,0 @@ -""" -Test some more expression commands. -""" - -from __future__ import print_function - - -import os -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class ExprCommands2TestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - # Find the line number to break for main.c. - self.line = line_number( - 'main.cpp', - '// Please test many expressions while stopped at this line:') - - def test_more_expr_commands(self): - """Test some more expression commands.""" - self.build() - - self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET) - - lldbutil.run_break_set_by_file_and_line( - self, "main.cpp", self.line, num_expected_locations=1, loc_exact=False) - - self.runCmd("run", RUN_SUCCEEDED) - - # Does static casting work? - self.expect("expression (int*)argv", - startstr="(int *) $0 = 0x") - # (int *) $0 = 0x00007fff5fbff258 - - # Do return values containing the contents of expression locals work? - self.expect("expression int i = 5; i", - startstr="(int) $1 = 5") - # (int) $2 = 5 - self.expect("expression $1 + 1", - startstr="(int) $2 = 6") - # (int) $3 = 6 - - # Do return values containing the results of static expressions work? - self.expect("expression 20 + 3", - startstr="(int) $3 = 23") - # (int) $4 = 5 - self.expect("expression $3 + 1", - startstr="(int) $4 = 24") - # (int) $5 = 6 - - @skipIfLinux - @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24489") - def test_expr_symbols(self): - """Test symbols.""" - self.build() - - self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET) - - lldbutil.run_break_set_by_file_and_line( - self, "main.cpp", self.line, num_expected_locations=1, loc_exact=False) - - self.runCmd("run", RUN_SUCCEEDED) - - # Do anonymous symbols work? - self.expect("expression ((char**)environ)[0]", - startstr="(char *) $0 = 0x") - # (char *) $1 = 0x00007fff5fbff298 "Apple_PubSub_Socket_Render=/tmp/launch-7AEsUD/Render" diff --git a/packages/Python/lldbsuite/test/expression_command/test/main.cpp b/packages/Python/lldbsuite/test/expression_command/test/main.cpp deleted file mode 100644 index 22208a87cb44..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/test/main.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#include <stdio.h> - -static int static_value = 0; - -int -a_function_to_call() -{ - static_value++; - return static_value; -} - -int main (int argc, char const *argv[]) -{ - printf ("Hello world!\n"); - puts ("hello"); - // Please test many expressions while stopped at this line: -#if 0 - expression 'a' // make sure character constant makes it down (this is broken: <rdar://problem/8686536>) - expression 2 // Test int - expression 2ull // Test unsigned long long - expression 2.234f // Test float constants - expression 2.234 // Test double constants - expression 2+3 - expression argc - expression argc + 22 - expression argv - expression argv[0] - expression argv[1] - expression argv[-1] - expression puts("bonjour") // Test constant strings... - expression printf("\t\x68\n") // Test constant strings that contain the \xXX (TAB, 'h', '\n' should be printed) (this is broken: <rdar://problem/8686536>) - expression printf("\"\n") // Test constant strings that contains an escaped double quote char (this is broken: <rdar://problem/8686536>) - expression printf("\'\n") // Test constant strings that contains an escaped single quote char (this is broken: <rdar://problem/8686536>) - expression printf ("one: %i\n", 1) - expression printf ("1.234 as float: %f\n", 1.234f) - expression printf ("1.234 as double: %g\n", 1.234) - expression printf ("one: %i, two: %llu\n", 1, 2ull) - expression printf ("two: %llu, one: %i\n", 2ull, 1) - expression random() % 255l -#endif - - a_function_to_call(); - return 0; -} diff --git a/packages/Python/lldbsuite/test/expression_command/timeout/Makefile b/packages/Python/lldbsuite/test/expression_command/timeout/Makefile deleted file mode 100644 index c9cff412c1b2..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/timeout/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := wait-a-while.cpp - -include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/expression_command/timeout/TestCallWithTimeout.py b/packages/Python/lldbsuite/test/expression_command/timeout/TestCallWithTimeout.py deleted file mode 100644 index 7862477001ea..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/timeout/TestCallWithTimeout.py +++ /dev/null @@ -1,80 +0,0 @@ -""" -Test calling a function that waits a while, and make sure the timeout option to expr works. -""" - -from __future__ import print_function - - -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class ExprCommandWithTimeoutsTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - - self.main_source = "wait-a-while.cpp" - self.main_source_spec = lldb.SBFileSpec(self.main_source) - - @expectedFlakeyFreeBSD("llvm.org/pr19605") - @expectedFailureAll( - oslist=[ - "windows"], - bugnumber="llvm.org/pr21765") - def test(self): - """Test calling std::String member function.""" - self.build() - - (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint( - self, 'stop here in main.', self.main_source_spec) - - # First set the timeout too short, and make sure we fail. - options = lldb.SBExpressionOptions() - options.SetTimeoutInMicroSeconds(10) - options.SetUnwindOnError(True) - - frame = thread.GetFrameAtIndex(0) - - value = frame.EvaluateExpression("wait_a_while(1000000)", options) - self.assertTrue(value.IsValid()) - self.assertFalse(value.GetError().Success()) - - # Now do the same thing with the command line command, and make sure it - # works too. - interp = self.dbg.GetCommandInterpreter() - - result = lldb.SBCommandReturnObject() - return_value = interp.HandleCommand( - "expr -t 100 -u true -- wait_a_while(1000000)", result) - self.assertTrue(return_value == lldb.eReturnStatusFailed) - - # Okay, now do it again with long enough time outs: - - options.SetTimeoutInMicroSeconds(1000000) - value = frame.EvaluateExpression("wait_a_while (1000)", options) - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Success()) - - # Now do the same thingwith the command line command, and make sure it - # works too. - interp = self.dbg.GetCommandInterpreter() - - result = lldb.SBCommandReturnObject() - return_value = interp.HandleCommand( - "expr -t 1000000 -u true -- wait_a_while(1000)", result) - self.assertTrue(return_value == lldb.eReturnStatusSuccessFinishResult) - - # Finally set the one thread timeout and make sure that doesn't change - # things much: - - options.SetTimeoutInMicroSeconds(1000000) - options.SetOneThreadTimeoutInMicroSeconds(500000) - value = frame.EvaluateExpression("wait_a_while (1000)", options) - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Success()) diff --git a/packages/Python/lldbsuite/test/expression_command/timeout/wait-a-while.cpp b/packages/Python/lldbsuite/test/expression_command/timeout/wait-a-while.cpp deleted file mode 100644 index ac37c5d243b2..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/timeout/wait-a-while.cpp +++ /dev/null @@ -1,35 +0,0 @@ -#include <stdio.h> -#include <stdint.h> - -#include <chrono> -#include <thread> - - -int -wait_a_while (int microseconds) -{ - int num_times = 0; - auto end_time = std::chrono::system_clock::now() + std::chrono::microseconds(microseconds); - - while (1) - { - num_times++; - auto wait_time = end_time - std::chrono::system_clock::now(); - - std::this_thread::sleep_for(wait_time); - if (std::chrono::system_clock::now() > end_time) - break; - } - return num_times; -} - -int -main (int argc, char **argv) -{ - printf ("stop here in main.\n"); - int num_times = wait_a_while (argc * 1000); - printf ("Done, took %d times.\n", num_times); - - return 0; - -} diff --git a/packages/Python/lldbsuite/test/expression_command/top-level/Makefile b/packages/Python/lldbsuite/test/expression_command/top-level/Makefile deleted file mode 100644 index 9e35242c72fa..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/top-level/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := main.cpp test.cpp - -include $(LEVEL)/Makefile.rules - -a.out: dummy - -dummy: - $(MAKE) VPATH=$(VPATH) -I $(SRCDIR) -f $(SRCDIR)/dummy.mk - -clean:: - $(MAKE) VPATH=$(VPATH) -I $(SRCDIR) -f $(SRCDIR)/dummy.mk clean diff --git a/packages/Python/lldbsuite/test/expression_command/top-level/TestTopLevelExprs.py b/packages/Python/lldbsuite/test/expression_command/top-level/TestTopLevelExprs.py deleted file mode 100644 index 1a8a619b0ed2..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/top-level/TestTopLevelExprs.py +++ /dev/null @@ -1,96 +0,0 @@ -""" -Test top-level expressions. -""" - -from __future__ import print_function - - -import unittest2 - -import os -import time -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class TopLevelExpressionsTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - # Find the line number to break for main.c. - self.line = line_number('main.cpp', - '// Set breakpoint here') - self.dummy_line = line_number('dummy.cpp', - '// Set breakpoint here') - - # Disable confirmation prompt to avoid infinite wait - self.runCmd("settings set auto-confirm true") - self.addTearDownHook( - lambda: self.runCmd("settings clear auto-confirm")) - - def build_and_run(self): - """Test top-level expressions.""" - self.build() - - self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET) - - lldbutil.run_break_set_by_file_and_line( - self, "main.cpp", self.line, num_expected_locations=1, loc_exact=False) - - self.runCmd("run", RUN_SUCCEEDED) - - def run_dummy(self): - self.runCmd("file " + self.getBuildArtifact("dummy"), - CURRENT_EXECUTABLE_SET) - - lldbutil.run_break_set_by_file_and_line( - self, - "dummy.cpp", - self.dummy_line, - num_expected_locations=1, - loc_exact=False) - - self.runCmd("run", RUN_SUCCEEDED) - - @add_test_categories(['pyapi']) - @skipIf(debug_info="gmodules") # not relevant - @skipIf(oslist=["windows"]) # Error in record layout on Windows - def test_top_level_expressions(self): - self.build_and_run() - - resultFromCode = self.frame().EvaluateExpression("doTest()").GetValueAsUnsigned() - - self.runCmd("kill") - - self.run_dummy() - - codeFile = open('test.cpp', 'r') - - expressions = [] - current_expression = "" - - for line in codeFile: - if line.startswith("// --"): - expressions.append(current_expression) - current_expression = "" - else: - current_expression += line - - options = lldb.SBExpressionOptions() - options.SetLanguage(lldb.eLanguageTypeC_plus_plus) - options.SetTopLevel(True) - - for expression in expressions: - self.frame().EvaluateExpression(expression, options) - - resultFromTopLevel = self.frame().EvaluateExpression("doTest()") - - self.assertTrue(resultFromTopLevel.IsValid()) - self.assertEqual( - resultFromCode, - resultFromTopLevel.GetValueAsUnsigned()) diff --git a/packages/Python/lldbsuite/test/expression_command/top-level/dummy.cpp b/packages/Python/lldbsuite/test/expression_command/top-level/dummy.cpp deleted file mode 100644 index fa49bd4bda7e..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/top-level/dummy.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include <stdio.h> - -// These are needed to make sure that the linker does not strip the parts of the -// C++ abi library that are necessary to execute the expressions in the -// debugger. It would be great if we did not need to do this, but the fact that -// LLDB cannot conjure up the abi library on demand is not relevant for testing -// top level expressions. -struct DummyA {}; -struct DummyB : public virtual DummyA {}; - -int main() { - DummyB b; - printf("This is a dummy\n"); // Set breakpoint here - return 0; -} diff --git a/packages/Python/lldbsuite/test/expression_command/top-level/dummy.mk b/packages/Python/lldbsuite/test/expression_command/top-level/dummy.mk deleted file mode 100644 index af97678b2cf5..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/top-level/dummy.mk +++ /dev/null @@ -1,6 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := dummy.cpp -EXE := dummy - -include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/expression_command/top-level/main.cpp b/packages/Python/lldbsuite/test/expression_command/top-level/main.cpp deleted file mode 100644 index f9b2dd4c6d9d..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/top-level/main.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include <stdio.h> - -extern int doTest(); - -int main() -{ - printf("%d\n", doTest()); // Set breakpoint here - return 0; -} diff --git a/packages/Python/lldbsuite/test/expression_command/top-level/test.cpp b/packages/Python/lldbsuite/test/expression_command/top-level/test.cpp deleted file mode 100644 index 5a978743596a..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/top-level/test.cpp +++ /dev/null @@ -1,107 +0,0 @@ -class MyClass -{ -public: - int memberResult() - { - return 1; - } - static int staticResult() - { - return 1; - } - int externResult(); -}; - -// -- - -int MyClass::externResult() -{ - return 1; -} - -// -- - -MyClass m; - -// -- - -enum MyEnum { - myEnumOne = 1, - myEnumTwo, - myEnumThree -}; - -// -- - -class AnotherClass -{ -public: - __attribute__ ((always_inline)) int complicatedFunction() - { - struct { - int i; - } s = { 15 }; - - int numbers[4] = { 2, 3, 4, 5 }; - - for (signed char number: numbers) - { - s.i -= number; - } - - return s.i; - } -}; - -// -- - -class DiamondA -{ -private: - struct { - int m_i; - }; -public: - DiamondA(int i) : m_i(i) { } - int accessor() { return m_i; } -}; - -// -- - -class DiamondB : public virtual DiamondA -{ -public: - DiamondB(int i) : DiamondA(i) { } -}; - -// -- - -class DiamondC : public virtual DiamondA -{ -public: - DiamondC(int i) : DiamondA(i) { } -}; - -// -- - -class DiamondD : public DiamondB, public DiamondC -{ -public: - DiamondD(int i) : DiamondA(i), DiamondB(i), DiamondC(i) { } -}; - -// -- - -int doTest() -{ - int accumulator = m.memberResult(); - accumulator += MyClass::staticResult(); - accumulator += m.externResult(); - accumulator += MyEnum::myEnumThree; - accumulator += myEnumOne; - accumulator += AnotherClass().complicatedFunction(); - accumulator += DiamondD(3).accessor(); - return accumulator; -} - -// -- diff --git a/packages/Python/lldbsuite/test/expression_command/two-files/Makefile b/packages/Python/lldbsuite/test/expression_command/two-files/Makefile deleted file mode 100644 index 5974461e256f..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/two-files/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -LEVEL = ../../make - -OBJC_SOURCES := main.m foo.m - -include $(LEVEL)/Makefile.rules - -LDFLAGS += -framework Foundation
\ No newline at end of file diff --git a/packages/Python/lldbsuite/test/expression_command/two-files/TestObjCTypeQueryFromOtherCompileUnit.py b/packages/Python/lldbsuite/test/expression_command/two-files/TestObjCTypeQueryFromOtherCompileUnit.py deleted file mode 100644 index bac8e5453e4a..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/two-files/TestObjCTypeQueryFromOtherCompileUnit.py +++ /dev/null @@ -1,41 +0,0 @@ -""" -Regression test for <rdar://problem/8981098>: - -The expression parser's type search only looks in the current compilation unit for types. -""" - -from __future__ import print_function - - -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class ObjCTypeQueryTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - # Find the line number to break for main.m. - self.line = line_number( - 'main.m', "// Set breakpoint here, then do 'expr (NSArray*)array_token'.") - - @skipUnlessDarwin - def test(self): - """The expression parser's type search should be wider than the current compilation unit.""" - self.build() - self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET) - - lldbutil.run_break_set_by_file_and_line( - self, "main.m", self.line, num_expected_locations=1, loc_exact=True) - - self.runCmd("run", RUN_SUCCEEDED) - - # Now do a NSArry type query from the 'main.m' compile uint. - self.expect("expression (NSArray*)array_token", - substrs=['(NSArray *) $0 = 0x']) - # (NSArray *) $0 = 0x00007fff70118398 diff --git a/packages/Python/lldbsuite/test/expression_command/two-files/foo.m b/packages/Python/lldbsuite/test/expression_command/two-files/foo.m deleted file mode 100644 index 1609ebd838f6..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/two-files/foo.m +++ /dev/null @@ -1,28 +0,0 @@ -#import <Foundation/Foundation.h> - -NSMutableArray * -GetArray () -{ - static NSMutableArray *the_array = NULL; - if (the_array == NULL) - the_array = [[NSMutableArray alloc] init]; - return the_array; -} - -int -AddElement (char *value) -{ - NSString *element = [NSString stringWithUTF8String: value]; - int cur_elem = [GetArray() count]; - [GetArray() addObject: element]; - return cur_elem; -} - -const char * -GetElement (int idx) -{ - if (idx >= [GetArray() count]) - return NULL; - else - return [[GetArray() objectAtIndex: idx] UTF8String]; -} diff --git a/packages/Python/lldbsuite/test/expression_command/two-files/main.m b/packages/Python/lldbsuite/test/expression_command/two-files/main.m deleted file mode 100644 index 3f5738314e6b..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/two-files/main.m +++ /dev/null @@ -1,22 +0,0 @@ -#import <Foundation/Foundation.h> -#include <stdio.h> - -extern int AddElement (char *value); -extern char *GetElement (int idx); -extern void *GetArray(); - -int -main () -{ - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - - int idx = AddElement ("some string"); - void *array_token = GetArray(); - - char *string = GetElement (0); // Set breakpoint here, then do 'expr (NSArray*)array_token'. - if (string) - printf ("This: %s.\n", string); - - [pool release]; - return 0; -} diff --git a/packages/Python/lldbsuite/test/expression_command/unwind_expression/Makefile b/packages/Python/lldbsuite/test/expression_command/unwind_expression/Makefile deleted file mode 100644 index 8a7102e347af..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/unwind_expression/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := main.cpp - -include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/expression_command/unwind_expression/TestUnwindExpression.py b/packages/Python/lldbsuite/test/expression_command/unwind_expression/TestUnwindExpression.py deleted file mode 100644 index 108de8867d50..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/unwind_expression/TestUnwindExpression.py +++ /dev/null @@ -1,102 +0,0 @@ -""" -Test stopping at a breakpoint in an expression, and unwinding from there. -""" - -from __future__ import print_function - - -import unittest2 - -import os -import time -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class UnwindFromExpressionTest(TestBase): - - mydir = TestBase.compute_mydir(__file__) - main_spec = lldb.SBFileSpec("main.cpp", False) - - def build_and_run_to_bkpt(self): - self.build() - - (target, process, self.thread, bkpt) = lldbutil.run_to_source_breakpoint(self, - "// Set a breakpoint here to get started", self.main_spec) - - # Next set a breakpoint in this function, set up Expression options to stop on - # breakpoint hits, and call the function. - self.fun_bkpt = self.target().BreakpointCreateBySourceRegex( - "// Stop inside the function here.", self.main_spec) - self.assertTrue(self.fun_bkpt, VALID_BREAKPOINT) - - - @no_debug_info_test - @expectedFailureAll(bugnumber="llvm.org/pr33164") - def test_conditional_bktp(self): - """ - Test conditional breakpoint handling in the IgnoreBreakpoints = False case - """ - self.build_and_run_to_bkpt() - - self.fun_bkpt.SetCondition("0") # Should not get hit - options = lldb.SBExpressionOptions() - options.SetIgnoreBreakpoints(False) - options.SetUnwindOnError(False) - - main_frame = self.thread.GetFrameAtIndex(0) - val = main_frame.EvaluateExpression("second_function(47)", options) - self.assertTrue( - val.GetError().Success(), - "We did complete the execution.") - self.assertEquals(47, val.GetValueAsSigned()) - - - @add_test_categories(['pyapi']) - def test_unwind_expression(self): - """Test unwinding from an expression.""" - self.build_and_run_to_bkpt() - - # Run test with varying one thread timeouts to also test the halting - # logic in the IgnoreBreakpoints = False case - self.do_unwind_test(self.thread, self.fun_bkpt, 1000) - self.do_unwind_test(self.thread, self.fun_bkpt, 100000) - - def do_unwind_test(self, thread, bkpt, timeout): - # - # Use Python API to evaluate expressions while stopped in a stack frame. - # - main_frame = thread.GetFrameAtIndex(0) - - options = lldb.SBExpressionOptions() - options.SetIgnoreBreakpoints(False) - options.SetUnwindOnError(False) - options.SetOneThreadTimeoutInMicroSeconds(timeout) - - val = main_frame.EvaluateExpression("a_function_to_call()", options) - - self.assertTrue( - val.GetError().Fail(), - "We did not complete the execution.") - error_str = val.GetError().GetCString() - self.assertTrue( - "Execution was interrupted, reason: breakpoint" in error_str, - "And the reason was right.") - - thread = lldbutil.get_one_thread_stopped_at_breakpoint( - self.process(), bkpt) - self.assertTrue( - thread.IsValid(), - "We are indeed stopped at our breakpoint") - - # Now unwind the expression, and make sure we got back to where we - # started. - error = thread.UnwindInnermostExpression() - self.assertTrue(error.Success(), "We succeeded in unwinding") - - cur_frame = thread.GetFrameAtIndex(0) - self.assertTrue( - cur_frame.IsEqual(main_frame), - "We got back to the main frame.") diff --git a/packages/Python/lldbsuite/test/expression_command/unwind_expression/main.cpp b/packages/Python/lldbsuite/test/expression_command/unwind_expression/main.cpp deleted file mode 100644 index 56b06f31ecca..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/unwind_expression/main.cpp +++ /dev/null @@ -1,22 +0,0 @@ -static int static_value = 0; - -int -a_function_to_call() -{ - static_value++; // Stop inside the function here. - return static_value; -} - -int second_function(int x){ - for(int i=0; i<10; ++i) { - a_function_to_call(); - } - return x; -} - -int main (int argc, char const *argv[]) -{ - a_function_to_call(); // Set a breakpoint here to get started - second_function(1); - return 0; -} diff --git a/packages/Python/lldbsuite/test/expression_command/xvalue/Makefile b/packages/Python/lldbsuite/test/expression_command/xvalue/Makefile deleted file mode 100644 index 8a7102e347af..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/xvalue/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := main.cpp - -include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/expression_command/xvalue/TestXValuePrinting.py b/packages/Python/lldbsuite/test/expression_command/xvalue/TestXValuePrinting.py deleted file mode 100644 index 3aac6488660c..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/xvalue/TestXValuePrinting.py +++ /dev/null @@ -1,37 +0,0 @@ -from __future__ import print_function - - -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class ExprXValuePrintingTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - - self.main_source = "main.cpp" - self.main_source_spec = lldb.SBFileSpec(self.main_source) - - def do_test(self, dictionary=None): - """Printing an xvalue should work.""" - self.build(dictionary=dictionary) - - (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(self, - '// Break here', self.main_source_spec) - frame = thread.GetFrameAtIndex(0) - - value = frame.EvaluateExpression("foo().data") - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Success()) - self.assertEqual(value.GetValueAsSigned(), 1234) - - @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr21765") - def test(self): - self.do_test() - diff --git a/packages/Python/lldbsuite/test/expression_command/xvalue/main.cpp b/packages/Python/lldbsuite/test/expression_command/xvalue/main.cpp deleted file mode 100644 index 556c63f2b449..000000000000 --- a/packages/Python/lldbsuite/test/expression_command/xvalue/main.cpp +++ /dev/null @@ -1,12 +0,0 @@ -struct Tmp -{ - int data = 1234; -}; - -Tmp foo() { return Tmp(); } - -int main(int argc, char const *argv[]) -{ - int something = foo().data; - return 0; // Break here -} |
