diff options
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/expression_command')
254 files changed, 0 insertions, 6792 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/.categories b/lldb/packages/Python/lldbsuite/test/expression_command/.categories deleted file mode 100644 index 897e40a99dd..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/.categories +++ /dev/null @@ -1 +0,0 @@ -expression diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/anonymous-struct/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/anonymous-struct/Makefile deleted file mode 100644 index 8a7102e347a..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/anonymous-struct/TestCallUserAnonTypedef.py b/lldb/packages/Python/lldbsuite/test/expression_command/anonymous-struct/TestCallUserAnonTypedef.py deleted file mode 100644 index 1108b121532..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/anonymous-struct/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/anonymous-struct/main.cpp deleted file mode 100644 index 5b170c5f943..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/argument_passing_restrictions/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/argument_passing_restrictions/Makefile deleted file mode 100644 index 8a7102e347a..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/argument_passing_restrictions/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := main.cpp - -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/argument_passing_restrictions/TestArgumentPassingRestrictions.py b/lldb/packages/Python/lldbsuite/test/expression_command/argument_passing_restrictions/TestArgumentPassingRestrictions.py deleted file mode 100644 index 858f2785be8..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/argument_passing_restrictions/TestArgumentPassingRestrictions.py +++ /dev/null @@ -1,33 +0,0 @@ -""" -This is a test to ensure that both lldb is reconstructing the right -calling convention for a CXXRecordDecl as represented by: - - DW_CC_pass_by_reference - DW_CC_pass_by_value - -and to also make sure that the ASTImporter is copying over this -setting when importing the CXXRecordDecl via setArgPassingRestrictions. -""" - -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class TestArgumentPassingRestrictions(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - @skipIf(compiler="clang", compiler_version=['<', '7.0']) - def test_argument_passing_restrictions(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, '// break here', - lldb.SBFileSpec("main.cpp")) - - self.expect("expr returnPassByRef()", - substrs=['(PassByRef)', '= 11223344']) - - self.expect("expr takePassByRef(p)", - substrs=['(int)', '= 42']) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/argument_passing_restrictions/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/argument_passing_restrictions/main.cpp deleted file mode 100644 index 4b3b6950455..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/argument_passing_restrictions/main.cpp +++ /dev/null @@ -1,19 +0,0 @@ -// This structure has a non-trivial copy constructor so -// it needs to be passed by reference. -struct PassByRef { - PassByRef() = default; - PassByRef(const PassByRef &p){x = p.x;}; - - int x = 11223344; -}; - -PassByRef returnPassByRef() { return PassByRef(); } -int takePassByRef(PassByRef p) { - return p.x; -} - -int main() { - PassByRef p = returnPassByRef(); - p.x = 42; - return takePassByRef(p); // break here -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/calculator_mode/TestCalculatorMode.py b/lldb/packages/Python/lldbsuite/test/expression_command/calculator_mode/TestCalculatorMode.py deleted file mode 100644 index 46ea111bf03..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/call-function/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/call-function/Makefile deleted file mode 100644 index 9d4f3b7f141..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/call-function/TestCallBuiltinFunction.py b/lldb/packages/Python/lldbsuite/test/expression_command/call-function/TestCallBuiltinFunction.py deleted file mode 100644 index 87787f3479a..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/call-function/TestCallStdStringFunction.py b/lldb/packages/Python/lldbsuite/test/expression_command/call-function/TestCallStdStringFunction.py deleted file mode 100644 index 8f2ea371f2b..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/call-function/TestCallStopAndContinue.py b/lldb/packages/Python/lldbsuite/test/expression_command/call-function/TestCallStopAndContinue.py deleted file mode 100644 index d832983bdb6..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/call-function/TestCallUserDefinedFunction.py b/lldb/packages/Python/lldbsuite/test/expression_command/call-function/TestCallUserDefinedFunction.py deleted file mode 100644 index 0eb7086b616..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/call-function/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/call-function/main.cpp deleted file mode 100644 index cc5f52dbf56..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/call-overridden-method/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/call-overridden-method/Makefile deleted file mode 100644 index 9d4f3b7f141..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/call-overridden-method/TestCallOverriddenMethod.py b/lldb/packages/Python/lldbsuite/test/expression_command/call-overridden-method/TestCallOverriddenMethod.py deleted file mode 100644 index 1e61aa9f46e..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/call-overridden-method/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/call-overridden-method/main.cpp deleted file mode 100644 index 54ae705d297..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/call-restarts/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/call-restarts/Makefile deleted file mode 100644 index 1c93ae1de43..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/call-restarts/TestCallThatRestarts.py b/lldb/packages/Python/lldbsuite/test/expression_command/call-restarts/TestCallThatRestarts.py deleted file mode 100644 index 1182b156e80..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/call-restarts/lotta-signals.c b/lldb/packages/Python/lldbsuite/test/expression_command/call-restarts/lotta-signals.c deleted file mode 100644 index f5c15b41e2d..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/call-throws/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/call-throws/Makefile deleted file mode 100644 index ac07b31c48c..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/call-throws/TestCallThatThrows.py b/lldb/packages/Python/lldbsuite/test/expression_command/call-throws/TestCallThatThrows.py deleted file mode 100644 index c6b90ba5ba0..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/call-throws/call-throws.m b/lldb/packages/Python/lldbsuite/test/expression_command/call-throws/call-throws.m deleted file mode 100644 index a184718be7d..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/cast_int_to_anonymous_enum/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/cast_int_to_anonymous_enum/Makefile deleted file mode 100644 index 8a7102e347a..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/cast_int_to_anonymous_enum/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := main.cpp - -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/cast_int_to_anonymous_enum/TestCastIntToAnonymousEnum.py b/lldb/packages/Python/lldbsuite/test/expression_command/cast_int_to_anonymous_enum/TestCastIntToAnonymousEnum.py deleted file mode 100644 index b8eaf51d3e2..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/cast_int_to_anonymous_enum/TestCastIntToAnonymousEnum.py +++ /dev/null @@ -1,22 +0,0 @@ -""" -Test Expression Parser regression text to ensure that we handle anonymous -enums importing correctly. -""" - - -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class TestCastIntToAnonymousEnum(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def test_cast_int_to_anonymous_enum(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, '// break here', - lldb.SBFileSpec("main.cpp", False)) - - self.expect("expr (flow_e)0", substrs=['(flow_e) $0 = A']) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/cast_int_to_anonymous_enum/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/cast_int_to_anonymous_enum/main.cpp deleted file mode 100644 index 7ae4c1735db..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/cast_int_to_anonymous_enum/main.cpp +++ /dev/null @@ -1,9 +0,0 @@ -enum flow_e { - A=0, -}; - -int main() { - flow_e f; - - return 0; // break here -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/char/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/char/Makefile deleted file mode 100644 index 8a7102e347a..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/char/TestExprsChar.py b/lldb/packages/Python/lldbsuite/test/expression_command/char/TestExprsChar.py deleted file mode 100644 index a9679b7dd36..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/char/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/char/main.cpp deleted file mode 100644 index c8b0beb1b35..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/class_template_specialization_empty_pack/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/class_template_specialization_empty_pack/Makefile deleted file mode 100644 index 8a7102e347a..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/class_template_specialization_empty_pack/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := main.cpp - -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/class_template_specialization_empty_pack/TestClassTemplateSpecializationParametersHandling.py b/lldb/packages/Python/lldbsuite/test/expression_command/class_template_specialization_empty_pack/TestClassTemplateSpecializationParametersHandling.py deleted file mode 100644 index d1974d05a24..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/class_template_specialization_empty_pack/TestClassTemplateSpecializationParametersHandling.py +++ /dev/null @@ -1,23 +0,0 @@ -""" -Test Expression Parser code gen for ClassTemplateSpecializationDecl to insure -that we generate a TemplateTypeParmDecl in the TemplateParameterList for empty -variadic packs. -""" - - -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class TestClassTemplateSpecializationParametersHandling(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def test_class_template_specialization(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, '// break here', - lldb.SBFileSpec("main.cpp", False)) - - self.expect("expr -u 0 -- b.foo()", substrs=['$0 = 1']) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/class_template_specialization_empty_pack/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/class_template_specialization_empty_pack/main.cpp deleted file mode 100644 index bc831604aed..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/class_template_specialization_empty_pack/main.cpp +++ /dev/null @@ -1,9 +0,0 @@ -template <typename N, class... P> -struct A { - int foo() { return 1;} -}; - -int main() { - A<int> b; - return b.foo(); // break here -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash-incomplete-record/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash-incomplete-record/Makefile deleted file mode 100644 index 82355a233cf..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash-incomplete-record/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -LEVEL = ../../make -CXX_SOURCES := main.cpp -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash-incomplete-record/TestCompletionCrashIncompleteRecord.py b/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash-incomplete-record/TestCompletionCrashIncompleteRecord.py deleted file mode 100644 index 68bd864c008..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash-incomplete-record/TestCompletionCrashIncompleteRecord.py +++ /dev/null @@ -1,4 +0,0 @@ -from lldbsuite.test import lldbinline -from lldbsuite.test import decorators - -lldbinline.MakeInlineTest(__file__, globals(), [decorators.skipIf(bugnumber="rdar://53756116")]) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash-incomplete-record/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash-incomplete-record/main.cpp deleted file mode 100644 index f7ca83c6540..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash-incomplete-record/main.cpp +++ /dev/null @@ -1,11 +0,0 @@ -int i; -struct F { - int &r; - F() : r(i) {} -}; -template <class T> struct unique_ptr { - F i; - unique_ptr() : i() {//%self.dbg.GetCommandInterpreter().HandleCompletion("e ", len("e "), 0, -1, lldb.SBStringList()) -} -}; -int main() {unique_ptr<F> u; } diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash-lambda/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash-lambda/Makefile deleted file mode 100644 index 82355a233cf..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash-lambda/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -LEVEL = ../../make -CXX_SOURCES := main.cpp -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash1/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash1/Makefile deleted file mode 100644 index 82355a233cf..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash1/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -LEVEL = ../../make -CXX_SOURCES := main.cpp -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash1/TestCompletionCrash1.py b/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash1/TestCompletionCrash1.py deleted file mode 100644 index 3f2a6100607..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash1/TestCompletionCrash1.py +++ /dev/null @@ -1,4 +0,0 @@ -from lldbsuite.test import lldbinline -from lldbsuite.test import decorators - -lldbinline.MakeInlineTest(__file__, globals(), [decorators.skipIf(bugnumber="rdar://53659341")]) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash1/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash1/main.cpp deleted file mode 100644 index 7b123c0662d..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash1/main.cpp +++ /dev/null @@ -1,12 +0,0 @@ -namespace std { -struct a { - a() {} - a(a &&); -}; -template <class> struct au { - a ay; - ~au() { //%self.dbg.GetCommandInterpreter().HandleCompletion("e ", len("e "), 0, -1, lldb.SBStringList()) - } -}; -} -int main() { std::au<int>{}; } diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash2/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash2/Makefile deleted file mode 100644 index 82355a233cf..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash2/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -LEVEL = ../../make -CXX_SOURCES := main.cpp -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash2/TestCompletionCrash2.py b/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash2/TestCompletionCrash2.py deleted file mode 100644 index 922347aa781..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash2/TestCompletionCrash2.py +++ /dev/null @@ -1,4 +0,0 @@ -from lldbsuite.test import lldbinline -from lldbsuite.test import decorators - -lldbinline.MakeInlineTest(__file__, globals(), [decorators.skipIf(bugnumber="rdar://53754063")]) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash2/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash2/main.cpp deleted file mode 100644 index 02f15c295c2..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash2/main.cpp +++ /dev/null @@ -1,11 +0,0 @@ -namespace n { -template <class> class a {}; -template <class b> struct shared_ptr { - template <class...> - static void make_shared() { //%self.dbg.GetCommandInterpreter().HandleCompletion("e ", len("e "), 0, -1, lldb.SBStringList()) - typedef a<b> c; - c d; - } -}; -} // namespace n -int main() { n::shared_ptr<int>::make_shared(); } diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/completion-in-lambda-and-unnnamed-class/TestCompletionInLambdaAndUnnamedClass.py b/lldb/packages/Python/lldbsuite/test/expression_command/completion-in-lambda-and-unnnamed-class/TestCompletionInLambdaAndUnnamedClass.py deleted file mode 100644 index 57fb94b6d66..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/completion-in-lambda-and-unnnamed-class/TestCompletionInLambdaAndUnnamedClass.py +++ /dev/null @@ -1,4 +0,0 @@ -from lldbsuite.test import lldbinline -from lldbsuite.test import decorators - -lldbinline.MakeInlineTest(__file__, globals(),) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/completion-in-lambda-and-unnnamed-class/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/completion-in-lambda-and-unnnamed-class/main.cpp deleted file mode 100644 index a3d8ab6532e..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/completion-in-lambda-and-unnnamed-class/main.cpp +++ /dev/null @@ -1,11 +0,0 @@ -int main() { - []() - { //%self.dbg.GetCommandInterpreter().HandleCompletion("e ", len("e "), 0, -1, lldb.SBStringList()) - } - (); - struct { - void f() - { //%self.dbg.GetCommandInterpreter().HandleCompletion("e ", len("e "), 0, -1, lldb.SBStringList()) - } - } A; -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/completion/.categories b/lldb/packages/Python/lldbsuite/test/expression_command/completion/.categories deleted file mode 100644 index 3a3f4df6416..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/completion/.categories +++ /dev/null @@ -1 +0,0 @@ -cmdline diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/completion/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/completion/Makefile deleted file mode 100644 index 6fc26a9193f..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/completion/TestExprCompletion.py b/lldb/packages/Python/lldbsuite/test/expression_command/completion/TestExprCompletion.py deleted file mode 100644 index 33a423c806b..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/completion/TestExprCompletion.py +++ /dev/null @@ -1,255 +0,0 @@ -""" -Test the lldb command line completion mechanism for the 'expr' command. -""" - -from __future__ import print_function - -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/lldb/packages/Python/lldbsuite/test/expression_command/completion/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/completion/main.cpp deleted file mode 100644 index 908bebbebff..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/completion/other.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/completion/other.cpp deleted file mode 100644 index 1f8a488639b..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/context-object-objc/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/context-object-objc/Makefile deleted file mode 100644 index b6592745356..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/context-object-objc/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -LEVEL = ../../make - -OBJC_SOURCES := main.m - -include $(LEVEL)/Makefile.rules -LDFLAGS += -framework Foundation diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/context-object-objc/TestContextObjectObjc.py b/lldb/packages/Python/lldbsuite/test/expression_command/context-object-objc/TestContextObjectObjc.py deleted file mode 100644 index 4ae4fd8680d..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/context-object-objc/TestContextObjectObjc.py +++ /dev/null @@ -1,78 +0,0 @@ -""" -Tests expression evaluation in context of an objc class. -""" - -import lldb -import lldbsuite.test.lldbutil as lldbutil -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * - -class ContextObjectObjcTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - @skipUnlessDarwin - def test_context_object_objc(self): - """Tests expression evaluation in context of an objc class.""" - self.build() - - (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(self, '// Break here', self.main_source_spec) - frame = thread.GetFrameAtIndex(0) - - # - # Test objc class variable - # - - obj_val = frame.FindVariable("objcClass") - self.assertTrue(obj_val.IsValid()) - obj_val = obj_val.Dereference() - self.assertTrue(obj_val.IsValid()) - - # Test an empty expression evaluation - value = obj_val.EvaluateExpression("") - self.assertFalse(value.IsValid()) - self.assertFalse(value.GetError().Success()) - - # Test retrieving of a field (not a local with the same name) - value = obj_val.EvaluateExpression("field") - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Success()) - self.assertEqual(value.GetValueAsSigned(), 1111) - - # Test if the self pointer is properly evaluated - - # Test retrieving of an objcClass's property through the self pointer - value = obj_val.EvaluateExpression("self.property") - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Success()) - self.assertEqual(value.GetValueAsSigned(), 2222) - - # Test objcClass's methods evaluation through the self pointer - value = obj_val.EvaluateExpression("[self method]") - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Success()) - self.assertEqual(value.GetValueAsSigned(), 3333) - - # Test if we can use a computation result reference object correctly - - obj_val = frame.EvaluateExpression("[ObjcClass createNew]") - self.assertTrue(obj_val.IsValid()) - obj_val = obj_val.Dereference() - self.assertTrue(obj_val.IsValid()) - - # Test an expression evaluation on it - value = obj_val.EvaluateExpression("1") - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Success()) - - # Test retrieving of a field on it - value = obj_val.EvaluateExpression("field") - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Success()) - self.assertEqual(value.GetValueAsSigned(), 1111) - - def setUp(self): - TestBase.setUp(self) - - self.main_source = "main.m" - self.main_source_spec = lldb.SBFileSpec(self.main_source) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/context-object-objc/main.m b/lldb/packages/Python/lldbsuite/test/expression_command/context-object-objc/main.m deleted file mode 100644 index 5c495b24894..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/context-object-objc/main.m +++ /dev/null @@ -1,47 +0,0 @@ -#import <Foundation/Foundation.h> - -@interface ObjcClass : NSObject { - int field; -} - -@property int property; - -+(ObjcClass*)createNew; - --(id)init; - --(int)method; - -@end - -@implementation ObjcClass - -+(ObjcClass*)createNew { - return [ObjcClass new]; -} - --(id)init { - self = [super init]; - if (self) { - field = 1111; - _property = 2222; - } - return self; -} - --(int)method { - return 3333; -} - -@end - -int main() -{ - @autoreleasepool { - ObjcClass* objcClass = [ObjcClass new]; - - int field = 4444; - - return 0; // Break here - } -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/context-object/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/context-object/Makefile deleted file mode 100644 index 8a7102e347a..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/context-object/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := main.cpp - -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/context-object/TestContextObject.py b/lldb/packages/Python/lldbsuite/test/expression_command/context-object/TestContextObject.py deleted file mode 100644 index 02b8162aad6..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/context-object/TestContextObject.py +++ /dev/null @@ -1,145 +0,0 @@ -""" -Tests expression evaluation in context of an object. -""" - -import lldb -import lldbsuite.test.lldbutil as lldbutil -from lldbsuite.test.lldbtest import * - -class ContextObjectTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def test_context_object(self): - """Tests expression evaluation in context of an object.""" - self.build() - - (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(self, '// Break here', self.main_source_spec) - frame = thread.GetFrameAtIndex(0) - - # - # Test C++ struct variable - # - - obj_val = frame.FindVariable("cpp_struct") - self.assertTrue(obj_val.IsValid()) - - # Test an empty expression evaluation - value = obj_val.EvaluateExpression("") - self.assertFalse(value.IsValid()) - self.assertFalse(value.GetError().Success()) - - # Test retrieveing of a field (not a local with the same name) - value = obj_val.EvaluateExpression("field") - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Success()) - self.assertEqual(value.GetValueAsSigned(), 1111) - - # Test functions evaluation - value = obj_val.EvaluateExpression("function()") - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Success()) - self.assertEqual(value.GetValueAsSigned(), 2222) - - # Test that we retrieve the right global - value = obj_val.EvaluateExpression("global.field") - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Success()) - self.assertEqual(value.GetValueAsSigned(), 1111) - - # - # Test C++ union variable - # - - obj_val = frame.FindVariable("cpp_union") - self.assertTrue(obj_val.IsValid()) - - # Test retrieveing of a field - value = obj_val.EvaluateExpression("field_int") - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Success()) - self.assertEqual(value.GetValueAsSigned(), 5555) - - # - # Test C++ scalar - # - - obj_val = frame.FindVariable("cpp_scalar") - self.assertTrue(obj_val.IsValid()) - - # Test an expression evaluation - value = obj_val.EvaluateExpression("1") - self.assertFalse(value.IsValid()) - self.assertFalse(value.GetError().Success()) - - # - # Test C++ array - # - - obj_val = frame.FindVariable("cpp_array") - self.assertTrue(obj_val.IsValid()) - - # Test an expression evaluation - value = obj_val.EvaluateExpression("1") - self.assertFalse(value.IsValid()) - self.assertFalse(value.GetError().Success()) - - # Test retrieveing of an element's field - value = obj_val.GetValueForExpressionPath("[7]").EvaluateExpression("field") - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Success()) - self.assertEqual(value.GetValueAsSigned(), 1111) - - # - # Test C++ pointer - # - - obj_val = frame.FindVariable("cpp_pointer") - self.assertTrue(obj_val.IsValid()) - - # Test an expression evaluation - value = obj_val.EvaluateExpression("1") - self.assertFalse(value.IsValid()) - self.assertFalse(value.GetError().Success()) - - # Test retrieveing of a dereferenced object's field - value = obj_val.Dereference().EvaluateExpression("field") - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Success()) - self.assertEqual(value.GetValueAsSigned(), 1111) - - # - # Test C++ computation result - # - - obj_val = frame.EvaluateExpression("cpp_namespace::GetCppStruct()") - self.assertTrue(obj_val.IsValid()) - - # Test an expression evaluation - value = obj_val.EvaluateExpression("1") - self.assertTrue(value.IsValid()) - self.assertFalse(value.GetError().Success()) - - # - # Test C++ computation result located in debuggee memory - # - - obj_val = frame.EvaluateExpression("cpp_namespace::GetCppStructPtr()") - self.assertTrue(obj_val.IsValid()) - - # Test an expression evaluation - value = obj_val.EvaluateExpression("1") - self.assertFalse(value.IsValid()) - self.assertFalse(value.GetError().Success()) - - # Test retrieveing of a dereferenced object's field - value = obj_val.Dereference().EvaluateExpression("field") - self.assertTrue(value.IsValid()) - self.assertTrue(value.GetError().Success()) - self.assertEqual(value.GetValueAsSigned(), 1111) - - def setUp(self): - TestBase.setUp(self) - - self.main_source = "main.cpp" - self.main_source_spec = lldb.SBFileSpec(self.main_source) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/context-object/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/context-object/main.cpp deleted file mode 100644 index 098b6089fce..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/context-object/main.cpp +++ /dev/null @@ -1,46 +0,0 @@ -namespace cpp_namespace { - struct CppStruct { - int field = 1111; - - int function() { - return 2222; - } - }; - - union CppUnion { - char field_char; - short field_short; - int field_int; - }; - - CppStruct GetCppStruct() { - return CppStruct(); - } - - CppStruct global; - - CppStruct *GetCppStructPtr() { - return &global; - } -} - -int global = 3333; - -int main() -{ - cpp_namespace::CppStruct cpp_struct = cpp_namespace::GetCppStruct(); - cpp_struct.function(); - - int field = 4444; - - cpp_namespace::CppUnion cpp_union; - cpp_union.field_int = 5555; - - int cpp_scalar = 6666; - - cpp_namespace::CppStruct cpp_array[16]; - - cpp_namespace::CppStruct *cpp_pointer = cpp_namespace::GetCppStructPtr(); - - return 0; // Break here -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/dollar-in-variable/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/dollar-in-variable/Makefile deleted file mode 100644 index f5a47fcc46c..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/dollar-in-variable/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -LEVEL = ../../make -C_SOURCES := main.c -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/dollar-in-variable/TestDollarInVariable.py b/lldb/packages/Python/lldbsuite/test/expression_command/dollar-in-variable/TestDollarInVariable.py deleted file mode 100644 index 7458867527d..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/dollar-in-variable/TestDollarInVariable.py +++ /dev/null @@ -1,5 +0,0 @@ -from lldbsuite.test import lldbinline -from lldbsuite.test import decorators - -lldbinline.MakeInlineTest(__file__, globals(), - [lldbinline.expectedFailureAll(oslist=["windows"])]) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/dollar-in-variable/main.c b/lldb/packages/Python/lldbsuite/test/expression_command/dollar-in-variable/main.c deleted file mode 100644 index e5fec25b35b..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/dollar-in-variable/main.c +++ /dev/null @@ -1,21 +0,0 @@ -// Make sure we correctly handle $ in variable names. - -int main() { - // Some variables that might conflict with our variables below. - int __lldb_expr_result = 2; - int $$foo = 1; - int R0 = 2; - - // Some variables with dollar signs that should work (and shadow - // any built-in LLDB variables). - int $__lldb_expr_result = 11; - int $foo = 12; - int $R0 = 13; - int $0 = 14; - - //%self.expect("expr $__lldb_expr_result", substrs=['(int) $0 = 11']) - //%self.expect("expr $foo", substrs=['(int)', ' = 12']) - //%self.expect("expr $R0", substrs=['(int)', ' = 13']) - //%self.expect("expr int $foo = 123", error=True, substrs=["declaration conflicts"]) - return 0; //%self.expect("expr $0", substrs=['(int)', ' = 14']) -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/dont_allow_jit/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/dont_allow_jit/Makefile deleted file mode 100644 index 50d4ab65a6e..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/dont_allow_jit/TestAllowJIT.py b/lldb/packages/Python/lldbsuite/test/expression_command/dont_allow_jit/TestAllowJIT.py deleted file mode 100644 index 19d9fa7e425..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/dont_allow_jit/TestAllowJIT.py +++ /dev/null @@ -1,87 +0,0 @@ -""" -Test that --allow-jit=false does disallow JITting: -""" - -from __future__ import print_function - - -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/lldb/packages/Python/lldbsuite/test/expression_command/dont_allow_jit/main.c b/lldb/packages/Python/lldbsuite/test/expression_command/dont_allow_jit/main.c deleted file mode 100644 index ebd8ae11a73..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/expr-in-syscall/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/expr-in-syscall/Makefile deleted file mode 100644 index 8a7102e347a..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/expr-in-syscall/TestExpressionInSyscall.py b/lldb/packages/Python/lldbsuite/test/expression_command/expr-in-syscall/TestExpressionInSyscall.py deleted file mode 100644 index 6a7e6075253..00000000000 --- a/lldb/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 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") - @expectedFailureNetBSD - 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/lldb/packages/Python/lldbsuite/test/expression_command/expr-in-syscall/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/expr-in-syscall/main.cpp deleted file mode 100644 index 743b69434d5..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/fixits/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/fixits/Makefile deleted file mode 100644 index 8a7102e347a..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/fixits/TestFixIts.py b/lldb/packages/Python/lldbsuite/test/expression_command/fixits/TestFixIts.py deleted file mode 100644 index 9aa28f77a3f..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/fixits/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/fixits/main.cpp deleted file mode 100644 index 371d8333763..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/formatters/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/formatters/Makefile deleted file mode 100644 index 8a7102e347a..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/formatters/TestFormatters.py b/lldb/packages/Python/lldbsuite/test/expression_command/formatters/TestFormatters.py deleted file mode 100644 index b13d6555f33..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/formatters/TestFormatters.py +++ /dev/null @@ -1,287 +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 - @expectedFailureNetBSD - @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/lldb/packages/Python/lldbsuite/test/expression_command/formatters/foosynth.py b/lldb/packages/Python/lldbsuite/test/expression_command/formatters/foosynth.py deleted file mode 100644 index 7b1284d2a76..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/formatters/formatters.py b/lldb/packages/Python/lldbsuite/test/expression_command/formatters/formatters.py deleted file mode 100644 index dae84988af9..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/formatters/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/formatters/main.cpp deleted file mode 100644 index 1b8ce48041f..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/function_template_specialization_temp_args/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/function_template_specialization_temp_args/Makefile deleted file mode 100644 index 8a7102e347a..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/function_template_specialization_temp_args/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := main.cpp - -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/function_template_specialization_temp_args/TestFunctionTemplateSpecializationTempArgs.py b/lldb/packages/Python/lldbsuite/test/expression_command/function_template_specialization_temp_args/TestFunctionTemplateSpecializationTempArgs.py deleted file mode 100644 index bd5bc0ec72a..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/function_template_specialization_temp_args/TestFunctionTemplateSpecializationTempArgs.py +++ /dev/null @@ -1,17 +0,0 @@ -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class TestFunctionTemplateSpecializationTempArgs(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def test_function_template_specialization_temp_args(self): - self.build() - - (self.target, self.process, _, bkpt) = lldbutil.run_to_source_breakpoint(self, '// break here', - lldb.SBFileSpec("main.cpp", False)) - - self.expect("expr p0", - substrs=['(VType) $0 = {}']) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/function_template_specialization_temp_args/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/function_template_specialization_temp_args/main.cpp deleted file mode 100644 index 6d01288259a..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/function_template_specialization_temp_args/main.cpp +++ /dev/null @@ -1,17 +0,0 @@ -template <typename T> struct M {}; - -template <typename T> void f(T &t); - -template <> void f<int>(int &t) { - typedef M<int> VType; - - VType p0; // break here -} - -int main() { - int x; - - f(x); - - return 0; -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/basic/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/basic/Makefile deleted file mode 100644 index 01718d86aa7..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/basic/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../../make -USE_LIBCPP := 1 -CXXFLAGS += $(MANDATORY_CXXMODULE_BUILD_CFLAGS) -CXX_SOURCES := main.cpp -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/basic/TestImportStdModule.py b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/basic/TestImportStdModule.py deleted file mode 100644 index 19e02ca84c9..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/basic/TestImportStdModule.py +++ /dev/null @@ -1,56 +0,0 @@ -""" -Test importing the 'std' C++ module and evaluate expressions with it. -""" - -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class ImportStdModule(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - # FIXME: This should work on more setups, so remove these - # skipIf's in the future. - @add_test_categories(["libc++"]) - @skipIf(compiler=no_match("clang")) - @skipIf(oslist=no_match(["linux"])) - @skipIf(debug_info=no_match(["dwarf"])) - def test(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, - "// Set break point at this line.", lldb.SBFileSpec("main.cpp")) - - # Activate importing of std module. - self.runCmd("settings set target.import-std-module true") - # Calling some normal std functions that return non-template types. - self.expect("expr std::abs(-42)", substrs=['(int) $0 = 42']) - self.expect("expr std::div(2, 1).quot", substrs=['(int) $1 = 2']) - # Using types from std. - self.expect("expr (std::size_t)33U", substrs=['(size_t) $2 = 33']) - # Calling templated functions that return non-template types. - self.expect("expr char char_a = 'b'; char char_b = 'a'; std::swap(char_a, char_b); char_a", - substrs=["(char) $3 = 'a'"]) - - # FIXME: This should work on more setups, so remove these - # skipIf's in the future. - @add_test_categories(["libc++"]) - @skipIf(compiler=no_match("clang")) - @skipIf(oslist=no_match(["linux"])) - @skipIf(debug_info=no_match(["dwarf"])) - def test_non_cpp_language(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, - "// Set break point at this line.", lldb.SBFileSpec("main.cpp")) - - # Activate importing of std module. - self.runCmd("settings set target.import-std-module true") - # These languages don't support C++ modules, so they shouldn't - # be able to evaluate the expression. - self.expect("expr -l C -- std::abs(-42)", error=True) - self.expect("expr -l C99 -- std::abs(-42)", error=True) - self.expect("expr -l C11 -- std::abs(-42)", error=True) - self.expect("expr -l ObjC -- std::abs(-42)", error=True) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/basic/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/basic/main.cpp deleted file mode 100644 index 2f6d078daa3..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/basic/main.cpp +++ /dev/null @@ -1,7 +0,0 @@ -// We need to import any std module. It doesn't matter which one. -#include <iostream> - -int main(int argc, char **argv) { - std::cout << "Test" << std::endl; - return 0; // Set break point at this line. -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/conflicts/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/conflicts/Makefile deleted file mode 100644 index 01718d86aa7..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/conflicts/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../../make -USE_LIBCPP := 1 -CXXFLAGS += $(MANDATORY_CXXMODULE_BUILD_CFLAGS) -CXX_SOURCES := main.cpp -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/conflicts/TestStdModuleWithConflicts.py b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/conflicts/TestStdModuleWithConflicts.py deleted file mode 100644 index 2abaece27fe..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/conflicts/TestStdModuleWithConflicts.py +++ /dev/null @@ -1,36 +0,0 @@ -""" -Test importing the 'std' C++ module and check if we can handle -prioritizing the conflicting functions from debug info and std -module. - -See also import-std-module/basic/TestImportStdModule.py for -the same test on a 'clean' code base without conflicts. -""" - -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class TestImportStdModuleConflicts(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - # FIXME: This should work on more setups, so remove these - # skipIf's in the future. - @add_test_categories(["libc++"]) - @skipIf(compiler=no_match("clang")) - @skipIf(oslist=no_match(["linux"])) - @skipIf(debug_info=no_match(["dwarf"])) - def test(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, - "// Set break point at this line.", lldb.SBFileSpec("main.cpp")) - - self.runCmd("settings set target.import-std-module true") - self.expect("expr std::abs(-42)", substrs=['(int) $0 = 42']) - self.expect("expr std::div(2, 1).quot", substrs=['(int) $1 = 2']) - self.expect("expr (std::size_t)33U", substrs=['(size_t) $2 = 33']) - self.expect("expr char char_a = 'b'; char char_b = 'a'; std::swap(char_a, char_b); char_a", - substrs=["(char) $3 = 'a'"]) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/conflicts/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/conflicts/main.cpp deleted file mode 100644 index e49b862a36c..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/conflicts/main.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include <cstdlib> -#include <utility> - -int main(int argc, char **argv) { - std::size_t f = argc; - f = std::abs(argc); - f = std::div(argc * 2, argc).quot; - std::swap(f, f); - return f; // Set break point at this line. -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/deque-basic/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/deque-basic/Makefile deleted file mode 100644 index 01718d86aa7..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/deque-basic/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../../make -USE_LIBCPP := 1 -CXXFLAGS += $(MANDATORY_CXXMODULE_BUILD_CFLAGS) -CXX_SOURCES := main.cpp -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/deque-basic/TestBasicDeque.py b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/deque-basic/TestBasicDeque.py deleted file mode 100644 index 0ede19e8350..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/deque-basic/TestBasicDeque.py +++ /dev/null @@ -1,41 +0,0 @@ -""" -Test basic std::list functionality. -""" - -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class TestBasicDeque(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - # FIXME: This should work on more setups, so remove these - # skipIf's in the future. - @add_test_categories(["libc++"]) - @skipIf(compiler=no_match("clang")) - @skipIf(oslist=no_match(["linux"])) - @skipIf(debug_info=no_match(["dwarf"])) - def test(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, - "// Set break point at this line.", lldb.SBFileSpec("main.cpp")) - - self.runCmd("settings set target.import-std-module true") - - self.expect("expr (size_t)a.size()", substrs=['(size_t) $0 = 3']) - self.expect("expr (int)a.front()", substrs=['(int) $1 = 3']) - self.expect("expr (int)a.back()", substrs=['(int) $2 = 2']) - - self.expect("expr std::sort(a.begin(), a.end())") - self.expect("expr (int)a.front()", substrs=['(int) $3 = 1']) - self.expect("expr (int)a.back()", substrs=['(int) $4 = 3']) - - self.expect("expr std::reverse(a.begin(), a.end())") - self.expect("expr (int)a.front()", substrs=['(int) $5 = 3']) - self.expect("expr (int)a.back()", substrs=['(int) $6 = 1']) - - self.expect("expr (int)(*a.begin())", substrs=['(int) $7 = 3']) - self.expect("expr (int)(*a.rbegin())", substrs=['(int) $8 = 1']) - diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/deque-basic/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/deque-basic/main.cpp deleted file mode 100644 index 5bed55674bf..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/deque-basic/main.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include <deque> - -int main(int argc, char **argv) { - std::deque<int> a = {3, 1, 2}; - return 0; // Set break point at this line. -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/deque-dbg-info-content/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/deque-dbg-info-content/Makefile deleted file mode 100644 index 01718d86aa7..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/deque-dbg-info-content/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../../make -USE_LIBCPP := 1 -CXXFLAGS += $(MANDATORY_CXXMODULE_BUILD_CFLAGS) -CXX_SOURCES := main.cpp -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/deque-dbg-info-content/TestDbgInfoContentDeque.py b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/deque-dbg-info-content/TestDbgInfoContentDeque.py deleted file mode 100644 index eeea34819dd..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/deque-dbg-info-content/TestDbgInfoContentDeque.py +++ /dev/null @@ -1,37 +0,0 @@ -""" -Test std::deque functionality with a decl from dbg info as content. -""" - -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class TestDbgInfoContentDeque(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - # FIXME: This should work on more setups, so remove these - # skipIf's in the future. - @add_test_categories(["libc++"]) - @skipIf(compiler=no_match("clang")) - @skipIf(oslist=no_match(["linux"])) - @skipIf(debug_info=no_match(["dwarf"])) - def test(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, - "// Set break point at this line.", lldb.SBFileSpec("main.cpp")) - - self.runCmd("settings set target.import-std-module true") - - self.expect("expr (size_t)a.size()", substrs=['(size_t) $0 = 3']) - self.expect("expr (int)a.front().a", substrs=['(int) $1 = 3']) - self.expect("expr (int)a.back().a", substrs=['(int) $2 = 2']) - - self.expect("expr std::reverse(a.begin(), a.end())") - self.expect("expr (int)a.front().a", substrs=['(int) $3 = 2']) - self.expect("expr (int)a.back().a", substrs=['(int) $4 = 3']) - - self.expect("expr (int)(a.begin()->a)", substrs=['(int) $5 = 2']) - self.expect("expr (int)(a.rbegin()->a)", substrs=['(int) $6 = 3']) - diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/deque-dbg-info-content/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/deque-dbg-info-content/main.cpp deleted file mode 100644 index f8fd1fb2dd9..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/deque-dbg-info-content/main.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include <deque> - -struct Foo { - int a; -}; - -int main(int argc, char **argv) { - std::deque<Foo> a = {{3}, {1}, {2}}; - return 0; // Set break point at this line. -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/forward_list-basic/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/forward_list-basic/Makefile deleted file mode 100644 index 01718d86aa7..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/forward_list-basic/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../../make -USE_LIBCPP := 1 -CXXFLAGS += $(MANDATORY_CXXMODULE_BUILD_CFLAGS) -CXX_SOURCES := main.cpp -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/forward_list-basic/TestBasicForwardList.py b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/forward_list-basic/TestBasicForwardList.py deleted file mode 100644 index 528d555e0af..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/forward_list-basic/TestBasicForwardList.py +++ /dev/null @@ -1,34 +0,0 @@ -""" -Test basic std::forward_list functionality. -""" - -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class TestBasicForwardList(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - # FIXME: This should work on more setups, so remove these - # skipIf's in the future. - @add_test_categories(["libc++"]) - @skipIf(compiler=no_match("clang")) - @skipIf(oslist=no_match(["linux"])) - @skipIf(debug_info=no_match(["dwarf"])) - def test(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, - "// Set break point at this line.", lldb.SBFileSpec("main.cpp")) - - self.runCmd("settings set target.import-std-module true") - - self.expect("expr (size_t)std::distance(a.begin(), a.end())", substrs=['(size_t) $0 = 3']) - self.expect("expr (int)a.front()", substrs=['(int) $1 = 3']) - - self.expect("expr a.sort()") - self.expect("expr (int)a.front()", substrs=['(int) $2 = 1']) - - self.expect("expr (int)(*a.begin())", substrs=['(int) $3 = 1']) - diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/forward_list-basic/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/forward_list-basic/main.cpp deleted file mode 100644 index 4f5e30f0629..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/forward_list-basic/main.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include <forward_list> - -int main(int argc, char **argv) { - std::forward_list<int> a = {3, 1, 2}; - return 0; // Set break point at this line. -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/forward_list-dbg-info-content/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/forward_list-dbg-info-content/Makefile deleted file mode 100644 index 01718d86aa7..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/forward_list-dbg-info-content/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../../make -USE_LIBCPP := 1 -CXXFLAGS += $(MANDATORY_CXXMODULE_BUILD_CFLAGS) -CXX_SOURCES := main.cpp -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/forward_list-dbg-info-content/TestDbgInfoContentForwardList.py b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/forward_list-dbg-info-content/TestDbgInfoContentForwardList.py deleted file mode 100644 index a2fc5598930..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/forward_list-dbg-info-content/TestDbgInfoContentForwardList.py +++ /dev/null @@ -1,31 +0,0 @@ -""" -Test std::forward_list functionality with a decl from debug info as content. -""" - -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class TestDbgInfoContentForwardList(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - # FIXME: This should work on more setups, so remove these - # skipIf's in the future. - @add_test_categories(["libc++"]) - @skipIf(compiler=no_match("clang")) - @skipIf(oslist=no_match(["linux"])) - @skipIf(debug_info=no_match(["dwarf"])) - def test(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, - "// Set break point at this line.", lldb.SBFileSpec("main.cpp")) - - self.runCmd("settings set target.import-std-module true") - - self.expect("expr (size_t)std::distance(a.begin(), a.end())", substrs=['(size_t) $0 = 3']) - self.expect("expr (int)a.front().a", substrs=['(int) $1 = 3']) - - self.expect("expr (int)(a.begin()->a)", substrs=['(int) $2 = 3']) - diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/forward_list-dbg-info-content/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/forward_list-dbg-info-content/main.cpp deleted file mode 100644 index b1ffc4b24cd..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/forward_list-dbg-info-content/main.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include <forward_list> - -struct Foo { - int a; -}; - -int main(int argc, char **argv) { - std::forward_list<Foo> a = {{3}, {1}, {2}}; - return 0; // Set break point at this line. -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/list-basic/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/list-basic/Makefile deleted file mode 100644 index 01718d86aa7..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/list-basic/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../../make -USE_LIBCPP := 1 -CXXFLAGS += $(MANDATORY_CXXMODULE_BUILD_CFLAGS) -CXX_SOURCES := main.cpp -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/list-basic/TestBasicList.py b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/list-basic/TestBasicList.py deleted file mode 100644 index 154c8ed7bd0..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/list-basic/TestBasicList.py +++ /dev/null @@ -1,41 +0,0 @@ -""" -Test basic std::list functionality. -""" - -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class TestBasicList(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - # FIXME: This should work on more setups, so remove these - # skipIf's in the future. - @add_test_categories(["libc++"]) - @skipIf(compiler=no_match("clang")) - @skipIf(oslist=no_match(["linux"])) - @skipIf(debug_info=no_match(["dwarf"])) - def test(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, - "// Set break point at this line.", lldb.SBFileSpec("main.cpp")) - - self.runCmd("settings set target.import-std-module true") - - self.expect("expr (size_t)a.size()", substrs=['(size_t) $0 = 3']) - self.expect("expr (int)a.front()", substrs=['(int) $1 = 3']) - self.expect("expr (int)a.back()", substrs=['(int) $2 = 2']) - - self.expect("expr a.sort()") - self.expect("expr (int)a.front()", substrs=['(int) $3 = 1']) - self.expect("expr (int)a.back()", substrs=['(int) $4 = 3']) - - self.expect("expr std::reverse(a.begin(), a.end())") - self.expect("expr (int)a.front()", substrs=['(int) $5 = 3']) - self.expect("expr (int)a.back()", substrs=['(int) $6 = 1']) - - self.expect("expr (int)(*a.begin())", substrs=['(int) $7 = 3']) - self.expect("expr (int)(*a.rbegin())", substrs=['(int) $8 = 1']) - diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/list-basic/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/list-basic/main.cpp deleted file mode 100644 index e54719a02fb..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/list-basic/main.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include <list> - -int main(int argc, char **argv) { - std::list<int> a = {3, 1, 2}; - return 0; // Set break point at this line. -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/list-dbg-info-content/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/list-dbg-info-content/Makefile deleted file mode 100644 index 01718d86aa7..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/list-dbg-info-content/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../../make -USE_LIBCPP := 1 -CXXFLAGS += $(MANDATORY_CXXMODULE_BUILD_CFLAGS) -CXX_SOURCES := main.cpp -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/list-dbg-info-content/TestDbgInfoContentList.py b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/list-dbg-info-content/TestDbgInfoContentList.py deleted file mode 100644 index 713ec1abb85..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/list-dbg-info-content/TestDbgInfoContentList.py +++ /dev/null @@ -1,38 +0,0 @@ -""" -Test basic std::list functionality but with a declaration from -the debug info (the Foo struct) as content. -""" - -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class TestDbgInfoContentList(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - # FIXME: This should work on more setups, so remove these - # skipIf's in the future. - @add_test_categories(["libc++"]) - @skipIf(compiler=no_match("clang")) - @skipIf(oslist=no_match(["linux"])) - @skipIf(debug_info=no_match(["dwarf"])) - def test(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, - "// Set break point at this line.", lldb.SBFileSpec("main.cpp")) - - self.runCmd("settings set target.import-std-module true") - - self.expect("expr (size_t)a.size()", substrs=['(size_t) $0 = 3']) - self.expect("expr (int)a.front().a", substrs=['(int) $1 = 3']) - self.expect("expr (int)a.back().a", substrs=['(int) $2 = 2']) - - self.expect("expr std::reverse(a.begin(), a.end())") - self.expect("expr (int)a.front().a", substrs=['(int) $3 = 2']) - self.expect("expr (int)a.back().a", substrs=['(int) $4 = 3']) - - self.expect("expr (int)(a.begin()->a)", substrs=['(int) $5 = 2']) - self.expect("expr (int)(a.rbegin()->a)", substrs=['(int) $6 = 3']) - diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/list-dbg-info-content/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/list-dbg-info-content/main.cpp deleted file mode 100644 index 3cfb35f8c6b..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/list-dbg-info-content/main.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include <list> - -struct Foo { - int a; -}; - -int main(int argc, char **argv) { - std::list<Foo> a = {{3}, {1}, {2}}; - return 0; // Set break point at this line. -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/no-std-module/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/no-std-module/Makefile deleted file mode 100644 index 01718d86aa7..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/no-std-module/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../../make -USE_LIBCPP := 1 -CXXFLAGS += $(MANDATORY_CXXMODULE_BUILD_CFLAGS) -CXX_SOURCES := main.cpp -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/no-std-module/TestMissingStdModule.py b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/no-std-module/TestMissingStdModule.py deleted file mode 100644 index f4d3d1fd492..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/no-std-module/TestMissingStdModule.py +++ /dev/null @@ -1,40 +0,0 @@ -""" -Test that importing the std module on a compile unit -that doesn't use the std module will not break LLDB. - -It's not really specified at the moment what kind of -error we should report back to the user in this -situation. Currently Clang will just complain that -the std module doesn't exist or can't be loaded. -""" - -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class STLTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - # FIXME: This should work on more setups, so remove these - # skipIf's in the future. - @add_test_categories(["libc++"]) - @skipIf(compiler=no_match("clang")) - @skipIf(oslist=no_match(["linux"])) - @skipIf(debug_info=no_match(["dwarf"])) - def test(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, - "// Set break point at this line.", lldb.SBFileSpec("main.cpp")) - - # Activate importing of std module. - self.runCmd("settings set target.import-std-module true") - - # Run some commands that should all fail without our std module. - self.expect("expr std::abs(-42)", error=True) - self.expect("expr std::div(2, 1).quot", error=True) - self.expect("expr (std::size_t)33U", error=True) - self.expect("expr char a = 'b'; char b = 'a'; std::swap(a, b); a", - error=True) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/no-std-module/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/no-std-module/main.cpp deleted file mode 100644 index c93e9d0ec8a..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/no-std-module/main.cpp +++ /dev/null @@ -1,5 +0,0 @@ -// We don't import any std module here. - -int main(int argc, char **argv) { - return 0; // Set break point at this line. -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/queue/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/queue/Makefile deleted file mode 100644 index 01718d86aa7..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/queue/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../../make -USE_LIBCPP := 1 -CXXFLAGS += $(MANDATORY_CXXMODULE_BUILD_CFLAGS) -CXX_SOURCES := main.cpp -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/queue/TestQueue.py b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/queue/TestQueue.py deleted file mode 100644 index aad1b11719b..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/queue/TestQueue.py +++ /dev/null @@ -1,47 +0,0 @@ -""" -Tests std::queue functionality. -""" - -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class TestQueue(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - # FIXME: This should work on more setups, so remove these - # skipIf's in the future. - @add_test_categories(["libc++"]) - @skipIf(compiler=no_match("clang")) - @skipIf(oslist=no_match(["linux"])) - @skipIf(debug_info=no_match(["dwarf"])) - def test(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, - "// Set break point at this line.", lldb.SBFileSpec("main.cpp")) - - self.runCmd("settings set target.import-std-module true") - - # Test std::queue functionality with a std::deque. - self.expect("expr q_deque.pop()") - self.expect("expr q_deque.push({4})") - self.expect("expr (size_t)q_deque.size()", substrs=['(size_t) $0 = 1']) - self.expect("expr (int)q_deque.front().i", substrs=['(int) $1 = 4']) - self.expect("expr (int)q_deque.back().i", substrs=['(int) $2 = 4']) - self.expect("expr q_deque.empty()", substrs=['(bool) $3 = false']) - self.expect("expr q_deque.pop()") - self.expect("expr q_deque.emplace(5)") - self.expect("expr (int)q_deque.front().i", substrs=['(int) $4 = 5']) - - # Test std::queue functionality with a std::list. - self.expect("expr q_list.pop()") - self.expect("expr q_list.push({4})") - self.expect("expr (size_t)q_list.size()", substrs=['(size_t) $5 = 1']) - self.expect("expr (int)q_list.front().i", substrs=['(int) $6 = 4']) - self.expect("expr (int)q_list.back().i", substrs=['(int) $7 = 4']) - self.expect("expr q_list.empty()", substrs=['(bool) $8 = false']) - self.expect("expr q_list.pop()") - self.expect("expr q_list.emplace(5)") - self.expect("expr (int)q_list.front().i", substrs=['(int) $9 = 5']) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/queue/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/queue/main.cpp deleted file mode 100644 index 66e8f02c273..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/queue/main.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include <deque> -#include <list> -#include <queue> - -struct C { - // Constructor for testing emplace. - C(int i) : i(i) {}; - int i; -}; - -int main(int argc, char **argv) { - // std::deque is the default container. - std::queue<C> q_deque({{1}}); - std::queue<C, std::list<C>> q_list({{1}}); - return 0; // Set break point at this line. -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/shared_ptr-dbg-info-content/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/shared_ptr-dbg-info-content/Makefile deleted file mode 100644 index 01718d86aa7..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/shared_ptr-dbg-info-content/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../../make -USE_LIBCPP := 1 -CXXFLAGS += $(MANDATORY_CXXMODULE_BUILD_CFLAGS) -CXX_SOURCES := main.cpp -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/shared_ptr-dbg-info-content/TestSharedPtrDbgInfoContent.py b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/shared_ptr-dbg-info-content/TestSharedPtrDbgInfoContent.py deleted file mode 100644 index 028798f72f3..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/shared_ptr-dbg-info-content/TestSharedPtrDbgInfoContent.py +++ /dev/null @@ -1,33 +0,0 @@ -""" -Test std::shared_ptr functionality with a class from debug info as content. -""" - -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class TestSharedPtrDbgInfoContent(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - # FIXME: This should work on more setups, so remove these - # skipIf's in the future. - @add_test_categories(["libc++"]) - @skipIf(compiler=no_match("clang")) - @skipIf(oslist=no_match(["linux"])) - @skipIf(debug_info=no_match(["dwarf"])) - def test(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, - "// Set break point at this line.", lldb.SBFileSpec("main.cpp")) - - self.runCmd("settings set target.import-std-module true") - - self.expect("expr (int)s->a", substrs=['(int) $0 = 3']) - self.expect("expr (int)(s->a = 5)", substrs=['(int) $1 = 5']) - self.expect("expr (int)s->a", substrs=['(int) $2 = 5']) - self.expect("expr (bool)s", substrs=['(bool) $3 = true']) - self.expect("expr s.reset()") - self.expect("expr (bool)s", substrs=['(bool) $4 = false']) - diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/shared_ptr-dbg-info-content/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/shared_ptr-dbg-info-content/main.cpp deleted file mode 100644 index 73664f1c83a..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/shared_ptr-dbg-info-content/main.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include <memory> - -struct Foo { - int a; -}; - -int main(int argc, char **argv) { - std::shared_ptr<Foo> s(new Foo); - s->a = 3; - return s->a; // Set break point at this line. -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/shared_ptr/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/shared_ptr/Makefile deleted file mode 100644 index 01718d86aa7..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/shared_ptr/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../../make -USE_LIBCPP := 1 -CXXFLAGS += $(MANDATORY_CXXMODULE_BUILD_CFLAGS) -CXX_SOURCES := main.cpp -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/shared_ptr/TestSharedPtr.py b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/shared_ptr/TestSharedPtr.py deleted file mode 100644 index 6f1e7b12d1f..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/shared_ptr/TestSharedPtr.py +++ /dev/null @@ -1,33 +0,0 @@ -""" -Test basic std::shared_ptr functionality. -""" - -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class TestSharedPtr(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - # FIXME: This should work on more setups, so remove these - # skipIf's in the future. - @add_test_categories(["libc++"]) - @skipIf(compiler=no_match("clang")) - @skipIf(oslist=no_match(["linux"])) - @skipIf(debug_info=no_match(["dwarf"])) - def test(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, - "// Set break point at this line.", lldb.SBFileSpec("main.cpp")) - - self.runCmd("settings set target.import-std-module true") - - self.expect("expr (int)*s", substrs=['(int) $0 = 3']) - self.expect("expr (int)(*s = 5)", substrs=['(int) $1 = 5']) - self.expect("expr (int)*s", substrs=['(int) $2 = 5']) - self.expect("expr (bool)s", substrs=['(bool) $3 = true']) - self.expect("expr s.reset()") - self.expect("expr (bool)s", substrs=['(bool) $4 = false']) - diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/shared_ptr/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/shared_ptr/main.cpp deleted file mode 100644 index cb81754087f..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/shared_ptr/main.cpp +++ /dev/null @@ -1,7 +0,0 @@ -#include <memory> - -int main(int argc, char **argv) { - std::shared_ptr<int> s(new int); - *s = 3; - return *s; // Set break point at this line. -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/stack/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/stack/Makefile deleted file mode 100644 index 01718d86aa7..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/stack/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../../make -USE_LIBCPP := 1 -CXXFLAGS += $(MANDATORY_CXXMODULE_BUILD_CFLAGS) -CXX_SOURCES := main.cpp -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/stack/TestStack.py b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/stack/TestStack.py deleted file mode 100644 index 1c2e5da54ed..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/stack/TestStack.py +++ /dev/null @@ -1,49 +0,0 @@ -""" -Tests std::stack functionality. -""" - -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class TestStack(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - # FIXME: This should work on more setups, so remove these - # skipIf's in the future. - @add_test_categories(["libc++"]) - @skipIf(compiler=no_match("clang")) - @skipIf(oslist=no_match(["linux"])) - @skipIf(debug_info=no_match(["dwarf"])) - def test(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, - "// Set break point at this line.", lldb.SBFileSpec("main.cpp")) - - self.runCmd("settings set target.import-std-module true") - - # Test std::stack functionality with a std::deque. - self.expect("expr s_deque.pop()") - self.expect("expr s_deque.push({4})") - self.expect("expr (size_t)s_deque.size()", substrs=['(size_t) $0 = 3']) - self.expect("expr (int)s_deque.top().i", substrs=['(int) $1 = 4']) - self.expect("expr s_deque.emplace(5)") - self.expect("expr (int)s_deque.top().i", substrs=['(int) $2 = 5']) - - # Test std::stack functionality with a std::vector. - self.expect("expr s_vector.pop()") - self.expect("expr s_vector.push({4})") - self.expect("expr (size_t)s_vector.size()", substrs=['(size_t) $3 = 3']) - self.expect("expr (int)s_vector.top().i", substrs=['(int) $4 = 4']) - self.expect("expr s_vector.emplace(5)") - self.expect("expr (int)s_vector.top().i", substrs=['(int) $5 = 5']) - - # Test std::stack functionality with a std::list. - self.expect("expr s_list.pop()") - self.expect("expr s_list.push({4})") - self.expect("expr (size_t)s_list.size()", substrs=['(size_t) $6 = 3']) - self.expect("expr (int)s_list.top().i", substrs=['(int) $7 = 4']) - self.expect("expr s_list.emplace(5)") - self.expect("expr (int)s_list.top().i", substrs=['(int) $8 = 5']) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/stack/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/stack/main.cpp deleted file mode 100644 index 0ce94990733..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/stack/main.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include <list> -#include <stack> -#include <vector> - -struct C { - // Constructor for testing emplace. - C(int i) : i(i) {}; - int i; -}; - -int main(int argc, char **argv) { - // std::deque is the default container. - std::stack<C> s_deque({{1}, {2}, {3}}); - std::stack<C, std::vector<C>> s_vector({{1}, {2}, {3}}); - std::stack<C, std::list<C>> s_list({{1}, {2}, {3}}); - return 0; // Set break point at this line. -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/sysroot/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/sysroot/Makefile deleted file mode 100644 index e04d73ea487..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/sysroot/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -LEVEL = ../../../make -# We don't have any standard include directories, so we can't -# parse the test_common.h header we usually inject as it includes -# system headers. -NO_TEST_COMMON_H := 1 - -CXXFLAGS += $(MANDATORY_CXXMODULE_BUILD_CFLAGS) -CXXFLAGS += -I $(SRCDIR)/root/usr/include/c++/include/ -I $(SRCDIR)/root/usr/include/ -nostdinc -nostdinc++ -nostdlib++ -CXX_SOURCES := main.cpp -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/sysroot/TestStdModuleSysroot.py b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/sysroot/TestStdModuleSysroot.py deleted file mode 100644 index dfd90e80e45..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/sysroot/TestStdModuleSysroot.py +++ /dev/null @@ -1,34 +0,0 @@ -""" -Test that we respect the sysroot when building the std module. -""" - -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil -import os - -class ImportStdModule(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - # FIXME: This should work on more setups, so remove these - # skipIf's in the future. - @skipIf(compiler=no_match("clang")) - @skipIf(oslist=no_match(["linux"])) - @skipIf(debug_info=no_match(["dwarf"])) - def test(self): - self.build() - - sysroot = os.path.join(os.getcwd(), "root") - - # Set the sysroot. - self.runCmd("platform select --sysroot '" + sysroot + "' host", CURRENT_EXECUTABLE_SET) - - lldbutil.run_to_source_breakpoint(self, - "// Set break point at this line.", lldb.SBFileSpec("main.cpp")) - - self.runCmd("settings set target.import-std-module true") - - # Call our custom function in our sysroot std module. - # If this gives us the correct result, then we used the sysroot. - self.expect("expr std::myabs(-42)", substrs=['(int) $0 = 42']) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/sysroot/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/sysroot/main.cpp deleted file mode 100644 index 2fbc76b9a76..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/sysroot/main.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include <algorithm> - -int main(int argc, char **argv) { - libc_struct s; - return 0; // Set break point at this line. -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/sysroot/root/usr/include/c++/include/algorithm b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/sysroot/root/usr/include/c++/include/algorithm deleted file mode 100644 index e8cbcca8e84..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/sysroot/root/usr/include/c++/include/algorithm +++ /dev/null @@ -1,7 +0,0 @@ -#include "libc_header.h" - -namespace std { - int myabs(int i) { - return i < 0 ? -i : i; - } -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/sysroot/root/usr/include/c++/include/module.modulemap b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/sysroot/root/usr/include/c++/include/module.modulemap deleted file mode 100644 index 0eb48492a65..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/sysroot/root/usr/include/c++/include/module.modulemap +++ /dev/null @@ -1,3 +0,0 @@ -module std { - module "algorithm" { header "algorithm" export * } -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/sysroot/root/usr/include/libc_header.h b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/sysroot/root/usr/include/libc_header.h deleted file mode 100644 index 47525c9db34..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/sysroot/root/usr/include/libc_header.h +++ /dev/null @@ -1 +0,0 @@ -struct libc_struct {}; diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/unique_ptr-dbg-info-content/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/unique_ptr-dbg-info-content/Makefile deleted file mode 100644 index 01718d86aa7..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/unique_ptr-dbg-info-content/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../../make -USE_LIBCPP := 1 -CXXFLAGS += $(MANDATORY_CXXMODULE_BUILD_CFLAGS) -CXX_SOURCES := main.cpp -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/unique_ptr-dbg-info-content/TestUniquePtrDbgInfoContent.py b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/unique_ptr-dbg-info-content/TestUniquePtrDbgInfoContent.py deleted file mode 100644 index c321d8022e1..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/unique_ptr-dbg-info-content/TestUniquePtrDbgInfoContent.py +++ /dev/null @@ -1,33 +0,0 @@ -""" -Test std::unique_ptr functionality with a decl from debug info as content. -""" - -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class TestUniquePtrDbgInfoContent(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - # FIXME: This should work on more setups, so remove these - # skipIf's in the future. - @add_test_categories(["libc++"]) - @skipIf(compiler=no_match("clang")) - @skipIf(oslist=no_match(["linux"])) - @skipIf(debug_info=no_match(["dwarf"])) - def test(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, - "// Set break point at this line.", lldb.SBFileSpec("main.cpp")) - - self.runCmd("settings set target.import-std-module true") - - self.expect("expr (int)s->a", substrs=['(int) $0 = 3']) - self.expect("expr (int)(s->a = 5)", substrs=['(int) $1 = 5']) - self.expect("expr (int)s->a", substrs=['(int) $2 = 5']) - self.expect("expr (bool)s", substrs=['(bool) $3 = true']) - self.expect("expr s.reset()") - self.expect("expr (bool)s", substrs=['(bool) $4 = false']) - diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/unique_ptr-dbg-info-content/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/unique_ptr-dbg-info-content/main.cpp deleted file mode 100644 index 73664f1c83a..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/unique_ptr-dbg-info-content/main.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include <memory> - -struct Foo { - int a; -}; - -int main(int argc, char **argv) { - std::shared_ptr<Foo> s(new Foo); - s->a = 3; - return s->a; // Set break point at this line. -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/unique_ptr/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/unique_ptr/Makefile deleted file mode 100644 index 01718d86aa7..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/unique_ptr/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../../make -USE_LIBCPP := 1 -CXXFLAGS += $(MANDATORY_CXXMODULE_BUILD_CFLAGS) -CXX_SOURCES := main.cpp -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/unique_ptr/TestUniquePtr.py b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/unique_ptr/TestUniquePtr.py deleted file mode 100644 index 295ec512327..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/unique_ptr/TestUniquePtr.py +++ /dev/null @@ -1,33 +0,0 @@ -""" -Test basic std::unique_ptr functionality. -""" - -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class TestUniquePtr(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - # FIXME: This should work on more setups, so remove these - # skipIf's in the future. - @add_test_categories(["libc++"]) - @skipIf(compiler=no_match("clang")) - @skipIf(oslist=no_match(["linux"])) - @skipIf(debug_info=no_match(["dwarf"])) - def test(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, - "// Set break point at this line.", lldb.SBFileSpec("main.cpp")) - - self.runCmd("settings set target.import-std-module true") - - self.expect("expr (int)*s", substrs=['(int) $0 = 3']) - self.expect("expr (int)(*s = 5)", substrs=['(int) $1 = 5']) - self.expect("expr (int)*s", substrs=['(int) $2 = 5']) - self.expect("expr (bool)s", substrs=['(bool) $3 = true']) - self.expect("expr s.reset()") - self.expect("expr (bool)s", substrs=['(bool) $4 = false']) - diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/unique_ptr/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/unique_ptr/main.cpp deleted file mode 100644 index cb81754087f..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/unique_ptr/main.cpp +++ /dev/null @@ -1,7 +0,0 @@ -#include <memory> - -int main(int argc, char **argv) { - std::shared_ptr<int> s(new int); - *s = 3; - return *s; // Set break point at this line. -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-basic/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-basic/Makefile deleted file mode 100644 index 01718d86aa7..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-basic/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../../make -USE_LIBCPP := 1 -CXXFLAGS += $(MANDATORY_CXXMODULE_BUILD_CFLAGS) -CXX_SOURCES := main.cpp -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-basic/TestBasicVector.py b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-basic/TestBasicVector.py deleted file mode 100644 index deaf8f0cb75..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-basic/TestBasicVector.py +++ /dev/null @@ -1,57 +0,0 @@ -""" -Test basic std::vector functionality. -""" - -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class TestBasicVector(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - # FIXME: This should work on more setups, so remove these - # skipIf's in the future. - @add_test_categories(["libc++"]) - @skipIf(compiler=no_match("clang")) - @skipIf(oslist=no_match(["linux"])) - @skipIf(debug_info=no_match(["dwarf"])) - def test(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, - "// Set break point at this line.", lldb.SBFileSpec("main.cpp")) - - self.runCmd("settings set target.import-std-module true") - - self.expect("expr (size_t)a.size()", substrs=['(size_t) $0 = 3']) - self.expect("expr (int)a.front()", substrs=['(int) $1 = 3']) - self.expect("expr (int)a[1]", substrs=['(int) $2 = 1']) - self.expect("expr (int)a.back()", substrs=['(int) $3 = 2']) - - self.expect("expr std::sort(a.begin(), a.end())") - self.expect("expr (int)a.front()", substrs=['(int) $4 = 1']) - self.expect("expr (int)a[1]", substrs=['(int) $5 = 2']) - self.expect("expr (int)a.back()", substrs=['(int) $6 = 3']) - - self.expect("expr std::reverse(a.begin(), a.end())") - self.expect("expr (int)a.front()", substrs=['(int) $7 = 3']) - self.expect("expr (int)a[1]", substrs=['(int) $8 = 2']) - self.expect("expr (int)a.back()", substrs=['(int) $9 = 1']) - - self.expect("expr (int)(*a.begin())", substrs=['(int) $10 = 3']) - self.expect("expr (int)(*a.rbegin())", substrs=['(int) $11 = 1']) - - self.expect("expr a.pop_back()") - self.expect("expr (int)a.back()", substrs=['(int) $12 = 2']) - self.expect("expr (size_t)a.size()", substrs=['(size_t) $13 = 2']) - - self.expect("expr (int)a.at(0)", substrs=['(int) $14 = 3']) - - self.expect("expr a.push_back(4)") - self.expect("expr (int)a.back()", substrs=['(int) $15 = 4']) - self.expect("expr (size_t)a.size()", substrs=['(size_t) $16 = 3']) - - self.expect("expr a.emplace_back(5)") - self.expect("expr (int)a.back()", substrs=['(int) $17 = 5']) - self.expect("expr (size_t)a.size()", substrs=['(size_t) $18 = 4']) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-basic/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-basic/main.cpp deleted file mode 100644 index edf130d4748..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-basic/main.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include <vector> - -int main(int argc, char **argv) { - std::vector<int> a = {3, 1, 2}; - return 0; // Set break point at this line. -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-bool/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-bool/Makefile deleted file mode 100644 index 01718d86aa7..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-bool/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../../make -USE_LIBCPP := 1 -CXXFLAGS += $(MANDATORY_CXXMODULE_BUILD_CFLAGS) -CXX_SOURCES := main.cpp -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-bool/TestBoolVector.py b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-bool/TestBoolVector.py deleted file mode 100644 index 0ab52695faf..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-bool/TestBoolVector.py +++ /dev/null @@ -1,34 +0,0 @@ -""" -Test basic std::vector<bool> functionality. -""" - -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class TestBoolVector(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - # FIXME: This should work on more setups, so remove these - # skipIf's in the future. - @add_test_categories(["libc++"]) - @skipIf(compiler=no_match("clang")) - @skipIf(oslist=no_match(["linux"])) - @skipIf(debug_info=no_match(["dwarf"])) - def test(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, - "// Set break point at this line.", lldb.SBFileSpec("main.cpp")) - - self.runCmd("settings set target.import-std-module true") - - self.expect("expr (size_t)a.size()", substrs=['(size_t) $0 = 4']) - self.expect("expr (bool)a.front()", substrs=['(bool) $1 = false']) - self.expect("expr (bool)a[1]", substrs=['(bool) $2 = true']) - self.expect("expr (bool)a.back()", substrs=['(bool) $3 = true']) - - self.expect("expr (bool)(*a.begin())", substrs=['(bool) $4 = false']) - self.expect("expr (bool)(*a.rbegin())", substrs=['(bool) $5 = true']) - diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-bool/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-bool/main.cpp deleted file mode 100644 index 9554401cf50..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-bool/main.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include <vector> - -int main(int argc, char **argv) { - std::vector<bool> a = {0, 1, 0, 1}; - return 0; // Set break point at this line. -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-dbg-info-content/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-dbg-info-content/Makefile deleted file mode 100644 index 01718d86aa7..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-dbg-info-content/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../../make -USE_LIBCPP := 1 -CXXFLAGS += $(MANDATORY_CXXMODULE_BUILD_CFLAGS) -CXX_SOURCES := main.cpp -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-dbg-info-content/TestDbgInfoContentVector.py b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-dbg-info-content/TestDbgInfoContentVector.py deleted file mode 100644 index c89265f2cd3..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-dbg-info-content/TestDbgInfoContentVector.py +++ /dev/null @@ -1,47 +0,0 @@ -""" -Test basic std::vector functionality but with a declaration from -the debug info (the Foo struct) as content. -""" - -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class TestDbgInfoContentVector(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - # FIXME: This should work on more setups, so remove these - # skipIf's in the future. - @add_test_categories(["libc++"]) - @skipIf(compiler=no_match("clang")) - @skipIf(oslist=no_match(["linux"])) - @skipIf(debug_info=no_match(["dwarf"])) - def test(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, - "// Set break point at this line.", lldb.SBFileSpec("main.cpp")) - - self.runCmd("settings set target.import-std-module true") - - self.expect("expr (size_t)a.size()", substrs=['(size_t) $0 = 3']) - self.expect("expr (int)a.front().a", substrs=['(int) $1 = 3']) - self.expect("expr (int)a[1].a", substrs=['(int) $2 = 1']) - self.expect("expr (int)a.back().a", substrs=['(int) $3 = 2']) - - self.expect("expr std::reverse(a.begin(), a.end())") - self.expect("expr (int)a.front().a", substrs=['(int) $4 = 2']) - - self.expect("expr (int)(a.begin()->a)", substrs=['(int) $5 = 2']) - self.expect("expr (int)(a.rbegin()->a)", substrs=['(int) $6 = 3']) - - self.expect("expr a.pop_back()") - self.expect("expr (int)a.back().a", substrs=['(int) $7 = 1']) - self.expect("expr (size_t)a.size()", substrs=['(size_t) $8 = 2']) - - self.expect("expr (int)a.at(0).a", substrs=['(int) $9 = 2']) - - self.expect("expr a.push_back({4})") - self.expect("expr (int)a.back().a", substrs=['(int) $10 = 4']) - self.expect("expr (size_t)a.size()", substrs=['(size_t) $11 = 3']) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-dbg-info-content/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-dbg-info-content/main.cpp deleted file mode 100644 index 24c3fec75d2..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-dbg-info-content/main.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include <vector> - -struct Foo { - int a; -}; - -int main(int argc, char **argv) { - std::vector<Foo> a = {{3}, {1}, {2}}; - return 0; // Set break point at this line. -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-of-vectors/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-of-vectors/Makefile deleted file mode 100644 index 01718d86aa7..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-of-vectors/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../../make -USE_LIBCPP := 1 -CXXFLAGS += $(MANDATORY_CXXMODULE_BUILD_CFLAGS) -CXX_SOURCES := main.cpp -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-of-vectors/TestVectorOfVectors.py b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-of-vectors/TestVectorOfVectors.py deleted file mode 100644 index 2b82e1a039a..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-of-vectors/TestVectorOfVectors.py +++ /dev/null @@ -1,30 +0,0 @@ -""" -Test std::vector functionality when it's contents are vectors. -""" - -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class TestVectorOfVectors(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - # FIXME: This should work on more setups, so remove these - # skipIf's in the future. - @add_test_categories(["libc++"]) - @skipIf(compiler=no_match("clang")) - @skipIf(oslist=no_match(["linux"])) - @skipIf(debug_info=no_match(["dwarf"])) - def test(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, - "// Set break point at this line.", lldb.SBFileSpec("main.cpp")) - - self.runCmd("settings set target.import-std-module true") - - self.expect("expr (size_t)a.size()", substrs=['(size_t) $0 = 2']) - self.expect("expr (int)a.front().front()", substrs=['(int) $1 = 1']) - self.expect("expr (int)a[1][1]", substrs=['(int) $2 = 2']) - self.expect("expr (int)a.back().at(0)", substrs=['(int) $3 = 3']) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-of-vectors/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-of-vectors/main.cpp deleted file mode 100644 index b5ada909e43..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/vector-of-vectors/main.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include <vector> - -int main(int argc, char **argv) { - std::vector<std::vector<int> > a = {{1, 2, 3}, {3, 2, 1}}; - return 0; // Set break point at this line. -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/weak_ptr-dbg-info-content/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/weak_ptr-dbg-info-content/Makefile deleted file mode 100644 index 01718d86aa7..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/weak_ptr-dbg-info-content/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../../make -USE_LIBCPP := 1 -CXXFLAGS += $(MANDATORY_CXXMODULE_BUILD_CFLAGS) -CXX_SOURCES := main.cpp -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/weak_ptr-dbg-info-content/TestDbgInfoContentWeakPtr.py b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/weak_ptr-dbg-info-content/TestDbgInfoContentWeakPtr.py deleted file mode 100644 index 0acd54e803c..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/weak_ptr-dbg-info-content/TestDbgInfoContentWeakPtr.py +++ /dev/null @@ -1,33 +0,0 @@ -""" -Test std::weak_ptr functionality with a decl from debug info as content. -""" - -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class TestDbgInfoContentWeakPtr(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - # FIXME: This should work on more setups, so remove these - # skipIf's in the future. - @add_test_categories(["libc++"]) - @skipIf(compiler=no_match("clang")) - @skipIf(oslist=no_match(["linux"])) - @skipIf(debug_info=no_match(["dwarf"])) - def test(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, - "// Set break point at this line.", lldb.SBFileSpec("main.cpp")) - - self.runCmd("settings set target.import-std-module true") - - self.expect("expr (int)w.lock()->a", substrs=['(int) $0 = 3']) - self.expect("expr (int)(w.lock()->a = 5)", substrs=['(int) $1 = 5']) - self.expect("expr (int)w.lock()->a", substrs=['(int) $2 = 5']) - self.expect("expr w.use_count()", substrs=['(long) $3 = 1']) - self.expect("expr w.reset()") - self.expect("expr w.use_count()", substrs=['(long) $4 = 0']) - diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/weak_ptr-dbg-info-content/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/weak_ptr-dbg-info-content/main.cpp deleted file mode 100644 index d2c5a6258a5..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/weak_ptr-dbg-info-content/main.cpp +++ /dev/null @@ -1,12 +0,0 @@ -#include <memory> - -struct Foo { - int a; -}; - -int main(int argc, char **argv) { - std::shared_ptr<Foo> s(new Foo); - s->a = 3; - std::weak_ptr<Foo> w = s; - return s->a; // Set break point at this line. -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/weak_ptr/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/weak_ptr/Makefile deleted file mode 100644 index 01718d86aa7..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/weak_ptr/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../../make -USE_LIBCPP := 1 -CXXFLAGS += $(MANDATORY_CXXMODULE_BUILD_CFLAGS) -CXX_SOURCES := main.cpp -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/weak_ptr/TestWeakPtr.py b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/weak_ptr/TestWeakPtr.py deleted file mode 100644 index 6b8b9ceb7aa..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/weak_ptr/TestWeakPtr.py +++ /dev/null @@ -1,33 +0,0 @@ -""" -Test basic std::weak_ptr functionality. -""" - -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class TestSharedPtr(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - # FIXME: This should work on more setups, so remove these - # skipIf's in the future. - @add_test_categories(["libc++"]) - @skipIf(compiler=no_match("clang")) - @skipIf(oslist=no_match(["linux"])) - @skipIf(debug_info=no_match(["dwarf"])) - def test(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, - "// Set break point at this line.", lldb.SBFileSpec("main.cpp")) - - self.runCmd("settings set target.import-std-module true") - - self.expect("expr (int)*w.lock()", substrs=['(int) $0 = 3']) - self.expect("expr (int)(*w.lock() = 5)", substrs=['(int) $1 = 5']) - self.expect("expr (int)*w.lock()", substrs=['(int) $2 = 5']) - self.expect("expr w.use_count()", substrs=['(long) $3 = 1']) - self.expect("expr w.reset()") - self.expect("expr w.use_count()", substrs=['(long) $4 = 0']) - diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/weak_ptr/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/weak_ptr/main.cpp deleted file mode 100644 index 13479eb9496..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import-std-module/weak_ptr/main.cpp +++ /dev/null @@ -1,8 +0,0 @@ -#include <memory> - -int main(int argc, char **argv) { - std::shared_ptr<int> s(new int); - *s = 3; - std::weak_ptr<int> w = s; - return *s; // Set break point at this line. -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import_builtin_fileid/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/import_builtin_fileid/Makefile deleted file mode 100644 index 4464e2ee9f5..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import_builtin_fileid/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -LEVEL = ../../make - -OBJC_SOURCES := main.m - -include $(LEVEL)/Makefile.rules -LDFLAGS += -framework Cocoa diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import_builtin_fileid/TestImportBuiltinFileID.py b/lldb/packages/Python/lldbsuite/test/expression_command/import_builtin_fileid/TestImportBuiltinFileID.py deleted file mode 100644 index 08b6a8c90f5..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import_builtin_fileid/TestImportBuiltinFileID.py +++ /dev/null @@ -1,27 +0,0 @@ -""" -They may be cases where an expression will import SourceLocation and if the -SourceLocation ends up with a FileID that is a built-in we need to copy that -buffer over correctly. -""" - - -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class TestImportBuiltinFileID(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - @skipUnlessDarwin - @skipIfDarwinEmbedded - @add_test_categories(["gmodules"]) - def test_import_builtin_fileid(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, '// break here', - lldb.SBFileSpec("main.m", False)) - - self.expect("expr int (*DBG_CGImageGetRenderingIntent)(void *) = ((int (*)(void *))CGImageGetRenderingIntent); DBG_CGImageGetRenderingIntent((void *)0x00000000000000);", - substrs=['$0 = 0']) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/import_builtin_fileid/main.m b/lldb/packages/Python/lldbsuite/test/expression_command/import_builtin_fileid/main.m deleted file mode 100644 index ef74940b0ac..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/import_builtin_fileid/main.m +++ /dev/null @@ -1,6 +0,0 @@ -#import <Cocoa/Cocoa.h> - -int main(int argc, const char * argv[]) { - - return 0; // break here -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/inline-namespace/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/inline-namespace/Makefile deleted file mode 100644 index 8a7102e347a..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/inline-namespace/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := main.cpp - -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/inline-namespace/TestInlineNamespace.py b/lldb/packages/Python/lldbsuite/test/expression_command/inline-namespace/TestInlineNamespace.py deleted file mode 100644 index b17115be292..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/inline-namespace/TestInlineNamespace.py +++ /dev/null @@ -1,26 +0,0 @@ -""" -Test that we correctly handle inline namespaces. -""" - -import lldb - -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class TestInlineNamespace(TestBase): - mydir = TestBase.compute_mydir(__file__) - - def test(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, - "// Set break point at this line.", lldb.SBFileSpec("main.cpp")) - - # The 'A::B::f' function must be found via 'A::f' as 'B' is an inline - # namespace. - self.expect("expr A::f()", substrs=['$0 = 3']) - # But we should still find the function when we pretend the inline - # namespace is not inline. - self.expect("expr A::B::f()", substrs=['$1 = 3']) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/inline-namespace/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/inline-namespace/main.cpp deleted file mode 100644 index c10b361a0cd..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/inline-namespace/main.cpp +++ /dev/null @@ -1,10 +0,0 @@ -namespace A { - inline namespace B { - int f() { return 3; } - }; -} - -int main(int argc, char **argv) { - // Set break point at this line. - return A::f(); -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/ir-interpreter-phi-nodes/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/ir-interpreter-phi-nodes/Makefile deleted file mode 100644 index bf2c0b2c108..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/ir-interpreter-phi-nodes/TestIRInterpreterPHINodes.py b/lldb/packages/Python/lldbsuite/test/expression_command/ir-interpreter-phi-nodes/TestIRInterpreterPHINodes.py deleted file mode 100644 index 20a9477b1f7..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/ir-interpreter-phi-nodes/TestIRInterpreterPHINodes.py +++ /dev/null @@ -1,41 +0,0 @@ -""" -Test PHI nodes work in the IR interpreter. -""" - - -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/lldb/packages/Python/lldbsuite/test/expression_command/ir-interpreter-phi-nodes/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/ir-interpreter-phi-nodes/main.cpp deleted file mode 100644 index 8e181aeba3b..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/ir-interpreter-phi-nodes/main.cpp +++ /dev/null @@ -1,16 +0,0 @@ -//===-- main.cpp ------------------------------------------------*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -int main() -{ - int i; - i = 5; - i = 2; - i = 3; - return 0; -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/ir-interpreter/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/ir-interpreter/Makefile deleted file mode 100644 index c4169a9b101..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/ir-interpreter/TestIRInterpreter.py b/lldb/packages/Python/lldbsuite/test/expression_command/ir-interpreter/TestIRInterpreter.py deleted file mode 100644 index 509e3fbd6d0..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/ir-interpreter/TestIRInterpreter.py +++ /dev/null @@ -1,94 +0,0 @@ -""" -Test the IR interpreter -""" - -from __future__ import print_function - -import unittest2 - -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") - @expectedFailureNetBSD - @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/lldb/packages/Python/lldbsuite/test/expression_command/ir-interpreter/main.c b/lldb/packages/Python/lldbsuite/test/expression_command/ir-interpreter/main.c deleted file mode 100644 index 31204b21d97..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/issue_11588/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/issue_11588/Makefile deleted file mode 100644 index 8a7102e347a..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/issue_11588/Test11588.py b/lldb/packages/Python/lldbsuite/test/expression_command/issue_11588/Test11588.py deleted file mode 100644 index 2c20b63cfd9..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/issue_11588/Test11588.py +++ /dev/null @@ -1,67 +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 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 = self.dbg.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/lldb/packages/Python/lldbsuite/test/expression_command/issue_11588/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/issue_11588/main.cpp deleted file mode 100644 index 4f9ea3abf18..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/issue_11588/s11588.py b/lldb/packages/Python/lldbsuite/test/expression_command/issue_11588/s11588.py deleted file mode 100644 index 51c20423ed3..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/macros/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/macros/Makefile deleted file mode 100644 index 1ecd744be14..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/macros/TestMacros.py b/lldb/packages/Python/lldbsuite/test/expression_command/macros/TestMacros.py deleted file mode 100644 index 817f6cb3944..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/macros/macro1.h b/lldb/packages/Python/lldbsuite/test/expression_command/macros/macro1.h deleted file mode 100644 index e026bc018ac..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/macros/macro2.h b/lldb/packages/Python/lldbsuite/test/expression_command/macros/macro2.h deleted file mode 100644 index cec6efbba99..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/macros/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/macros/main.cpp deleted file mode 100644 index f2c2c101fa1..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/multiline-completion/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/multiline-completion/Makefile deleted file mode 100644 index f5a47fcc46c..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/multiline-completion/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -LEVEL = ../../make -C_SOURCES := main.c -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/multiline-completion/TestMultilineCompletion.py b/lldb/packages/Python/lldbsuite/test/expression_command/multiline-completion/TestMultilineCompletion.py deleted file mode 100644 index 7447e158641..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/multiline-completion/TestMultilineCompletion.py +++ /dev/null @@ -1,30 +0,0 @@ -""" -Test completion for multiline expressions. -""" - -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test.lldbpexpect import PExpectTest - -class MultilineCompletionTest(PExpectTest): - - mydir = TestBase.compute_mydir(__file__) - - def test_basic_completion(self): - """Test that we can complete a simple multiline expression""" - self.build() - - self.launch(executable=self.getBuildArtifact("a.out")) - self.expect("b main", substrs=["Breakpoint 1", "address ="]) - self.expect("run", substrs=["stop reason ="]) - - self.child.sendline("expr") - self.child.expect_exact("terminate with an empty line to evaluate") - self.child.send("to_\t") - self.child.expect_exact("to_complete") - - self.child.send("\n\n") - self.expect_prompt() - - self.quit() diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/multiline-completion/main.c b/lldb/packages/Python/lldbsuite/test/expression_command/multiline-completion/main.c deleted file mode 100644 index 03350dd8299..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/multiline-completion/main.c +++ /dev/null @@ -1,5 +0,0 @@ -int main(int argc, char **argv) { - lldb_enable_attach(); - int to_complete = 0; - return to_complete; -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/namespace_local_var_same_name_cpp_and_c/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/namespace_local_var_same_name_cpp_and_c/Makefile deleted file mode 100644 index 8a7102e347a..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/namespace_local_var_same_name_cpp_and_c/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := main.cpp - -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/namespace_local_var_same_name_cpp_and_c/TestNamespaceLocalVarSameNameCppAndC.py b/lldb/packages/Python/lldbsuite/test/expression_command/namespace_local_var_same_name_cpp_and_c/TestNamespaceLocalVarSameNameCppAndC.py deleted file mode 100644 index ab2ddd07480..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/namespace_local_var_same_name_cpp_and_c/TestNamespaceLocalVarSameNameCppAndC.py +++ /dev/null @@ -1,24 +0,0 @@ -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class TestNamespaceLocalVarSameNameCppAndC(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - @skipUnlessDarwin - @add_test_categories(["gmodules"]) - def test_namespace_local_var_same_name_cpp_and_c(self): - self.build() - - (self.target, self.process, _, bkpt) = lldbutil.run_to_source_breakpoint(self, '// break here', - lldb.SBFileSpec("main.cpp", False)) - - self.expect("expr error", - substrs=['(int) $0 = 1']) - - lldbutil.continue_to_breakpoint(self.process, bkpt) - - self.expect("expr error", - substrs=['(int) $1 = 1']) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/namespace_local_var_same_name_cpp_and_c/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/namespace_local_var_same_name_cpp_and_c/main.cpp deleted file mode 100644 index 5e8237ed190..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/namespace_local_var_same_name_cpp_and_c/main.cpp +++ /dev/null @@ -1,21 +0,0 @@ -namespace error { -int x; -} - -struct A { - void foo() { - int error = 1; - - return; // break here - } -}; - -int main() { - int error = 1; - - A a; - - a.foo(); - - return 0; // break here -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/namespace_local_var_same_name_obj_c/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/namespace_local_var_same_name_obj_c/Makefile deleted file mode 100644 index 67553218d80..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/namespace_local_var_same_name_obj_c/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make -OBJCXX_SOURCES := main.mm util.mm -include $(LEVEL)/Makefile.rules - -LDFLAGS += -framework Foundation diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/namespace_local_var_same_name_obj_c/TestNamespaceLocalVarSameNameObjC.py b/lldb/packages/Python/lldbsuite/test/expression_command/namespace_local_var_same_name_obj_c/TestNamespaceLocalVarSameNameObjC.py deleted file mode 100644 index eb894cc37e4..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/namespace_local_var_same_name_obj_c/TestNamespaceLocalVarSameNameObjC.py +++ /dev/null @@ -1,24 +0,0 @@ -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class TestNamespaceLocalVarSameNameObjC(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - @skipUnlessDarwin - @add_test_categories(["gmodules"]) - def test_namespace_local_var_same_name_obj_c(self): - self.build() - - (self.target, self.process, _, bkpt) = lldbutil.run_to_source_breakpoint(self, '// break here', - lldb.SBFileSpec("util.mm", False)) - - self.expect("expr error", - substrs=['(NSError *) $0 =']) - - lldbutil.continue_to_breakpoint(self.process, bkpt) - - self.expect("expr error", - substrs=['(NSError *) $1 =']) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/namespace_local_var_same_name_obj_c/main.mm b/lldb/packages/Python/lldbsuite/test/expression_command/namespace_local_var_same_name_obj_c/main.mm deleted file mode 100644 index 70e9598eefb..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/namespace_local_var_same_name_obj_c/main.mm +++ /dev/null @@ -1,16 +0,0 @@ -#import <Foundation/Foundation.h> -@interface Util : NSObject -+ (void)debugPrintErrorStatic; -- (void)debugPrintError; -@end - -int main(int argc, const char * argv[]) { - [Util debugPrintErrorStatic]; - - Util *u = [[Util alloc] init]; - - [u debugPrintError]; - - return 0; -} - diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/namespace_local_var_same_name_obj_c/util.mm b/lldb/packages/Python/lldbsuite/test/expression_command/namespace_local_var_same_name_obj_c/util.mm deleted file mode 100644 index 11c9c141df0..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/namespace_local_var_same_name_obj_c/util.mm +++ /dev/null @@ -1,22 +0,0 @@ -#import <Foundation/Foundation.h> - -namespace error { -int blah; -} - -@interface Util : NSObject -+ (void)debugPrintErrorStatic; -- (void)debugPrintError; -@end - -@implementation Util -+ (void)debugPrintErrorStatic { - NSError* error = [NSError errorWithDomain:NSURLErrorDomain code:-1 userInfo:nil]; - NSLog(@"xxx, error = %@", error); // break here -} - -- (void)debugPrintError { - NSError* error = [NSError errorWithDomain:NSURLErrorDomain code:-1 userInfo:nil]; - NSLog(@"xxx, error = %@", error); // break here -} -@end diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/options/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/options/Makefile deleted file mode 100644 index 81ae6f6f16e..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/options/TestExprOptions.py b/lldb/packages/Python/lldbsuite/test/expression_command/options/TestExprOptions.py deleted file mode 100644 index 8af0ea1ba0c..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/options/TestExprOptions.py +++ /dev/null @@ -1,91 +0,0 @@ -""" -Test expression command options. - -Test cases: - -o test_expr_options: - Test expression command options. -""" - -from __future__ import print_function - - -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/lldb/packages/Python/lldbsuite/test/expression_command/options/foo.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/options/foo.cpp deleted file mode 100644 index 8a5a6a2b541..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/options/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/options/main.cpp deleted file mode 100644 index 0d30c79bd22..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/persist_objc_pointeetype/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/persist_objc_pointeetype/Makefile deleted file mode 100644 index 8066198300f..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py b/lldb/packages/Python/lldbsuite/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py deleted file mode 100644 index b6471d0f897..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/persist_objc_pointeetype/main.m b/lldb/packages/Python/lldbsuite/test/expression_command/persist_objc_pointeetype/main.m deleted file mode 100644 index a2b6b703d6c..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/persistent_ptr_update/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/persistent_ptr_update/Makefile deleted file mode 100644 index db5f575866d..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/persistent_ptr_update/TestPersistentPtrUpdate.py b/lldb/packages/Python/lldbsuite/test/expression_command/persistent_ptr_update/TestPersistentPtrUpdate.py deleted file mode 100644 index 7b963b5bfcd..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/persistent_ptr_update/main.c b/lldb/packages/Python/lldbsuite/test/expression_command/persistent_ptr_update/main.c deleted file mode 100644 index 73346969ecc..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/persistent_types/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/persistent_types/Makefile deleted file mode 100644 index 0d70f259501..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/persistent_types/TestNestedPersistentTypes.py b/lldb/packages/Python/lldbsuite/test/expression_command/persistent_types/TestNestedPersistentTypes.py deleted file mode 100644 index bde649b0e07..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/persistent_types/TestNestedPersistentTypes.py +++ /dev/null @@ -1,42 +0,0 @@ -""" -Test that nested persistent types work. -""" - -from __future__ import print_function - - -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/lldb/packages/Python/lldbsuite/test/expression_command/persistent_types/TestPersistentTypes.py b/lldb/packages/Python/lldbsuite/test/expression_command/persistent_types/TestPersistentTypes.py deleted file mode 100644 index 91681b480eb..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/persistent_types/TestPersistentTypes.py +++ /dev/null @@ -1,93 +0,0 @@ -""" -Test that lldb persistent types works correctly. -""" - -from __future__ import print_function - - -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 -x c", - 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/lldb/packages/Python/lldbsuite/test/expression_command/persistent_types/main.c b/lldb/packages/Python/lldbsuite/test/expression_command/persistent_types/main.c deleted file mode 100644 index 9425c8b1cec..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/persistent_types/main.c +++ /dev/null @@ -1,13 +0,0 @@ -//===-- main.c --------------------------------------------------*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -int main (int argc, char const *argv[]) -{ - const char* foo = "Hello world"; - return 0; -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/persistent_variables/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/persistent_variables/Makefile deleted file mode 100644 index 0d70f259501..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/persistent_variables/TestPersistentVariables.py b/lldb/packages/Python/lldbsuite/test/expression_command/persistent_variables/TestPersistentVariables.py deleted file mode 100644 index 57370f121b4..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/persistent_variables/TestPersistentVariables.py +++ /dev/null @@ -1,53 +0,0 @@ -""" -Test that lldb persistent variables works correctly. -""" - -from __future__ import print_function - - -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/lldb/packages/Python/lldbsuite/test/expression_command/persistent_variables/main.c b/lldb/packages/Python/lldbsuite/test/expression_command/persistent_variables/main.c deleted file mode 100644 index 771bf4ad342..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/persistent_variables/main.c +++ /dev/null @@ -1,13 +0,0 @@ -//===-- main.c --------------------------------------------------*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -int main (int argc, char const *argv[]) -{ - int i = 5; - return 0; // Set breakpoint here -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/po_verbosity/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/po_verbosity/Makefile deleted file mode 100644 index b6592745356..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/po_verbosity/TestPoVerbosity.py b/lldb/packages/Python/lldbsuite/test/expression_command/po_verbosity/TestPoVerbosity.py deleted file mode 100644 index 4530342ea52..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/po_verbosity/main.m b/lldb/packages/Python/lldbsuite/test/expression_command/po_verbosity/main.m deleted file mode 100644 index 9c79f850bf2..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/pr35310/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/pr35310/Makefile deleted file mode 100644 index 8a7102e347a..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/pr35310/TestExprsBug35310.py b/lldb/packages/Python/lldbsuite/test/expression_command/pr35310/TestExprsBug35310.py deleted file mode 100644 index 6d019c7415f..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/pr35310/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/pr35310/main.cpp deleted file mode 100644 index a8e8a5c737a..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/radar_8638051/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/radar_8638051/Makefile deleted file mode 100644 index 0d70f259501..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/radar_8638051/Test8638051.py b/lldb/packages/Python/lldbsuite/test/expression_command/radar_8638051/Test8638051.py deleted file mode 100644 index e7a5f597b70..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/radar_8638051/Test8638051.py +++ /dev/null @@ -1,38 +0,0 @@ -""" -Test the robustness of lldb expression parser. -""" - -from __future__ import print_function - - -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/lldb/packages/Python/lldbsuite/test/expression_command/radar_8638051/main.c b/lldb/packages/Python/lldbsuite/test/expression_command/radar_8638051/main.c deleted file mode 100644 index dc528a458b3..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/radar_8638051/main.c +++ /dev/null @@ -1,53 +0,0 @@ -//===-- main.c --------------------------------------------------*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// -#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/lldb/packages/Python/lldbsuite/test/expression_command/radar_9531204/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/radar_9531204/Makefile deleted file mode 100644 index 0d70f259501..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/radar_9531204/TestPrintfAfterUp.py b/lldb/packages/Python/lldbsuite/test/expression_command/radar_9531204/TestPrintfAfterUp.py deleted file mode 100644 index 4ff28bdfe86..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/radar_9531204/TestPrintfAfterUp.py +++ /dev/null @@ -1,43 +0,0 @@ -""" -The evaluating printf(...) after break stop and then up a stack frame. -""" - -from __future__ import print_function - - -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 - @expectedFailureNetBSD - 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/lldb/packages/Python/lldbsuite/test/expression_command/radar_9531204/main.c b/lldb/packages/Python/lldbsuite/test/expression_command/radar_9531204/main.c deleted file mode 100644 index 43200d31745..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/radar_9531204/main.c +++ /dev/null @@ -1,24 +0,0 @@ -//===-- main.c --------------------------------------------------*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// -#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/lldb/packages/Python/lldbsuite/test/expression_command/radar_9673664/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/radar_9673664/Makefile deleted file mode 100644 index 0d70f259501..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/radar_9673664/TestExprHelpExamples.py b/lldb/packages/Python/lldbsuite/test/expression_command/radar_9673664/TestExprHelpExamples.py deleted file mode 100644 index 5406fb0e987..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/radar_9673664/TestExprHelpExamples.py +++ /dev/null @@ -1,45 +0,0 @@ -""" -Test example snippets from the lldb 'help expression' output. -""" - -from __future__ import print_function - - -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/lldb/packages/Python/lldbsuite/test/expression_command/radar_9673664/main.c b/lldb/packages/Python/lldbsuite/test/expression_command/radar_9673664/main.c deleted file mode 100644 index c765cf2a83a..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/radar_9673664/main.c +++ /dev/null @@ -1,15 +0,0 @@ -//===-- main.c --------------------------------------------------*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// -#include <stdio.h> - -int main (int argc, char const *argv[]) -{ - printf("Hello, world.\n"); // Set breakpoint here. - - return 0; -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/rdar42038760/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/rdar42038760/Makefile deleted file mode 100644 index f5a47fcc46c..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/rdar42038760/TestScalarURem.py b/lldb/packages/Python/lldbsuite/test/expression_command/rdar42038760/TestScalarURem.py deleted file mode 100644 index 03424658f3e..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/rdar42038760/main.c b/lldb/packages/Python/lldbsuite/test/expression_command/rdar42038760/main.c deleted file mode 100644 index 98a957faf8b..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/rdar44436068/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/rdar44436068/Makefile deleted file mode 100644 index f5a47fcc46c..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/rdar44436068/Test128BitsInteger.py b/lldb/packages/Python/lldbsuite/test/expression_command/rdar44436068/Test128BitsInteger.py deleted file mode 100644 index 433c275fb58..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/rdar44436068/Test128BitsInteger.py +++ /dev/null @@ -1,6 +0,0 @@ -from lldbsuite.test import lldbinline -from lldbsuite.test import decorators - -lldbinline.MakeInlineTest(__file__, globals(), - decorators.skipIf(archs=["armv7k"])) - diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/rdar44436068/main.c b/lldb/packages/Python/lldbsuite/test/expression_command/rdar44436068/main.c deleted file mode 100644 index 156dbf04a1b..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/save_jit_objects/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/save_jit_objects/Makefile deleted file mode 100644 index 0d70f259501..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/save_jit_objects/TestSaveJITObjects.py b/lldb/packages/Python/lldbsuite/test/expression_command/save_jit_objects/TestSaveJITObjects.py deleted file mode 100644 index 896e599f59c..00000000000 --- a/lldb/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 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"]) - @expectedFailureNetBSD - 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/lldb/packages/Python/lldbsuite/test/expression_command/save_jit_objects/main.c b/lldb/packages/Python/lldbsuite/test/expression_command/save_jit_objects/main.c deleted file mode 100644 index c9775b6e989..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/save_jit_objects/main.c +++ /dev/null @@ -1,13 +0,0 @@ -//===-- main.c --------------------------------------------------*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -int main (int argc, char const *argv[]) -{ - const char* foo = "Hello world"; // break here - return 0; -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/scoped_enums/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/scoped_enums/Makefile deleted file mode 100644 index 83b24da17b4..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/scoped_enums/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := main.cpp -CXXFLAGS += -std=c++11 - -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/scoped_enums/TestScopedEnumType.py b/lldb/packages/Python/lldbsuite/test/expression_command/scoped_enums/TestScopedEnumType.py deleted file mode 100644 index e7bc79d8e7c..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/scoped_enums/TestScopedEnumType.py +++ /dev/null @@ -1,45 +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__) - - @skipIf(dwarf_version=['<', '4']) - 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/lldb/packages/Python/lldbsuite/test/expression_command/scoped_enums/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/scoped_enums/main.cpp deleted file mode 100644 index b0d67d23dc5..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/scoped_enums/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/lldb/packages/Python/lldbsuite/test/expression_command/test/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/test/Makefile deleted file mode 100644 index 8a7102e347a..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/test/TestExprs.py b/lldb/packages/Python/lldbsuite/test/expression_command/test/TestExprs.py deleted file mode 100644 index 4fe228d40d4..00000000000 --- a/lldb/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 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']) - @expectedFlakeyNetBSD - 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 - @expectedFailureNetBSD - 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/lldb/packages/Python/lldbsuite/test/expression_command/test/TestExprs2.py b/lldb/packages/Python/lldbsuite/test/expression_command/test/TestExprs2.py deleted file mode 100644 index 1a733bebffe..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/test/TestExprs2.py +++ /dev/null @@ -1,74 +0,0 @@ -""" -Test some more expression commands. -""" - -from __future__ import print_function - - -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/lldb/packages/Python/lldbsuite/test/expression_command/test/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/test/main.cpp deleted file mode 100644 index 22208a87cb4..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/timeout/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/timeout/Makefile deleted file mode 100644 index c9cff412c1b..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/timeout/TestCallWithTimeout.py b/lldb/packages/Python/lldbsuite/test/expression_command/timeout/TestCallWithTimeout.py deleted file mode 100644 index 7862477001e..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/timeout/wait-a-while.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/timeout/wait-a-while.cpp deleted file mode 100644 index ac37c5d243b..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/top-level/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/top-level/Makefile deleted file mode 100644 index 9e35242c72f..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/top-level/TestTopLevelExprs.py b/lldb/packages/Python/lldbsuite/test/expression_command/top-level/TestTopLevelExprs.py deleted file mode 100644 index e6a632b7f23..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/top-level/TestTopLevelExprs.py +++ /dev/null @@ -1,94 +0,0 @@ -""" -Test top-level expressions. -""" - -from __future__ import print_function - - -import unittest2 - -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/lldb/packages/Python/lldbsuite/test/expression_command/top-level/dummy.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/top-level/dummy.cpp deleted file mode 100644 index fa49bd4bda7..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/top-level/dummy.mk b/lldb/packages/Python/lldbsuite/test/expression_command/top-level/dummy.mk deleted file mode 100644 index af97678b2cf..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/top-level/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/top-level/main.cpp deleted file mode 100644 index f9b2dd4c6d9..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/top-level/test.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/top-level/test.cpp deleted file mode 100644 index 5a978743596..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/two-files/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/two-files/Makefile deleted file mode 100644 index 5974461e256..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/two-files/TestObjCTypeQueryFromOtherCompileUnit.py b/lldb/packages/Python/lldbsuite/test/expression_command/two-files/TestObjCTypeQueryFromOtherCompileUnit.py deleted file mode 100644 index bac8e5453e4..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/two-files/foo.m b/lldb/packages/Python/lldbsuite/test/expression_command/two-files/foo.m deleted file mode 100644 index 1609ebd838f..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/two-files/main.m b/lldb/packages/Python/lldbsuite/test/expression_command/two-files/main.m deleted file mode 100644 index 3f5738314e6..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/unicode-in-variable/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/unicode-in-variable/Makefile deleted file mode 100644 index 3759b5f9255..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/unicode-in-variable/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -LEVEL = ../../make -CXX_SOURCES := main.cpp -CXX_FLAGS_EXTRA := -finput-charset=UTF-8 -fextended-identifiers -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/unicode-in-variable/TestUnicodeInVariable.py b/lldb/packages/Python/lldbsuite/test/expression_command/unicode-in-variable/TestUnicodeInVariable.py deleted file mode 100644 index 03424658f3e..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/unicode-in-variable/TestUnicodeInVariable.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/lldb/packages/Python/lldbsuite/test/expression_command/unicode-in-variable/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/unicode-in-variable/main.cpp deleted file mode 100644 index 82e38b1ef4c..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/unicode-in-variable/main.cpp +++ /dev/null @@ -1,17 +0,0 @@ -// Make sure we correctly handle unicode in variable names. - -struct A { - // We need a member variable in the context that could shadow our local - // variable. If our optimization code fails to handle this, then we won't - // correctly inject our local variable so that it won't get shadowed. - int foob\u00E1r = 2; - int foo() { - int foob\u00E1r = 3; - return foob\u00E1r; //%self.expect("expr foobár", substrs=['(int)', ' = 3']) - } -}; - -int main() { - A a; - return a.foo(); -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/unwind_expression/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/unwind_expression/Makefile deleted file mode 100644 index 8a7102e347a..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/unwind_expression/TestUnwindExpression.py b/lldb/packages/Python/lldbsuite/test/expression_command/unwind_expression/TestUnwindExpression.py deleted file mode 100644 index d42ee3de404..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/unwind_expression/TestUnwindExpression.py +++ /dev/null @@ -1,101 +0,0 @@ -""" -Test stopping at a breakpoint in an expression, and unwinding from there. -""" - -from __future__ import print_function - - -import unittest2 - -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']) - @expectedFlakeyNetBSD - 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/lldb/packages/Python/lldbsuite/test/expression_command/unwind_expression/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/unwind_expression/main.cpp deleted file mode 100644 index 56b06f31ecc..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/vector_of_enums/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/vector_of_enums/Makefile deleted file mode 100644 index 8a7102e347a..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/vector_of_enums/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../make - -CXX_SOURCES := main.cpp - -include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/vector_of_enums/TestVectorOfEnums.py b/lldb/packages/Python/lldbsuite/test/expression_command/vector_of_enums/TestVectorOfEnums.py deleted file mode 100644 index 2da95460e24..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/vector_of_enums/TestVectorOfEnums.py +++ /dev/null @@ -1,29 +0,0 @@ -""" -Test Expression Parser regression test to ensure that we handle enums -correctly, in this case specifically std::vector of enums. -""" - - -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - -class TestVectorOfEnums(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - @add_test_categories(["libc++"]) - def test_vector_of_enums(self): - self.build() - - lldbutil.run_to_source_breakpoint(self, '// break here', - lldb.SBFileSpec("main.cpp", False)) - - self.expect("expr v", substrs=[ - 'size=3', - '[0] = a', - '[1] = b', - '[2] = c', - '}' - ]) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/vector_of_enums/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/vector_of_enums/main.cpp deleted file mode 100644 index 10d3ae569a5..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/vector_of_enums/main.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include <vector> - -enum E { -a, -b, -c, -d -} ; - -int main() { - std::vector<E> v = {E::a, E::b, E::c}; - - return v.size(); // break here -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/weak_symbols/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/weak_symbols/Makefile deleted file mode 100644 index ea434d42714..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/weak_symbols/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -LEVEL = ../../make -CFLAGS_EXTRAS += -std=c99 -LD_FLAGS := -dynamiclib -include $(LEVEL)/Makefile.rules - -all: a.out dylib missing - -dylib: dylib.o - $(CC) $(LD_FLAGS) -o libdylib.dylib dylib.o - -missing: dylib2.o - mkdir hidden - $(CC) $(LD_FLAGS) -o hidden/libdylib.dylib dylib2.o - -a.out: main.o dylib missing - $(CC) $(CFLAGS) -L. -ldylib main.o - -dylib.o: dylib.h $(SRCDIR)/dylib.c - $(CC) -DHAS_THEM $(CFLAGS) -c $(SRCDIR)/dylib.c - -dylib2.o: dylib.h $(SRCDIR)/dylib.c - $(CC) $(CFLAGS) -c $(SRCDIR)/dylib.c -o dylib2.o - -main.o: dylib.h $(SRCDIR)/main.c - $(CC) $(CFLAGS) -c $(SRCDIR)/main.c -fmodules -fmodules-cache-path=$(CLANG_MODULE_CACHE_DIR) - diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/weak_symbols/TestWeakSymbols.py b/lldb/packages/Python/lldbsuite/test/expression_command/weak_symbols/TestWeakSymbols.py deleted file mode 100644 index 2999cba7d99..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/weak_symbols/TestWeakSymbols.py +++ /dev/null @@ -1,81 +0,0 @@ -""" -Test that we can compile expressions referring to -absent weak symbols from a dylib. -""" - -from __future__ import print_function - - -import os -import lldb -from lldbsuite.test import decorators -import lldbsuite.test.lldbutil as lldbutil -from lldbsuite.test.lldbtest import * - - -class TestWeakSymbolsInExpressions(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - NO_DEBUG_INFO_TESTCASE = True - - @decorators.skipUnlessDarwin - def test_weak_symbol_in_expr(self): - """Tests that we can refer to weak symbols in expressions.""" - self.build() - self.main_source_file = lldb.SBFileSpec("main.c") - self.do_test() - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - - def run_weak_var_check (self, weak_varname, present): - # The expression will modify present_weak_int to signify which branch - # was taken. Set it to so we don't get confused by a previous run. - value = self.target.FindFirstGlobalVariable("present_weak_int") - value.SetValueFromCString("0") - if present: - correct_value = 10 - else: - correct_value = 20 - - # Note, I'm adding the "; 10" at the end of the expression to work around - # the bug that expressions with no result currently return False for Success()... - expr = "if (&" + weak_varname + " != NULL) { present_weak_int = 10; } else { present_weak_int = 20;}; 10" - result = self.frame.EvaluateExpression(expr) - self.assertTrue(result.GetError().Success(), "absent_weak_int expr failed: %s"%(result.GetError().GetCString())) - self.assertEqual(value.GetValueAsSigned(), correct_value, "Didn't change present_weak_int correctly.") - - def do_test(self): - hidden_dir = os.path.join(self.getBuildDir(), "hidden") - - launch_info = lldb.SBLaunchInfo(None) - launch_info.SetWorkingDirectory(self.getBuildDir()) - # We have to point to the hidden directory to pick up the - # version of the dylib without the weak symbols: - env_expr = self.platformContext.shlib_environment_var + "=" + hidden_dir - launch_info.SetEnvironmentEntries([env_expr], True) - - (self.target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(self, - "Set a breakpoint here", self.main_source_file, - launch_info = launch_info) - # First we have to import the Dylib module so we get the type info - # for the weak symbol. We need to add the source dir to the module - # search paths, and then run @import to introduce it into the expression - # context: - self.dbg.HandleCommand("settings set target.clang-module-search-paths " + self.getSourceDir()) - - self.frame = thread.frames[0] - self.assertTrue(self.frame.IsValid(), "Got a good frame") - options = lldb.SBExpressionOptions() - options.SetLanguage(lldb.eLanguageTypeObjC) - result = self.frame.EvaluateExpression("@import Dylib", options) - - # Now run an expression that references an absent weak symbol: - self.run_weak_var_check("absent_weak_int", False) - self.run_weak_var_check("absent_weak_function", False) - - # Make sure we can do the same thing with present weak symbols - self.run_weak_var_check("present_weak_int", True) - self.run_weak_var_check("present_weak_function", True) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/weak_symbols/dylib.c b/lldb/packages/Python/lldbsuite/test/expression_command/weak_symbols/dylib.c deleted file mode 100644 index dc513e5c5fb..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/weak_symbols/dylib.c +++ /dev/null @@ -1,14 +0,0 @@ -#include "dylib.h" - -int present_weak_int = 10; -int present_weak_function() -{ - return present_weak_int; -} - -#if defined HAS_THEM -int absent_weak_int = 10; -int absent_weak_function() { - return absent_weak_int; -} -#endif diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/weak_symbols/dylib.h b/lldb/packages/Python/lldbsuite/test/expression_command/weak_symbols/dylib.h deleted file mode 100644 index f668ec0a784..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/weak_symbols/dylib.h +++ /dev/null @@ -1,8 +0,0 @@ -extern int absent_weak_int __attribute__((weak_import)); - -extern int present_weak_int __attribute__((weak_import)); - -extern int absent_weak_function() __attribute__((weak_import)); - -extern int present_weak_function() __attribute__((weak_import)); - diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/weak_symbols/main.c b/lldb/packages/Python/lldbsuite/test/expression_command/weak_symbols/main.c deleted file mode 100644 index 5ea257bae5b..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/weak_symbols/main.c +++ /dev/null @@ -1,23 +0,0 @@ -#include "dylib.h" -#include <stdio.h> - -int -doSomething() -{ - // Set a breakpoint here. - if (&absent_weak_int != NULL) - printf("In absent_weak_int: %d\n", absent_weak_int); - if (absent_weak_function != NULL) - printf("In absent_weak_func: %p\n", absent_weak_function); - if (&present_weak_int != NULL) - printf("In present_weak_int: %d\n", present_weak_int); - if (present_weak_function != NULL) - printf("In present_weak_func: %p\n", present_weak_function); - -} - -int -main() -{ - return doSomething(); -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/weak_symbols/module.modulemap b/lldb/packages/Python/lldbsuite/test/expression_command/weak_symbols/module.modulemap deleted file mode 100644 index 6f7671400bc..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/weak_symbols/module.modulemap +++ /dev/null @@ -1,3 +0,0 @@ -module Dylib { - header "dylib.h" -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/xvalue/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/xvalue/Makefile deleted file mode 100644 index 8a7102e347a..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/xvalue/TestXValuePrinting.py b/lldb/packages/Python/lldbsuite/test/expression_command/xvalue/TestXValuePrinting.py deleted file mode 100644 index 3aac6488660..00000000000 --- a/lldb/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/lldb/packages/Python/lldbsuite/test/expression_command/xvalue/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/xvalue/main.cpp deleted file mode 100644 index 556c63f2b44..00000000000 --- a/lldb/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 -} |