diff options
Diffstat (limited to 'packages/Python/lldbsuite/test/lang/go')
4 files changed, 108 insertions, 62 deletions
diff --git a/packages/Python/lldbsuite/test/lang/go/expressions/TestExpressions.py b/packages/Python/lldbsuite/test/lang/go/expressions/TestExpressions.py index f2e5613ffd613..306b00840dfdd 100644 --- a/packages/Python/lldbsuite/test/lang/go/expressions/TestExpressions.py +++ b/packages/Python/lldbsuite/test/lang/go/expressions/TestExpressions.py @@ -1,18 +1,20 @@ """Test the go expression parser/interpreter.""" -import os, time +import os +import time import unittest2 import lldb from lldbsuite.test.decorators import * from lldbsuite.test.lldbtest import * from lldbsuite.test import lldbutil + class TestGoUserExpression(TestBase): mydir = TestBase.compute_mydir(__file__) @add_test_categories(['pyapi']) - @skipIfRemote # Not remote test suit ready + @skipIfRemote # Not remote test suit ready @skipUnlessGoInstalled def test_with_dsym_and_python_api(self): """Test GoASTUserExpress.""" @@ -25,7 +27,8 @@ class TestGoUserExpression(TestBase): TestBase.setUp(self) # Find the line numbers to break inside main(). self.main_source = "main.go" - self.break_line = line_number(self.main_source, '// Set breakpoint here.') + self.break_line = line_number( + self.main_source, '// Set breakpoint here.') def check_builtin(self, name, size=0, typeclass=lldb.eTypeClassBuiltin): tl = self.target().FindTypes(name) @@ -42,23 +45,28 @@ class TestGoUserExpression(TestBase): target = self.dbg.CreateTarget(exe) self.assertTrue(target, VALID_TARGET) - bpt = target.BreakpointCreateByLocation(self.main_source, self.break_line) + bpt = target.BreakpointCreateByLocation( + self.main_source, self.break_line) self.assertTrue(bpt, VALID_BREAKPOINT) # Now launch the process, and do not stop at entry point. - process = target.LaunchSimple (None, None, self.get_process_working_directory()) + process = target.LaunchSimple( + None, None, self.get_process_working_directory()) self.assertTrue(process, PROCESS_IS_VALID) # The stop reason of the thread should be breakpoint. - thread_list = lldbutil.get_threads_stopped_at_breakpoint (process, bpt) + thread_list = lldbutil.get_threads_stopped_at_breakpoint(process, bpt) # Make sure we stopped at the first breakpoint. - self.assertTrue (len(thread_list) != 0, "No thread stopped at our breakpoint.") - self.assertTrue (len(thread_list) == 1, "More than one thread stopped at our breakpoint.") + self.assertTrue( + len(thread_list) != 0, + "No thread stopped at our breakpoint.") + self.assertTrue(len(thread_list) == 1, + "More than one thread stopped at our breakpoint.") frame = thread_list[0].GetFrameAtIndex(0) - self.assertTrue (frame, "Got a valid frame 0 frame.") + self.assertTrue(frame, "Got a valid frame 0 frame.") def go_expressions(self): frame = self.frame() @@ -66,7 +74,7 @@ class TestGoUserExpression(TestBase): self.assertEqual(1, v.GetValueAsSigned()) x = frame.EvaluateExpression("x") self.assertEqual(22, x.GetValueAsSigned()) - + a = frame.EvaluateExpression("a") self.assertEqual(3, a.GetNumChildren()) a0 = a.GetChildAtIndex(0) @@ -75,23 +83,23 @@ class TestGoUserExpression(TestBase): # Array indexing a0 = frame.EvaluateExpression("a[0]") self.assertEqual(8, a0.GetValueAsSigned()) - + # Slice indexing b1 = frame.EvaluateExpression("b[1]") self.assertEqual(9, b1.GetValueAsSigned()) - + # Test global in this package g = frame.EvaluateExpression("myGlobal") self.assertEqual(17, g.GetValueAsSigned(), str(g)) - + # Global with package name g = frame.EvaluateExpression("main.myGlobal") self.assertEqual(17, g.GetValueAsSigned(), str(g)) - + # Global with quoted package name g = frame.EvaluateExpression('"main".myGlobal') self.assertEqual(17, g.GetValueAsSigned(), str(g)) - + # Casting with package local type s = frame.EvaluateExpression("*(*myStruct)(i.data)") sb = s.GetChildMemberWithName("a") diff --git a/packages/Python/lldbsuite/test/lang/go/formatters/TestGoFormatters.py b/packages/Python/lldbsuite/test/lang/go/formatters/TestGoFormatters.py index 2578742467d99..c48cd1f6af08f 100644 --- a/packages/Python/lldbsuite/test/lang/go/formatters/TestGoFormatters.py +++ b/packages/Python/lldbsuite/test/lang/go/formatters/TestGoFormatters.py @@ -1,18 +1,20 @@ """Test the Go Data Formatter Plugin.""" -import os, time +import os +import time import unittest2 import lldb from lldbsuite.test.decorators import * from lldbsuite.test.lldbtest import * from lldbsuite.test import lldbutil + class TestGoLanguage(TestBase): mydir = TestBase.compute_mydir(__file__) - @skipIfFreeBSD # llvm.org/pr24895 triggers assertion failure - @skipIfRemote # Not remote test suite ready + @skipIfFreeBSD # llvm.org/pr24895 triggers assertion failure + @skipIfRemote # Not remote test suite ready @no_debug_info_test @skipUnlessGoInstalled def test_go_formatter_plugin(self): @@ -34,29 +36,37 @@ class TestGoLanguage(TestBase): target = self.dbg.CreateTarget(exe) self.assertTrue(target, VALID_TARGET) - self.bpt = target.BreakpointCreateByLocation(self.main_source, self.break_line) + self.bpt = target.BreakpointCreateByLocation( + self.main_source, self.break_line) self.assertTrue(self.bpt, VALID_BREAKPOINT) # Now launch the process, and do not stop at entry point. - process = target.LaunchSimple (None, None, self.get_process_working_directory()) + process = target.LaunchSimple( + None, None, self.get_process_working_directory()) self.assertTrue(process, PROCESS_IS_VALID) # The stop reason of the thread should be breakpoint. - thread_list = lldbutil.get_threads_stopped_at_breakpoint (process, self.bpt) + thread_list = lldbutil.get_threads_stopped_at_breakpoint( + process, self.bpt) # Make sure we stopped at the first breakpoint. - self.assertTrue (len(thread_list) != 0, "No thread stopped at our breakpoint.") - self.assertTrue (len(thread_list) == 1, "More than one thread stopped at our breakpoint.") + self.assertTrue( + len(thread_list) != 0, + "No thread stopped at our breakpoint.") + self.assertTrue(len(thread_list) == 1, + "More than one thread stopped at our breakpoint.") frame = thread_list[0].GetFrameAtIndex(0) - self.assertTrue (frame, "Got a valid frame 0 frame.") + self.assertTrue(frame, "Got a valid frame 0 frame.") def check_formatters(self): a = self.frame().FindVariable('a') self.assertEqual('(string) a = "my string"', str(a)) b = self.frame().FindVariable('b') - self.assertEqual("([]int) b = (len 2, cap 7) {\n [0] = 0\n [1] = 0\n}", str(b)) + self.assertEqual( + "([]int) b = (len 2, cap 7) {\n [0] = 0\n [1] = 0\n}", + str(b)) if __name__ == '__main__': diff --git a/packages/Python/lldbsuite/test/lang/go/goroutines/TestGoroutines.py b/packages/Python/lldbsuite/test/lang/go/goroutines/TestGoroutines.py index 8aff2e514bb92..e0cf9e8d77592 100644 --- a/packages/Python/lldbsuite/test/lang/go/goroutines/TestGoroutines.py +++ b/packages/Python/lldbsuite/test/lang/go/goroutines/TestGoroutines.py @@ -3,20 +3,21 @@ from __future__ import print_function - -import os, time +import os +import time import lldb from lldbsuite.test.decorators import * from lldbsuite.test.lldbtest import * from lldbsuite.test import lldbutil + class TestGoASTContext(TestBase): mydir = TestBase.compute_mydir(__file__) @add_test_categories(['pyapi']) - @skipIfFreeBSD # llvm.org/pr24895 triggers assertion failure - @skipIfRemote # Not remote test suite ready + @skipIfFreeBSD # llvm.org/pr24895 triggers assertion failure + @skipIfRemote # Not remote test suite ready @no_debug_info_test @skipUnlessGoInstalled def test_goroutine_plugin(self): @@ -40,47 +41,64 @@ class TestGoASTContext(TestBase): target = self.dbg.CreateTarget(exe) self.assertTrue(target, VALID_TARGET) - self.bpt1 = target.BreakpointCreateByLocation(self.main_source, self.break_line1) + self.bpt1 = target.BreakpointCreateByLocation( + self.main_source, self.break_line1) self.assertTrue(self.bpt1, VALID_BREAKPOINT) - self.bpt2 = target.BreakpointCreateByLocation(self.main_source, self.break_line2) + self.bpt2 = target.BreakpointCreateByLocation( + self.main_source, self.break_line2) self.assertTrue(self.bpt2, VALID_BREAKPOINT) - self.bpt3 = target.BreakpointCreateByLocation(self.main_source, self.break_line3) + self.bpt3 = target.BreakpointCreateByLocation( + self.main_source, self.break_line3) self.assertTrue(self.bpt3, VALID_BREAKPOINT) # Now launch the process, and do not stop at entry point. - process = target.LaunchSimple (None, None, self.get_process_working_directory()) + process = target.LaunchSimple( + None, None, self.get_process_working_directory()) self.assertTrue(process, PROCESS_IS_VALID) # The stop reason of the thread should be breakpoint. - thread_list = lldbutil.get_threads_stopped_at_breakpoint (process, self.bpt1) + thread_list = lldbutil.get_threads_stopped_at_breakpoint( + process, self.bpt1) # Make sure we stopped at the first breakpoint. - self.assertTrue (len(thread_list) != 0, "No thread stopped at our breakpoint.") - self.assertTrue (len(thread_list) == 1, "More than one thread stopped at our breakpoint.") + self.assertTrue( + len(thread_list) != 0, + "No thread stopped at our breakpoint.") + self.assertTrue(len(thread_list) == 1, + "More than one thread stopped at our breakpoint.") frame = thread_list[0].GetFrameAtIndex(0) - self.assertTrue (frame, "Got a valid frame 0 frame.") + self.assertTrue(frame, "Got a valid frame 0 frame.") def check_goroutines(self): self.assertLess(len(self.process().threads), 20) self.process().Continue() # Make sure we stopped at the 2nd breakpoint - thread_list = lldbutil.get_threads_stopped_at_breakpoint (self.process(), self.bpt2) - self.assertTrue (len(thread_list) != 0, "No thread stopped at our breakpoint.") - self.assertTrue (len(thread_list) == 1, "More than one thread stopped at our breakpoint.") - + thread_list = lldbutil.get_threads_stopped_at_breakpoint( + self.process(), self.bpt2) + self.assertTrue( + len(thread_list) != 0, + "No thread stopped at our breakpoint.") + self.assertTrue(len(thread_list) == 1, + "More than one thread stopped at our breakpoint.") + # There's (at least) 21 goroutines. self.assertGreater(len(self.process().threads), 20) # self.dbg.HandleCommand("log enable lldb os") - # Now test that stepping works if the memory thread moves to a different backing thread. + # Now test that stepping works if the memory thread moves to a + # different backing thread. for i in list(range(11)): self.thread().StepOver() - self.assertEqual(lldb.eStopReasonPlanComplete, self.thread().GetStopReason(), self.thread().GetStopDescription(100)) - + self.assertEqual( + lldb.eStopReasonPlanComplete, + self.thread().GetStopReason(), + self.thread().GetStopDescription(100)) + # Disable the plugin and make sure the goroutines disappear - self.dbg.HandleCommand("settings set plugin.os.goroutines.enable false") + self.dbg.HandleCommand( + "settings set plugin.os.goroutines.enable false") self.thread().StepInstruction(False) self.assertLess(len(self.process().threads), 20) diff --git a/packages/Python/lldbsuite/test/lang/go/types/TestGoASTContext.py b/packages/Python/lldbsuite/test/lang/go/types/TestGoASTContext.py index bf7bc93a44b4e..8e158c3e82d49 100644 --- a/packages/Python/lldbsuite/test/lang/go/types/TestGoASTContext.py +++ b/packages/Python/lldbsuite/test/lang/go/types/TestGoASTContext.py @@ -3,20 +3,21 @@ from __future__ import print_function - -import os, time +import os +import time import lldb from lldbsuite.test.decorators import * from lldbsuite.test.lldbtest import * from lldbsuite.test import lldbutil + class TestGoASTContext(TestBase): mydir = TestBase.compute_mydir(__file__) @add_test_categories(['pyapi']) - @skipIfFreeBSD # llvm.org/pr24895 triggers assertion failure - @skipIfRemote # Not remote test suit ready + @skipIfFreeBSD # llvm.org/pr24895 triggers assertion failure + @skipIfRemote # Not remote test suit ready @no_debug_info_test @skipUnlessGoInstalled def test_with_dsym_and_python_api(self): @@ -31,7 +32,8 @@ class TestGoASTContext(TestBase): TestBase.setUp(self) # Find the line numbers to break inside main(). self.main_source = "main.go" - self.break_line = line_number(self.main_source, '// Set breakpoint here.') + self.break_line = line_number( + self.main_source, '// Set breakpoint here.') def check_builtin(self, name, size=0, typeclass=lldb.eTypeClassBuiltin): tl = self.target().FindTypes(name) @@ -48,23 +50,28 @@ class TestGoASTContext(TestBase): target = self.dbg.CreateTarget(exe) self.assertTrue(target, VALID_TARGET) - bpt = target.BreakpointCreateByLocation(self.main_source, self.break_line) + bpt = target.BreakpointCreateByLocation( + self.main_source, self.break_line) self.assertTrue(bpt, VALID_BREAKPOINT) # Now launch the process, and do not stop at entry point. - process = target.LaunchSimple (None, None, self.get_process_working_directory()) + process = target.LaunchSimple( + None, None, self.get_process_working_directory()) self.assertTrue(process, PROCESS_IS_VALID) # The stop reason of the thread should be breakpoint. - thread_list = lldbutil.get_threads_stopped_at_breakpoint (process, bpt) + thread_list = lldbutil.get_threads_stopped_at_breakpoint(process, bpt) # Make sure we stopped at the first breakpoint. - self.assertTrue (len(thread_list) != 0, "No thread stopped at our breakpoint.") - self.assertTrue (len(thread_list) == 1, "More than one thread stopped at our breakpoint.") + self.assertTrue( + len(thread_list) != 0, + "No thread stopped at our breakpoint.") + self.assertTrue(len(thread_list) == 1, + "More than one thread stopped at our breakpoint.") frame = thread_list[0].GetFrameAtIndex(0) - self.assertTrue (frame, "Got a valid frame 0 frame.") + self.assertTrue(frame, "Got a valid frame 0 frame.") def go_builtin_types(self): address_size = self.target().GetAddressByteSize() @@ -93,19 +100,19 @@ class TestGoASTContext(TestBase): def check_main_vars(self): v = self.var('theBool') self.assertEqual('true', v.value) - + v = self.var('theInt') self.assertEqual('-7', v.value) - + v = self.var('theComplex') self.assertEqual('1 + 2i', v.value) - + v = self.var('thePointer') self.assertTrue(v.TypeIsPointerType()) self.assertEqual('-10', v.Dereference().value) self.assertEqual(1, v.GetNumChildren()) self.assertEqual('-10', v.GetChildAtIndex(0).value) - + # print() # print(os.getpid()) # time.sleep(60) @@ -115,8 +122,11 @@ class TestGoASTContext(TestBase): self.assertEqual(2, v.GetNumChildren()) self.assertEqual('7', v.GetChildAtIndex(0).value) self.assertEqual('7', v.GetChildMemberWithName('myInt').value) - self.assertEqual(v.load_addr, v.GetChildAtIndex(1).GetValueAsUnsigned()) - self.assertEqual(v.load_addr, v.GetChildMemberWithName('myPointer').GetValueAsUnsigned()) + self.assertEqual( + v.load_addr, + v.GetChildAtIndex(1).GetValueAsUnsigned()) + self.assertEqual(v.load_addr, v.GetChildMemberWithName( + 'myPointer').GetValueAsUnsigned()) # Test accessing struct fields through pointers. v = v.GetChildMemberWithName('myPointer') |