reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42
   43
   44
   45
   46
   47
# encoding: utf-8
"""
Test lldb data formatter subsystem.
"""

from __future__ import print_function

import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil

from ObjCDataFormatterTestCase import ObjCDataFormatterTestCase


class ObjCDataFormatterNSContainer(ObjCDataFormatterTestCase):

    @skipUnlessDarwin
    def test_nscontainers_with_run_command(self):
        """Test formatters for  NS container classes."""
        self.appkit_tester_impl(self.nscontainers_data_formatter_commands)

    def nscontainers_data_formatter_commands(self):
        self.expect(
            'frame variable newArray nsDictionary newDictionary nscfDictionary cfDictionaryRef newMutableDictionary cfarray_ref mutable_array_ref',
            substrs=[
                '(NSArray *) newArray = ', '@"50 elements"',
                '(NSDictionary *) newDictionary = ', ' 12 key/value pairs',
                '(NSDictionary *) newMutableDictionary = ',
                ' 21 key/value pairs', '(NSDictionary *) nsDictionary = ',
                ' 2 key/value pairs', '(CFDictionaryRef) cfDictionaryRef = ',
                ' 3 key/value pairs', '(CFArrayRef) cfarray_ref = ',
                '@"3 elements"', '(CFMutableArrayRef) mutable_array_ref = ',
                '@"11 elements"'
            ])

        self.expect(
            'frame variable iset1 iset2 imset',
            substrs=['4 indexes', '512 indexes', '10 indexes'])

        self.expect(
            'frame variable binheap_ref',
            substrs=['(CFBinaryHeapRef) binheap_ref = ', '@"21 items"'])

        self.expect(
            'expression -d run -- (NSArray*)[NSArray new]',
            substrs=['@"0 elements"'])