Files
clang-p2996/lldb/test/lang/c/const_variables/TestConstVariables.py
Todd Fiala 319758af88 Converted TestConstVariables expected failure to @expectedFailureClang.
TestConstVariables.py was disabled on Linux and marked as
unconditional expected failure. This change removes the Linux disable
and makes the expected failure conditional on using clang. The test
runs fine on gcc-built lldb.

llvm-svn: 202514
2014-02-28 17:13:42 +00:00

71 lines
2.3 KiB
Python

"""Check that compiler-generated constant values work correctly"""
import os, time
import unittest2
import lldb
from lldbtest import *
import lldbutil
class ConstVariableTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@dsym_test
@unittest2.expectedFailure(13314878)
def test_with_dsym_and_run_command(self):
"""Test interpreted and JITted expressions on constant values."""
self.buildDsym()
self.const_variable()
@expectedFailureClang('13314878') # This test works with gcc, but fails with newer version of clang on Linux due to a clang issue. Fails for icc as well. Bug number TDB.
@dwarf_test
def test_with_dwarf_and_run_command(self):
"""Test interpreted and JITted expressions on constant values."""
self.buildDwarf()
self.const_variable()
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
def const_variable(self):
"""Test interpreted and JITted expressions on constant values."""
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
# Break inside the main.
lldbutil.run_break_set_by_symbol (self, "main", num_expected_locations=1)
self.runCmd("run", RUN_SUCCEEDED)
# The stop reason of the thread should be breakpoint.
self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT,
substrs = ['stopped',
'stop reason = breakpoint'])
# The breakpoint should have a hit count of 1.
self.expect("breakpoint list -f", BREAKPOINT_HIT_ONCE,
substrs = [' resolved, hit count = 1'])
self.runCmd("next")
# Try frame variable.
self.expect("frame variable index", VARIABLES_DISPLAYED_CORRECTLY,
substrs = ['(int32_t) index = 512'])
# Try an interpreted expression.
self.expect("expr (index + 512)", VARIABLES_DISPLAYED_CORRECTLY,
substrs = ['(int) $0 = 1024'])
# Try a JITted expression.
self.expect("expr (int)getpid(); (index - 256)", VARIABLES_DISPLAYED_CORRECTLY,
substrs = ['(int) $1 = 256'])
self.runCmd("kill")
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
atexit.register(lambda: lldb.SBDebugger.Terminate())
unittest2.main()