199451b44SJordan Rupprecht# encoding: utf-8 299451b44SJordan Rupprecht""" 399451b44SJordan RupprechtTest lldb data formatter subsystem. 499451b44SJordan Rupprecht""" 599451b44SJordan Rupprecht 699451b44SJordan Rupprecht 799451b44SJordan Rupprechtimport lldb 899451b44SJordan Rupprechtfrom lldbsuite.test.decorators import * 999451b44SJordan Rupprechtfrom lldbsuite.test.lldbtest import * 1099451b44SJordan Rupprechtfrom lldbsuite.test import lldbutil 1199451b44SJordan Rupprecht 1299451b44SJordan Rupprechtfrom ObjCDataFormatterTestCase import ObjCDataFormatterTestCase 1399451b44SJordan Rupprecht 1499451b44SJordan Rupprecht 1599451b44SJordan Rupprechtclass ObjCDataFormatterNSContainer(ObjCDataFormatterTestCase): 1699451b44SJordan Rupprecht 1799451b44SJordan Rupprecht def test_nscontainers_with_run_command(self): 1899451b44SJordan Rupprecht """Test formatters for NS container classes.""" 19*9d5e95d0SJonas Devlieghere self.appkit_tester_impl(self.nscontainers_data_formatter_commands, False) 2099451b44SJordan Rupprecht 2199451b44SJordan Rupprecht def nscontainers_data_formatter_commands(self): 2299451b44SJordan Rupprecht self.expect( 234eabb120SJim Ingham 'frame variable newArray nsDictionary newDictionary nscfDictionary cfDictionaryRef newMutableDictionary copyDictionary newMutableDictionaryRef cfarray_ref mutable_array_ref', 2499451b44SJordan Rupprecht substrs=[ 2599451b44SJordan Rupprecht '(NSArray *) newArray = ', 2699451b44SJordan Rupprecht ' @"50 elements"', 2799451b44SJordan Rupprecht '(NSDictionary *) nsDictionary = ', 2899451b44SJordan Rupprecht ' 2 key/value pairs', 2999451b44SJordan Rupprecht '(NSDictionary *) newDictionary = ', 3099451b44SJordan Rupprecht ' 12 key/value pairs', 318f5beb4cSMed Ismail Bennani '(NSDictionary *) nscfDictionary = ', 328f5beb4cSMed Ismail Bennani ' 4 key/value pairs', 3399451b44SJordan Rupprecht '(CFDictionaryRef) cfDictionaryRef = ', 340eba9de7SMed Ismail Bennani ' 2 key/value pairs', 3599451b44SJordan Rupprecht '(NSDictionary *) newMutableDictionary = ', 3699451b44SJordan Rupprecht ' 21 key/value pairs', 374eabb120SJim Ingham '(NSMutableDictionary *) copyDictionary = ', 384eabb120SJim Ingham ' 21 key/value pairs', 3976e3a27cSJonas Devlieghere '(CFMutableDictionaryRef) newMutableDictionaryRef = ', 4076e3a27cSJonas Devlieghere ' 21 key/value pairs', 4199451b44SJordan Rupprecht '(CFArrayRef) cfarray_ref = ', 4299451b44SJordan Rupprecht ' @"3 elements"', 4399451b44SJordan Rupprecht '(CFMutableArrayRef) mutable_array_ref = ', 4499451b44SJordan Rupprecht ' @"11 elements"', 4599451b44SJordan Rupprecht ]) 4699451b44SJordan Rupprecht 474eabb120SJim Ingham self.expect('frame var -d run-target copyDictionary[10]', 484eabb120SJim Ingham substrs=['@"bar9"', '@"foo"']) 494eabb120SJim Ingham 5099451b44SJordan Rupprecht self.expect( 518f5beb4cSMed Ismail Bennani 'frame variable -d run-target *nscfDictionary', 528f5beb4cSMed Ismail Bennani patterns=[ 538f5beb4cSMed Ismail Bennani '\(__NSCFDictionary\) \*nscfDictionary =', 548f5beb4cSMed Ismail Bennani 'key = 0x.* @"foo"', 558f5beb4cSMed Ismail Bennani 'value = 0x.* @"foo"', 568f5beb4cSMed Ismail Bennani 'key = 0x.* @"bar"', 578f5beb4cSMed Ismail Bennani 'value = 0x.* @"bar"', 588f5beb4cSMed Ismail Bennani 'key = 0x.* @"baz"', 598f5beb4cSMed Ismail Bennani 'value = 0x.* @"baz"', 608f5beb4cSMed Ismail Bennani 'key = 0x.* @"quux"', 618f5beb4cSMed Ismail Bennani 'value = 0x.* @"quux"', 628f5beb4cSMed Ismail Bennani ]) 638f5beb4cSMed Ismail Bennani 648f5beb4cSMed Ismail Bennani 658f5beb4cSMed Ismail Bennani self.expect( 660eba9de7SMed Ismail Bennani 'frame variable -d run-target *cfDictionaryRef', 670eba9de7SMed Ismail Bennani patterns=[ 680eba9de7SMed Ismail Bennani '\(const __CFDictionary\) \*cfDictionaryRef =', 690eba9de7SMed Ismail Bennani 'key = 0x.* @"foo"', 700eba9de7SMed Ismail Bennani 'value = 0x.* @"foo"', 710eba9de7SMed Ismail Bennani 'key = 0x.* @"bar"', 720eba9de7SMed Ismail Bennani 'value = 0x.* @"bar"', 730eba9de7SMed Ismail Bennani ]) 740eba9de7SMed Ismail Bennani 750eba9de7SMed Ismail Bennani 760eba9de7SMed Ismail Bennani self.expect( 770eba9de7SMed Ismail Bennani 'frame var nscfSet cfSetRef', 788f5beb4cSMed Ismail Bennani substrs=[ 798f5beb4cSMed Ismail Bennani '(NSSet *) nscfSet = ', 808f5beb4cSMed Ismail Bennani '2 elements', 810eba9de7SMed Ismail Bennani '(CFSetRef) cfSetRef = ', 820eba9de7SMed Ismail Bennani '2 elements', 838f5beb4cSMed Ismail Bennani ]) 848f5beb4cSMed Ismail Bennani 858f5beb4cSMed Ismail Bennani self.expect( 868f5beb4cSMed Ismail Bennani 'frame variable -d run-target *nscfSet', 878f5beb4cSMed Ismail Bennani patterns=[ 888f5beb4cSMed Ismail Bennani '\(__NSCFSet\) \*nscfSet =', 898f5beb4cSMed Ismail Bennani '\[0\] = 0x.* @".*"', 908f5beb4cSMed Ismail Bennani '\[1\] = 0x.* @".*"', 918f5beb4cSMed Ismail Bennani ]) 928f5beb4cSMed Ismail Bennani 938f5beb4cSMed Ismail Bennani self.expect( 940eba9de7SMed Ismail Bennani 'frame variable -d run-target *cfSetRef', 950eba9de7SMed Ismail Bennani patterns=[ 960eba9de7SMed Ismail Bennani '\(const __CFSet\) \*cfSetRef =', 970eba9de7SMed Ismail Bennani '\[0\] = 0x.* @".*"', 980eba9de7SMed Ismail Bennani '\[1\] = 0x.* @".*"', 990eba9de7SMed Ismail Bennani ]) 1000eba9de7SMed Ismail Bennani 1010eba9de7SMed Ismail Bennani self.expect( 10299451b44SJordan Rupprecht 'frame variable iset1 iset2 imset', 10399451b44SJordan Rupprecht substrs=['4 indexes', '512 indexes', '10 indexes']) 10499451b44SJordan Rupprecht 10599451b44SJordan Rupprecht self.expect( 10699451b44SJordan Rupprecht 'frame variable binheap_ref', 10799451b44SJordan Rupprecht substrs=['(CFBinaryHeapRef) binheap_ref = ', '@"21 items"']) 10899451b44SJordan Rupprecht 10999451b44SJordan Rupprecht self.expect( 11099451b44SJordan Rupprecht 'expression -d run -- (NSArray*)[NSArray new]', 11199451b44SJordan Rupprecht substrs=['@"0 elements"']) 112