forked from qt-creator/qt-creator
Initial commit of squish tests for creator.
Change-Id: Ic499b3c36d37f9789276f60a41642ffc7ee816d1 Reviewed-on: http://codereview.qt.nokia.com/3047 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Bill King <bill.king@nokia.com>
This commit is contained in:
13
tests/system/objects.map
Normal file
13
tests/system/objects.map
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
:*Qt Creator.findEdit_Utils::FilterLineEdit {name='findEdit' type='Utils::FilterLineEdit' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||||
|
:*Qt Creator_Utils::FilterLineEdit {type='Utils::FilterLineEdit' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||||
|
:*Qt Creator_Utils::IconButton {occurrence='4' type='Utils::IconButton' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||||
|
:CMake Wizard.Finish_QPushButton {text='Finish' type='QPushButton' unnamed='1' visible='1' window=':CMake Wizard_CMakeProjectManager::Internal::CMakeOpenProjectWizard'}
|
||||||
|
:CMake Wizard.Next_QPushButton {name='__qt__passive_wizardbutton1' text='Next' type='QPushButton' visible='1' window=':CMake Wizard_CMakeProjectManager::Internal::CMakeOpenProjectWizard'}
|
||||||
|
:CMake Wizard.Run CMake_QPushButton {text='Run CMake' type='QPushButton' unnamed='1' visible='1' window=':CMake Wizard_CMakeProjectManager::Internal::CMakeOpenProjectWizard'}
|
||||||
|
:CMake Wizard_CMakeProjectManager::Internal::CMakeOpenProjectWizard {type='CMakeProjectManager::Internal::CMakeOpenProjectWizard' unnamed='1' visible='1' windowTitle='CMake Wizard'}
|
||||||
|
:Qt Creator_Core::Internal::MainWindow {type='Core::Internal::MainWindow' unnamed='1' visible='1' windowTitle?='*Qt Creator'}
|
||||||
|
:Qt Creator_CppEditor::Internal::CPPEditorWidget {type='CppEditor::Internal::CPPEditorWidget' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||||
|
:Qt Creator_Utils::IconButton {occurrence='2' type='Utils::IconButton' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||||
|
:Qt Creator_Utils::NavigationTreeView {type='Utils::NavigationTreeView' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||||
|
:projects.projects.pro_QModelIndex {column='0' container=':projects_QModelIndex' text='projects.pro' type='QModelIndex'}
|
||||||
|
:projects_QModelIndex {column='0' container=':Qt Creator_Utils::NavigationTreeView' text='projects' type='QModelIndex'}
|
2
tests/system/settings/unix/Nokia/QtCreator.ini
Normal file
2
tests/system/settings/unix/Nokia/QtCreator.ini
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
[%General]
|
||||||
|
OverrideLanguage=C
|
53
tests/system/settings/unix/Nokia/qtversion.xml
Normal file
53
tests/system/settings/unix/Nokia/qtversion.xml
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE QtCreatorQtVersions>
|
||||||
|
<!-- Written by Qt Creator 2.2.81, 2011-06-06T16:08:30. -->
|
||||||
|
<qtcreator>
|
||||||
|
<data>
|
||||||
|
<variable>QtVersion.0</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<value type="int" key="Id">4</value>
|
||||||
|
<value type="QString" key="Name">Qt for Fremantle PR1.3 Devices (Qt SDK)</value>
|
||||||
|
<value type="QString" key="QMakePath">~/QtSDK/Maemo/4.6.2/targets/fremantle-pr13/bin/qmake</value>
|
||||||
|
<value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Maemo</value>
|
||||||
|
<value type="bool" key="isAutodetected">false</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>QtVersion.1</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<value type="int" key="Id">5</value>
|
||||||
|
<value type="QString" key="Name">Desktop Qt 4.7.3 for GCC (Qt SDK)</value>
|
||||||
|
<value type="QString" key="QMakePath">~/QtSDK/Desktop/Qt/473/gcc/bin/qmake</value>
|
||||||
|
<value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Desktop</value>
|
||||||
|
<value type="bool" key="isAutodetected">false</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>QtVersion.2</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<value type="int" key="Id">6</value>
|
||||||
|
<value type="QString" key="Name">Simulator Qt for GCC (Qt SDK)</value>
|
||||||
|
<value type="QString" key="QMakePath">~/QtSDK/Simulator/Qt/gcc/bin/qmake</value>
|
||||||
|
<value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Simulator</value>
|
||||||
|
<value type="bool" key="isAutodetected">false</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>QtVersion.3</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<value type="int" key="Id">8</value>
|
||||||
|
<value type="QString" key="Name">4.7.0</value>
|
||||||
|
<value type="QString" key="QMakePath">/usr/bin/qmake</value>
|
||||||
|
<value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Desktop</value>
|
||||||
|
<value type="bool" key="isAutodetected">false</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>QtVersion.Count</variable>
|
||||||
|
<value type="int">4</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>Version</variable>
|
||||||
|
<value type="int">1</value>
|
||||||
|
</data>
|
||||||
|
</qtcreator>
|
13
tests/system/settings/unix/Nokia/toolChains.xml
Normal file
13
tests/system/settings/unix/Nokia/toolChains.xml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE QtCreatorToolChains>
|
||||||
|
<!-- Written by Qt Creator 2.2.81, 2011-06-06T16:08:33. -->
|
||||||
|
<qtcreator>
|
||||||
|
<data>
|
||||||
|
<variable>ToolChain.Count</variable>
|
||||||
|
<value type="int">0</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>Version</variable>
|
||||||
|
<value type="int">1</value>
|
||||||
|
</data>
|
||||||
|
</qtcreator>
|
2
tests/system/settings/windows/Nokia/QtCreator.ini
Normal file
2
tests/system/settings/windows/Nokia/QtCreator.ini
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
[%General]
|
||||||
|
OverrideLanguage=C
|
107
tests/system/settings/windows/Nokia/qtversion.xml
Normal file
107
tests/system/settings/windows/Nokia/qtversion.xml
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE QtCreatorQtVersions>
|
||||||
|
<!-- Written by Qt Creator 2.2.81, 2011-05-30T15:44:21. -->
|
||||||
|
<qtcreator>
|
||||||
|
<data>
|
||||||
|
<variable>QtVersion.0</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<value type="int" key="Id">2</value>
|
||||||
|
<value type="QString" key="Name">Qt 4.7.3 for Desktop - MinGW 4.4 (Qt SDK)</value>
|
||||||
|
<value type="QString" key="QMakePath">c:/qtsdk/desktop/qt/4.7.3/mingw/bin/qmake.exe</value>
|
||||||
|
<value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Desktop</value>
|
||||||
|
<value type="bool" key="isAutodetected">false</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>QtVersion.1</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<value type="int" key="Id">3</value>
|
||||||
|
<value type="QString" key="Name">Simulator Qt for Visual Studio 2008 (Qt SDK)</value>
|
||||||
|
<value type="QString" key="QMakePath">c:/qtsdk/simulator/qt/msvc2008/bin/qmake.exe</value>
|
||||||
|
<value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Simulator</value>
|
||||||
|
<value type="bool" key="isAutodetected">false</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>QtVersion.2</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<value type="int" key="Id">4</value>
|
||||||
|
<value type="QString" key="Name">Qt 4.7.3 for Desktop - MSVC2005 (Qt SDK)</value>
|
||||||
|
<value type="QString" key="QMakePath">c:/qtsdk/desktop/qt/4.7.3/msvc2005/bin/qmake.exe</value>
|
||||||
|
<value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Desktop</value>
|
||||||
|
<value type="bool" key="isAutodetected">false</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>QtVersion.3</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<value type="int" key="Id">5</value>
|
||||||
|
<value type="QString" key="Name">Simulator Qt for Visual Studio 2005 (Qt SDK)</value>
|
||||||
|
<value type="QString" key="QMakePath">c:/qtsdk/simulator/qt/msvc2005/bin/qmake.exe</value>
|
||||||
|
<value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Simulator</value>
|
||||||
|
<value type="bool" key="isAutodetected">false</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>QtVersion.4</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<value type="int" key="Id">6</value>
|
||||||
|
<value type="QString" key="Name">Qt 4.7.3 for Desktop - MSVC2008 (Qt SDK)</value>
|
||||||
|
<value type="QString" key="QMakePath">c:/qtsdk/desktop/qt/4.7.3/msvc2008/bin/qmake.exe</value>
|
||||||
|
<value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Desktop</value>
|
||||||
|
<value type="bool" key="isAutodetected">false</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>QtVersion.5</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<value type="int" key="Id">7</value>
|
||||||
|
<value type="QString" key="Name">Qt for Fremantle PR1.3 Devices (Qt SDK)</value>
|
||||||
|
<value type="QString" key="QMakePath">c:/qtsdk/maemo/4.6.2/targets/fremantle-pr13/bin/qmake.exe</value>
|
||||||
|
<value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Maemo</value>
|
||||||
|
<value type="bool" key="isAutodetected">false</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>QtVersion.6</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<value type="int" key="Id">8</value>
|
||||||
|
<value type="QString" key="Name">Simulator Qt for MinGW 4.4 (Qt SDK)</value>
|
||||||
|
<value type="QString" key="QMakePath">c:/qtsdk/simulator/qt/mingw/bin/qmake.exe</value>
|
||||||
|
<value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Simulator</value>
|
||||||
|
<value type="bool" key="isAutodetected">false</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>QtVersion.7</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<value type="int" key="Id">9</value>
|
||||||
|
<value type="QString" key="Name">Qt 4.7.3 for Symbian^1 (Qt SDK)</value>
|
||||||
|
<value type="QString" key="QMakePath">c:/qtsdk/symbian/sdks/symbian1qt473/bin/qmake.exe</value>
|
||||||
|
<value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Symbian</value>
|
||||||
|
<value type="QString" key="SBSv2Directory"></value>
|
||||||
|
<value type="QString" key="SystemRoot">C:/QtSDK/Symbian/SDKs/Symbian1Qt473/</value>
|
||||||
|
<value type="bool" key="isAutodetected">false</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>QtVersion.8</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<value type="int" key="Id">10</value>
|
||||||
|
<value type="QString" key="Name">Qt 4.7.3 for Symbian^3 (Qt SDK)</value>
|
||||||
|
<value type="QString" key="QMakePath">c:/qtsdk/symbian/sdks/symbian3qt473/bin/qmake.exe</value>
|
||||||
|
<value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Symbian</value>
|
||||||
|
<value type="QString" key="SBSv2Directory">C:/QtSDK/Symbian/tools/sbs/bin</value>
|
||||||
|
<value type="QString" key="SystemRoot">C:/QtSDK/Symbian/SDKs/Symbian3Qt473/</value>
|
||||||
|
<value type="bool" key="isAutodetected">false</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>QtVersion.Count</variable>
|
||||||
|
<value type="int">9</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>Version</variable>
|
||||||
|
<value type="int">1</value>
|
||||||
|
</data>
|
||||||
|
</qtcreator>
|
33
tests/system/settings/windows/Nokia/toolChains.xml
Normal file
33
tests/system/settings/windows/Nokia/toolChains.xml
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE QtCreatorToolChains>
|
||||||
|
<!-- Written by Qt Creator 2.2.81, 2011-05-30T15:56:04. -->
|
||||||
|
<qtcreator>
|
||||||
|
<data>
|
||||||
|
<variable>ToolChain.0</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<value type="QString" key="ProjectExplorer.GccToolChain.Debugger">C:/QtSDK/pythongdb/python_2.7based/gdb-i686-pc-mingw32.exe</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.GccToolChain.Path">C:/QtSDK/mingw/bin/g++.exe</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.GccToolChain.TargetAbi">x86-windows-msys-pe-32bit</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ToolChain.DisplayName">MinGW from SDK</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ToolChain.Id">ProjectExplorer.ToolChain.Mingw:C:/QtSDK/mingw/bin/g++.exe.x86-windows-msys-pe-32bit.C:/QtSDK/pythongdb/python_2.7based/gdb-i686-pc-mingw32.exe</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ToolChain.1</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<value type="QString" key="ProjectExplorer.GccToolChain.Debugger">C:/QtSDK/pythongdb/python_2.7based/gdb-arm-none-symbianelf.exe</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.GccToolChain.Path">C:/QtSDK/Symbian/tools/gcce4/bin/arm-none-symbianelf-g++.exe</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.GccToolChain.TargetAbi">arm-symbian-device-elf-32bit</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ToolChain.DisplayName">GCCE from SDK</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ToolChain.Id">Qt4ProjectManager.ToolChain.GCCE:C:/QtSDK/Symbian/tools/gcce4/bin/arm-none-symbianelf-g++.exe.arm-symbian-device-elf-32bit.C:/QtSDK/pythongdb/python_2.7based/gdb-arm-none-symbianelf.exe</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ToolChain.Count</variable>
|
||||||
|
<value type="int">2</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>Version</variable>
|
||||||
|
<value type="int">1</value>
|
||||||
|
</data>
|
||||||
|
</qtcreator>
|
13
tests/system/shared/mainwin.py
Normal file
13
tests/system/shared/mainwin.py
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
|
||||||
|
def invokeMenuItem(menu, item):
|
||||||
|
menuObject = waitForObjectItem("{type='QMenuBar' visible='true'}", menu)
|
||||||
|
activateItem(menuObject)
|
||||||
|
activateItem(waitForObjectItem(menuObject, item))
|
||||||
|
|
||||||
|
def openProject(projectPath):
|
||||||
|
invokeMenuItem("File", "Open File or Project...")
|
||||||
|
waitForObject("{name='QFileDialog' type='QFileDialog' visible='1' windowTitle='Open File'}")
|
||||||
|
type(findObject("{name='fileNameEdit' type='QLineEdit'}"), projectPath)
|
||||||
|
clickButton(findObject("{text='Open' type='QPushButton'}"))
|
||||||
|
waitForObject("{type='Qt4ProjectManager::Internal::ProjectLoadWizard' visible='1' windowTitle='Project Setup'}")
|
||||||
|
clickButton(findObject("{text='Finish' type='QPushButton'}"))
|
24
tests/system/shared/qtcreator.py
Normal file
24
tests/system/shared/qtcreator.py
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
import platform;
|
||||||
|
import shutil;
|
||||||
|
import os;
|
||||||
|
import glob;
|
||||||
|
|
||||||
|
SDKPath = ''
|
||||||
|
SettingsPath = ''
|
||||||
|
testSettings.logScreenshotOnFail = True
|
||||||
|
|
||||||
|
source(findFile("scripts", "utils.py"))
|
||||||
|
source(findFile("scripts", "mainwin.py"))
|
||||||
|
|
||||||
|
if platform.system() in ('Windows', 'Microsoft'):
|
||||||
|
SDKPath = "C:/QtSDK/src"
|
||||||
|
cwd = os.getcwd() # current dir is directory holding qtcreator.py
|
||||||
|
cwd+="/../../settings/windows"
|
||||||
|
cwd = os.path.abspath(cwd)
|
||||||
|
SettingsPath = " -settingspath %s" % cwd
|
||||||
|
else:
|
||||||
|
SDKPath = os.path.expanduser("~/QtSDK/src")
|
||||||
|
cwd = os.getcwd() # current dir is directory holding qtcreator.py
|
||||||
|
cwd+="/../../settings/unix"
|
||||||
|
cwd = os.path.abspath(cwd)
|
||||||
|
SettingsPath = " -settingspath %s" % cwd
|
63
tests/system/shared/utils.py
Normal file
63
tests/system/shared/utils.py
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
import tempfile, shutil, os
|
||||||
|
|
||||||
|
def tempDir():
|
||||||
|
return tempfile.mkdtemp()
|
||||||
|
|
||||||
|
def deleteDirIfExists(path):
|
||||||
|
shutil.rmtree(path, True)
|
||||||
|
|
||||||
|
def verifyChecked(objectName):
|
||||||
|
object = waitForObject(objectName, 20000)
|
||||||
|
test.compare(object.checked, True)
|
||||||
|
return object
|
||||||
|
|
||||||
|
def verifyEnabled(objectName):
|
||||||
|
object = waitForObject(objectName, 20000)
|
||||||
|
test.compare(object.enabled, True)
|
||||||
|
return object
|
||||||
|
|
||||||
|
def selectFromCombo(objectName, itemName):
|
||||||
|
object = verifyEnabled(objectName)
|
||||||
|
mouseClick(object, 198, 7, 0, Qt.LeftButton)
|
||||||
|
mouseClick(waitForObjectItem(object, itemName), 84, 5, 0, Qt.LeftButton)
|
||||||
|
|
||||||
|
def wordUnderCursor(window):
|
||||||
|
cursor = window.textCursor()
|
||||||
|
oldposition = cursor.position()
|
||||||
|
cursor.movePosition(QTextCursor.StartOfWord)
|
||||||
|
cursor.movePosition(QTextCursor.EndOfWord, QTextCursor.KeepAnchor)
|
||||||
|
returnValue = cursor.selectedText()
|
||||||
|
cursor.setPosition(oldposition)
|
||||||
|
return returnValue
|
||||||
|
|
||||||
|
def lineUnderCursor(window):
|
||||||
|
cursor = window.textCursor()
|
||||||
|
oldposition = cursor.position()
|
||||||
|
cursor.movePosition(QTextCursor.StartOfLine)
|
||||||
|
cursor.movePosition(QTextCursor.EndOfLine, QTextCursor.KeepAnchor)
|
||||||
|
returnValue = cursor.selectedText()
|
||||||
|
cursor.setPosition(oldposition)
|
||||||
|
return returnValue
|
||||||
|
|
||||||
|
def which(program):
|
||||||
|
def is_exe(fpath):
|
||||||
|
return os.path.exists(fpath) and os.access(fpath, os.X_OK)
|
||||||
|
|
||||||
|
fpath, fname = os.path.split(program)
|
||||||
|
if fpath:
|
||||||
|
if is_exe(program):
|
||||||
|
return program
|
||||||
|
if platform.system() in ('Windows', 'Microsoft'):
|
||||||
|
if is_exe(program + ".exe"):
|
||||||
|
return program + ".exe"
|
||||||
|
|
||||||
|
else:
|
||||||
|
for path in os.environ["PATH"].split(os.pathsep):
|
||||||
|
exe_file = os.path.join(path, program)
|
||||||
|
if is_exe(exe_file):
|
||||||
|
return exe_file
|
||||||
|
if platform.system() in ('Windows', 'Microsoft'):
|
||||||
|
if is_exe(exe_file + ".exe"):
|
||||||
|
return exe_file + ".exe"
|
||||||
|
|
||||||
|
return None
|
1
tests/system/suite_general/envvars
Normal file
1
tests/system/suite_general/envvars
Normal file
@@ -0,0 +1 @@
|
|||||||
|
QT_PLATFORM_PLUGIN=nonesuch
|
1
tests/system/suite_general/shared/testdata/creator_tree.tsv
vendored
Normal file
1
tests/system/suite_general/shared/testdata/creator_tree.tsv
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
"node" "value"
|
|
3
tests/system/suite_general/shared/testdata/qt_tree.tsv
vendored
Normal file
3
tests/system/suite_general/shared/testdata/qt_tree.tsv
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
"node" "value"
|
||||||
|
":projects.projects.pro_QModelIndex" "projects.pro"
|
||||||
|
":projects_QModelIndex" "projects"
|
|
1
tests/system/suite_general/shared/testdata/speedcrunch_tree.tsv
vendored
Normal file
1
tests/system/suite_general/shared/testdata/speedcrunch_tree.tsv
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
"node" "value"
|
|
12
tests/system/suite_general/suite.conf
Normal file
12
tests/system/suite_general/suite.conf
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
AUT=qtcreator
|
||||||
|
CLASS=
|
||||||
|
CLASSPATH=
|
||||||
|
CWD=
|
||||||
|
ENVVARS=envvars
|
||||||
|
HOOK_SUB_PROCESSES=true
|
||||||
|
IMPLICITAUTSTART=0
|
||||||
|
LANGUAGE=Python
|
||||||
|
OBJECTMAP=../objects.map
|
||||||
|
TEST_CASES=tst_openqt_creator tst_build_speedcrunch tst_cmake_speedcrunch tst_basic_cpp_support
|
||||||
|
VERSION=2
|
||||||
|
WRAPPERS=Qt
|
97
tests/system/suite_general/tst_basic_cpp_support/test.py
Normal file
97
tests/system/suite_general/tst_basic_cpp_support/test.py
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
source(findFile("scripts", "qtcreator.py"))
|
||||||
|
|
||||||
|
refreshFinishedCount = 0
|
||||||
|
|
||||||
|
def handleRefreshFinished(object, fileList):
|
||||||
|
global refreshFinishedCount
|
||||||
|
refreshFinishedCount += 1
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
startApplication("qtcreator" + SettingsPath)
|
||||||
|
|
||||||
|
installLazySignalHandler("{type='CppTools::Internal::CppModelManager'}", "sourceFilesRefreshed(QStringList)", "handleRefreshFinished")
|
||||||
|
test.verify(os.path.exists(SDKPath + "/creator/tests/manual/cplusplus-tools/cplusplus-tools.pro"))
|
||||||
|
openProject(SDKPath + "/creator/tests/manual/cplusplus-tools/cplusplus-tools.pro")
|
||||||
|
|
||||||
|
waitFor("refreshFinishedCount == 1", 20000)
|
||||||
|
test.compare(refreshFinishedCount, 1)
|
||||||
|
|
||||||
|
mouseClick(waitForObject(":*Qt Creator_Utils::FilterLineEdit", 20000), 110, 11, 0, Qt.LeftButton)
|
||||||
|
type(waitForObject(":*Qt Creator_Utils::FilterLineEdit"), "dummy.cpp")
|
||||||
|
# pause to wait for results to populate
|
||||||
|
snooze(1)
|
||||||
|
type(waitForObject(":*Qt Creator_Utils::FilterLineEdit"), "<Return>")
|
||||||
|
|
||||||
|
# editorManager = waitForObject("{type='Core::EditorManager'}", 2000)
|
||||||
|
# t2 = editorManager.currentEditor()
|
||||||
|
# t3 = t2.file()
|
||||||
|
# t4 = t3.fileName
|
||||||
|
# test.compare(editorManager.currentEditor().file().fileName, "base.cpp")
|
||||||
|
cppwindow = findObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget")
|
||||||
|
|
||||||
|
# - Move the cursor to the usage of a variable.
|
||||||
|
# - Press F2 or select from the menu: Tools / C++ / Follow Symbol under Cursor
|
||||||
|
# Creator will show you the declaration of the variable.
|
||||||
|
|
||||||
|
type(cppwindow, "<Ctrl+F>")
|
||||||
|
type(waitForObject(":*Qt Creator.findEdit_Utils::FilterLineEdit"), " xi")
|
||||||
|
type(waitForObject(":*Qt Creator.findEdit_Utils::FilterLineEdit"), "<Return>")
|
||||||
|
type(cppwindow, "<F2>")
|
||||||
|
test.compare(lineUnderCursor(findObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget")), "extern int xi;")
|
||||||
|
|
||||||
|
# - Move the cursor to a function call.
|
||||||
|
# - Press F2 or select from the menu: Tools / C++ / Follow Symbol under Cursor
|
||||||
|
# Creator will show you the definition of the function.
|
||||||
|
type(cppwindow, "<Ctrl+F>")
|
||||||
|
clickButton(waitForObject(":*Qt Creator_Utils::IconButton"))
|
||||||
|
type(waitForObject(":*Qt Creator.findEdit_Utils::FilterLineEdit"), "freefunc2")
|
||||||
|
type(waitForObject(":*Qt Creator.findEdit_Utils::FilterLineEdit"), "<Return>")
|
||||||
|
type(cppwindow, "<F2>")
|
||||||
|
test.compare(lineUnderCursor(findObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget")), "int freefunc2(double)")
|
||||||
|
|
||||||
|
# - Move the cursor to a function declaration
|
||||||
|
# - Press Shift+F2 or select from menu: Tools / C++ / Switch Between Method Declaration/Definition
|
||||||
|
# Creator should show the definition of this function
|
||||||
|
# - Press Shift+F2 or select from menu: Tools / C++ / Switch Between Method Declaration/Definition again
|
||||||
|
# Creator should show the declaration of the function again.
|
||||||
|
mouseClick(waitForObject(":*Qt Creator_Utils::FilterLineEdit", 20000), 110, 11, 0, Qt.LeftButton)
|
||||||
|
clickButton(waitForObject(":Qt Creator_Utils::IconButton"))
|
||||||
|
type(waitForObject(":*Qt Creator_Utils::FilterLineEdit"), "dummy.cpp")
|
||||||
|
# pause to wait for results to populate
|
||||||
|
snooze(1)
|
||||||
|
type(waitForObject(":*Qt Creator_Utils::FilterLineEdit"), "<Return>")
|
||||||
|
|
||||||
|
# Reset cursor to the start of the document
|
||||||
|
cursor = findObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget").textCursor()
|
||||||
|
cursor.movePosition(QTextCursor.Start)
|
||||||
|
cppwindow.setTextCursor(cursor)
|
||||||
|
|
||||||
|
type(cppwindow, "<Ctrl+F>")
|
||||||
|
clickButton(waitForObject(":*Qt Creator_Utils::IconButton"))
|
||||||
|
type(waitForObject(":*Qt Creator.findEdit_Utils::FilterLineEdit"), "Dummy::Dummy")
|
||||||
|
# Take us to the second instance
|
||||||
|
type(waitForObject(":*Qt Creator.findEdit_Utils::FilterLineEdit"), "<Return>")
|
||||||
|
type(cppwindow, "<Shift+F2>")
|
||||||
|
test.compare(lineUnderCursor(findObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget")), " Dummy(int a);")
|
||||||
|
type(cppwindow, "<Shift+F2>")
|
||||||
|
test.compare(lineUnderCursor(findObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget")), "Dummy::Dummy(int)")
|
||||||
|
|
||||||
|
invokeMenuItem("File", "Exit")
|
||||||
|
|
||||||
|
|
||||||
|
def init():
|
||||||
|
cleanup()
|
||||||
|
|
||||||
|
def cleanup():
|
||||||
|
# Make sure the .user files are gone
|
||||||
|
|
||||||
|
if os.access(SDKPath + "/creator/tests/manual/cplusplus-tools/cplusplus-tools.pro.user", os.F_OK):
|
||||||
|
os.remove(SDKPath + "/creator/tests/manual/cplusplus-tools/cplusplus-tools.pro.user")
|
||||||
|
|
||||||
|
BuildPath = glob.glob(SDKPath + "/qtcreator-build-*")
|
||||||
|
BuildPath += glob.glob(SDKPath + "/projects-build-*")
|
||||||
|
|
||||||
|
for dir in BuildPath:
|
||||||
|
if os.access(dir, os.F_OK):
|
||||||
|
shutil.rmtree(dir)
|
52
tests/system/suite_general/tst_build_speedcrunch/test.py
Normal file
52
tests/system/suite_general/tst_build_speedcrunch/test.py
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
source(findFile("scripts", "qtcreator.py"))
|
||||||
|
|
||||||
|
SpeedCrunchPath = ""
|
||||||
|
buildFinished = False
|
||||||
|
buildSucceeded = False
|
||||||
|
|
||||||
|
def handleBuildFinished(object, success):
|
||||||
|
global buildFinished, buildSucceeded
|
||||||
|
buildFinished = True
|
||||||
|
buildSucceeded = success
|
||||||
|
|
||||||
|
def main():
|
||||||
|
startApplication("qtcreator" + SettingsPath)
|
||||||
|
|
||||||
|
test.verify(os.path.exists(SpeedCrunchPath))
|
||||||
|
openProject(SpeedCrunchPath)
|
||||||
|
|
||||||
|
# Test that some of the expected items are in the navigation tree
|
||||||
|
for row, record in enumerate(testData.dataset("speedcrunch_tree.tsv")):
|
||||||
|
node = testData.field(record, "node")
|
||||||
|
value = testData.field(record, "value")
|
||||||
|
test.compare(waitForObject(node).text, value)
|
||||||
|
|
||||||
|
# Invoke a rebuild of the application
|
||||||
|
invokeMenuItem("Build", "Rebuild All")
|
||||||
|
|
||||||
|
# Wait for, and test if the build succeeded
|
||||||
|
installLazySignalHandler("{type='ProjectExplorer::BuildManager'}", "buildQueueFinished(bool)", "handleBuildFinished")
|
||||||
|
waitFor("buildFinished == True", 30000)
|
||||||
|
test.verify(buildSucceeded == 1)
|
||||||
|
|
||||||
|
# Now that this has finished, test adding a new build configuration
|
||||||
|
|
||||||
|
# Add a new run configuration
|
||||||
|
|
||||||
|
invokeMenuItem("File", "Exit")
|
||||||
|
|
||||||
|
def init():
|
||||||
|
global SpeedCrunchPath
|
||||||
|
SpeedCrunchPath = SDKPath + "/creator-test-data/speedcrunch/src/speedcrunch.pro"
|
||||||
|
cleanup()
|
||||||
|
|
||||||
|
def cleanup():
|
||||||
|
# Make sure the .user files are gone
|
||||||
|
if os.access(SpeedCrunchPath + ".user", os.F_OK):
|
||||||
|
os.remove(SpeedCrunchPath + ".user")
|
||||||
|
|
||||||
|
BuildPath = glob.glob(SDKPath + "/creator-test-data/speedcrunch/speedcrunch-build-*")
|
||||||
|
|
||||||
|
for dir in BuildPath:
|
||||||
|
if os.access(dir, os.F_OK):
|
||||||
|
shutil.rmtree(dir)
|
61
tests/system/suite_general/tst_cmake_speedcrunch/test.py
Normal file
61
tests/system/suite_general/tst_cmake_speedcrunch/test.py
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
source(findFile("scripts", "qtcreator.py"))
|
||||||
|
|
||||||
|
SpeedCrunchPath = ""
|
||||||
|
buildFinished = False
|
||||||
|
buildSucceeded = False
|
||||||
|
|
||||||
|
def handleBuildFinished(object, success):
|
||||||
|
global buildFinished, buildSucceeded
|
||||||
|
buildFinished = True
|
||||||
|
buildSucceeded = success
|
||||||
|
|
||||||
|
def main():
|
||||||
|
if(which("cmake") == None):
|
||||||
|
test.fatal("cmake not found")
|
||||||
|
return
|
||||||
|
|
||||||
|
startApplication("qtcreator" + SettingsPath)
|
||||||
|
|
||||||
|
invokeMenuItem("File", "Open File or Project...")
|
||||||
|
|
||||||
|
test.verify(os.path.exists(SpeedCrunchPath))
|
||||||
|
waitForObject("{name='QFileDialog' type='QFileDialog' visible='1' windowTitle='Open File'}", 20000)
|
||||||
|
type(findObject("{name='fileNameEdit' type='QLineEdit'}"), SpeedCrunchPath)
|
||||||
|
clickButton(findObject("{text='Open' type='QPushButton'}"))
|
||||||
|
|
||||||
|
clickButton(waitForObject(":CMake Wizard.Next_QPushButton", 20000))
|
||||||
|
clickButton(waitForObject(":CMake Wizard.Run CMake_QPushButton", 20000))
|
||||||
|
clickButton(waitForObject(":CMake Wizard.Finish_QPushButton", 60000))
|
||||||
|
|
||||||
|
waitFor("object.exists(':speedcrunch_QModelIndex')", 20000)
|
||||||
|
|
||||||
|
# Test that some of the expected items are in the navigation tree
|
||||||
|
for row, record in enumerate(testData.dataset("speedcrunch_tree.tsv")):
|
||||||
|
node = testData.field(record, "node")
|
||||||
|
value = testData.field(record, "value")
|
||||||
|
test.compare(findObject(node).text, value)
|
||||||
|
|
||||||
|
# Invoke a rebuild of the application
|
||||||
|
installLazySignalHandler("{type='ProjectExplorer::BuildManager'}", "buildQueueFinished(bool)", "handleBuildFinished")
|
||||||
|
invokeMenuItem("Build", "Rebuild All")
|
||||||
|
|
||||||
|
# Wait for, and test if the build succeeded
|
||||||
|
waitFor("buildFinished == True", 300000)
|
||||||
|
test.verify(buildSucceeded == 1)
|
||||||
|
|
||||||
|
invokeMenuItem("File", "Exit")
|
||||||
|
|
||||||
|
def init():
|
||||||
|
global SpeedCrunchPath
|
||||||
|
SpeedCrunchPath = SDKPath + "/creator-test-data/speedcrunch/src/CMakeLists.txt"
|
||||||
|
cleanup()
|
||||||
|
|
||||||
|
def cleanup():
|
||||||
|
# Make sure the .user files are gone
|
||||||
|
if os.access(SpeedCrunchPath + ".user", os.F_OK):
|
||||||
|
os.remove(SpeedCrunchPath + ".user")
|
||||||
|
|
||||||
|
BuildPath = SDKPath + "/creator-test-data/speedcrunch/src/qtcreator-build"
|
||||||
|
|
||||||
|
if os.access(BuildPath, os.F_OK):
|
||||||
|
shutil.rmtree(BuildPath)
|
63
tests/system/suite_general/tst_openqt_creator/test.py
Normal file
63
tests/system/suite_general/tst_openqt_creator/test.py
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
source(findFile("scripts", "qtcreator.py"))
|
||||||
|
|
||||||
|
refreshFinishedCount = 0
|
||||||
|
|
||||||
|
def handleRefreshFinished(object, fileList):
|
||||||
|
global refreshFinishedCount
|
||||||
|
refreshFinishedCount += 1
|
||||||
|
|
||||||
|
def main():
|
||||||
|
startApplication("qtcreator" + SettingsPath)
|
||||||
|
|
||||||
|
installLazySignalHandler("{type='CppTools::Internal::CppModelManager'}", "sourceFilesRefreshed(QStringList)", "handleRefreshFinished")
|
||||||
|
|
||||||
|
test.verify(os.path.exists(SDKPath + "/qt/projects.pro"))
|
||||||
|
test.verify(os.path.exists(SDKPath + "/creator/qtcreator.pro"))
|
||||||
|
|
||||||
|
openProject(SDKPath + "/qt/projects.pro")
|
||||||
|
openProject(SDKPath + "/creator/qtcreator.pro")
|
||||||
|
|
||||||
|
# Test that some of the expected items are in the navigation tree
|
||||||
|
for row, record in enumerate(testData.dataset("qt_tree.tsv")):
|
||||||
|
node = testData.field(record, "node")
|
||||||
|
value = testData.field(record, "value")
|
||||||
|
test.compare(waitForObject(node).text, value)
|
||||||
|
|
||||||
|
for row, record in enumerate(testData.dataset("creator_tree.tsv")):
|
||||||
|
node = testData.field(record, "node")
|
||||||
|
value = testData.field(record, "value")
|
||||||
|
test.compare(waitForObject(node).text, value)
|
||||||
|
|
||||||
|
# Wait for parsing to complete
|
||||||
|
waitFor("refreshFinishedCount == 2", 300000)
|
||||||
|
test.compare(refreshFinishedCount, 2)
|
||||||
|
|
||||||
|
# Now check some basic lookups in the search box
|
||||||
|
|
||||||
|
mouseClick(waitForObject(":*Qt Creator_Utils::FilterLineEdit", 20000), 101, 7, 0, Qt.LeftButton)
|
||||||
|
type(waitForObject(":*Qt Creator_Utils::FilterLineEdit", 20000), ": Qlist::QList")
|
||||||
|
snooze(1)
|
||||||
|
type(waitForObject(":*Qt Creator_Utils::FilterLineEdit", 20000), "<Return>")
|
||||||
|
|
||||||
|
test.compare(wordUnderCursor(findObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget")), "QList")
|
||||||
|
|
||||||
|
invokeMenuItem("File", "Exit")
|
||||||
|
|
||||||
|
|
||||||
|
def init():
|
||||||
|
cleanup()
|
||||||
|
|
||||||
|
def cleanup():
|
||||||
|
# Make sure the .user files are gone
|
||||||
|
|
||||||
|
if os.access(SDKPath + "/qt/projects.pro.user", os.F_OK):
|
||||||
|
os.remove(SDKPath + "/qt/projects.pro.user")
|
||||||
|
if os.access(SDKPath + "/creator/qtcreator.pro.user", os.F_OK):
|
||||||
|
os.remove(SDKPath + "/creator/qtcreator.pro.user")
|
||||||
|
|
||||||
|
BuildPath = glob.glob(SDKPath + "/qtcreator-build-*")
|
||||||
|
BuildPath += glob.glob(SDKPath + "/src/projects-build-*")
|
||||||
|
|
||||||
|
for dir in BuildPath:
|
||||||
|
if os.access(dir, os.F_OK):
|
||||||
|
shutil.rmtree(dir)
|
Reference in New Issue
Block a user