1# encoding: utf-8
2"""
3Test lldb data formatter subsystem.
4"""
5
6
7import lldb
8from lldbsuite.test.decorators import *
9from lldbsuite.test.lldbtest import *
10from lldbsuite.test import lldbutil
11
12from ObjCDataFormatterTestCase import ObjCDataFormatterTestCase
13
14
15class ObjCDataFormatterNSData(ObjCDataFormatterTestCase):
16
17    def test_nsdata_with_run_command(self):
18        """Test formatters for  NSData."""
19        self.appkit_tester_impl(self.nsdata_data_formatter_commands, True)
20
21    @skipUnlessDarwin
22    def test_nsdata_with_run_command_no_const(self):
23        """Test formatters for  NSData."""
24        self.appkit_tester_impl(self.nsdata_data_formatter_commands, False)
25
26    def nsdata_data_formatter_commands(self):
27        self.expect(
28            'frame variable immutableData mutableData data_ref mutable_data_ref mutable_string_ref concreteData concreteMutableData',
29            substrs=[
30                '(NSData *) immutableData = ', ' 5 bytes',
31                '(NSData *) mutableData = ', ' 14 bytes',
32                '(CFDataRef) data_ref = ', '@"5 bytes"',
33                '(CFMutableDataRef) mutable_data_ref = ', '@"5 bytes"',
34                '(CFMutableStringRef) mutable_string_ref = ',
35                ' @"Wish ya knew"', '(NSData *) concreteData = ',
36                ' 100000 bytes', '(NSMutableData *) concreteMutableData = ',
37                ' 100000 bytes'
38            ])
39