diff options
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/lang/go/expressions/TestExpressions.py')
-rw-r--r-- | lldb/packages/Python/lldbsuite/test/lang/go/expressions/TestExpressions.py | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/lang/go/expressions/TestExpressions.py b/lldb/packages/Python/lldbsuite/test/lang/go/expressions/TestExpressions.py deleted file mode 100644 index 963e0676100..00000000000 --- a/lldb/packages/Python/lldbsuite/test/lang/go/expressions/TestExpressions.py +++ /dev/null @@ -1,123 +0,0 @@ -"""Test the go expression parser/interpreter.""" - -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 - @skipIfFreeBSD # Test hanging on FreeBSD - llvm.org/pr37194 - @skipUnlessGoInstalled - def test_with_dsym_and_python_api(self): - """Test GoASTUserExpress.""" - self.buildGo() - self.launchProcess() - self.go_expressions() - - def setUp(self): - # Call super's setUp(). - 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.') - - def check_builtin(self, name, size=0, typeclass=lldb.eTypeClassBuiltin): - tl = self.target().FindTypes(name) - self.assertEqual(1, len(tl)) - t = list(tl)[0] - self.assertEqual(name, t.name) - self.assertEqual(typeclass, t.type) - if size > 0: - self.assertEqual(size, t.size) - - def launchProcess(self): - exe = self.getBuildArtifact("a.out") - - target = self.dbg.CreateTarget(exe) - self.assertTrue(target, VALID_TARGET) - - 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()) - - 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) - - # 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.") - - frame = thread_list[0].GetFrameAtIndex(0) - self.assertTrue(frame, "Got a valid frame 0 frame.") - - def go_expressions(self): - frame = self.frame() - v = frame.EvaluateExpression("1") - 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) - self.assertEqual(8, a0.GetValueAsSigned()) - - # 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") - self.assertEqual(2, sb.GetValueAsSigned()) - - # casting with explicit package - s = frame.EvaluateExpression("*(*main.myStruct)(i.data)") - sb = s.GetChildMemberWithName("a") - self.assertEqual(2, sb.GetValueAsSigned()) - - # Casting quoted package - s = frame.EvaluateExpression('*(*"main".myStruct)(i.data)') - sb = s.GetChildMemberWithName("b") - self.assertEqual(-1, sb.GetValueAsSigned()) - -if __name__ == '__main__': - import atexit - lldb.SBDebugger.Initialize() - atexit.register(lambda: lldb.SBDebugger.Terminate()) - unittest2.main() |