[Lldb-commits] [lldb] r149393 - in /lldb/trunk/test/functionalities/data-formatter: data-formatter-python-synth/StdListSynthProvider.py data-formatter-python-synth/StdMapSynthProvider.py data-formatter-python-synth/StdVectorSynthProvider.py data-formatter-python-synth/TestDataFormatterPythonSynth.py data-formatter-python-synth/main.cpp data-formatter-stl/ data-formatter-stl/list/ data-formatter-stl/map/ data-formatter-stl/vector/

Enrico Granata granata.enrico at gmail.com
Tue Jan 31 09:50:00 PST 2012


Author: enrico
Date: Tue Jan 31 11:50:00 2012
New Revision: 149393

URL: http://llvm.org/viewvc/llvm-project?rev=149393&view=rev
Log:
Splitting test case for Python synthetic children: part 1 test is only testing the synthetic children feature itself. More test cases will be commited for individual STL containers

Added:
    lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/
    lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/list/
    lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/map/
    lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/vector/
Removed:
    lldb/trunk/test/functionalities/data-formatter/data-formatter-python-synth/StdListSynthProvider.py
    lldb/trunk/test/functionalities/data-formatter/data-formatter-python-synth/StdMapSynthProvider.py
    lldb/trunk/test/functionalities/data-formatter/data-formatter-python-synth/StdVectorSynthProvider.py
Modified:
    lldb/trunk/test/functionalities/data-formatter/data-formatter-python-synth/TestDataFormatterPythonSynth.py
    lldb/trunk/test/functionalities/data-formatter/data-formatter-python-synth/main.cpp

Removed: lldb/trunk/test/functionalities/data-formatter/data-formatter-python-synth/StdListSynthProvider.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/data-formatter/data-formatter-python-synth/StdListSynthProvider.py?rev=149392&view=auto
==============================================================================
--- lldb/trunk/test/functionalities/data-formatter/data-formatter-python-synth/StdListSynthProvider.py (original)
+++ lldb/trunk/test/functionalities/data-formatter/data-formatter-python-synth/StdListSynthProvider.py (removed)
@@ -1,64 +0,0 @@
-import re
-class StdListSynthProvider:
-
-    def __init__(self, valobj, dict):
-        self.valobj = valobj
-        self.update()
-
-    def num_children(self):
-        next_val = self.next.GetValueAsUnsigned(0)
-        prev_val = self.prev.GetValueAsUnsigned(0)
-        # After a std::list has been initialized, both next and prev will be non-NULL
-        if next_val == 0 or prev_val == 0:
-        	return 0
-        if next_val == self.node_address:
-        	return 0
-        if next_val == prev_val:
-        	return 1
-        size = 2
-        current = self.next
-        while current.GetChildMemberWithName('_M_next').GetValueAsUnsigned(0) != self.node_address:
-        	size = size + 1
-        	current = current.GetChildMemberWithName('_M_next')
-        return (size - 1)
-
-    def get_child_index(self,name):
-        return int(name.lstrip('[').rstrip(']'))
-
-    def get_child_at_index(self,index):
-        if index >= self.num_children():
-            return None;
-        offset = index
-        current = self.next
-        while offset > 0:
-            current = current.GetChildMemberWithName('_M_next')
-            offset = offset - 1
-        return current.CreateChildAtOffset('['+str(index)+']',2*current.GetType().GetByteSize(),self.data_type)
-
-    def extract_type_name(self,name):
-        self.type_name = name[16:]
-        index = 2
-        count_of_template = 1
-        while index < len(self.type_name):
-            if self.type_name[index] == '<':
-                count_of_template = count_of_template + 1
-            elif self.type_name[index] == '>':
-                count_of_template = count_of_template - 1
-            elif self.type_name[index] == ',' and count_of_template == 1:
-                self.type_name = self.type_name[:index]
-                break
-            index = index + 1
-        self.type_name_nospaces = self.type_name.replace(", ", ",")
-
-    def update(self):
-        impl = self.valobj.GetChildMemberWithName('_M_impl')
-        node = impl.GetChildMemberWithName('_M_node')
-        self.extract_type_name(impl.GetType().GetName())
-        self.node_address = self.valobj.AddressOf().GetValueAsUnsigned(0)
-        self.next = node.GetChildMemberWithName('_M_next')
-        self.prev = node.GetChildMemberWithName('_M_prev')
-        self.data_type = node.GetTarget().FindFirstType(self.type_name)
-        # tries to fight against a difference in formatting type names between gcc and clang
-        if self.data_type.IsValid() == False:
-            self.data_type = node.GetTarget().FindFirstType(self.type_name_nospaces)
-        self.data_size = self.data_type.GetByteSize()

Removed: lldb/trunk/test/functionalities/data-formatter/data-formatter-python-synth/StdMapSynthProvider.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/data-formatter/data-formatter-python-synth/StdMapSynthProvider.py?rev=149392&view=auto
==============================================================================
--- lldb/trunk/test/functionalities/data-formatter/data-formatter-python-synth/StdMapSynthProvider.py (original)
+++ lldb/trunk/test/functionalities/data-formatter/data-formatter-python-synth/StdMapSynthProvider.py (removed)
@@ -1,112 +0,0 @@
-import re
-
-class StdMapSynthProvider:
-
-	def __init__(self, valobj, dict):
-		self.valobj = valobj;
-		self.update()
-
-	def update(self):
-		self.Mt = self.valobj.GetChildMemberWithName('_M_t')
-		self.Mimpl = self.Mt.GetChildMemberWithName('_M_impl')
-		self.Mheader = self.Mimpl.GetChildMemberWithName('_M_header')
-		# from libstdc++ implementation of _M_root for rbtree
-		self.Mroot = self.Mheader.GetChildMemberWithName('_M_parent')
-		# the stuff into the tree is actually a std::pair<const key, value>
-		# life would be much easier if gcc had a coherent way to print out
-		# template names in debug info
-		self.expand_clang_type_name()
-		self.expand_gcc_type_name()
-		self.data_type = self.Mt.GetTarget().FindFirstType(self.clang_type_name)
-		if self.data_type.IsValid() == False:
-			self.data_type = self.Mt.GetTarget().FindFirstType(self.gcc_type_name)
-		self.data_size = self.data_type.GetByteSize()
-		self.skip_size = self.Mheader.GetType().GetByteSize()
-
-	def expand_clang_type_name(self):
-		type_name = self.Mimpl.GetType().GetName()
-		index = type_name.find("std::pair<")
-		type_name = type_name[index+5:]
-		index = 6
-		template_count = 1
-		while index < len(type_name):
-			if type_name[index] == '<':
-				template_count = template_count + 1
-			elif type_name[index] == '>' and template_count == 1:
-				type_name = type_name[:index+1]
-				break
-			elif type_name[index] == '>':
-				template_count = template_count - 1
-			index = index + 1;
-		self.clang_type_name = type_name
-
-	def expand_gcc_type_name(self):
-		type_name = self.Mt.GetType().GetName()
-		index = type_name.find("std::pair<")
-		type_name = type_name[index+5:]
-		index = 6
-		template_count = 1
-		while index < len(type_name):
-			if type_name[index] == '<':
-				template_count = template_count + 1
-			elif type_name[index] == '>' and template_count == 1:
-				type_name = type_name[:index+1]
-				break
-			elif type_name[index] == '>':
-				template_count = template_count - 1
-			elif type_name[index] == ' ' and template_count == 1 and type_name[index-1] == ',':
-			    type_name = type_name[0:index] + type_name[index+1:]
-			    index = index - 1
-			index = index + 1;
-		self.gcc_type_name = type_name
-
-	def num_children(self):
-		root_ptr_val = self.node_ptr_value(self.Mroot)
-		if root_ptr_val == 0:
-			return 0;
-		return self.Mimpl.GetChildMemberWithName('_M_node_count').GetValueAsUnsigned(0)
-
-	def get_child_index(self,name):
-		return int(name.lstrip('[').rstrip(']'))
-
-	def get_child_at_index(self,index):
-		if index >= self.num_children():
-			return None;
-		offset = index
-		current = self.left(self.Mheader);
-		while offset > 0:
-			current = self.increment_node(current)
-			offset = offset - 1;
-		# skip all the base stuff and get at the data
-		return current.CreateChildAtOffset('['+str(index)+']',self.skip_size,self.data_type)
-
-	# utility functions
-	def node_ptr_value(self,node):
-		return node.GetValueAsUnsigned(0)
-
-	def right(self,node):
-		return node.GetChildMemberWithName("_M_right");
-
-	def left(self,node):
-		return node.GetChildMemberWithName("_M_left");
-
-	def parent(self,node):
-		return node.GetChildMemberWithName("_M_parent");
-
-	# from libstdc++ implementation of iterator for rbtree
-	def increment_node(self,node):
-		if self.node_ptr_value(self.right(node)) != 0:
-			x = self.right(node);
-			while self.node_ptr_value(self.left(x)) != 0:
-				x = self.left(x);
-			return x;
-		else:
-			x = node;
-			y = self.parent(x)
-			while(self.node_ptr_value(x) == self.node_ptr_value(self.right(y))):
-				x = y;
-				y = self.parent(y);
-			if self.node_ptr_value(self.right(x)) != self.node_ptr_value(y):
-				x = y;
-			return x;
-

Removed: lldb/trunk/test/functionalities/data-formatter/data-formatter-python-synth/StdVectorSynthProvider.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/data-formatter/data-formatter-python-synth/StdVectorSynthProvider.py?rev=149392&view=auto
==============================================================================
--- lldb/trunk/test/functionalities/data-formatter/data-formatter-python-synth/StdVectorSynthProvider.py (original)
+++ lldb/trunk/test/functionalities/data-formatter/data-formatter-python-synth/StdVectorSynthProvider.py (removed)
@@ -1,52 +0,0 @@
-class StdVectorSynthProvider:
-
-	def __init__(self, valobj, dict):
-		self.valobj = valobj;
-		self.update()
-
-	def num_children(self):
-		start_val = self.start.GetValueAsUnsigned(0)
-		finish_val = self.finish.GetValueAsUnsigned(0)
-		end_val  = self.end.GetValueAsUnsigned(0)
-		# Before a vector has been constructed, it will contain bad values
-		# so we really need to be careful about the length we return since
-		# unitialized data can cause us to return a huge number. We need
-		# to also check for any of the start, finish or end of storage values
-		# being zero (NULL). If any are, then this vector has not been 
-		# initialized yet and we should return zero
-        
-		# Make sure nothing is NULL
-		if start_val == 0 or finish_val == 0 or end_val == 0:
-			return 0
-		# Make sure start is less than finish
-		if start_val >= finish_val:
-			return 0
-		# Make sure finish is less than or equal to end of storage
-		if finish_val > end_val:
-			return 0
-
-		# We might still get things wrong, so cap things at 256 items for now
-		# TODO: read a target "settings set" variable for this to allow it to
-		# be customized
-		num_children = (finish_val-start_val)/self.data_size
-		if num_children > 256:
-			return 256
-		return num_children
-
-	def get_child_index(self,name):
-		return int(name.lstrip('[').rstrip(']'))
-
-	def get_child_at_index(self,index):
-		if index >= self.num_children():
-			return None;
-		offset = index * self.data_size
-		return self.start.CreateChildAtOffset('['+str(index)+']',offset,self.data_type)
-
-	def update(self):
-		impl = self.valobj.GetChildMemberWithName('_M_impl')
-		self.start = impl.GetChildMemberWithName('_M_start')
-		self.finish = impl.GetChildMemberWithName('_M_finish')
-		self.end = impl.GetChildMemberWithName('_M_end_of_storage')
-		self.data_type = self.start.GetType().GetPointeeType()
-		self.data_size = self.data_type.GetByteSize()
-

Modified: lldb/trunk/test/functionalities/data-formatter/data-formatter-python-synth/TestDataFormatterPythonSynth.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/data-formatter/data-formatter-python-synth/TestDataFormatterPythonSynth.py?rev=149393&r1=149392&r2=149393&view=diff
==============================================================================
--- lldb/trunk/test/functionalities/data-formatter/data-formatter-python-synth/TestDataFormatterPythonSynth.py (original)
+++ lldb/trunk/test/functionalities/data-formatter/data-formatter-python-synth/TestDataFormatterPythonSynth.py Tue Jan 31 11:50:00 2012
@@ -11,16 +11,12 @@
 
     mydir = os.path.join("functionalities", "data-formatter", "data-formatter-python-synth")
 
-    #rdar://problem/10334911
-    @unittest2.expectedFailure
     @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
     def test_with_dsym_and_run_command(self):
         """Test data formatter commands."""
         self.buildDsym()
         self.data_formatter_commands()
 
-    #rdar://problem/10334911
-    @unittest2.expectedFailure
     def test_with_dwarf_and_run_command(self):
         """Test data formatter commands."""
         self.buildDwarf()
@@ -92,12 +88,12 @@
         self.runCmd("type summary add --summary-string \"fake_a=${svar.fake_a}\" foo")
         self.expect('frame variable f00_1',
                     substrs = ['fake_a=16777216'])
-        self.runCmd("type summary add --summary-string \"fake_a=${var.fake_a}\" foo")
-        self.expect('frame variable f00_1',
-                    substrs = ['fake_a=16777216'])
-        self.runCmd("type summary add --summary-string \"fake_a=${var[1]}\" foo")
-        self.expect('frame variable f00_1',
-                    substrs = ['fake_a=16777216'])
+        #self.runCmd("type summary add --summary-string \"fake_a=${var.fake_a}\" foo")
+        #self.expect('frame variable f00_1',
+        #            substrs = ['fake_a=16777216'])
+        #self.runCmd("type summary add --summary-string \"fake_a=${var[1]}\" foo")
+        #self.expect('frame variable f00_1',
+        #            substrs = ['fake_a=16777216'])
         self.runCmd("type summary add --summary-string \"fake_a=${svar[1]}\" foo")
         self.expect('frame variable f00_1',
             substrs = ['fake_a=16777216'])
@@ -221,561 +217,6 @@
                        'C',
                        'D'])
 
-        # now start playing with STL containers
-        # having std::<class_type> here is a workaround for rdar://problem/9835692
-        
-        
-        # std::vector
-        #self.runCmd("script from StdVectorSynthProvider import *")
-        #self.runCmd("type synth add -l StdVectorSynthProvider std::int_vect int_vect")
-        #self.runCmd("type synth add -l StdVectorSynthProvider std::string_vect string_vect")
-
-        self.runCmd("n")
-
-        # empty vectors (and storage pointers SHOULD BOTH BE NULL..)
-        self.expect("frame variable numbers",
-            substrs = ['numbers = {}'])
-
-        self.runCmd("n")
-        
-        # first value added
-        self.expect("frame variable numbers",
-                    substrs = ['numbers = {',
-                               '[0] = 1',
-                               '}'])
-
-        # add some more data
-        self.runCmd("n");self.runCmd("n");self.runCmd("n");
-    
-        self.expect("frame variable numbers",
-                    substrs = ['numbers = {',
-                               '[0] = 1',
-                               '[1] = 12',
-                               '[2] = 123',
-                               '[3] = 1234',
-                               '}'])
-
-        self.expect("p numbers",
-                    substrs = ['$', '= {',
-                               '[0] = 1',
-                               '[1] = 12',
-                               '[2] = 123',
-                               '[3] = 1234',
-                               '}'])
-
-        
-        # check access to synthetic children
-        self.runCmd("type summary add --summary-string \"item 0 is ${var[0]}\" std::int_vect int_vect")
-        self.expect('frame variable numbers',
-                    substrs = ['item 0 is 1']);
-        
-        self.runCmd("type summary add --summary-string \"item 0 is ${svar[0]}\" std::int_vect int_vect")
-        #import time
-        #time.sleep(19)
-        self.expect('frame variable numbers',
-                    substrs = ['item 0 is 1']);
-        # move on with synths
-        self.runCmd("type summary delete std::int_vect")
-        self.runCmd("type summary delete int_vect")
-
-        # add some more data
-        self.runCmd("n");self.runCmd("n");self.runCmd("n");
-
-        self.expect("frame variable numbers",
-                    substrs = ['numbers = {',
-                               '[0] = 1',
-                               '[1] = 12',
-                               '[2] = 123',
-                               '[3] = 1234',
-                               '[4] = 12345',
-                               '[5] = 123456',
-                               '[6] = 1234567',
-                               '}'])
-            
-        self.expect("p numbers",
-                    substrs = ['$', ' = {',
-                               '[0] = 1',
-                               '[1] = 12',
-                               '[2] = 123',
-                               '[3] = 1234',
-                               '[4] = 12345',
-                               '[5] = 123456',
-                               '[6] = 1234567',
-                               '}'])
-
-        # check access-by-index
-        self.expect("frame variable numbers[0]",
-                    substrs = ['1']);
-        self.expect("frame variable numbers[1]",
-                    substrs = ['12']);
-        self.expect("frame variable numbers[2]",
-                    substrs = ['123']);
-        self.expect("frame variable numbers[3]",
-                    substrs = ['1234']);
-        
-        # but check that expression does not rely on us
-        # (when expression gets to call into STL code correctly, we will have to find
-        # another way to check this)
-        self.expect("expression numbers[6]", matching=False, error=True,
-            substrs = ['1234567'])
-
-        # clear out the vector and see that we do the right thing once again
-        self.runCmd("n")
-
-        self.expect("frame variable numbers",
-            substrs = ['numbers = {}'])
-
-        self.runCmd("n")
-
-        # first value added
-        self.expect("frame variable numbers",
-                    substrs = ['numbers = {',
-                               '[0] = 7',
-                               '}'])
-
-        # check if we can display strings
-        self.runCmd("n")
-        self.runCmd("n")
-        self.runCmd("n")
-        self.runCmd("n")
-
-        self.expect("frame variable strings",
-            substrs = ['goofy',
-                       'is',
-                       'smart'])
-
-        self.expect("p strings",
-                    substrs = ['goofy',
-                               'is',
-                               'smart'])
-
-        # test summaries based on synthetic children
-        self.runCmd("type summary add std::string_vect string_vect --summary-string \"vector has ${svar%#} items\" -e")
-        self.expect("frame variable strings",
-                    substrs = ['vector has 3 items',
-                               'goofy',
-                               'is',
-                               'smart'])
-
-        self.expect("p strings",
-                    substrs = ['vector has 3 items',
-                               'goofy',
-                               'is',
-                               'smart'])
-
-        self.runCmd("n");
-
-        self.expect("frame variable strings",
-                    substrs = ['vector has 4 items'])
-        
-        # check access-by-index
-        self.expect("frame variable strings[0]",
-                    substrs = ['goofy']);
-        self.expect("frame variable strings[1]",
-                    substrs = ['is']);
-        
-        # but check that expression does not rely on us
-        # (when expression gets to call into STL code correctly, we will have to find
-        # another way to check this)
-        self.expect("expression strings[0]", matching=False, error=True,
-                    substrs = ['goofy'])
-
-        self.runCmd("n")
-
-        self.expect("frame variable strings",
-            substrs = ['vector has 0 items'])
-
-        # now test std::list
-        #self.runCmd("script from StdListSynthProvider import *")
-
-        self.runCmd("n")
-
-        self.runCmd("frame variable numbers_list -T")
-        #self.runCmd("type synth add std::int_list std::string_list int_list string_list -l StdListSynthProvider")
-        self.runCmd("type summary add std::int_list std::string_list int_list string_list --summary-string \"list has ${svar%#} items\" -e")
-        self.runCmd("type format add -f hex int")
-
-        self.expect("frame variable numbers_list --raw", matching=False,
-                    substrs = ['list has 0 items',
-                               '{}'])
-
-        self.expect("frame variable numbers_list",
-                    substrs = ['list has 0 items',
-                               '{}'])
-
-        self.expect("p numbers_list",
-                    substrs = ['list has 0 items',
-                               '{}'])
-
-        self.runCmd("n")
-
-        self.expect("frame variable numbers_list",
-                    substrs = ['list has 1 items',
-                               '[0] = ',
-                               '0x12345678'])
-
-        self.runCmd("n");self.runCmd("n");self.runCmd("n");
-
-        self.expect("frame variable numbers_list",
-                    substrs = ['list has 4 items',
-                               '[0] = ',
-                               '0x12345678',
-                               '[1] =',
-                               '0x11223344',
-                               '[2] =',
-                               '0xbeeffeed',
-                               '[3] =',
-                               '0x00abba00'])
-
-        self.runCmd("n");self.runCmd("n");
-
-        self.expect("frame variable numbers_list",
-                    substrs = ['list has 6 items',
-                               '[0] = ',
-                               '0x12345678',
-                               '0x11223344',
-                               '0xbeeffeed',
-                               '0x00abba00',
-                               '[4] =',
-                               '0x0abcdef0',
-                               '[5] =',
-                               '0x0cab0cab'])
-
-        self.expect("p numbers_list",
-                    substrs = ['list has 6 items',
-                               '[0] = ',
-                               '0x12345678',
-                               '0x11223344',
-                               '0xbeeffeed',
-                               '0x00abba00',
-                               '[4] =',
-                               '0x0abcdef0',
-                               '[5] =',
-                               '0x0cab0cab'])
-
-        # check access-by-index
-        self.expect("frame variable numbers_list[0]",
-                    substrs = ['0x12345678']);
-        self.expect("frame variable numbers_list[1]",
-                    substrs = ['0x11223344']);
-        
-        # but check that expression does not rely on us
-        self.expect("expression numbers_list[0]", matching=False, error=True,
-                    substrs = ['0x12345678'])
-
-        self.runCmd("n")
-            
-        self.expect("frame variable numbers_list",
-                    substrs = ['list has 0 items',
-                               '{}'])
-
-        self.runCmd("n");self.runCmd("n");self.runCmd("n");self.runCmd("n");
-            
-        self.expect("frame variable numbers_list",
-                    substrs = ['list has 4 items',
-                               '[0] = ', '1',
-                               '[1] = ', '2',
-                               '[2] = ', '3',
-                               '[3] = ', '4'])            
-
-        self.runCmd("type format delete int")
-
-        self.runCmd("n")
-            
-        self.expect("frame variable text_list",
-            substrs = ['list has 0 items',
-                       '{}'])
-        
-        self.runCmd("n");self.runCmd("n");self.runCmd("n");self.runCmd("n");
-
-        self.expect("frame variable text_list",
-                    substrs = ['list has 4 items',
-                               '[0]', 'goofy',
-                               '[1]', 'is',
-                               '[2]', 'smart',
-                               '[3]', '!!!'])
-
-        self.expect("p text_list",
-                    substrs = ['list has 4 items',
-                               '[0] = \"goofy\"',
-                               '[1] = \"is\"',
-                               '[2] = \"smart\"',
-                               '[3] = \"!!!\"'])
-        
-        # check access-by-index
-        self.expect("frame variable text_list[0]",
-                    substrs = ['goofy']);
-        self.expect("frame variable text_list[3]",
-                    substrs = ['!!!']);
-        
-        # but check that expression does not rely on us
-        self.expect("expression text_list[0]", matching=False, error=True,
-                    substrs = ['goofy'])
-
-        # now std::map<K,V>
-        # also take a chance to test regex synth here
-
-        self.runCmd("n")
-        self.runCmd("frame variable ii -T")
-        
-        #self.runCmd("script from StdMapSynthProvider import *")
-        self.runCmd("type summary add -x \"std::map<\" --summary-string \"map has ${svar%#} items\" -e") 
-        
-        #import time
-        #time.sleep(30)
-        
-        #self.runCmd("type synth add -x \"std::map<\" -l StdMapSynthProvider")
-
-
-        self.expect('frame variable ii',
-            substrs = ['map has 0 items',
-                       '{}'])
-
-        self.runCmd("n");self.runCmd("n");
-
-        self.expect('frame variable ii',
-                    substrs = ['map has 2 items',
-                               '[0] = {',
-                               'first = 0',
-                               'second = 0',
-                               '[1] = {',
-                               'first = 1',
-                               'second = 1'])
-
-        self.runCmd("n");self.runCmd("n");
-
-        self.expect('frame variable ii',
-                    substrs = ['map has 4 items',
-                               '[2] = {',
-                               'first = 2',
-                               'second = 0',
-                               '[3] = {',
-                               'first = 3',
-                               'second = 1'])
-
-        self.runCmd("n");self.runCmd("n");
-        self.runCmd("n");self.runCmd("n");self.runCmd("n");
-
-        self.expect("frame variable ii",
-                    substrs = ['map has 9 items',
-                               '[5] = {',
-                               'first = 5',
-                               'second = 0',
-                               '[7] = {',
-                               'first = 7',
-                               'second = 1'])
-        
-        self.expect("p ii",
-                    substrs = ['map has 9 items',
-                               '[5] = {',
-                               'first = 5',
-                               'second = 0',
-                               '[7] = {',
-                               'first = 7',
-                               'second = 1'])
-
-        # check access-by-index
-        self.expect("frame variable ii[0]",
-                    substrs = ['first = 0',
-                               'second = 0']);
-        self.expect("frame variable ii[3]",
-                    substrs = ['first =',
-                               'second =']);
-        
-        # but check that expression does not rely on us
-        self.expect("expression ii[0]", matching=False, error=True,
-                    substrs = ['first = 0'])
-
-        self.runCmd("n")
-        
-        self.expect('frame variable ii',
-                    substrs = ['map has 0 items',
-                               '{}'])
-        
-        self.runCmd("n")
-        self.runCmd("frame variable si -T")
-
-        #self.runCmd("type summary add std::strint_map strint_map --summary-string \"map has ${svar%#} items\" -e")
-        #self.runCmd("type synth add std::strint_map strint_map -l StdMapSynthProvider")
-        
-        self.expect('frame variable si',
-                    substrs = ['map has 0 items',
-                               '{}'])
-
-        self.runCmd("n")
-
-        self.expect('frame variable si',
-                    substrs = ['map has 1 items',
-                               '[0] = ',
-                               'first = \"zero\"',
-                               'second = 0'])
-
-        self.runCmd("n");self.runCmd("n");self.runCmd("n");self.runCmd("n");
-
-        self.expect("frame variable si",
-                    substrs = ['map has 5 items',
-                               '[0] = ',
-                               'first = \"zero\"',
-                               'second = 0',
-                                '[1] = ',
-                                'first = \"one\"',
-                                'second = 1',
-                                '[2] = ',
-                                'first = \"two\"',
-                                'second = 2',
-                                '[3] = ',
-                                'first = \"three\"',
-                                'second = 3',
-                                '[4] = ',
-                                'first = \"four\"',
-                                'second = 4'])
-
-        self.expect("p si",
-                    substrs = ['map has 5 items',
-                               '[0] = ',
-                               'first = \"zero\"',
-                               'second = 0',
-                               '[1] = ',
-                               'first = \"one\"',
-                               'second = 1',
-                               '[2] = ',
-                               'first = \"two\"',
-                               'second = 2',
-                               '[3] = ',
-                               'first = \"three\"',
-                               'second = 3',
-                               '[4] = ',
-                               'first = \"four\"',
-                               'second = 4'])
-
-        # check access-by-index
-        self.expect("frame variable si[0]",
-                    substrs = ['first = ', 'four',
-                               'second = 4']);
-        
-        # but check that expression does not rely on us
-        self.expect("expression si[0]", matching=False, error=True,
-                    substrs = ['first = ', 'zero'])
-
-        self.runCmd("n")
-        
-        self.expect('frame variable si',
-                    substrs = ['map has 0 items',
-                               '{}'])
-
-        self.runCmd("n")
-        self.runCmd("frame variable is -T")
-        
-        #self.runCmd("type summary add std::intstr_map intstr_map --summary-string \"map has ${svar%#} items\" -e")
-        #self.runCmd("type synth add std::intstr_map intstr_map -l StdMapSynthProvider")
-
-        self.expect('frame variable is',
-                    substrs = ['map has 0 items',
-                               '{}'])
-
-        self.runCmd("n");self.runCmd("n");self.runCmd("n");self.runCmd("n");
-
-        self.expect("frame variable is",
-                    substrs = ['map has 4 items',
-                               '[0] = ',
-                               'second = \"goofy\"',
-                               'first = 0',
-                               '[1] = ',
-                               'second = \"is\"',
-                               'first = 1',
-                               '[2] = ',
-                               'second = \"smart\"',
-                               'first = 2',
-                               '[3] = ',
-                               'second = \"!!!\"',
-                               'first = 3'])
-        
-        self.expect("p is",
-                    substrs = ['map has 4 items',
-                               '[0] = ',
-                               'second = \"goofy\"',
-                               'first = 0',
-                               '[1] = ',
-                               'second = \"is\"',
-                               'first = 1',
-                               '[2] = ',
-                               'second = \"smart\"',
-                               'first = 2',
-                               '[3] = ',
-                               'second = \"!!!\"',
-                               'first = 3'])
-
-        # check access-by-index
-        self.expect("frame variable is[0]",
-                    substrs = ['first = ', '0',
-                               'second =', 'goofy']);
-        
-        # but check that expression does not rely on us
-        self.expect("expression is[0]", matching=False, error=True,
-                    substrs = ['first = ', 'goofy'])
-
-        self.runCmd("n")
-        
-        self.expect('frame variable is',
-                    substrs = ['map has 0 items',
-                               '{}'])
-
-        self.runCmd("n")
-        self.runCmd("frame variable ss -T")
-        
-        #self.runCmd("type summary add std::strstr_map strstr_map --summary-string \"map has ${svar%#} items\" -e")
-        #self.runCmd("type synth add std::strstr_map strstr_map -l StdMapSynthProvider")
-
-        self.expect('frame variable ss',
-                    substrs = ['map has 0 items',
-                               '{}'])
-
-        self.runCmd("n");self.runCmd("n");self.runCmd("n");self.runCmd("n");
-
-        self.expect("frame variable ss",
-                    substrs = ['map has 4 items',
-                               '[0] = ',
-                               'second = \"hello\"',
-                               'first = \"ciao\"',
-                               '[1] = ',
-                               'second = \"house\"',
-                               'first = \"casa\"',
-                               '[2] = ',
-                               'second = \"cat\"',
-                               'first = \"gatto\"',
-                               '[3] = ',
-                               'second = \"..is always a Mac!\"',
-                               'first = \"a Mac..\"'])
-        
-        self.expect("p ss",
-                    substrs = ['map has 4 items',
-                               '[0] = ',
-                               'second = \"hello\"',
-                               'first = \"ciao\"',
-                               '[1] = ',
-                               'second = \"house\"',
-                               'first = \"casa\"',
-                               '[2] = ',
-                               'second = \"cat\"',
-                               'first = \"gatto\"',
-                               '[3] = ',
-                               'second = \"..is always a Mac!\"',
-                               'first = \"a Mac..\"'])
-
-        # check access-by-index
-        self.expect("frame variable ss[3]",
-                    substrs = ['gatto', 'cat']);
-        
-        # but check that expression does not rely on us
-        self.expect("expression ss[3]", matching=False, error=True,
-                    substrs = ['gatto'])
-
-        self.runCmd("n")
-        
-        self.expect('frame variable ss',
-                    substrs = ['map has 0 items',
-                               '{}'])
-
 if __name__ == '__main__':
     import atexit
     lldb.SBDebugger.Initialize()

Modified: lldb/trunk/test/functionalities/data-formatter/data-formatter-python-synth/main.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/data-formatter/data-formatter-python-synth/main.cpp?rev=149393&r1=149392&r2=149393&view=diff
==============================================================================
--- lldb/trunk/test/functionalities/data-formatter/data-formatter-python-synth/main.cpp (original)
+++ lldb/trunk/test/functionalities/data-formatter/data-formatter-python-synth/main.cpp Tue Jan 31 11:50:00 2012
@@ -1,18 +1,3 @@
-#include <list>
-#include <map>
-#include <string>
-#include <vector>
-typedef std::vector<int> int_vect;
-typedef std::vector<std::string> string_vect;
-
-typedef std::list<int> int_list;
-typedef std::list<std::string> string_list;
-
-#define intint_map std::map<int, int> 
-#define strint_map std::map<std::string, int> 
-#define intstr_map std::map<int, std::string> 
-#define strstr_map std::map<std::string, std::string> 
-
 struct foo
 {
     int a;
@@ -73,92 +58,5 @@
                256*256*'C'+
                256*256*256*'D');
     
-    int_vect numbers;
-    numbers.push_back(1);
-    numbers.push_back(12);
-    numbers.push_back(123);
-    numbers.push_back(1234);
-    numbers.push_back(12345);
-    numbers.push_back(123456);
-    numbers.push_back(1234567);
-    
-    numbers.clear();
-    
-    numbers.push_back(7);
-
-    string_vect strings;
-    strings.push_back(std::string("goofy"));
-    strings.push_back(std::string("is"));
-    strings.push_back(std::string("smart"));
-    
-    strings.push_back(std::string("!!!"));
-    
-    strings.clear();
-    
-    int_list numbers_list;
-    
-    numbers_list.push_back(0x12345678);
-    numbers_list.push_back(0x11223344);
-    numbers_list.push_back(0xBEEFFEED);
-    numbers_list.push_back(0x00ABBA00);
-    numbers_list.push_back(0x0ABCDEF0);
-    numbers_list.push_back(0x0CAB0CAB);
-    
-    numbers_list.clear();
-    
-    numbers_list.push_back(1);
-    numbers_list.push_back(2);
-    numbers_list.push_back(3);
-    numbers_list.push_back(4);
-    
-    string_list text_list;
-    text_list.push_back(std::string("goofy"));
-    text_list.push_back(std::string("is"));
-    text_list.push_back(std::string("smart"));
-    
-    text_list.push_back(std::string("!!!"));
-    
-    intint_map ii;
-    
-    ii[0] = 0;
-    ii[1] = 1;
-    ii[2] = 0;
-    ii[3] = 1;
-    ii[4] = 0;
-    ii[5] = 1;
-    ii[6] = 0;
-    ii[7] = 1;
-    ii[8] = 0;
-    
-    ii.clear();
-    
-    strint_map si;
-    
-    si["zero"] = 0;
-    si["one"] = 1;
-    si["two"] = 2;
-    si["three"] = 3;
-    si["four"] = 4;
-
-    si.clear();
-    
-    intstr_map is;
-    
-    is[0] = "goofy";
-    is[1] = "is";
-    is[2] = "smart";
-    is[3] = "!!!";
-    
-    is.clear();
-    
-    strstr_map ss;
-    
-    ss["ciao"] = "hello";
-    ss["casa"] = "house";
-    ss["gatto"] = "cat";
-    ss["a Mac.."] = "..is always a Mac!";
-    
-    ss.clear();
-    
     return 0;
 }
\ No newline at end of file





More information about the lldb-commits mailing list