forked from OSchip/llvm-project
				
			Added two new .cpp files to be tested via TestBasicTypes.py for correct display
of various combinations of data structures with unsigned int or unsigned long builtin types. llvm-svn: 114756
This commit is contained in:
		
							parent
							
								
									9d06adcf88
								
							
						
					
					
						commit
						c01b78e7b2
					
				| 
						 | 
					@ -33,6 +33,20 @@ class BasicTypesTestCase(TestBase):
 | 
				
			||||||
        self.setTearDownCleanup(dictionary=d)
 | 
					        self.setTearDownCleanup(dictionary=d)
 | 
				
			||||||
        self.int_type()
 | 
					        self.int_type()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_unsigned_int_type_with_dsym(self):
 | 
				
			||||||
 | 
					        """Test that 'unsigned_int'-type variables are displayed correctly."""
 | 
				
			||||||
 | 
					        d = {'CXX_SOURCES': 'unsigned_int.cpp'}
 | 
				
			||||||
 | 
					        self.buildDsym(dictionary=d)
 | 
				
			||||||
 | 
					        self.setTearDownCleanup(dictionary=d)
 | 
				
			||||||
 | 
					        self.unsigned_int_type()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_unsigned_int_type_with_dwarf(self):
 | 
				
			||||||
 | 
					        """Test that 'unsigned int'-type variables are displayed correctly."""
 | 
				
			||||||
 | 
					        d = {'CXX_SOURCES': 'unsigned_int.cpp'}
 | 
				
			||||||
 | 
					        self.buildDwarf(dictionary=d)
 | 
				
			||||||
 | 
					        self.setTearDownCleanup(dictionary=d)
 | 
				
			||||||
 | 
					        self.unsigned_int_type()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_long_type_with_dsym(self):
 | 
					    def test_long_type_with_dsym(self):
 | 
				
			||||||
        """Test that long-type variables are displayed correctly."""
 | 
					        """Test that long-type variables are displayed correctly."""
 | 
				
			||||||
        d = {'CXX_SOURCES': 'long.cpp'}
 | 
					        d = {'CXX_SOURCES': 'long.cpp'}
 | 
				
			||||||
| 
						 | 
					@ -47,14 +61,36 @@ class BasicTypesTestCase(TestBase):
 | 
				
			||||||
        self.setTearDownCleanup(dictionary=d)
 | 
					        self.setTearDownCleanup(dictionary=d)
 | 
				
			||||||
        self.long_type()
 | 
					        self.long_type()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_unsigned_long_type_with_dsym(self):
 | 
				
			||||||
 | 
					        """Test that 'unsigned long'-type variables are displayed correctly."""
 | 
				
			||||||
 | 
					        d = {'CXX_SOURCES': 'unsigned_long.cpp'}
 | 
				
			||||||
 | 
					        self.buildDsym(dictionary=d)
 | 
				
			||||||
 | 
					        self.setTearDownCleanup(dictionary=d)
 | 
				
			||||||
 | 
					        self.unsigned_long_type()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_unsigned_long_type_with_dwarf(self):
 | 
				
			||||||
 | 
					        """Test that 'unsigned long'-type variables are displayed correctly."""
 | 
				
			||||||
 | 
					        d = {'CXX_SOURCES': 'unsigned_long.cpp'}
 | 
				
			||||||
 | 
					        self.buildDwarf(dictionary=d)
 | 
				
			||||||
 | 
					        self.setTearDownCleanup(dictionary=d)
 | 
				
			||||||
 | 
					        self.unsigned_long_type()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def int_type(self):
 | 
					    def int_type(self):
 | 
				
			||||||
        """Test that int-type variables are displayed correctly."""
 | 
					        """Test that int-type variables are displayed correctly."""
 | 
				
			||||||
        self.generic_type_tester("int")
 | 
					        self.generic_type_tester("int")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def unsigned_int_type(self):
 | 
				
			||||||
 | 
					        """Test that 'unsigned int'-type variables are displayed correctly."""
 | 
				
			||||||
 | 
					        self.generic_type_tester("unsigned int")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def long_type(self):
 | 
					    def long_type(self):
 | 
				
			||||||
        """Test that long-type variables are displayed correctly."""
 | 
					        """Test that long-type variables are displayed correctly."""
 | 
				
			||||||
        self.generic_type_tester("long")
 | 
					        self.generic_type_tester("long")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def unsigned_long_type(self):
 | 
				
			||||||
 | 
					        """Test that 'unsigned long'-type variables are displayed correctly."""
 | 
				
			||||||
 | 
					        self.generic_type_tester("unsigned long")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def generic_type_tester(self, type):
 | 
					    def generic_type_tester(self, type):
 | 
				
			||||||
        """Test that variables with basic types are displayed correctly."""
 | 
					        """Test that variables with basic types are displayed correctly."""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -106,8 +142,20 @@ class BasicTypesTestCase(TestBase):
 | 
				
			||||||
        for var, val in gl:
 | 
					        for var, val in gl:
 | 
				
			||||||
            self.runCmd("frame variable %s" % var)
 | 
					            self.runCmd("frame variable %s" % var)
 | 
				
			||||||
            output = self.res.GetOutput()
 | 
					            output = self.res.GetOutput()
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            # Extract the display type and canonicalize its atoms into a set.
 | 
				
			||||||
 | 
					            # Same for the input type string.
 | 
				
			||||||
 | 
					            dt = re.match("^\((.*)\)", output).group(1)
 | 
				
			||||||
 | 
					            ds = set(dt.split())
 | 
				
			||||||
 | 
					            ts = set(type.split())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            # The display type set must be a superset of the input type set.
 | 
				
			||||||
 | 
					            if not ds.issuperset(ts):
 | 
				
			||||||
 | 
					                self.fail("The display type: %s must match the input type: %s" %
 | 
				
			||||||
 | 
					                          (dt, type))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            # The (var, val) pair must match, too.
 | 
				
			||||||
            self.expect(output, Msg(var, val), exe=False,
 | 
					            self.expect(output, Msg(var, val), exe=False,
 | 
				
			||||||
                patterns = ["\(%s.*\)" % type],
 | 
					 | 
				
			||||||
                substrs = [" %s = %s" % (var, val)])
 | 
					                substrs = [" %s = %s" % (var, val)])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,18 @@
 | 
				
			||||||
#define T long
 | 
					#define T long
 | 
				
			||||||
#define T_CSTR "long"
 | 
					#define T_CSTR "long"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __LP64__
 | 
				
			||||||
#define T_VALUE_1 110011101111
 | 
					#define T_VALUE_1 110011101111
 | 
				
			||||||
#define T_VALUE_2 220022202222
 | 
					#define T_VALUE_2 220022202222
 | 
				
			||||||
#define T_VALUE_3 330033303333
 | 
					#define T_VALUE_3 330033303333
 | 
				
			||||||
#define T_VALUE_4 440044404444
 | 
					#define T_VALUE_4 440044404444
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define T_VALUE_1 110011101
 | 
				
			||||||
 | 
					#define T_VALUE_2 220022202
 | 
				
			||||||
 | 
					#define T_VALUE_3 330033303
 | 
				
			||||||
 | 
					#define T_VALUE_4 440044404
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define T_PRINTF_FORMAT "%ld"
 | 
					#define T_PRINTF_FORMAT "%ld"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "basic_type.cpp"
 | 
					#include "basic_type.cpp"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					#define T unsigned int
 | 
				
			||||||
 | 
					#define T_CSTR "unsigned int"
 | 
				
			||||||
 | 
					#define T_VALUE_1 11001110
 | 
				
			||||||
 | 
					#define T_VALUE_2 22002220
 | 
				
			||||||
 | 
					#define T_VALUE_3 33003330
 | 
				
			||||||
 | 
					#define T_VALUE_4 44004440
 | 
				
			||||||
 | 
					#define T_PRINTF_FORMAT "%u"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "basic_type.cpp"
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					#define T unsigned long
 | 
				
			||||||
 | 
					#define T_CSTR "unsigned long"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __LP64__
 | 
				
			||||||
 | 
					#define T_VALUE_1 110011101111
 | 
				
			||||||
 | 
					#define T_VALUE_2 220022202222
 | 
				
			||||||
 | 
					#define T_VALUE_3 330033303333
 | 
				
			||||||
 | 
					#define T_VALUE_4 440044404444
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define T_VALUE_1 110011101
 | 
				
			||||||
 | 
					#define T_VALUE_2 220022202
 | 
				
			||||||
 | 
					#define T_VALUE_3 330033303
 | 
				
			||||||
 | 
					#define T_VALUE_4 440044404
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define T_PRINTF_FORMAT "%ld"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "basic_type.cpp"
 | 
				
			||||||
		Loading…
	
		Reference in New Issue