| 
									
										
										
										
											2016-01-15 14:55:33 +01:00
										 |  |  | ############################################################################ | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Copyright (C) 2016 The Qt Company Ltd. | 
					
						
							|  |  |  | # Contact: https://www.qt.io/licensing/ | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # This file is part of Qt Creator. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Commercial License Usage | 
					
						
							|  |  |  | # Licensees holding valid commercial Qt licenses may use this file in | 
					
						
							|  |  |  | # accordance with the commercial license agreement provided with the | 
					
						
							|  |  |  | # Software or, alternatively, in accordance with the terms contained in | 
					
						
							|  |  |  | # a written agreement between you and The Qt Company. For licensing terms | 
					
						
							|  |  |  | # and conditions see https://www.qt.io/terms-conditions. For further | 
					
						
							|  |  |  | # information use the contact form at https://www.qt.io/contact-us. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # GNU General Public License Usage | 
					
						
							|  |  |  | # Alternatively, this file may be used under the terms of the GNU | 
					
						
							|  |  |  | # General Public License version 3 as published by the Free Software | 
					
						
							|  |  |  | # Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT | 
					
						
							|  |  |  | # included in the packaging of this file. Please review the following | 
					
						
							|  |  |  | # information to ensure the GNU General Public License requirements will | 
					
						
							|  |  |  | # be met: https://www.gnu.org/licenses/gpl-3.0.html. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | ############################################################################ | 
					
						
							| 
									
										
										
										
											2013-05-15 13:17:33 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-08-25 10:05:28 +02:00
										 |  |  | import platform; | 
					
						
							|  |  |  | import shutil; | 
					
						
							|  |  |  | import os; | 
					
						
							|  |  |  | import glob; | 
					
						
							| 
									
										
										
										
											2011-08-31 16:05:15 +02:00
										 |  |  | import atexit; | 
					
						
							| 
									
										
										
										
											2011-09-01 14:09:25 +02:00
										 |  |  | import codecs; | 
					
						
							| 
									
										
										
										
											2011-09-21 17:29:18 +02:00
										 |  |  | import subprocess; | 
					
						
							| 
									
										
										
										
											2012-09-26 09:45:21 +02:00
										 |  |  | import sys | 
					
						
							| 
									
										
										
										
											2011-09-21 17:29:18 +02:00
										 |  |  | import errno; | 
					
						
							|  |  |  | from datetime import datetime,timedelta; | 
					
						
							| 
									
										
										
										
											2011-08-25 10:05:28 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-24 17:56:01 +02:00
										 |  |  | isQt54Build = os.getenv("SYSTEST_ISQT54BUILD") != "0" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-23 20:40:57 +02:00
										 |  |  | srcPath = '' | 
					
						
							| 
									
										
										
										
											2011-08-25 10:05:28 +02:00
										 |  |  | SettingsPath = '' | 
					
						
							| 
									
										
										
										
											2011-08-31 16:05:15 +02:00
										 |  |  | tmpSettingsDir = '' | 
					
						
							| 
									
										
										
										
											2011-08-25 10:05:28 +02:00
										 |  |  | testSettings.logScreenshotOnFail = True | 
					
						
							| 
									
										
										
										
											2012-01-10 12:24:06 +01:00
										 |  |  | testSettings.logScreenshotOnError = True | 
					
						
							| 
									
										
										
										
											2012-12-12 13:12:28 +01:00
										 |  |  | __origStartApplication__ = None | 
					
						
							| 
									
										
										
										
											2011-08-25 10:05:28 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-29 16:00:18 +01:00
										 |  |  | source("../../shared/classes.py") | 
					
						
							| 
									
										
										
										
											2011-08-26 12:39:04 +02:00
										 |  |  | source("../../shared/utils.py") | 
					
						
							| 
									
										
										
										
											2012-10-19 17:36:14 +02:00
										 |  |  | source("../../shared/fs_utils.py") | 
					
						
							| 
									
										
										
										
											2011-08-31 16:05:15 +02:00
										 |  |  | source("../../shared/build_utils.py") | 
					
						
							| 
									
										
										
										
											2011-10-07 15:05:55 +02:00
										 |  |  | source("../../shared/project.py") | 
					
						
							| 
									
										
										
										
											2011-09-21 17:29:18 +02:00
										 |  |  | source("../../shared/editor_utils.py") | 
					
						
							| 
									
										
										
										
											2011-11-09 16:40:35 +01:00
										 |  |  | source("../../shared/project_explorer.py") | 
					
						
							|  |  |  | source("../../shared/hook_utils.py") | 
					
						
							| 
									
										
										
										
											2012-01-31 15:49:59 +01:00
										 |  |  | source("../../shared/debugger.py") | 
					
						
							| 
									
										
										
										
											2014-09-25 13:52:20 +02:00
										 |  |  | source("../../shared/clang.py") | 
					
						
							|  |  |  | source("../../shared/workarounds.py") # include this at last | 
					
						
							| 
									
										
										
										
											2011-08-25 10:05:28 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-12 13:12:28 +01:00
										 |  |  | # ATTENTION: if a test case calls startApplication("qtcreator...") for several times this | 
					
						
							|  |  |  | # function must be called BEFORE any call except the first (which is done always automatically) | 
					
						
							|  |  |  | def overrideStartApplication(): | 
					
						
							|  |  |  |     global startApplication, __origStartApplication__ | 
					
						
							| 
									
										
										
										
											2014-01-08 15:25:14 +01:00
										 |  |  |     if (platform.system() == "Linux"): | 
					
						
							| 
									
										
										
										
											2012-12-12 13:12:28 +01:00
										 |  |  |         return | 
					
						
							|  |  |  |     if (__origStartApplication__ == None): | 
					
						
							|  |  |  |         __origStartApplication__ = startApplication | 
					
						
							| 
									
										
										
										
											2012-02-24 15:21:42 +01:00
										 |  |  |     def startApplication(*args): | 
					
						
							|  |  |  |         args = list(args) | 
					
						
							|  |  |  |         if str(args[0]).startswith('qtcreator'): | 
					
						
							| 
									
										
										
										
											2014-01-08 15:25:14 +01:00
										 |  |  |             if platform.system() == 'Darwin': | 
					
						
							|  |  |  |                 args[0] = args[0].replace('qtcreator', '"Qt Creator"', 1) | 
					
						
							|  |  |  |                 test.log("Using workaround for MacOS (different AUT name)") | 
					
						
							| 
									
										
										
										
											2014-10-30 15:57:44 +01:00
										 |  |  |             else: | 
					
						
							| 
									
										
										
										
											2014-01-08 15:25:14 +01:00
										 |  |  |                 args[0] = args[0] + ' -platform windows:dialogs=none' | 
					
						
							|  |  |  |                 test.log("Using workaround for Windows (failing to hook into native FileDialog)") | 
					
						
							| 
									
										
										
										
											2012-12-12 13:12:28 +01:00
										 |  |  |         return __origStartApplication__(*args) | 
					
						
							| 
									
										
										
										
											2012-02-24 15:21:42 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-02-22 14:31:39 +01:00
										 |  |  | def startedWithoutPluginError(): | 
					
						
							|  |  |  |     try: | 
					
						
							|  |  |  |         loaderErrorWidgetName = ("{name='ExtensionSystem__Internal__PluginErrorOverview' " | 
					
						
							|  |  |  |                                  "type='ExtensionSystem::PluginErrorOverview' visible='1' " | 
					
						
							|  |  |  |                                  "windowTitle='Qt Creator - Plugin loader messages'}") | 
					
						
							|  |  |  |         loaderError = waitForObject(loaderErrorWidgetName, 1000) | 
					
						
							|  |  |  |         test.fatal("Could not perform clean start of Qt Creator - Plugin error occurred.", | 
					
						
							|  |  |  |                    waitForObject("{name='pluginError' type='QTextEdit' visible='1' window=%s}" | 
					
						
							|  |  |  |                                  % loaderErrorWidgetName, 1000).plainText) | 
					
						
							|  |  |  |         clickButton("{text~='(Next.*|Continue)' type='QPushButton' visible='1'}") | 
					
						
							|  |  |  |         invokeMenuItem("File", "Exit") | 
					
						
							|  |  |  |         return False | 
					
						
							|  |  |  |     except: | 
					
						
							|  |  |  |         return True | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-21 17:29:18 +02:00
										 |  |  | def waitForCleanShutdown(timeOut=10): | 
					
						
							| 
									
										
										
										
											2011-09-06 09:12:15 +02:00
										 |  |  |     appCtxt = currentApplicationContext() | 
					
						
							| 
									
										
										
										
											2011-10-07 15:43:45 +02:00
										 |  |  |     shutdownDone = (str(appCtxt)=="") | 
					
						
							| 
									
										
										
										
											2011-09-21 17:29:18 +02:00
										 |  |  |     if platform.system() in ('Windows','Microsoft'): | 
					
						
							| 
									
										
										
										
											2013-03-05 10:50:36 +01:00
										 |  |  |         # cleaning helper for running on the build machines | 
					
						
							| 
									
										
										
										
											2014-01-24 10:57:56 +01:00
										 |  |  |         checkForStillRunningQmlExecutable(['qmlviewer.exe', 'qmlscene.exe']) | 
					
						
							| 
									
										
										
										
											2011-09-21 17:29:18 +02:00
										 |  |  |         endtime = datetime.utcnow() + timedelta(seconds=timeOut) | 
					
						
							|  |  |  |         while not shutdownDone: | 
					
						
							|  |  |  |             # following work-around because os.kill() works for win not until python 2.7 | 
					
						
							| 
									
										
										
										
											2011-10-07 15:43:45 +02:00
										 |  |  |             if appCtxt.pid==-1: | 
					
						
							|  |  |  |                 break | 
					
						
							| 
									
										
										
										
											2011-09-21 17:29:18 +02:00
										 |  |  |             tasks = subprocess.Popen("tasklist /FI \"PID eq %d\"" % appCtxt.pid, shell=True,stdout=subprocess.PIPE) | 
					
						
							|  |  |  |             output = tasks.communicate()[0] | 
					
						
							|  |  |  |             tasks.stdout.close() | 
					
						
							|  |  |  |             if (output=="INFO: No tasks are running which match the specified criteria." | 
					
						
							|  |  |  |                 or output=="" or output.find("ERROR")==0): | 
					
						
							|  |  |  |                 shutdownDone=True | 
					
						
							|  |  |  |             if not shutdownDone and datetime.utcnow() > endtime: | 
					
						
							|  |  |  |                 break | 
					
						
							|  |  |  |     else: | 
					
						
							|  |  |  |         endtime = datetime.utcnow() + timedelta(seconds=timeOut) | 
					
						
							|  |  |  |         while not shutdownDone: | 
					
						
							|  |  |  |             try: | 
					
						
							|  |  |  |                 os.kill(appCtxt.pid,0) | 
					
						
							|  |  |  |             except OSError, err: | 
					
						
							|  |  |  |                 if err.errno == errno.EPERM or err.errno == errno.ESRCH: | 
					
						
							|  |  |  |                     shutdownDone=True | 
					
						
							|  |  |  |             if not shutdownDone and datetime.utcnow() > endtime: | 
					
						
							|  |  |  |                 break | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-24 10:57:56 +01:00
										 |  |  | def checkForStillRunningQmlExecutable(possibleNames): | 
					
						
							|  |  |  |     for qmlHelper in possibleNames: | 
					
						
							| 
									
										
										
										
											2013-09-06 13:45:03 +02:00
										 |  |  |         tasks = subprocess.Popen("tasklist /FI \"IMAGENAME eq %s\"" % qmlHelper, shell=True, | 
					
						
							|  |  |  |                                  stdout=subprocess.PIPE) | 
					
						
							|  |  |  |         output = tasks.communicate()[0] | 
					
						
							|  |  |  |         tasks.stdout.close() | 
					
						
							|  |  |  |         if "INFO: No tasks are running which match the specified criteria." in output: | 
					
						
							|  |  |  |             continue | 
					
						
							| 
									
										
										
										
											2013-03-05 10:50:36 +01:00
										 |  |  |         else: | 
					
						
							| 
									
										
										
										
											2013-09-06 13:45:03 +02:00
										 |  |  |             if subprocess.call("taskkill /F /FI \"IMAGENAME eq %s\"" % qmlHelper, shell=True) == 0: | 
					
						
							|  |  |  |                 print "Killed still running %s" % qmlHelper | 
					
						
							|  |  |  |             else: | 
					
						
							|  |  |  |                 print "%s is still running - failed to kill it" % qmlHelper | 
					
						
							| 
									
										
										
										
											2013-03-05 10:50:36 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 13:33:48 +01:00
										 |  |  | def __removeTestingDir__(): | 
					
						
							|  |  |  |     def __removeIt__(directory): | 
					
						
							|  |  |  |         deleteDirIfExists(directory) | 
					
						
							|  |  |  |         return not os.path.exists(directory) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     devicesXML = os.path.join(tmpSettingsDir, "QtProject", "qtcreator", "devices.xml") | 
					
						
							|  |  |  |     lastMTime = os.path.getmtime(devicesXML) | 
					
						
							| 
									
										
										
										
											2013-02-11 10:45:40 +01:00
										 |  |  |     testingDir = os.path.dirname(tmpSettingsDir) | 
					
						
							| 
									
										
										
										
											2011-09-21 17:29:18 +02:00
										 |  |  |     waitForCleanShutdown() | 
					
						
							| 
									
										
										
										
											2012-11-15 13:33:48 +01:00
										 |  |  |     waitFor('os.path.getmtime(devicesXML) > lastMTime', 5000) | 
					
						
							|  |  |  |     waitFor('__removeIt__(testingDir)', 2000) | 
					
						
							| 
									
										
										
										
											2011-08-31 16:05:15 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 14:15:05 +01:00
										 |  |  | def __substitute__(fileName, search, replace): | 
					
						
							|  |  |  |     origFileName = fileName + "_orig" | 
					
						
							|  |  |  |     os.rename(fileName, origFileName) | 
					
						
							|  |  |  |     origFile = open(origFileName, "r") | 
					
						
							|  |  |  |     modifiedFile = open(fileName, "w") | 
					
						
							| 
									
										
										
										
											2012-09-03 15:02:46 +02:00
										 |  |  |     for line in origFile: | 
					
						
							| 
									
										
										
										
											2013-03-27 14:15:05 +01:00
										 |  |  |         modifiedFile.write(line.replace(search, replace)) | 
					
						
							| 
									
										
										
										
											2012-09-03 15:02:46 +02:00
										 |  |  |     origFile.close() | 
					
						
							|  |  |  |     modifiedFile.close() | 
					
						
							| 
									
										
										
										
											2013-03-27 14:15:05 +01:00
										 |  |  |     os.remove(origFileName) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def substituteTildeWithinToolchains(settingsDir): | 
					
						
							|  |  |  |     toolchains = os.path.join(settingsDir, "QtProject", 'qtcreator', 'toolchains.xml') | 
					
						
							|  |  |  |     home = os.path.expanduser("~") | 
					
						
							|  |  |  |     __substitute__(toolchains, "~", home) | 
					
						
							| 
									
										
										
										
											2012-09-03 15:02:46 +02:00
										 |  |  |     test.log("Substituted all tildes with '%s' inside toolchains.xml..." % home) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 14:15:05 +01:00
										 |  |  | def substituteDefaultCompiler(settingsDir): | 
					
						
							|  |  |  |     compiler = None | 
					
						
							|  |  |  |     if platform.system() == 'Darwin': | 
					
						
							|  |  |  |         compiler = "clang_64" | 
					
						
							|  |  |  |     elif platform.system() == 'Linux': | 
					
						
							|  |  |  |         if __is64BitOS__(): | 
					
						
							|  |  |  |             compiler = "gcc_64" | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             compiler = "gcc" | 
					
						
							|  |  |  |     else: | 
					
						
							|  |  |  |         test.warning("Called substituteDefaultCompiler() on wrong platform.", | 
					
						
							|  |  |  |                      "This is a script error.") | 
					
						
							|  |  |  |     if compiler: | 
					
						
							|  |  |  |         qtversion = os.path.join(settingsDir, "QtProject", 'qtcreator', 'qtversion.xml') | 
					
						
							|  |  |  |         __substitute__(qtversion, "SQUISH_DEFAULT_COMPILER", compiler) | 
					
						
							|  |  |  |         test.log("Injected default compiler '%s' to qtversion.xml..." % compiler) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-09-26 09:45:21 +02:00
										 |  |  | def __guessABI__(supportedABIs, use64Bit): | 
					
						
							| 
									
										
										
										
											2013-03-27 13:56:27 +01:00
										 |  |  |     if platform.system() == 'Linux': | 
					
						
							|  |  |  |         supportedABIs = filter(lambda x: 'linux' in x, supportedABIs) | 
					
						
							|  |  |  |     elif platform.system() == 'Darwin': | 
					
						
							|  |  |  |         supportedABIs = filter(lambda x: 'macos' in x, supportedABIs) | 
					
						
							| 
									
										
										
										
											2012-09-26 09:45:21 +02:00
										 |  |  |     if use64Bit: | 
					
						
							|  |  |  |         searchFor = "64bit" | 
					
						
							|  |  |  |     else: | 
					
						
							|  |  |  |         searchFor = "32bit" | 
					
						
							|  |  |  |     for abi in supportedABIs: | 
					
						
							|  |  |  |         if searchFor in abi: | 
					
						
							|  |  |  |             return abi | 
					
						
							|  |  |  |     if use64Bit: | 
					
						
							|  |  |  |         test.log("Supported ABIs do not include an ABI supporting 64bit - trying 32bit now") | 
					
						
							|  |  |  |         return __guessABI__(supportedABIs, False) | 
					
						
							|  |  |  |     test.fatal('Could not guess ABI!', | 
					
						
							|  |  |  |                'Given ABIs: %s' % str(supportedABIs)) | 
					
						
							|  |  |  |     return '' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def __is64BitOS__(): | 
					
						
							|  |  |  |     if platform.system() in ('Microsoft', 'Windows'): | 
					
						
							|  |  |  |         machine = os.getenv("PROCESSOR_ARCHITEW6432", os.getenv("PROCESSOR_ARCHITECTURE")) | 
					
						
							|  |  |  |     else: | 
					
						
							|  |  |  |         machine = platform.machine() | 
					
						
							|  |  |  |     if machine: | 
					
						
							|  |  |  |         return '64' in machine | 
					
						
							|  |  |  |     else: | 
					
						
							|  |  |  |         return False | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def substituteUnchosenTargetABIs(settingsDir): | 
					
						
							|  |  |  |     class ReadState: | 
					
						
							|  |  |  |         NONE = 0 | 
					
						
							|  |  |  |         READING = 1 | 
					
						
							|  |  |  |         CLOSED = 2 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     on64Bit = __is64BitOS__() | 
					
						
							| 
									
										
										
										
											2012-10-09 12:21:04 +02:00
										 |  |  |     toolchains = os.path.join(settingsDir, "QtProject", 'qtcreator', 'toolchains.xml') | 
					
						
							| 
									
										
										
										
											2012-09-26 09:45:21 +02:00
										 |  |  |     origToolchains = toolchains + "_orig" | 
					
						
							|  |  |  |     os.rename(toolchains, origToolchains) | 
					
						
							|  |  |  |     origFile = open(origToolchains, "r") | 
					
						
							|  |  |  |     modifiedFile = open(toolchains, "w") | 
					
						
							|  |  |  |     supported = [] | 
					
						
							|  |  |  |     readState = ReadState.NONE | 
					
						
							|  |  |  |     for line in origFile: | 
					
						
							|  |  |  |         if readState == ReadState.NONE: | 
					
						
							|  |  |  |             if "SupportedAbis" in line: | 
					
						
							|  |  |  |                 supported = [] | 
					
						
							|  |  |  |                 readState = ReadState.READING | 
					
						
							|  |  |  |         elif readState == ReadState.READING: | 
					
						
							|  |  |  |             if "</valuelist>" in line: | 
					
						
							|  |  |  |                 readState = ReadState.CLOSED | 
					
						
							|  |  |  |             else: | 
					
						
							|  |  |  |                 supported.append(line.split(">", 1)[1].rsplit("<", 1)[0]) | 
					
						
							|  |  |  |         elif readState == ReadState.CLOSED: | 
					
						
							|  |  |  |             if "SupportedAbis" in line: | 
					
						
							|  |  |  |                 supported = [] | 
					
						
							|  |  |  |                 readState = ReadState.READING | 
					
						
							|  |  |  |             elif "SET_BY_SQUISH" in line: | 
					
						
							|  |  |  |                 line = line.replace("SET_BY_SQUISH", __guessABI__(supported, on64Bit)) | 
					
						
							|  |  |  |         modifiedFile.write(line) | 
					
						
							|  |  |  |     origFile.close() | 
					
						
							|  |  |  |     modifiedFile.close() | 
					
						
							|  |  |  |     os.remove(origToolchains) | 
					
						
							|  |  |  |     test.log("Substituted unchosen ABIs inside toolchains.xml...") | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-02-11 10:45:40 +01:00
										 |  |  | def copySettingsToTmpDir(destination=None, omitFiles=[]): | 
					
						
							|  |  |  |     global tmpSettingsDir, SettingsPath, origSettingsDir | 
					
						
							|  |  |  |     if destination: | 
					
						
							|  |  |  |         destination = os.path.abspath(destination) | 
					
						
							|  |  |  |         if not os.path.exists(destination): | 
					
						
							|  |  |  |             os.makedirs(destination) | 
					
						
							|  |  |  |         elif os.path.isfile(destination): | 
					
						
							|  |  |  |                 test.warning("Provided destination for settings exists as file.", | 
					
						
							|  |  |  |                              "Creating another folder for being able to execute tests.") | 
					
						
							|  |  |  |                 destination = tempDir() | 
					
						
							|  |  |  |     else: | 
					
						
							|  |  |  |         destination = tempDir() | 
					
						
							|  |  |  |     tmpSettingsDir = destination | 
					
						
							|  |  |  |     pathLen = len(origSettingsDir) + 1 | 
					
						
							|  |  |  |     for r,d,f in os.walk(origSettingsDir): | 
					
						
							|  |  |  |         currentPath = os.path.join(tmpSettingsDir, r[pathLen:]) | 
					
						
							|  |  |  |         for dd in d: | 
					
						
							|  |  |  |             folder = os.path.join(currentPath, dd) | 
					
						
							|  |  |  |             if not os.path.exists(folder): | 
					
						
							|  |  |  |                 os.makedirs(folder) | 
					
						
							|  |  |  |         for ff in f: | 
					
						
							|  |  |  |             if not ff in omitFiles: | 
					
						
							|  |  |  |                 shutil.copy(os.path.join(r, ff), currentPath) | 
					
						
							| 
									
										
										
										
											2012-12-12 16:06:48 +01:00
										 |  |  |     if platform.system() in ('Linux', 'Darwin'): | 
					
						
							|  |  |  |         substituteTildeWithinToolchains(tmpSettingsDir) | 
					
						
							| 
									
										
										
										
											2013-03-27 14:15:05 +01:00
										 |  |  |         substituteDefaultCompiler(tmpSettingsDir) | 
					
						
							| 
									
										
										
										
											2012-12-12 16:06:48 +01:00
										 |  |  |     substituteUnchosenTargetABIs(tmpSettingsDir) | 
					
						
							|  |  |  |     SettingsPath = ' -settingspath "%s"' % tmpSettingsDir | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-02-11 10:45:40 +01:00
										 |  |  | # current dir is directory holding qtcreator.py | 
					
						
							|  |  |  | origSettingsDir = os.path.abspath(os.path.join(os.getcwd(), "..", "..", "settings")) | 
					
						
							| 
									
										
										
										
											2013-10-29 15:16:26 +01:00
										 |  |  | sdkPath = os.path.expanduser("~/QtSDK") | 
					
						
							| 
									
										
										
										
											2013-02-11 10:45:40 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-08-25 10:05:28 +02:00
										 |  |  | if platform.system() in ('Windows', 'Microsoft'): | 
					
						
							| 
									
										
										
										
											2011-09-26 16:58:39 +02:00
										 |  |  |     sdkPath = "C:\\QtSDK" | 
					
						
							| 
									
										
										
										
											2013-02-11 10:45:40 +01:00
										 |  |  |     origSettingsDir = os.path.join(origSettingsDir, "windows") | 
					
						
							| 
									
										
										
										
											2013-10-29 15:16:26 +01:00
										 |  |  | elif platform.system() == 'Darwin': | 
					
						
							|  |  |  |     origSettingsDir = os.path.join(origSettingsDir, "mac") | 
					
						
							| 
									
										
										
										
											2011-08-25 10:05:28 +02:00
										 |  |  | else: | 
					
						
							| 
									
										
										
										
											2013-02-11 10:45:40 +01:00
										 |  |  |     origSettingsDir = os.path.join(origSettingsDir, "unix") | 
					
						
							| 
									
										
										
										
											2013-12-13 14:27:51 +01:00
										 |  |  | srcPath = os.getenv("SYSTEST_SRCPATH", os.path.join(sdkPath, "src")) | 
					
						
							| 
									
										
										
										
											2011-08-31 16:05:15 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-12 13:12:28 +01:00
										 |  |  | overrideStartApplication() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-08-31 16:05:15 +02:00
										 |  |  | # the following only doesn't work if the test ends in an exception | 
					
						
							| 
									
										
										
										
											2012-01-09 15:33:14 +01:00
										 |  |  | if os.getenv("SYSTEST_NOSETTINGSPATH") != "1": | 
					
						
							| 
									
										
										
										
											2012-12-12 16:06:48 +01:00
										 |  |  |     copySettingsToTmpDir() | 
					
						
							| 
									
										
										
										
											2012-11-15 13:33:48 +01:00
										 |  |  |     atexit.register(__removeTestingDir__) | 
					
						
							| 
									
										
										
										
											2013-03-04 11:02:55 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | if os.getenv("SYSTEST_WRITE_RESULTS") == "1" and os.getenv("SYSTEST_RESULTS_FOLDER") != None: | 
					
						
							|  |  |  |     atexit.register(writeTestResults, os.getenv("SYSTEST_RESULTS_FOLDER")) |