aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Loehning <robert.loehning@qt.io>2018-08-02 20:50:03 +0200
committerRobert Loehning <robert.loehning@qt.io>2018-08-17 12:58:14 +0000
commit21bcc7f38b1a08168f98054358574b21f33b49b6 (patch)
tree4f854c360de61e6ac240e4605c311c6b0a8b9f19
parent656492225432f4da53eeb9f13e0591a0601ce9b7 (diff)
Squish: Use sets instead of lists for kits in use
They fit our use-case much better. Task-number: QTCREATORBUG-20874 Change-Id: Ifa06ce00f3e6999a99c3bc2bb7e9ba759fa02e94 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
-rw-r--r--tests/system/shared/classes.py10
-rw-r--r--tests/system/shared/project.py29
-rwxr-xr-xtests/system/suite_CCOM/tst_CCOM01/test.py2
-rw-r--r--tests/system/suite_general/tst_create_proj_wizard/test.py29
4 files changed, 31 insertions, 39 deletions
diff --git a/tests/system/shared/classes.py b/tests/system/shared/classes.py
index cd6facb6ca..c4be96bed8 100644
--- a/tests/system/shared/classes.py
+++ b/tests/system/shared/classes.py
@@ -44,7 +44,7 @@ class Targets:
@staticmethod
def availableTargetClasses():
- availableTargets = list(Targets.ALL_TARGETS)
+ availableTargets = set(Targets.ALL_TARGETS)
if platform.system() in ('Windows', 'Microsoft'):
availableTargets.remove(Targets.EMBEDDED_LINUX)
elif platform.system() == 'Darwin':
@@ -54,8 +54,7 @@ class Targets:
@staticmethod
def desktopTargetClasses():
desktopTargets = Targets.availableTargetClasses()
- if Targets.EMBEDDED_LINUX in desktopTargets:
- desktopTargets.remove(Targets.EMBEDDED_LINUX)
+ desktopTargets.discard(Targets.EMBEDDED_LINUX)
return desktopTargets
@staticmethod
@@ -64,10 +63,7 @@ class Targets:
@staticmethod
def getTargetsAsStrings(targets):
- if not isinstance(targets, (tuple,list)):
- test.fatal("Wrong usage... This function handles only tuples or lists.")
- return None
- return map(Targets.getStringForTarget, targets)
+ return set(map(Targets.getStringForTarget, targets))
@staticmethod
def getIdForTargetName(targetName):
diff --git a/tests/system/shared/project.py b/tests/system/shared/project.py
index a8305e11a4..3afc7fc2a7 100644
--- a/tests/system/shared/project.py
+++ b/tests/system/shared/project.py
@@ -155,8 +155,8 @@ def __createProjectHandleQtQuickSelection__(minimumQtVersion):
# withoutQt4 if True Qt4 will get unchecked / not selected while checking the targets
def __selectQtVersionDesktop__(checks, available=None, withoutQt4=False):
wanted = Targets.desktopTargetClasses()
- if withoutQt4 and Targets.DESKTOP_4_8_7_DEFAULT in wanted:
- wanted.remove(Targets.DESKTOP_4_8_7_DEFAULT)
+ if withoutQt4:
+ wanted.discard(Targets.DESKTOP_4_8_7_DEFAULT)
checkedTargets = __chooseTargets__(wanted, available)
if checks:
for target in checkedTargets:
@@ -197,8 +197,7 @@ def __modifyAvailableTargets__(available, requiredQt, asStrings=False):
toBeRemoved = Targets.EMBEDDED_LINUX
if asStrings:
toBeRemoved = Targets.getStringForTarget(toBeRemoved)
- if toBeRemoved in available:
- available.remove(toBeRemoved)
+ available.discard(toBeRemoved)
for currentItem in tmp:
if asStrings:
item = currentItem
@@ -207,7 +206,7 @@ def __modifyAvailableTargets__(available, requiredQt, asStrings=False):
found = versionFinder.search(item)
if found:
if Qt5Path.toVersionTuple(found.group(1)) < Qt5Path.toVersionTuple(requiredQt):
- available.remove(currentItem)
+ available.discard(currentItem)
# Creates a Qt GUI project
# param path specifies where to create the project
@@ -398,14 +397,14 @@ def __chooseTargets__(targets, availableTargets=None, additionalFunc=None):
else:
# following targets depend on the build environment - added for further/later tests
available = Targets.availableTargetClasses()
- checkedTargets = []
+ checkedTargets = set()
for current in available:
mustCheck = current in targets
try:
ensureChecked("{type='QCheckBox' text='%s' visible='1'}" % Targets.getStringForTarget(current),
mustCheck, 3000)
if mustCheck:
- checkedTargets.append(current)
+ checkedTargets.add(current)
# perform additional function on detailed kits view
if additionalFunc:
@@ -517,26 +516,26 @@ def __getSupportedPlatforms__(text, templateName, getAsStrings=False):
version = None
if templateName.startswith("Qt Quick Application - "):
if templateName == "Qt Quick Application - Empty":
- result = [Targets.DESKTOP_5_6_1_DEFAULT, Targets.DESKTOP_5_10_1_DEFAULT]
+ result = set([Targets.DESKTOP_5_6_1_DEFAULT, Targets.DESKTOP_5_10_1_DEFAULT])
else:
- result = [Targets.DESKTOP_5_10_1_DEFAULT]
+ result = set([Targets.DESKTOP_5_10_1_DEFAULT])
elif 'Supported Platforms' in text:
supports = text[text.find('Supported Platforms'):].split(":")[1].strip().split(" ")
- result = []
+ result = set()
if 'Desktop' in supports:
if (version == None or version < "5.0"):
- result.append(Targets.DESKTOP_4_8_7_DEFAULT)
+ result.add(Targets.DESKTOP_4_8_7_DEFAULT)
if platform.system() in ("Linux", "Darwin"):
- result.append(Targets.EMBEDDED_LINUX)
- result.extend([Targets.DESKTOP_5_6_1_DEFAULT, Targets.DESKTOP_5_10_1_DEFAULT])
+ result.add(Targets.EMBEDDED_LINUX)
+ result = result.union(set([Targets.DESKTOP_5_6_1_DEFAULT, Targets.DESKTOP_5_10_1_DEFAULT]))
if platform.system() != 'Darwin':
- result.append(Targets.DESKTOP_5_4_1_GCC)
+ result.add(Targets.DESKTOP_5_4_1_GCC)
elif 'Platform independent' in text:
result = Targets.desktopTargetClasses()
else:
test.warning("Returning None (__getSupportedPlatforms__())",
"Parsed text: '%s'" % text)
- return [], None
+ return set(), None
if getAsStrings:
result = Targets.getTargetsAsStrings(result)
return result, version
diff --git a/tests/system/suite_CCOM/tst_CCOM01/test.py b/tests/system/suite_CCOM/tst_CCOM01/test.py
index 432c916cb8..d468dca06a 100755
--- a/tests/system/suite_CCOM/tst_CCOM01/test.py
+++ b/tests/system/suite_CCOM/tst_CCOM01/test.py
@@ -41,7 +41,7 @@ def main():
return
# open example project, supports only Qt 5
targets = Targets.desktopTargetClasses()
- targets.remove(Targets.DESKTOP_4_8_7_DEFAULT)
+ targets.discard(Targets.DESKTOP_4_8_7_DEFAULT)
openQmakeProject(examplePath, targets)
# build and wait until finished - on all build configurations
availableConfigs = iterateBuildConfigs()
diff --git a/tests/system/suite_general/tst_create_proj_wizard/test.py b/tests/system/suite_general/tst_create_proj_wizard/test.py
index 34878b9566..cefb8d3844 100644
--- a/tests/system/suite_general/tst_create_proj_wizard/test.py
+++ b/tests/system/suite_general/tst_create_proj_wizard/test.py
@@ -87,23 +87,20 @@ def main():
def verifyKitCheckboxes(kits, displayedPlatforms):
waitForObject("{type='QLabel' unnamed='1' visible='1' text='Kit Selection'}")
- availableCheckboxes = filter(visibleCheckBoxExists, kits.keys())
+ availableCheckboxes = frozenset(filter(visibleCheckBoxExists, kits.keys()))
# verification whether expected, found and configured match
- for t in kits:
- if t in displayedPlatforms:
- if t in availableCheckboxes:
- test.passes("Found expected kit '%s' on 'Kit Selection' page." % t)
- availableCheckboxes.remove(t)
- else:
- test.fail("Expected kit '%s' missing on 'Kit Selection' page." % t)
- else:
- if t in availableCheckboxes:
- test.fail("Kit '%s' found on 'Kit Selection' page - but was not expected!" % t)
- else:
- test.passes("Irrelevant kit '%s' not found on 'Kit Selection' page." % t)
- if len(availableCheckboxes) != 0:
- test.fail("Found unexpected additional kit(s) %s on 'Kit Selection' page."
- % str(availableCheckboxes))
+
+ expectedShownKits = availableCheckboxes.intersection(displayedPlatforms)
+ unexpectedShownKits = availableCheckboxes.difference(displayedPlatforms)
+ missingKits = displayedPlatforms.difference(availableCheckboxes)
+
+ test.log("Expected kits shown on 'Kit Selection' page:\n%s" % "\n".join(expectedShownKits))
+ if len(unexpectedShownKits):
+ test.fail("Kits found on 'Kit Selection' page but not expected:\n%s"
+ % "\n".join(unexpectedShownKits))
+ if len(missingKits):
+ test.fail("Expected kits missing on 'Kit Selection' page:\n%s"
+ % "\n".join(missingKits))
def handleBuildSystemVerifyKits(category, template, kits, displayedPlatforms,
specialHandlingFunc = None, *args):