forked from qt-creator/qt-creator
Squish: Support more than one breakpoint per file
Change-Id: Ic33e039fe5aea9caed5a3e992a74938e331e2a4b Reviewed-by: Robert Löhning <robert.loehning@nokia.com>
This commit is contained in:
@@ -35,7 +35,7 @@ def takeDebuggerLog():
|
||||
return debuggerLog
|
||||
|
||||
# function to set breakpoints for the current project
|
||||
# on the given file,line pairs inside the given dict
|
||||
# on the given file,line pairs inside the given list of dicts
|
||||
# the lines are treated as regular expression
|
||||
def setBreakpointsForCurrentProject(filesAndLines):
|
||||
# internal helper for setBreakpointsForCurrentProject
|
||||
@@ -52,18 +52,19 @@ def setBreakpointsForCurrentProject(filesAndLines):
|
||||
|
||||
switchViewTo(ViewConstants.DEBUG)
|
||||
removeOldBreakpoints()
|
||||
if not filesAndLines or not isinstance(filesAndLines, dict):
|
||||
test.fatal("This function only takes a non-empty dict.")
|
||||
if not filesAndLines or not isinstance(filesAndLines, (list,tuple)):
|
||||
test.fatal("This function only takes a non-empty list/tuple holding dicts.")
|
||||
return False
|
||||
navTree = waitForObject("{type='Utils::NavigationTreeView' unnamed='1' visible='1' "
|
||||
"window=':Qt Creator_Core::Internal::MainWindow'}", 20000)
|
||||
for curFile,curLine in filesAndLines.iteritems():
|
||||
fName = __doubleClickFile__(navTree, curFile)
|
||||
editor = getEditorForFileSuffix(curFile)
|
||||
if not placeCursorToLine(editor, curLine, True):
|
||||
return False
|
||||
invokeMenuItem("Debug", "Toggle Breakpoint")
|
||||
test.log('Set breakpoint in %s' % fName, curLine)
|
||||
for current in filesAndLines:
|
||||
for curFile,curLine in current.iteritems():
|
||||
fName = __doubleClickFile__(navTree, curFile)
|
||||
editor = getEditorForFileSuffix(curFile)
|
||||
if not placeCursorToLine(editor, curLine, True):
|
||||
return False
|
||||
invokeMenuItem("Debug", "Toggle Breakpoint")
|
||||
test.log('Set breakpoint in %s' % fName, curLine)
|
||||
try:
|
||||
breakPointTreeView = waitForObject("{type='Debugger::Internal::BreakWindow' visible='1' "
|
||||
"windowTitle='Breakpoints' name='Debugger.Docks.Break'}")
|
||||
|
@@ -375,7 +375,8 @@ def checkDebuggingLibrary(targVersion, targets):
|
||||
# param keepOptionsOpen set to True if the Options dialog should stay open when
|
||||
# leaving this function
|
||||
# param additionalFunction pass a function or name of a defined function to execute
|
||||
# for each item on the list of Qt versions
|
||||
# for each correctly configured item on the list of Qt versions
|
||||
# (Qt versions having no assigned toolchain, failing qmake,... will be skipped)
|
||||
# this function must take at least 2 parameters - the first is the target name
|
||||
# and the second the version of the current selected Qt version item
|
||||
# param argsForAdditionalFunc you can specify as much parameters as you want to pass
|
||||
@@ -411,17 +412,19 @@ def iterateQtVersions(keepOptionsOpen=False, additionalFunction=None, *argsForAd
|
||||
target = matches.group("target").strip()
|
||||
version = matches.group("version").strip()
|
||||
result.append({target:version})
|
||||
if additionalFunction:
|
||||
try:
|
||||
if isinstance(additionalFunction, (str, unicode)):
|
||||
currResult = globals()[additionalFunction](target, version, *argsForAdditionalFunc)
|
||||
else:
|
||||
currResult = additionalFunction(target, version, *argsForAdditionalFunc)
|
||||
except:
|
||||
currResult = None
|
||||
test.fatal("Function to additionally execute on Options Dialog could not be found or "
|
||||
"an exception occured while executing it.")
|
||||
additionalResult.append(currResult)
|
||||
if additionalFunction:
|
||||
try:
|
||||
if isinstance(additionalFunction, (str, unicode)):
|
||||
currResult = globals()[additionalFunction](target, version, *argsForAdditionalFunc)
|
||||
else:
|
||||
currResult = additionalFunction(target, version, *argsForAdditionalFunc)
|
||||
except:
|
||||
import sys
|
||||
t,v,tb = sys.exc_info()
|
||||
currResult = None
|
||||
test.fatal("Function to additionally execute on Options Dialog could not be found or "
|
||||
"an exception occured while executing it.", "%s(%s)" % (str(t), str(v)))
|
||||
additionalResult.append(currResult)
|
||||
if not keepOptionsOpen:
|
||||
clickButton(waitForObject(":Options.Cancel_QPushButton"))
|
||||
if additionalFunction:
|
||||
|
@@ -25,10 +25,10 @@ def main():
|
||||
'running: true',
|
||||
'onTriggered: console.log("Break here")'])
|
||||
invokeMenuItem("File", "Save All")
|
||||
filesAndLines = {
|
||||
"%s.QML.qml/%s.main\\.qml" % (projectName,projectName) : 'onTriggered:.*',
|
||||
"%s.Sources.main\\.cpp" % projectName : "viewer.setOrientation\\(.+\\);"
|
||||
}
|
||||
filesAndLines = [
|
||||
{ "%s.QML.qml/%s.main\\.qml" % (projectName,projectName) : 'onTriggered.*' },
|
||||
{ "%s.Sources.main\\.cpp" % projectName : "viewer.setOrientation\\(.+\\);" }
|
||||
]
|
||||
test.log("Setting breakpoints")
|
||||
result = setBreakpointsForCurrentProject(filesAndLines)
|
||||
if result:
|
||||
|
Reference in New Issue
Block a user