forked from qt-creator/qt-creator
Squish: Check for elements in project tree
Change-Id: I11a74d6d9703871b20f9c0a59bf613717e6553ef Reviewed-by: Christian Stenger <christian.stenger@nokia.com>
This commit is contained in:
committed by
Christian Stenger
parent
79ca1f3d7c
commit
1776cee64b
@@ -1,3 +1,4 @@
|
||||
import __builtin__
|
||||
import re
|
||||
|
||||
processStarted = False
|
||||
@@ -467,3 +468,40 @@ def prepareTemplate(sourceExample):
|
||||
templateDir = os.path.abspath(tempDir() + "/template")
|
||||
shutil.copytree(sourceExample, templateDir)
|
||||
return templateDir
|
||||
|
||||
def __iterateChildren__(model, parent, nestingLevel=0):
|
||||
children = []
|
||||
for currentIndex in [model.index(row, 0, parent) for row in range(model.rowCount(parent))]:
|
||||
children.append([str(currentIndex.text), nestingLevel])
|
||||
if model.hasChildren(currentIndex):
|
||||
children.extend(__iterateChildren__(model, currentIndex, nestingLevel + 1))
|
||||
return children
|
||||
|
||||
# This will write the data to a file which can then be used for comparing
|
||||
def __writeProjectTreeFile__(projectTree, filename):
|
||||
f = open(filename, "w+")
|
||||
f.write('"text"\t"nestinglevel"\n')
|
||||
for elem in projectTree:
|
||||
f.write('"%s"\t"%s"\n' % (elem[0], elem[1]))
|
||||
f.close()
|
||||
|
||||
def __getTestData__(record):
|
||||
return [testData.field(record, "text"),
|
||||
__builtin__.int(testData.field(record, "nestinglevel"))]
|
||||
|
||||
def compareProjectTree(rootObject, dataset):
|
||||
root = waitForObject(rootObject)
|
||||
tree = __iterateChildren__(root.model(), root)
|
||||
|
||||
# __writeProjectTreeFile__(tree, dataset)
|
||||
|
||||
for i, current in enumerate(map(__getTestData__, testData.dataset(dataset))):
|
||||
try:
|
||||
# Just removing everything up to the found item
|
||||
# Writing a pass would result in truly massive logs
|
||||
tree = tree[tree.index(current) + 1:]
|
||||
except ValueError:
|
||||
test.fail('Could not find "%s" with nesting level %s' % tuple(current),
|
||||
'Line %s in dataset' % str(i + 1))
|
||||
return
|
||||
test.passes("No errors found in project tree")
|
||||
|
@@ -15,6 +15,10 @@ def main():
|
||||
# Wait for parsing to complete
|
||||
waitForSignal("{type='CppTools::Internal::CppModelManager' unnamed='1'}", "sourceFilesRefreshed(QStringList)", 300000)
|
||||
|
||||
naviTreeView = "{column='0' container=':Qt Creator_Utils::NavigationTreeView' text='%s' type='QModelIndex'}"
|
||||
compareProjectTree(naviTreeView % "speedcrunch", "projecttree_speedcrunch.tsv")
|
||||
compareProjectTree(naviTreeView % "qtcreator", "projecttree_creator.tsv")
|
||||
|
||||
# Now check some basic lookups in the search box
|
||||
selectFromLocator(": Qlist::QList", "QList::QList")
|
||||
test.compare(wordUnderCursor(waitForObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget")), "QList")
|
||||
|
8262
tests/system/suite_general/tst_openqt_creator/testdata/projecttree_creator.tsv
vendored
Normal file
8262
tests/system/suite_general/tst_openqt_creator/testdata/projecttree_creator.tsv
vendored
Normal file
File diff suppressed because it is too large
Load Diff
83
tests/system/suite_general/tst_openqt_creator/testdata/projecttree_speedcrunch.tsv
vendored
Normal file
83
tests/system/suite_general/tst_openqt_creator/testdata/projecttree_speedcrunch.tsv
vendored
Normal file
@@ -0,0 +1,83 @@
|
||||
"text" "nestinglevel"
|
||||
"speedcrunch.pro" "0"
|
||||
"Headers" "0"
|
||||
"core" "1"
|
||||
"constants.h" "2"
|
||||
"evaluator.h" "2"
|
||||
"functions.h" "2"
|
||||
"gui" "1"
|
||||
"aboutbox.h" "2"
|
||||
"application.h" "2"
|
||||
"autohidelabel.h" "2"
|
||||
"bookdock.h" "2"
|
||||
"constantsdock.h" "2"
|
||||
"constantswidget.h" "2"
|
||||
"deletevardlg.h" "2"
|
||||
"editor.h" "2"
|
||||
"functionsdialog.h" "2"
|
||||
"functionsdock.h" "2"
|
||||
"functionswidget.h" "2"
|
||||
"historydock.h" "2"
|
||||
"historywidget.h" "2"
|
||||
"insertvardlg.h" "2"
|
||||
"keypad.h" "2"
|
||||
"mainwindow.h" "2"
|
||||
"resultdisplay.h" "2"
|
||||
"tipwidget.h" "2"
|
||||
"variablesdock.h" "2"
|
||||
"variableswidget.h" "2"
|
||||
"Sources" "0"
|
||||
"core" "1"
|
||||
"constants.cpp" "2"
|
||||
"evaluator.cpp" "2"
|
||||
"functions.cpp" "2"
|
||||
"settings.cpp" "2"
|
||||
"gui" "1"
|
||||
"aboutbox.cpp" "2"
|
||||
"application.cpp" "2"
|
||||
"autohidelabel.cpp" "2"
|
||||
"bookdock.cpp" "2"
|
||||
"constantsdock.cpp" "2"
|
||||
"constantswidget.cpp" "2"
|
||||
"deletevardlg.cpp" "2"
|
||||
"editor.cpp" "2"
|
||||
"functionsdialog.cpp" "2"
|
||||
"functionsdock.cpp" "2"
|
||||
"functionswidget.cpp" "2"
|
||||
"historydock.cpp" "2"
|
||||
"historywidget.cpp" "2"
|
||||
"insertvardlg.cpp" "2"
|
||||
"keypad.cpp" "2"
|
||||
"mainwindow.cpp" "2"
|
||||
"resultdisplay.cpp" "2"
|
||||
"syntaxhighlighter.cpp" "2"
|
||||
"textedit.cpp" "2"
|
||||
"tipwidget.cpp" "2"
|
||||
"variablesdock.cpp" "2"
|
||||
"variableswidget.cpp" "2"
|
||||
"main" "1"
|
||||
"main.cpp" "2"
|
||||
"math" "1"
|
||||
"floatcommon.c" "2"
|
||||
"floatconst.c" "2"
|
||||
"floatconvert.c" "2"
|
||||
"floaterf.c" "2"
|
||||
"floatexp.c" "2"
|
||||
"floatgamma.c" "2"
|
||||
"floathmath.c" "2"
|
||||
"floatio.c" "2"
|
||||
"floatipower.c" "2"
|
||||
"floatlog.c" "2"
|
||||
"floatlogic.c" "2"
|
||||
"floatlong.c" "2"
|
||||
"floatnum.c" "2"
|
||||
"floatpower.c" "2"
|
||||
"floatseries.c" "2"
|
||||
"floattrig.c" "2"
|
||||
"hmath.cpp" "2"
|
||||
"number.c" "2"
|
||||
"thirdparty/binreloc" "1"
|
||||
"binreloc.c" "2"
|
||||
"Resources" "0"
|
||||
"resources" "1"
|
||||
"speedcrunch.qrc" "2"
|
|
Reference in New Issue
Block a user