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 f2e5613ffd61..306b00840dfd 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 2578742467d9..c48cd1f6af08 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 8aff2e514bb9..e0cf9e8d7759 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 bf7bc93a44b4..8e158c3e82d4 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') | 
