diff options
author | Robert Loehning <robert.loehning@qt.io> | 2018-08-02 20:50:03 +0200 |
---|---|---|
committer | Robert Loehning <robert.loehning@qt.io> | 2018-08-17 12:58:14 +0000 |
commit | 21bcc7f38b1a08168f98054358574b21f33b49b6 (patch) | |
tree | 4f854c360de61e6ac240e4605c311c6b0a8b9f19 | |
parent | 656492225432f4da53eeb9f13e0591a0601ce9b7 (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.py | 10 | ||||
-rw-r--r-- | tests/system/shared/project.py | 29 | ||||
-rwxr-xr-x | tests/system/suite_CCOM/tst_CCOM01/test.py | 2 | ||||
-rw-r--r-- | tests/system/suite_general/tst_create_proj_wizard/test.py | 29 |
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): |