blob: 01a1a4a635e0f7a763d349a1807487b61181ad20 [file] [log] [blame]
"""
Test that variables of integer basic types are displayed correctly.
"""
import AbstractBase
import unittest2
import sys
import lldb
from lldbtest import *
# rdar://problem/9649573
# Capture the lldb and gdb-remote log files for test failures when run with no "-w" option
class DebugIntegerTypesFailures(AbstractBase.GenericTester):
mydir = "types"
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# If we're lucky, test_long_type_with_dsym fails.
# Let's turn on logging just for that.
try:
if "test_long_type_with_dsym" in self.id():
self.runCmd(
"log enable -n -f %s lldb commands event process state" %
os.environ["DEBUG_LLDB_LOG"])
self.runCmd(
"log enable -n -f %s gdb-remote packets process" %
os.environ["DEBUG_GDB_REMOTE_LOG"])
except:
pass
def tearDown(self):
# Call super's tearDown().
TestBase.tearDown(self)
# If we're lucky, test_long_type_with_dsym fails.
# Let's turn off logging just for that.
if "test_long_type_with_dsym" in self.id():
self.runCmd("log disable lldb")
self.runCmd("log disable gdb-remote")
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
def test_char_type_with_dsym(self):
"""Test that char-type variables are displayed correctly."""
d = {'CXX_SOURCES': 'char.cpp'}
self.buildDsym(dictionary=d)
self.setTearDownCleanup(dictionary=d)
self.char_type()
def test_char_type_with_dwarf(self):
"""Test that char-type variables are displayed correctly."""
d = {'CXX_SOURCES': 'char.cpp'}
self.buildDwarf(dictionary=d)
self.setTearDownCleanup(dictionary=d)
self.char_type()
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
def test_short_type_with_dsym(self):
"""Test that short-type variables are displayed correctly."""
d = {'CXX_SOURCES': 'short.cpp'}
self.buildDsym(dictionary=d)
self.setTearDownCleanup(dictionary=d)
self.short_type()
def test_short_type_with_dwarf(self):
"""Test that short-type variables are displayed correctly."""
d = {'CXX_SOURCES': 'short.cpp'}
self.buildDwarf(dictionary=d)
self.setTearDownCleanup(dictionary=d)
self.short_type()
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
def test_int_type_with_dsym(self):
"""Test that int-type variables are displayed correctly."""
d = {'CXX_SOURCES': 'int.cpp'}
self.buildDsym(dictionary=d)
self.setTearDownCleanup(dictionary=d)
self.int_type()
def test_int_type_with_dwarf(self):
"""Test that int-type variables are displayed correctly."""
d = {'CXX_SOURCES': 'int.cpp'}
self.buildDwarf(dictionary=d)
self.setTearDownCleanup(dictionary=d)
self.int_type()
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
def test_long_type_with_dsym(self):
"""Test that long-type variables are displayed correctly."""
d = {'CXX_SOURCES': 'long.cpp'}
print self.id()
self.buildDsym(dictionary=d)
self.setTearDownCleanup(dictionary=d)
self.long_type()
def test_long_type_with_dwarf(self):
"""Test that long-type variables are displayed correctly."""
d = {'CXX_SOURCES': 'long.cpp'}
self.buildDwarf(dictionary=d)
self.setTearDownCleanup(dictionary=d)
self.long_type()
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
def test_long_long_type_with_dsym(self):
"""Test that 'long long'-type variables are displayed correctly."""
d = {'CXX_SOURCES': 'long_long.cpp'}
self.buildDsym(dictionary=d)
self.setTearDownCleanup(dictionary=d)
self.long_long_type()
def test_long_long_type_with_dwarf(self):
"""Test that 'long long'-type variables are displayed correctly."""
d = {'CXX_SOURCES': 'long_long.cpp'}
self.buildDwarf(dictionary=d)
self.setTearDownCleanup(dictionary=d)
self.long_long_type()
def char_type(self):
"""Test that char-type variables are displayed correctly."""
self.generic_type_tester(set(['char']), quotedDisplay=True)
def int_type(self):
"""Test that int-type variables are displayed correctly."""
self.generic_type_tester(set(['int']))
def short_type(self):
"""Test that short-type variables are displayed correctly."""
self.generic_type_tester(set(['short']))
def long_type(self):
"""Test that long-type variables are displayed correctly."""
self.generic_type_tester(set(['long']))
def long_long_type(self):
"""Test that long long-type variables are displayed correctly."""
self.generic_type_tester(set(['long long']))
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
atexit.register(lambda: lldb.SBDebugger.Terminate())
unittest2.main()