Skip to content

Commit ff75262

Browse files
committedApr 5, 2019
[testsuite] Split Objective-C data formatter
The testcase for objective-c data formatters is very big as it checks a bunch of stuff. This is annoying when using the lit test driver, because it prevents us from running the different cases in parallel. As a result, it's always one of the last few tests that complete. This patch splits the test into multiple files that share a common base class. This way lit can run the different tests in parallel. Differential revision: https://reviews.llvm.org/D60300 llvm-svn: 357786
1 parent d248f02 commit ff75262

14 files changed

+584
-530
lines changed
 
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# encoding: utf-8
2+
"""
3+
Test lldb data formatter subsystem.
4+
"""
5+
6+
from __future__ import print_function
7+
8+
import lldb
9+
from lldbsuite.test.decorators import *
10+
from lldbsuite.test.lldbtest import *
11+
from lldbsuite.test import lldbutil
12+
13+
14+
class ObjCDataFormatterTestCase(TestBase):
15+
16+
mydir = TestBase.compute_mydir(__file__)
17+
18+
def appkit_tester_impl(self, commands):
19+
self.build()
20+
self.appkit_common_data_formatters_command()
21+
commands()
22+
23+
def appkit_common_data_formatters_command(self):
24+
"""Test formatters for AppKit classes."""
25+
self.target, process, thread, bkpt = lldbutil.run_to_source_breakpoint(
26+
self, '// Set break point at this line.',
27+
lldb.SBFileSpec('main.m', False))
28+
29+
# The stop reason of the thread should be breakpoint.
30+
self.expect(
31+
"thread list",
32+
STOPPED_DUE_TO_BREAKPOINT,
33+
substrs=['stopped', 'stop reason = breakpoint'])
34+
35+
# This is the function to remove the custom formats in order to have a
36+
# clean slate for the next test case.
37+
def cleanup():
38+
self.runCmd('type format clear', check=False)
39+
self.runCmd('type summary clear', check=False)
40+
self.runCmd('type synth clear', check=False)
41+
42+
# Execute the cleanup function during test case tear down.
43+
self.addTearDownHook(cleanup)

Diff for: ‎lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjC.py

-530
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# encoding: utf-8
2+
"""
3+
Test lldb data formatter subsystem.
4+
"""
5+
6+
from __future__ import print_function
7+
8+
import lldb
9+
from lldbsuite.test.decorators import *
10+
from lldbsuite.test.lldbtest import *
11+
from lldbsuite.test import lldbutil
12+
13+
from ObjCDataFormatterTestCase import ObjCDataFormatterTestCase
14+
15+
16+
class ObjCDataFormatterCF(ObjCDataFormatterTestCase):
17+
18+
@skipUnlessDarwin
19+
@no_debug_info_test
20+
def test_coreframeworks_and_run_command(self):
21+
"""Test formatters for Core OSX frameworks."""
22+
self.build()
23+
self.target, process, thread, bkpt = lldbutil.run_to_source_breakpoint(
24+
self, '// Set break point at this line.',
25+
lldb.SBFileSpec('main.m', False))
26+
27+
# The stop reason of the thread should be breakpoint.
28+
self.expect(
29+
"thread list",
30+
STOPPED_DUE_TO_BREAKPOINT,
31+
substrs=['stopped', 'stop reason = breakpoint'])
32+
33+
# check formatters for common Objective-C types
34+
expect_strings = [
35+
'(CFGregorianUnits) cf_greg_units = 1 years, 3 months, 5 days, 12 hours, 5 minutes 7 seconds',
36+
'(CFRange) cf_range = location=4 length=4',
37+
'(NSPoint) ns_point = (x = 4, y = 4)',
38+
'(NSRange) ns_range = location=4, length=4',
39+
'(NSRect) ns_rect = (origin = (x = 1, y = 1), size = (width = 5, height = 5))',
40+
'(NSRectArray) ns_rect_arr = ((x = 1, y = 1), (width = 5, height = 5)), ...',
41+
'(NSSize) ns_size = (width = 5, height = 7)',
42+
'(CGSize) cg_size = (width = 1, height = 6)',
43+
'(CGPoint) cg_point = (x = 2, y = 7)',
44+
'(CGRect) cg_rect = (origin = (x = 1, y = 2), size = (width = 7, height = 7))',
45+
'(Rect) rect = (t=4, l=8, b=4, r=7)',
46+
'(Rect *) rect_ptr = (t=4, l=8, b=4, r=7)',
47+
'(Point) point = (v=7, h=12)', '(Point *) point_ptr = (v=7, h=12)',
48+
'1985', 'foo_selector_impl'
49+
]
50+
51+
if self.getArchitecture() in ['i386', 'x86_64']:
52+
expect_strings.append('(HIPoint) hi_point = (x=7, y=12)')
53+
expect_strings.append(
54+
'(HIRect) hi_rect = origin=(x = 3, y = 5) size=(width = 4, height = 6)'
55+
)
56+
expect_strings.append(
57+
'(RGBColor) rgb_color = red=3 green=56 blue=35')
58+
expect_strings.append(
59+
'(RGBColor *) rgb_color_ptr = red=3 green=56 blue=35')
60+
61+
self.expect("frame variable", substrs=expect_strings)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# encoding: utf-8
2+
"""
3+
Test lldb data formatter subsystem.
4+
"""
5+
6+
from __future__ import print_function
7+
8+
import lldb
9+
from lldbsuite.test.decorators import *
10+
from lldbsuite.test.lldbtest import *
11+
from lldbsuite.test import lldbutil
12+
13+
from ObjCDataFormatterTestCase import ObjCDataFormatterTestCase
14+
15+
16+
class ObjCDataFormatterExpr(ObjCDataFormatterTestCase):
17+
18+
@skipUnlessDarwin
19+
@no_debug_info_test
20+
def test_expr_with_run_command(self):
21+
"""Test common cases of expression parser <--> formatters interaction."""
22+
self.build()
23+
self.target, process, thread, bkpt = lldbutil.run_to_source_breakpoint(
24+
self, '// Set break point at this line.',
25+
lldb.SBFileSpec('main.m', False))
26+
27+
# The stop reason of the thread should be breakpoint.
28+
self.expect(
29+
"thread list",
30+
STOPPED_DUE_TO_BREAKPOINT,
31+
substrs=['stopped', 'stop reason = breakpoint'])
32+
33+
# This is the function to remove the custom formats in order to have a
34+
# clean slate for the next test case.
35+
def cleanup():
36+
self.runCmd('type format clear', check=False)
37+
self.runCmd('type summary clear', check=False)
38+
self.runCmd('type synth clear', check=False)
39+
40+
# Execute the cleanup function during test case tear down.
41+
self.addTearDownHook(cleanup)
42+
43+
# check that the formatters are able to deal safely and correctly
44+
# with ValueObjects that the expression parser returns
45+
self.expect(
46+
'expression ((id)@"Hello for long enough to avoid short string types")',
47+
matching=False,
48+
substrs=['Hello for long enough to avoid short string types'])
49+
50+
self.expect(
51+
'expression -d run -- ((id)@"Hello for long enough to avoid short string types")',
52+
substrs=['Hello for long enough to avoid short string types'])
53+
54+
self.expect('expr -d run -- label1', substrs=['Process Name'])
55+
56+
self.expect(
57+
'expr -d run -- @"Hello for long enough to avoid short string types"',
58+
substrs=['Hello for long enough to avoid short string types'])
59+
60+
self.expect(
61+
'expr -d run --object-description -- @"Hello for long enough to avoid short string types"',
62+
substrs=['Hello for long enough to avoid short string types'])
63+
self.expect(
64+
'expr -d run --object-description -- @"Hello"',
65+
matching=False,
66+
substrs=['@"Hello" Hello'])
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# encoding: utf-8
2+
"""
3+
Test lldb data formatter subsystem.
4+
"""
5+
6+
from __future__ import print_function
7+
8+
import lldb
9+
from lldbsuite.test.decorators import *
10+
from lldbsuite.test.lldbtest import *
11+
from lldbsuite.test import lldbutil
12+
13+
from ObjCDataFormatterTestCase import ObjCDataFormatterTestCase
14+
15+
16+
class ObjCDataFormatterKVO(ObjCDataFormatterTestCase):
17+
18+
@skipUnlessDarwin
19+
@no_debug_info_test
20+
def test_kvo_with_run_command(self):
21+
"""Test the behavior of formatters when KVO is in use."""
22+
self.build()
23+
self.target, process, thread, bkpt = lldbutil.run_to_source_breakpoint(
24+
self, '// Set break point at this line.',
25+
lldb.SBFileSpec('main.m', False))
26+
27+
# The stop reason of the thread should be breakpoint.
28+
self.expect(
29+
"thread list",
30+
STOPPED_DUE_TO_BREAKPOINT,
31+
substrs=['stopped', 'stop reason = breakpoint'])
32+
33+
# This is the function to remove the custom formats in order to have a
34+
# clean slate for the next test case.
35+
def cleanup():
36+
self.runCmd('type format clear', check=False)
37+
self.runCmd('type summary clear', check=False)
38+
self.runCmd('type synth clear', check=False)
39+
40+
# Execute the cleanup function during test case tear down.
41+
self.addTearDownHook(cleanup)
42+
43+
# as long as KVO is implemented by subclassing, this test should succeed
44+
# we should be able to dynamically figure out that the KVO implementor class
45+
# is a subclass of Molecule, and use the appropriate summary for it
46+
self.runCmd("type summary add -s JustAMoleculeHere Molecule")
47+
self.expect('frame variable molecule', substrs=['JustAMoleculeHere'])
48+
self.runCmd("next")
49+
self.expect("thread list", substrs=['stopped', 'step over'])
50+
self.expect('frame variable molecule', substrs=['JustAMoleculeHere'])
51+
52+
self.runCmd("next")
53+
# check that NSMutableDictionary's formatter is not confused when
54+
# dealing with a KVO'd dictionary
55+
self.expect(
56+
'frame variable newMutableDictionary',
57+
substrs=[
58+
'(NSDictionary *) newMutableDictionary = ',
59+
' 21 key/value pairs'
60+
])
61+
62+
lldbutil.run_break_set_by_regexp(self, 'setAtoms')
63+
64+
self.runCmd("continue")
65+
self.expect("frame variable _cmd", substrs=['setAtoms:'])
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# encoding: utf-8
2+
"""
3+
Test lldb data formatter subsystem.
4+
"""
5+
6+
from __future__ import print_function
7+
8+
import lldb
9+
from lldbsuite.test.decorators import *
10+
from lldbsuite.test.lldbtest import *
11+
from lldbsuite.test import lldbutil
12+
13+
from ObjCDataFormatterTestCase import ObjCDataFormatterTestCase
14+
15+
16+
class ObjCDataFormatterNSBundle(ObjCDataFormatterTestCase):
17+
18+
@skipUnlessDarwin
19+
@no_debug_info_test
20+
def test_nsbundle_with_run_command(self):
21+
"""Test formatters for NSBundle."""
22+
self.appkit_tester_impl(self.nsbundle_data_formatter_commands)
23+
24+
def nsbundle_data_formatter_commands(self):
25+
self.expect(
26+
'frame variable bundle_string bundle_url main_bundle',
27+
substrs=[
28+
'(NSBundle *) bundle_string = ',
29+
' @"/System/Library/Frameworks/Accelerate.framework"',
30+
'(NSBundle *) bundle_url = ',
31+
' @"/System/Library/Frameworks/Foundation.framework"',
32+
'(NSBundle *) main_bundle = ', 'data-formatter-objc'
33+
])
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# encoding: utf-8
2+
"""
3+
Test lldb data formatter subsystem.
4+
"""
5+
6+
from __future__ import print_function
7+
8+
import lldb
9+
from lldbsuite.test.decorators import *
10+
from lldbsuite.test.lldbtest import *
11+
from lldbsuite.test import lldbutil
12+
13+
from ObjCDataFormatterTestCase import ObjCDataFormatterTestCase
14+
15+
16+
class ObjCDataFormatterNSContainer(ObjCDataFormatterTestCase):
17+
18+
@skipUnlessDarwin
19+
@no_debug_info_test
20+
def test_nscontainers_with_run_command(self):
21+
"""Test formatters for NS container classes."""
22+
self.appkit_tester_impl(self.nscontainers_data_formatter_commands)
23+
24+
def nscontainers_data_formatter_commands(self):
25+
self.expect(
26+
'frame variable newArray nsDictionary newDictionary nscfDictionary cfDictionaryRef newMutableDictionary cfarray_ref mutable_array_ref',
27+
substrs=[
28+
'(NSArray *) newArray = ', '@"50 elements"',
29+
'(NSDictionary *) newDictionary = ', ' 12 key/value pairs',
30+
'(NSDictionary *) newMutableDictionary = ',
31+
' 21 key/value pairs', '(NSDictionary *) nsDictionary = ',
32+
' 2 key/value pairs', '(CFDictionaryRef) cfDictionaryRef = ',
33+
' 3 key/value pairs', '(CFArrayRef) cfarray_ref = ',
34+
'@"3 elements"', '(CFMutableArrayRef) mutable_array_ref = ',
35+
'@"11 elements"'
36+
])
37+
38+
self.expect(
39+
'frame variable iset1 iset2 imset',
40+
substrs=['4 indexes', '512 indexes', '10 indexes'])
41+
42+
self.expect(
43+
'frame variable binheap_ref',
44+
substrs=['(CFBinaryHeapRef) binheap_ref = ', '@"21 items"'])
45+
46+
self.expect(
47+
'expression -d run -- (NSArray*)[NSArray new]',
48+
substrs=['@"0 elements"'])
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# encoding: utf-8
2+
"""
3+
Test lldb data formatter subsystem.
4+
"""
5+
6+
from __future__ import print_function
7+
8+
import lldb
9+
from lldbsuite.test.decorators import *
10+
from lldbsuite.test.lldbtest import *
11+
from lldbsuite.test import lldbutil
12+
13+
from ObjCDataFormatterTestCase import ObjCDataFormatterTestCase
14+
15+
16+
class ObjCDataFormatterNSData(ObjCDataFormatterTestCase):
17+
18+
@skipUnlessDarwin
19+
@no_debug_info_test
20+
def test_nsdata_with_run_command(self):
21+
"""Test formatters for NSData."""
22+
self.appkit_tester_impl(self.nsdata_data_formatter_commands)
23+
24+
def nsdata_data_formatter_commands(self):
25+
self.expect(
26+
'frame variable immutableData mutableData data_ref mutable_data_ref mutable_string_ref concreteData concreteMutableData',
27+
substrs=[
28+
'(NSData *) immutableData = ', ' 4 bytes',
29+
'(NSData *) mutableData = ', ' 14 bytes',
30+
'(CFDataRef) data_ref = ', '@"5 bytes"',
31+
'(CFMutableDataRef) mutable_data_ref = ', '@"5 bytes"',
32+
'(CFMutableStringRef) mutable_string_ref = ',
33+
' @"Wish ya knew"', '(NSData *) concreteData = ',
34+
' 100000 bytes', '(NSMutableData *) concreteMutableData = ',
35+
' 100000 bytes'
36+
])
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# encoding: utf-8
2+
"""
3+
Test lldb data formatter subsystem.
4+
"""
5+
6+
from __future__ import print_function
7+
8+
import lldb
9+
from lldbsuite.test.decorators import *
10+
from lldbsuite.test.lldbtest import *
11+
from lldbsuite.test import lldbutil
12+
13+
from ObjCDataFormatterTestCase import ObjCDataFormatterTestCase
14+
15+
16+
class ObjCDataFormatterNSDate(ObjCDataFormatterTestCase):
17+
18+
@skipUnlessDarwin
19+
@no_debug_info_test
20+
def test_nsdata_with_run_command(self):
21+
"""Test formatters for NSData."""
22+
self.appkit_tester_impl(self.nsdata_data_formatter_commands)
23+
24+
def nsdata_data_formatter_commands(self):
25+
self.expect(
26+
'frame variable immutableData mutableData data_ref mutable_data_ref mutable_string_ref concreteData concreteMutableData',
27+
substrs=[
28+
'(NSData *) immutableData = ', ' 4 bytes',
29+
'(NSData *) mutableData = ', ' 14 bytes',
30+
'(CFDataRef) data_ref = ', '@"5 bytes"',
31+
'(CFMutableDataRef) mutable_data_ref = ', '@"5 bytes"',
32+
'(CFMutableStringRef) mutable_string_ref = ',
33+
' @"Wish ya knew"', '(NSData *) concreteData = ',
34+
' 100000 bytes', '(NSMutableData *) concreteMutableData = ',
35+
' 100000 bytes'
36+
])
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# encoding: utf-8
2+
"""
3+
Test lldb data formatter subsystem.
4+
"""
5+
6+
from __future__ import print_function
7+
8+
import lldb
9+
from lldbsuite.test.decorators import *
10+
from lldbsuite.test.lldbtest import *
11+
from lldbsuite.test import lldbutil
12+
13+
from ObjCDataFormatterTestCase import ObjCDataFormatterTestCase
14+
15+
16+
class ObjCDataFormatterNSError(ObjCDataFormatterTestCase):
17+
18+
@skipUnlessDarwin
19+
@no_debug_info_test
20+
def test_nserror_with_run_command(self):
21+
"""Test formatters for NSError."""
22+
self.appkit_tester_impl(self.nserror_data_formatter_commands)
23+
24+
def nserror_data_formatter_commands(self):
25+
self.expect(
26+
'frame variable nserror', substrs=['domain: @"Foobar" - code: 12'])
27+
28+
self.expect(
29+
'frame variable nserrorptr',
30+
substrs=['domain: @"Foobar" - code: 12'])
31+
32+
self.expect(
33+
'frame variable nserror->_userInfo', substrs=['2 key/value pairs'])
34+
35+
self.expect(
36+
'frame variable nserror->_userInfo --ptr-depth 1 -d run-target',
37+
substrs=['@"a"', '@"b"', "1", "2"])
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# encoding: utf-8
2+
"""
3+
Test lldb data formatter subsystem.
4+
"""
5+
6+
from __future__ import print_function
7+
8+
import lldb
9+
from lldbsuite.test.decorators import *
10+
from lldbsuite.test.lldbtest import *
11+
from lldbsuite.test import lldbutil
12+
13+
from ObjCDataFormatterTestCase import ObjCDataFormatterTestCase
14+
15+
16+
class ObjCDataFormatterNSURL(ObjCDataFormatterTestCase):
17+
18+
@skipUnlessDarwin
19+
@no_debug_info_test
20+
def test_nsurl_with_run_command(self):
21+
"""Test formatters for NSURL."""
22+
self.appkit_tester_impl(self.nsurl_data_formatter_commands)
23+
24+
def nsurl_data_formatter_commands(self):
25+
self.expect(
26+
'frame variable cfurl_ref cfchildurl_ref cfgchildurl_ref',
27+
substrs=[
28+
'(CFURLRef) cfurl_ref = ', '@"http://www.foo.bar',
29+
'cfchildurl_ref = ', '@"page.html -- http://www.foo.bar',
30+
'(CFURLRef) cfgchildurl_ref = ',
31+
'@"?whatever -- http://www.foo.bar/page.html"'
32+
])
33+
34+
self.expect(
35+
'frame variable nsurl nsurl2 nsurl3',
36+
substrs=[
37+
'(NSURL *) nsurl = ', '@"http://www.foo.bar',
38+
'(NSURL *) nsurl2 =', '@"page.html -- http://www.foo.bar',
39+
'(NSURL *) nsurl3 = ',
40+
'@"?whatever -- http://www.foo.bar/page.html"'
41+
])
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# encoding: utf-8
2+
"""
3+
Test lldb data formatter subsystem.
4+
"""
5+
6+
from __future__ import print_function
7+
8+
import lldb
9+
from lldbsuite.test.decorators import *
10+
from lldbsuite.test.lldbtest import *
11+
from lldbsuite.test import lldbutil
12+
13+
from ObjCDataFormatterTestCase import ObjCDataFormatterTestCase
14+
15+
16+
class ObjCDataFormatterNSPlain(ObjCDataFormatterTestCase):
17+
18+
@skipUnlessDarwin
19+
@no_debug_info_test
20+
def test_plain_objc_with_run_command(self):
21+
"""Test basic ObjC formatting behavior."""
22+
self.build()
23+
self.target, process, thread, bkpt = lldbutil.run_to_source_breakpoint(
24+
self, '// Set break point at this line.',
25+
lldb.SBFileSpec('main.m', False))
26+
27+
# The stop reason of the thread should be breakpoint.
28+
self.expect(
29+
"thread list",
30+
STOPPED_DUE_TO_BREAKPOINT,
31+
substrs=['stopped', 'stop reason = breakpoint'])
32+
33+
# This is the function to remove the custom formats in order to have a
34+
# clean slate for the next test case.
35+
def cleanup():
36+
self.runCmd('type format clear', check=False)
37+
self.runCmd('type summary clear', check=False)
38+
self.runCmd('type synth clear', check=False)
39+
40+
# Execute the cleanup function during test case tear down.
41+
self.addTearDownHook(cleanup)
42+
43+
self.runCmd("type summary add --summary-string \"${var%@}\" MyClass")
44+
45+
self.expect("frame variable object2", substrs=['MyOtherClass'])
46+
47+
self.expect("frame variable *object2", substrs=['MyOtherClass'])
48+
49+
# Now let's delete the 'MyClass' custom summary.
50+
self.runCmd("type summary delete MyClass")
51+
52+
# The type format list should not show 'MyClass' at this point.
53+
self.expect("type summary list", matching=False, substrs=['MyClass'])
54+
55+
self.runCmd("type summary add --summary-string \"a test\" MyClass")
56+
57+
self.expect(
58+
"frame variable *object2",
59+
substrs=['*object2 =', 'MyClass = a test', 'backup = '])
60+
61+
self.expect(
62+
"frame variable object2", matching=False, substrs=['a test'])
63+
64+
self.expect("frame variable object", substrs=['a test'])
65+
66+
self.expect("frame variable *object", substrs=['a test'])
67+
68+
self.expect(
69+
'frame variable myclass', substrs=['(Class) myclass = NSValue'])
70+
self.expect(
71+
'frame variable myclass2',
72+
substrs=['(Class) myclass2 = ', 'NS', 'String'])
73+
self.expect(
74+
'frame variable myclass3', substrs=['(Class) myclass3 = Molecule'])
75+
self.expect(
76+
'frame variable myclass4',
77+
substrs=['(Class) myclass4 = NSMutableArray'])
78+
self.expect(
79+
'frame variable myclass5', substrs=['(Class) myclass5 = nil'])
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# encoding: utf-8
2+
"""
3+
Test lldb data formatter subsystem.
4+
"""
5+
6+
from __future__ import print_function
7+
8+
import lldb
9+
from lldbsuite.test.decorators import *
10+
from lldbsuite.test.lldbtest import *
11+
from lldbsuite.test import lldbutil
12+
13+
from ObjCDataFormatterTestCase import ObjCDataFormatterTestCase
14+
15+
16+
class ObjCDataFormatterNSException(ObjCDataFormatterTestCase):
17+
18+
@skipUnlessDarwin
19+
@no_debug_info_test
20+
def test_nsexception_with_run_command(self):
21+
"""Test formatters for NSException."""
22+
self.appkit_tester_impl(self.nsexception_data_formatter_commands)
23+
24+
def nsexception_data_formatter_commands(self):
25+
self.expect(
26+
'frame variable except0 except1 except2 except3',
27+
substrs=[
28+
'(NSException *) except0 = ',
29+
'name: @"TheGuyWhoHasNoName" - reason: @"cuz it\'s funny"',
30+
'(NSException *) except1 = ',
31+
'name: @"TheGuyWhoHasNoName~1" - reason: @"cuz it\'s funny"',
32+
'(NSException *) except2 = ',
33+
'name: @"TheGuyWhoHasNoName`2" - reason: @"cuz it\'s funny"',
34+
'(NSException *) except3 = ',
35+
'name: @"TheGuyWhoHasNoName/3" - reason: @"cuz it\'s funny"'
36+
])

Diff for: ‎lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-objc/nsstring/TestDataFormatterNSString.py

+3
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,19 @@ def cleanup():
4545
commands()
4646

4747
@skipUnlessDarwin
48+
@no_debug_info_test
4849
def test_nsstring_with_run_command(self):
4950
"""Test formatters for NSString."""
5051
self.appkit_tester_impl(self.nsstring_data_formatter_commands)
5152

5253
@skipUnlessDarwin
54+
@no_debug_info_test
5355
def test_rdar11106605_with_run_command(self):
5456
"""Check that Unicode characters come out of CFString summary correctly."""
5557
self.appkit_tester_impl(self.rdar11106605_commands)
5658

5759
@skipUnlessDarwin
60+
@no_debug_info_test
5861
def test_nsstring_withNULS_with_run_command(self):
5962
"""Test formatters for NSString."""
6063
self.appkit_tester_impl(self.nsstring_withNULs_commands)

0 commit comments

Comments
 (0)
Please sign in to comment.