diff options
author | Vedant Kumar <vsk@apple.com> | 2018-02-22 23:48:21 +0000 |
---|---|---|
committer | Vedant Kumar <vsk@apple.com> | 2018-02-22 23:48:21 +0000 |
commit | 6d2b435d80dd8e0fb26208a4f6d042a06e5eb87e (patch) | |
tree | d28122849f348726db88cbfde0197ba1701e38c4 /lldb/packages/Python/lldbsuite/test | |
parent | d2fab30827dd195c50bd1a92be6bf530280bbcde (diff) | |
download | bcm5719-llvm-6d2b435d80dd8e0fb26208a4f6d042a06e5eb87e.tar.gz bcm5719-llvm-6d2b435d80dd8e0fb26208a4f6d042a06e5eb87e.zip |
[ObjC] Fix the NSConcreteData formatter and test it
The length field of an NSConcreteData lives one word past the start of
the object, not two.
llvm-svn: 325841
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
2 files changed, 14 insertions, 2 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjC.py b/lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjC.py index 17d3c1d0abf..80a4aa8482a 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjC.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjC.py @@ -243,7 +243,7 @@ class ObjCDataFormatterTestCase(TestBase): def nsdata_data_formatter_commands(self): self.expect( - 'frame variable immutableData mutableData data_ref mutable_data_ref mutable_string_ref', + 'frame variable immutableData mutableData data_ref mutable_data_ref mutable_string_ref concreteData concreteMutableData', substrs=[ '(NSData *) immutableData = ', ' 4 bytes', @@ -254,7 +254,12 @@ class ObjCDataFormatterTestCase(TestBase): '(CFMutableDataRef) mutable_data_ref = ', '@"5 bytes"', '(CFMutableStringRef) mutable_string_ref = ', - ' @"Wish ya knew"']) + ' @"Wish ya knew"', + '(NSData *) concreteData = ', + ' 100000 bytes', + '(NSMutableData *) concreteMutableData = ', + ' 100000 bytes']) + def nsurl_data_formatter_commands(self): self.expect( diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-objc/main.m b/lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-objc/main.m index 1543ce6edb9..e0642f3cb39 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-objc/main.m +++ b/lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-objc/main.m @@ -396,6 +396,12 @@ int main (int argc, const char * argv[]) NSData *immutableData = [[NSData alloc] initWithBytes:"HELLO" length:4]; NSData *mutableData = [[NSMutableData alloc] initWithBytes:"NODATA" length:6]; + // No-copy versions of NSData initializers use NSConcreteData if over 2^16 elements are specified. + unsigned concreteLength = 100000; + void *zeroes = calloc(1, concreteLength); + NSData *concreteData = [[NSData alloc] initWithBytesNoCopy:zeroes length:concreteLength]; + NSMutableData *concreteMutableData = [[NSMutableData alloc] initWithBytesNoCopy:zeroes length:concreteLength]; + [mutableData appendBytes:"MOREDATA" length:8]; [immutableData length]; @@ -610,6 +616,7 @@ int main (int argc, const char * argv[]) [molecule setAtoms:nil]; [molecule setAtoms:[NSMutableArray new]]; + free(zeroes); [pool drain]; return 0; } |