forked from OSchip/llvm-project
Add TestExprs2.py for recent check-ins related to the 'expression' subsystem.
llvm-svn: 131111
This commit is contained in:
parent
9088b06899
commit
339ac4369d
|
@ -0,0 +1,66 @@
|
||||||
|
"""
|
||||||
|
Test some more expression commands.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import os
|
||||||
|
import unittest2
|
||||||
|
import lldb
|
||||||
|
import lldbutil
|
||||||
|
from lldbtest import *
|
||||||
|
|
||||||
|
class ExprCommands2TestCase(TestBase):
|
||||||
|
|
||||||
|
mydir = os.path.join("expression_command", "test")
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
# Call super's setUp().
|
||||||
|
TestBase.setUp(self)
|
||||||
|
# Find the line number to break for main.c.
|
||||||
|
self.line = line_number('main.cpp',
|
||||||
|
'// Please test many expressions while stopped at this line:')
|
||||||
|
|
||||||
|
def test_more_expr_commands(self):
|
||||||
|
"""Test some more expression commands."""
|
||||||
|
self.buildDefault()
|
||||||
|
|
||||||
|
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
|
||||||
|
|
||||||
|
self.expect("breakpoint set -f main.cpp -l %d" % self.line,
|
||||||
|
BREAKPOINT_CREATED,
|
||||||
|
startstr = "Breakpoint created: 1: file ='main.cpp', line = %d" %
|
||||||
|
self.line)
|
||||||
|
|
||||||
|
self.runCmd("run", RUN_SUCCEEDED)
|
||||||
|
|
||||||
|
# Does static casting work?
|
||||||
|
self.expect("expression (int*)argv",
|
||||||
|
startstr = "(int *) $0 = 0x")
|
||||||
|
# (int *) $0 = 0x00007fff5fbff258
|
||||||
|
|
||||||
|
# Do anonymous symbols work?
|
||||||
|
self.expect("expression ((char**)environ)[0]",
|
||||||
|
startstr = "(char *) $1 = 0x")
|
||||||
|
# (char *) $1 = 0x00007fff5fbff298 "Apple_PubSub_Socket_Render=/tmp/launch-7AEsUD/Render"
|
||||||
|
|
||||||
|
# Do return values containing the contents of expression locals work?
|
||||||
|
self.expect("expression int i = 5; i",
|
||||||
|
startstr = "(int) $2 = 5")
|
||||||
|
# (int) $2 = 5
|
||||||
|
self.expect("expression $2 + 1",
|
||||||
|
startstr = "(int) $3 = 6")
|
||||||
|
# (int) $3 = 6
|
||||||
|
|
||||||
|
# Do return values containing the results of static expressions work?
|
||||||
|
self.expect("expression 20 + 3",
|
||||||
|
startstr = "(int) $4 = 23")
|
||||||
|
# (int) $4 = 5
|
||||||
|
self.expect("expression $4 + 1",
|
||||||
|
startstr = "(int) $5 = 24")
|
||||||
|
# (int) $5 = 6
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
import atexit
|
||||||
|
lldb.SBDebugger.Initialize()
|
||||||
|
atexit.register(lambda: lldb.SBDebugger.Terminate())
|
||||||
|
unittest2.main()
|
Loading…
Reference in New Issue