summaryrefslogtreecommitdiffstats
path: root/lldb/test/expression_command
diff options
context:
space:
mode:
authorChaoren Lin <chaorenl@google.com>2015-07-27 21:15:01 +0000
committerChaoren Lin <chaorenl@google.com>2015-07-27 21:15:01 +0000
commit5ce142b42913ef07b494c32fc69b1cf891b4d375 (patch)
tree70e08184f41c6a38549041664ed266dd6ec5888f /lldb/test/expression_command
parent1cf245fd968bfbe1eafa5ca24cc70b41e0734106 (diff)
downloadbcm5719-llvm-5ce142b42913ef07b494c32fc69b1cf891b4d375.tar.gz
bcm5719-llvm-5ce142b42913ef07b494c32fc69b1cf891b4d375.zip
Only test ObjC expression options on Darwin.
Reviewers: dawn, emaste, vharron, clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D11539 llvm-svn: 243329
Diffstat (limited to 'lldb/test/expression_command')
-rw-r--r--lldb/test/expression_command/options/TestExprOptions.py96
1 files changed, 52 insertions, 44 deletions
diff --git a/lldb/test/expression_command/options/TestExprOptions.py b/lldb/test/expression_command/options/TestExprOptions.py
index cb099f6af40..17c2fa49116 100644
--- a/lldb/test/expression_command/options/TestExprOptions.py
+++ b/lldb/test/expression_command/options/TestExprOptions.py
@@ -26,9 +26,15 @@ class ExprOptionsTestCase(TestBase):
self.line = line_number('main.cpp', '// breakpoint_in_main')
self.exe = os.path.join(os.getcwd(), "a.out")
- @expectedFailureFreeBSD # ObjC expression broken on FreeBSD?
- @expectedFailureLinux # ObjC expression broken on Linux?
- def test_expr_options(self):
+ @skipUnlessDarwin
+ def test_expr_options_objc_cpp(self):
+ self.expr_options(test_objc = True, test_cpp = True)
+
+ @skipIfDarwin # Already covered by test_expr_options_objc_cpp
+ def test_expr_options_cpp(self):
+ self.expr_options(test_objc = False, test_cpp = True)
+
+ def expr_options(self, test_objc, test_cpp):
"""These expression command options should work as expected."""
self.buildDefault()
@@ -53,47 +59,49 @@ class ExprOptionsTestCase(TestBase):
frame = threads[0].GetFrameAtIndex(0)
options = lldb.SBExpressionOptions()
- # -- test --language on ObjC builtin type using the SB API's --
- # Make sure we can evaluate the ObjC builtin type 'id':
- val = frame.EvaluateExpression('id my_id = 0; my_id')
- self.assertTrue(val.IsValid())
- self.assertTrue(val.GetError().Success())
- self.assertEqual(val.GetValueAsUnsigned(0), 0)
- self.DebugSBValue(val)
-
- # Make sure it still works if language is set to ObjC:
- options.SetLanguage(lldb.eLanguageTypeObjC)
- val = frame.EvaluateExpression('id my_id = 0; my_id', options)
- self.assertTrue(val.IsValid())
- self.assertTrue(val.GetError().Success())
- self.assertEqual(val.GetValueAsUnsigned(0), 0)
- self.DebugSBValue(val)
-
- # Make sure it fails if language is set to C:
- options.SetLanguage(lldb.eLanguageTypeC)
- val = frame.EvaluateExpression('id my_id = 0; my_id', options)
- self.assertTrue(val.IsValid())
- self.assertFalse(val.GetError().Success())
-
- # -- test --language on C++ expression using the SB API's --
- # Make sure we can evaluate 'ns::func'.
- val = frame.EvaluateExpression('ns::func')
- self.assertTrue(val.IsValid())
- self.assertTrue(val.GetError().Success())
- self.DebugSBValue(val)
-
- # Make sure it still works if language is set to C++:
- options.SetLanguage(lldb.eLanguageTypeC_plus_plus)
- val = frame.EvaluateExpression('ns::func', 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('ns::func', options)
- self.assertTrue(val.IsValid())
- self.assertFalse(val.GetError().Success())
+ if test_objc:
+ # -- test --language on ObjC builtin type using the SB API's --
+ # Make sure we can evaluate the ObjC builtin type 'id':
+ val = frame.EvaluateExpression('id my_id = 0; my_id')
+ self.assertTrue(val.IsValid())
+ self.assertTrue(val.GetError().Success())
+ self.assertEqual(val.GetValueAsUnsigned(0), 0)
+ self.DebugSBValue(val)
+
+ # Make sure it still works if language is set to ObjC:
+ options.SetLanguage(lldb.eLanguageTypeObjC)
+ val = frame.EvaluateExpression('id my_id = 0; my_id', options)
+ self.assertTrue(val.IsValid())
+ self.assertTrue(val.GetError().Success())
+ self.assertEqual(val.GetValueAsUnsigned(0), 0)
+ self.DebugSBValue(val)
+
+ # Make sure it fails if language is set to C:
+ options.SetLanguage(lldb.eLanguageTypeC)
+ val = frame.EvaluateExpression('id my_id = 0; my_id', options)
+ self.assertTrue(val.IsValid())
+ self.assertFalse(val.GetError().Success())
+
+ if test_cpp:
+ # -- test --language on C++ expression using the SB API's --
+ # Make sure we can evaluate 'ns::func'.
+ val = frame.EvaluateExpression('ns::func')
+ self.assertTrue(val.IsValid())
+ self.assertTrue(val.GetError().Success())
+ self.DebugSBValue(val)
+
+ # Make sure it still works if language is set to C++:
+ options.SetLanguage(lldb.eLanguageTypeC_plus_plus)
+ val = frame.EvaluateExpression('ns::func', 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('ns::func', options)
+ self.assertTrue(val.IsValid())
+ self.assertFalse(val.GetError().Success())
if __name__ == '__main__':
import atexit
OpenPOWER on IntegriCloud