aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/blackbox
Commit message (Collapse)AuthorAgeFilesLines
* sanitize stdout/stderr output in blackbox testJoerg Bornemann2014-06-132-0/+9
| | | | | | | | | | On Windows the CR characters that were in stdout/stderr led to very unclean output on the console and in Qt Creator. We're removing those in the runQbs method now. Change-Id: I4bef7bb7221bd6f656e5e7480c7a3e0e7ddb44fb Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* fix TestBlackbox::erroneousFiles on *nixJoerg Bornemann2014-06-131-2/+3
| | | | | | | | The error message will contain '/bin/ls' and not just 'ls' unlike on Windows. The test now understands regular expressions. Change-Id: Ib37201744d192d6cd53c350107985532c3633532 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* yield error if Command.workingDirectory doesn't existJoerg Bornemann2014-06-103-0/+42
| | | | | | | | | Otherwise some command might clutter the user's current working dir. Task-number: QBS-607 Change-Id: Id263481d1a615b9c66753e11b271441d4bd004b1 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* pass file dependencies to recursive dependency scannersJoerg Bornemann2014-05-211-1/+0
| | | | | | | | | Recursive dependency scanners, like the C include file scanner, must be fed with file dependencies they've found. Task-number: QBS-566 Change-Id: I68a8e4a5cbb771ed2785ca69412a3b4c4e280eb2 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* extend TestBlackBox::fileDependenciesJoerg Bornemann2014-05-193-1/+16
| | | | | | | | | | | narf.cpp includes awesome.h awesome.h includes magnificent.h awesome.h and magnificent.h are not listed in the project. Changing magnificent.h must trigger a rebuild of narf.cpp. Task-number: QBS-566 Change-Id: Ib2df45ac550951b550ce4ba0e7519268d9123eda Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* use PathProbe in dynamicRuleOutputs testJoerg Bornemann2014-05-121-2/+7
| | | | | | | | That's more generic and adds a Probe usage to the test suite. Change-Id: I022022f9c1d77d5508fbbe848ce56a73eb115185 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* fix crash on Properties block in Export itemv1.2.1Joerg Bornemann2014-05-081-0/+4
| | | | | | | | | | | The merged Export item was lacking a file context. Added a QBS_CHECK in instantiateModule to ensure a valid file context of the module instance scope. Task-number: QBS-550 Change-Id: I04368ba2e290a9af70f22e9c4c07324e295da4f0 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Fix crash on product disabling.Christian Kandeler2014-04-303-0/+21
| | | | | | Task-number: QBS-561 Change-Id: Ia56280cb26241c7fb9debd0d4ce1349b041405a6 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Work around braindead QFileInfo::exists() behavior for symbolic links.Christian Kandeler2014-04-151-5/+10
| | | | | Change-Id: If8002fc7be0cc6af954ebb28ccbcb7bee1031e1c Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* WiX: Fix the "cultures" property handlingDenis Shienkov2014-04-111-0/+1
| | | | | | | Task-number: QBS-542 Change-Id: I4ec5bf6020732155ab1a20583861e4bbadd196d9 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Fix linking of MSIs built from multiple WiX source files.Jake Petroules2014-04-113-0/+13
| | | | | | Task-number: QBS-541 Change-Id: I177c755ee203df1018039683da860b26dd9ec820 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Fix WiX test and turn it into an autotest.Jake Petroules2014-04-116-0/+121
| | | | | Change-Id: Ifd1cdfc54e7566146a478cf0833a6f67196735cd Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Fix crash with Properties item as child of Project item.Joerg Bornemann2014-04-073-0/+19
| | | | | Change-Id: I5f9868d84447682922fdf97a1a71598cf180549c Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Make "Qt.declarative" available as "Qt.quick" again for Qt 4.Christian Kandeler2014-03-312-4/+20
| | | | | | | | This was accidentally removed when switching to the new Qt modules approach. Change-Id: Ie8db5a183c2cc3a82d31c2793710983cf4206ef0 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* fix staticLibraryDeps test on OS XJoerg Bornemann2014-03-311-0/+1
| | | | | | | Do not build the project as app bundle. Change-Id: I1af98eb79525c9ff75f061df1452549cc93508c8 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Fix QML debugging test.Christian Kandeler2014-03-311-2/+1
| | | | | | | nm's "-C" option is not universal. Change-Id: I7e24e76a75eb54c48a9fde5550c8257a1dcc615b Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix QML debugging for Qt 5.Christian Kandeler2014-03-314-0/+37
| | | | | | | | | | | The line enabling the respective C++ macro got lost when we switched to the new Qt module approach. (And the name of the macro was wrong for Qt 5 anyway, so it hadn't worked before either.) Also add an autotest to catch things like macro renaming in the future. Task-number: QTCREATORBUG-11914 Change-Id: Ica188c20e99c204d1a9d4e5f285a938707d997dd Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix "build single file" and "changed files" functionalities.Christian Kandeler2014-03-266-0/+29
| | | | | | | | | | | | | | | | | | | | | | | These had several problems. Firstly, the "changed files" case was implemented by setting all artifacts to "Built" and then setting the ones to "Buildable" that were reachable bottom-up from artifacts corresponding to the respective files. This approach broke with the introduction of rule nodes, because parent nodes do not necessarily exist yet at initialization time. This was not caught due to the lack of an autotest. Secondly, the logic behind the "build single file" functionality was faulty. The assumption was that this could be implemented on top of the "changed file" functionality, which is wrong: Consider the case where you have several cpp files that have not yet been built. Now marking one of them as changed and filtering by the "obj" tag will still cause all of them to be compiled, as we cannot simply exclude all other source files from being built, which would break the build for the normal "changed files" case without tag filtering. Therefore we need a dedicated list of input files by which we can filter transformers. Task-number: QBS-537 Change-Id: I47e2ba6d0cbd073561064640eaf8f63c4e0b39fa Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Introduce abstraction layer for QSKIP.Christian Kandeler2014-03-242-7/+4
| | | | | | | We might want to skip tests in other files as well. Change-Id: Ia2352fdf472b461fb3d9ed6134789b4f56d126e8 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* fix library dependency orderJoerg Bornemann2014-03-149-0/+125
| | | | | | | | | Autotest from the bug report added. Task-number: QBS-524 Change-Id: I2ef3485db749424339a2ea96900e49fa5d1363d4 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Add test coverage for new PropertyList extension features.Jake Petroules2014-02-282-1/+77
| | | | | Change-Id: If31fd181c30b61f8f02915408520e85b34d5fc11 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Introduce PropertyList functions isEmpty and clear.Jake Petroules2014-02-281-0/+26
| | | | | | | | These functions test whether the PropertyList object has any data loaded, and clears any existing data from the object, respectively. Change-Id: I9dfa0e7629dccd3090fc0d5de33481c8e7caf424 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Rename PropertyList API functions for better self-documentation.Jake Petroules2014-02-271-2/+2
| | | | | Change-Id: I5435e99c68646340bf6a2608819cfaef31146646 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix "addedFilePersistent" autotest.Christian Kandeler2014-02-271-3/+3
| | | | | | | | | This one failed in about 1 of 1000 runs (Windows only), presumably because the OS sometimes flushes the file to disk on its own, so that our call to waitForNewTimestamp() came too late. Change-Id: I3866ea9d081549e8a7daa33733f581f8cc96d97e Reviewed-by: Christian Stenger <christian.stenger@digia.com>
* Do not share product properties with artifacts.Christian Kandeler2014-02-262-3/+3
| | | | | | | | | | | | | | Since products potentially share their property maps with their groups, artifacts get product properties such as "name" and "destinationDirectory". This is strange and can mess with change tracking. Therefore we split up the product's property map in two: One contains the module properties and is potentially shared with groups, the other has the actual product properties and is not shared. This patch also removes a workaround from an autotest that was required until now to prevent a false positive in change tracking. Change-Id: Ia1f1f0ce32669fd893a99f809753df526bf1442a Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix blackbox tests when used with build directory preference.Jake Petroules2014-02-261-1/+1
| | | | | Change-Id: Icb5049d93a69393bedbeb74fb695d28d12732712 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* use filePath instead of fileName where applicableJoerg Bornemann2014-02-2514-33/+33
| | | | | | | | This fixes the recently introduced deprecation warnings. Task-number: QBS-258 Change-Id: I10660270895ec89a1444d596922c22e9658ca3ab Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Allow the user to specify a custom place for settings.Christian Kandeler2014-02-211-4/+4
| | | | | | Task-number: QBS-509 Change-Id: I4ad32c648121068880d652e3ba39d4eea59dfbc3 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Serialize information about rules with changed inputs.Christian Kandeler2014-02-201-0/+2
| | | | | | | | | This was simply missing. Also amend the "trackRemoveFile" autotest so that it catches such an omission. Change-Id: Ic3187bf17337cf792bb6ccfd324635d1a43f4d82 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Use dynamic rules in some autotests.Christian Kandeler2014-02-182-9/+12
| | | | | | | They are not strictly necessary there, but add coverage of this feature. Change-Id: I4409575cb8a81b2fca0166388afb56c4701616b1 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* support transformers with an unknown number of outputsJoerg Bornemann2014-02-1310-18/+128
| | | | | | | | | | | | | | | | To support different types of nodes in the build graph, we introduce the base class BuildGraphNode. Artifact now derives from BuildGraphNode. A RuleNode class is introduced that represents a rule in the build graph. Rules are applied in the build phase and not in a pre-build phase anymore. The handling of moc has been revisited. The fixed automoc pre-build phase is no more. This is the squashed merge of a feature branch. Task-number: QBS-370 Change-Id: If27cdc51cba8c9542e4282c2caa456faa723aeff Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Update references to the toolchain setup tool.Christian Kandeler2014-02-131-1/+1
| | | | | | | s/detect/setup Change-Id: If9d84c94c89c887fb833540a0e2c9d0da4919ba9 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* add tst_blackBox::changeDependentLibJoerg Bornemann2014-02-115-0/+133
| | | | | | | | This changes a lib that's used by an application and checks if an incremental build still works. Change-Id: I24816aab1ec55e32c6e197f7d28e60c9d1f874ba Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Merge remote-tracking branch 'origin/1.1'Joerg Bornemann2014-01-291-0/+2
|\ | | | | | | Change-Id: Ieeeeb2a30358031b11a902e97c8b8a0046df76d6
| * fix warning in autotestv1.1.21.1Joerg Bornemann2014-01-231-0/+2
| | | | | | | | | | | | | | Give the command a proper description. Change-Id: I7598197262a5ed77403af7fba361589def6c0063 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* | fix compilation error with QT_VERSION < 0x050000Maxim Zaitsev2014-01-211-1/+1
| | | | | | | | | | Change-Id: Ibba02898e19b339bfbbd9223aebca8f83bbdfcfd Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Add a JS extension for working with property lists.Jake Petroules2014-01-203-0/+56
| | | | | | | | | | Change-Id: Ib9413501f647f52b60507daf85bdfe8e560d7e08 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | add autotest for dynamic rule outputsJoerg Bornemann2014-01-206-0/+415
| | | | | | | | | | | | | | Task-number: QBS-370 Change-Id: Ib70597d8eeed711842cfb86f8d1ecb434f6b40bd Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* | Merge remote-tracking branch 'origin/1.1'Joerg Bornemann2014-01-154-14/+40
|\| | | | | | | | | | | | | | | Conflicts: tests/auto/blackbox/testdata/trackExternalProductChanges/project.qbs tests/auto/blackbox/tst_blackbox.cpp Change-Id: I7b5e72e0a360d7e5e814a1f6e344bf11eac767e6
| * Take source artifact properties into account when change tracking.Christian Kandeler2014-01-144-8/+28
| | | | | | | | | | | | | | | | | | When properties on source files change, rules might have to be re- applied and the installation of the respective source file may have to be re-done. The current code catches none of that. Change-Id: I7d87eb1d6bbb9918f2633ec8cbb9640ca23b90a4 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| * Fix "clean" autotest on OSX.Christian Kandeler2014-01-141-6/+12
| | | | | | | | | | | | | | Dynamic library names are different on Mac. Change-Id: I451d61765a91213e5d2e6141848cb2f00cb0d2d9 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Merge remote-tracking branch 'origin/1.1'Joerg Bornemann2014-01-131-1/+2
|\| | | | | | | Change-Id: I7319a1deea008c9f4df077eaecf3147872fc4a21
| * Fix corner case in "up to date" check.Christian Kandeler2014-01-101-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, the timestamps of target artifacts (and only these) are always retrieved from disk before checking whether artifacts are up to date. This can lead to problems, for instance in the following scenario: - The transformer creating the target artifact has another output artifact, i.e. the target artifact has a non-target sibling. - The sibling is created in a different command that runs after the one creating the target artifact. - While the command creating the target artifact is in progress, a different, unrelated command running at the same time fails. As a result, the executor will wait until the in-flight commands have finished and then cancel the build, not running any commands still queued for execution. This means that the target artifact will have a different on-disk timestamps than its sibling. On the next build, this newer timestamp will be retrieved. Since the current code assumes that all sibling artifacts have the same timestamp, it only checks one random output artifact. If that happens to be the target artifact, the up-to-date check will report that the transformer does not need to be re-run, even though one artifact is not up to date. This patch fixes the two closely related subtle bugs that can lead to this behavior: 1) Get rid of the "convenvience functionality" that always checks the timestamp of target artifacts as a service to users that do not know that they are not supposed to manually touch files in the build directory. This behavior has been obsolete since the introduction of the "--check-timestamps" option. 2) If the "--check-timestamps" option has been given, our invariant about all output artifacts of a transformer having the same timestamp is not guaranteed to hold, as they come from an outside source. Therefore, in this case we must check the timestamps of all output artifacts, not just one. Change-Id: I482fe6060c0dee5fef74a9236a787dc7d40f3b24 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Merge remote-tracking branch 'origin/1.1'Joerg Bornemann2014-01-0939-39/+39
|\| | | | | | | Change-Id: Iccf01f1dad3fca4a78c7d9b795fdef6df0181e9b
| * Incremented year in copyright infoRobert Loehning2014-01-0839-39/+39
| | | | | | | | | | | | Change-Id: Ib7f9a00bb891fa39c5bc1f891ddbfba1e4d23227 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Style: don't pass empty command arguments.Jake Petroules2014-01-091-1/+2
| | | | | | | | | | Change-Id: I7159933e244e4ed008c1f38b6d481c96caaef33f Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Add support for embedding Info.plist into unbundled executable products.Jake Petroules2014-01-094-0/+39
| | | | | | | | | | | | | | Task-number: QBS-468 Change-Id: I0b2cbb1b0aba3f73baf17d703eac5ecb687f54a0 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Add support for soft dependencies.Christian Kandeler2014-01-084-0/+25
| | | | | | | | | | | | | | | | Depends items get a "required" property, module presence can be checked via "present" property. Change-Id: Id188a442b3b32c5b2e50e568e59cee074774f125 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Add function "lastModified" to the "File" JS extension.Christian Kandeler2014-01-071-0/+4
| | | | | | | | | | Change-Id: I96157cfc5404f53a9f48540952462f1b81f2c4e8 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Merge remote-tracking branch 'origin/1.1'Joerg Bornemann2013-12-121-1/+1
|\| | | | | | | Change-Id: Ic3e0027187a15fdc59faeee6fa51ebeb73828c28