summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods2.py
diff options
context:
space:
mode:
authorJonas Devlieghere <jonas@devlieghere.com>2019-04-10 14:30:00 +0000
committerJonas Devlieghere <jonas@devlieghere.com>2019-04-10 14:30:00 +0000
commit6a7412a893da45867fe66fdf852a653956fb998c (patch)
treeaa6c8ff934eeee14ceecab9c58423ffdba43cde0 /lldb/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods2.py
parent3ecb04a9daeb6f6608c21ed1cb71e67f143a2740 (diff)
downloadbcm5719-llvm-6a7412a893da45867fe66fdf852a653956fb998c.tar.gz
bcm5719-llvm-6a7412a893da45867fe66fdf852a653956fb998c.zip
[testsuite] Split Obj-C foundation test
TestObjCMethods2.py was the third-longest running test on Darwin. By splitting it up, lit can exploit parallelism to reduce the total wall clock time. llvm-svn: 358088
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods2.py')
-rw-r--r--lldb/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods2.py155
1 files changed, 13 insertions, 142 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods2.py b/lldb/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods2.py
index 2b967e98885..20137e3d118 100644
--- a/lldb/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods2.py
+++ b/lldb/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods2.py
@@ -5,8 +5,6 @@ Test more expression command sequences with objective-c.
from __future__ import print_function
-import os
-import time
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
@@ -18,40 +16,36 @@ class FoundationTestCase2(TestBase):
mydir = TestBase.compute_mydir(__file__)
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
- # Find the line numbers to break at.
- self.lines = []
- self.lines.append(
+ def test_expr_commands(self):
+ """More expression commands for objective-c."""
+ self.build()
+ exe = self.getBuildArtifact("a.out")
+ self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
+
+ lines = []
+ lines.append(
line_number(
'main.m',
'// Break here for selector: tests'))
- self.lines.append(
+ lines.append(
line_number(
'main.m',
'// Break here for NSArray tests'))
- self.lines.append(
+ lines.append(
line_number(
'main.m',
'// Break here for NSString tests'))
- self.lines.append(
+ lines.append(
line_number(
'main.m',
'// Break here for description test'))
- self.lines.append(
+ lines.append(
line_number(
'main.m',
'// Set break point at this line'))
- def test_more_expr_commands(self):
- """More expression commands for objective-c."""
- self.build()
- exe = self.getBuildArtifact("a.out")
- self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
-
# Create a bunch of breakpoints.
- for line in self.lines:
+ for line in lines:
lldbutil.run_break_set_by_file_and_line(
self, "main.m", line, num_expected_locations=1, loc_exact=True)
@@ -80,126 +74,3 @@ class FoundationTestCase2(TestBase):
"description"])
self.runCmd("process continue")
-
- def test_NSArray_expr_commands(self):
- """Test expression commands for NSArray."""
- self.build()
- exe = self.getBuildArtifact("a.out")
- self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
-
- # Break inside Test_NSArray:
- line = self.lines[1]
- lldbutil.run_break_set_by_file_and_line(
- self, "main.m", line, num_expected_locations=1, loc_exact=True)
-
- self.runCmd("run", RUN_SUCCEEDED)
-
- # Test_NSArray:
- self.runCmd("thread backtrace")
- self.expect("expression (int)[nil_mutable_array count]",
- patterns=["\(int\) \$.* = 0"])
- self.expect("expression (int)[array1 count]",
- patterns=["\(int\) \$.* = 3"])
- self.expect("expression (int)[array2 count]",
- patterns=["\(int\) \$.* = 3"])
- self.expect("expression (int)array1.count",
- patterns=["\(int\) \$.* = 3"])
- self.expect("expression (int)array2.count",
- patterns=["\(int\) \$.* = 3"])
- self.runCmd("process continue")
-
- def test_NSString_expr_commands(self):
- """Test expression commands for NSString."""
- self.build()
- exe = self.getBuildArtifact("a.out")
- self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
-
- # Break inside Test_NSString:
- line = self.lines[2]
- lldbutil.run_break_set_by_file_and_line(
- self, "main.m", line, num_expected_locations=1, loc_exact=True)
-
- self.runCmd("run", RUN_SUCCEEDED)
-
- # Test_NSString:
- self.runCmd("thread backtrace")
- self.expect("expression (int)[str length]",
- patterns=["\(int\) \$.* ="])
- self.expect("expression (int)[str_id length]",
- patterns=["\(int\) \$.* ="])
- self.expect("expression (id)[str description]",
- patterns=["\(id\) \$.* = 0x"])
- self.expect("expression (id)[str_id description]",
- patterns=["\(id\) \$.* = 0x"])
- self.expect("expression str.length")
- self.expect('expression str = @"new"')
- self.runCmd("image lookup -t NSString")
- self.expect('expression str = (id)[NSString stringWithCString: "new"]')
- self.runCmd("process continue")
-
- @expectedFailureAll(archs=["i[3-6]86"], bugnumber="<rdar://problem/28814052>")
- def test_MyString_dump_with_runtime(self):
- """Test dump of a known Objective-C object by dereferencing it."""
- self.build()
- exe = self.getBuildArtifact("a.out")
- self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
-
- line = self.lines[4]
-
- lldbutil.run_break_set_by_file_and_line(
- self, "main.m", line, num_expected_locations=1, loc_exact=True)
-
- self.runCmd("run", RUN_SUCCEEDED)
-
- self.expect(
- "expression --show-types -- *my",
- patterns=[
- "\(MyString\) \$.* = ",
- "\(MyBase\)"])
- self.runCmd("process continue")
-
- @expectedFailureAll(archs=["i[3-6]86"], bugnumber="<rdar://problem/28814052>")
- def test_runtime_types(self):
- """Test commands that require runtime types"""
- self.build()
- exe = self.getBuildArtifact("a.out")
- self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
-
- # Break inside Test_NSString:
- line = self.lines[2]
- lldbutil.run_break_set_by_source_regexp(
- self, "NSString tests")
-
- self.runCmd("run", RUN_SUCCEEDED)
-
- # Test_NSString:
- self.runCmd("thread backtrace")
- self.expect("expression [str length]",
- patterns=["\(NSUInteger\) \$.* ="])
- self.expect("expression str.length")
- self.expect('expression str = [NSString stringWithCString: "new"]')
- self.expect(
- 'po [NSError errorWithDomain:@"Hello" code:35 userInfo:@{@"NSDescription" : @"be completed."}]',
- substrs=[
- "Error Domain=Hello",
- "Code=35",
- "be completed."])
- self.runCmd("process continue")
-
- @expectedFailureAll(archs=["i[3-6]86"], bugnumber="<rdar://problem/28814052>")
- def test_NSError_p(self):
- """Test that p of the result of an unknown method does require a cast."""
- self.build()
- exe = self.getBuildArtifact("a.out")
- self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
-
- line = self.lines[4]
-
- lldbutil.run_break_set_by_file_and_line(
- self, "main.m", line, num_expected_locations=1, loc_exact=True)
-
- self.runCmd("run", RUN_SUCCEEDED)
-
- self.expect("p [NSError thisMethodIsntImplemented:0]", error=True, patterns=[
- "no known method", "cast the message send to the method's return type"])
- self.runCmd("process continue")
OpenPOWER on IntegriCloud