diff options
author | Richard Weickelt <richard@weickelt.de> | 2019-12-03 21:24:03 +0100 |
---|---|---|
committer | Richard Weickelt <richard@weickelt.de> | 2020-01-08 09:32:16 +0000 |
commit | 8ff1dd0044a32b6658cf05a923946d75baf33a66 (patch) | |
tree | f970f2f1c0c489636f08c4b822fbf06cf505900a /tests/auto/blackbox/tst_blackbox.h | |
parent | c0aea890863fec449bf2fc00f5c46c06bc8a03a2 (diff) |
Order list properties by dependencies
List properties of all dependent modules were previously merged in
lexicographical order and did not take any module hierarchy into account.
This resulted in errors, for instance when multiple inter-dependent modules
specified cpp.staticLibraries and the libraries had dependencies on each other.
This patch merges list properties according to the top-sorted modules list. This
is equivalent to a breadth-first search in the dependency graph. Modules on the
same hierarchy level are merged in reverse lexicographical order for
implementation simplicitly. For instance, the modules Qt.core, Qt.gui and
Qt.network would be merged in the order Qt.network, Qt.gui, Qt.core.
The resulting order is stable and does not dependent on anything else than the
actual dependency relationships and the module names. I.e. the order of
Depends items is irrelevant.
This change leads to a much simpler implementation of ModuleMerger and has the
positive side-effect that property values are evaluated in the correct scope
more often.
A warning is now generated when multiple modules write to the same scalar
property and the warning is being tested. It was previously there as well, but
did not fire in all cases, for instance when an Export item wrote to a scalar
property as well as an exported module.
Fixes: QBS-1505
Fixes: QBS-1517
Change-Id: I450d2a84cd29afe42c17be7e946e4f755da1c49f
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'tests/auto/blackbox/tst_blackbox.h')
-rw-r--r-- | tests/auto/blackbox/tst_blackbox.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/tests/auto/blackbox/tst_blackbox.h b/tests/auto/blackbox/tst_blackbox.h index eb9e06dd6..b2aef11e6 100644 --- a/tests/auto/blackbox/tst_blackbox.h +++ b/tests/auto/blackbox/tst_blackbox.h @@ -236,6 +236,7 @@ private slots: void propertyAssignmentOnNonPresentModule(); void propertyAssignmentInFailedModule(); void propertyChanges(); + void propertyEvaluationContext(); void propertyPrecedence(); void properQuoting(); void propertiesInExportItems(); |