aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/blackbox
Commit message (Collapse)AuthorAgeFilesLines
* Add autotest for QBS-559.Christian Kandeler2014-08-065-0/+45
| | | | | | | | | This bug was fixed somewhat accidentally, so make sure it can't creep back in. Task-number: QBS-559 Change-Id: I3f85676f77cbc50b67f226810137860a7733fc6b Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* multiplex rules now always see all inputsJoerg Bornemann2014-08-011-1/+0
| | | | | | | | | | | | | Multiplex rules now always see all inputs they're interested in and not only the compatible inputs that are out of date. Also, we do not need to re-use transformers, because that's a fruitless optimization attempt that complicated the code. Eventually, we're able to remove the hard-to-grasp "regenerating transformer" block. Task-number: QBS-645 Change-Id: I86dd307ee6ffa95baddd4e49307f0c1816e29901 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* add test for dynamic multiplex rule inputsJoerg Bornemann2014-08-016-0/+48
| | | | | | Task-number: QBS-645 Change-Id: Ib14533084c575d91cc937ca1f7e05145c06b108f Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Autotests: Make "copy and touch" operation atomic.Christian Kandeler2014-08-012-26/+5
| | | | | | | | | On Windows, QFile::copy does not update the timestamp on the target file. This fixes the "projectInvalidation" API test on that OS. Change-Id: I01c232de0f4e5e9bc5d2d28c24d5fb5516a58ca3 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Tests: Move waitForNewTimestamp() function to shared file.Christian Kandeler2014-07-303-12/+2
| | | | | | | We want to use it in the API tests too. Change-Id: I8fad090ea98f67e50b7b2a8e3854c5b618172364 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* skip TestBlackbox::testAssetCatalog for OS X < 10.9Joerg Bornemann2014-07-241-0/+4
| | | | | Change-Id: I897d4743cefc4e70366c5599c5ba94aadfad70a3 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Add autotest for tracking wildcard-related changes.Christian Kandeler2014-07-233-0/+29
| | | | | | | | Namely, adding and removing files matched by patterns. This does not seem to be explicitly tested anywhere yet. Change-Id: I6d7b79500ee9e7375f22537da5db6a72057bbdee Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* fix build on platforms != OS XJoerg Bornemann2014-07-221-0/+2
| | | | | Change-Id: Ie8f2226c7d9fe69e6c3842bbace8942674c6a959 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Add support for compiling Interface Builder storyboards.Jake Petroules2014-07-224-1/+701
| | | | | | | | As a side effect, some capabilities introduced here also apply to XIBs. Task-number: QBS-466 Change-Id: I27eaf1a9a73ef25475b4f6b2bc971dcd941b6371 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Add support for compiling Xcode asset catalogs.Jake Petroules2014-07-226-0/+57
| | | | | | Task-number: QBS-389 Change-Id: I2d93a55228c6ada801ed889404fac753182b82f6 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* make it possible to set module properties on artifacts in outputArtifactsJoerg Bornemann2014-07-223-1/+15
| | | | | | | | | | | | | | | | | | Example: outputArtifacts: { return [{ fileTags: "blubb", filePath: "x", cpp: { includePaths: "mydir" defines: ["BLA", "BLUBB"] } }] } Task-number: QBS-646 Change-Id: I3defa656e1a5b10fe56e4bbba7c354612144552c Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Add support for compiling OS X icon sets.Jake Petroules2014-07-219-0/+49
| | | | | | Task-number: QBS-493 Change-Id: Ie6e4a00f672ce4305f03e00ec0b0b7ebcbd942c3 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* fix up-to-date check wrt missing file dependenciesJoerg Bornemann2014-07-185-0/+29
| | | | | | | | | Missing file dependencies (e.g. header files that are not part of the project) must trigger a rebuild their dependents. Change-Id: I502e696d886c86a503e8950ae60254075f7e9415 Task-number: QBS-631 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* invalidate artifacts if a dependency is removedJoerg Bornemann2014-07-188-0/+50
| | | | | | | | | | | Artifacts must be invalidated if a dependency is removed. Consider a foo.cpp that includes bar.h. If bar.h is removed from the project, then we must recompile foo.cpp to trigger the compile error that stems from the wrong include. Change-Id: Ifc2bc3085be553f87685a17c5ff05273daa6579c Task-number: QBS-631 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* fix calculation of added/removed artifactsJoerg Bornemann2014-07-171-1/+0
| | | | | | | | | | | We kept lists of added and removed artifacts in ProductBuildData. It was never quite clear when to invalidate those lists, which led to QBS-635. Instead we let the RuleNode decide which artifacts it considers as "added or removed for this rule". Task-number: QBS-635 Change-Id: I390e0ab775c695045c6e91ade3ac7326692cb314 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Take product type changes into account when change tracking.Christian Kandeler2014-07-164-0/+26
| | | | | | | | | | This property is special: We cannot just test for relevance by checking whether it is used in any transformers, because changing it can cause new transformers to get pulled in. Task-number: QBS-650 Change-Id: If18495b47c7238fc8a1256146f4e935ce9655b18 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* deprecate Artifact.fileName in favor of Artifact.filePathJoerg Bornemann2014-07-1617-25/+25
| | | | | | | | This property is actually a file path, not a mere name. Task-number: QBS-579 Change-Id: I04e8f03eac97b5f86fe743a4923888a3d2a82c5d Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Add and make use of convenience item QtGuiApplication.Christian Kandeler2014-07-145-11/+5
| | | | | | | | | | Using this item, building a Qt gui app against a static Qt will work out of the box. Also add the less useful QtApplication for completeness. Change-Id: Idca1dbd3085659ebaf563f7df89f73b9daaf7001 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* remove qbsSettings() functionJoerg Bornemann2014-07-091-15/+16
| | | | | | | | Don't use a special Settings shared pointer. This simplifies the code a lot. Change-Id: I974cf9634d1760633744b1ed3cc18a9458ae2caf Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Allow empty submodules property in Depends item.Christian Kandeler2014-07-093-0/+15
| | | | | | | | | | | | | | | It just means that no dependency should be pulled in by this item. Useful for this kind of thing: Product { Depends { name: "Qt" submodules: theQtSubModulesINeed } property stringList theQtSubModulesIneed // Can be empty. } Change-Id: I8e500c3acfa4374be9005fcf349c0417ad47a76e Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Make it possible to set profiles per product.Christian Kandeler2014-07-022-10/+17
| | | | | | | | | | | Use case 1: Build product A for architecture X and product B for architecture Y (e.g. host tools vs target libraries). Use case 2: Build product A for architectures X and Y and product B only for architecture X (e.g. Android multi-arch packages). Change-Id: I2eb721c37cdd12c298ee12bad60e21e94b04676b Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Merge remote-tracking branch 'origin/1.2'Joerg Bornemann2014-07-023-0/+0
|\ | | | | | | Change-Id: I9d5874b3867d3b366e418ae101c25b518053b00a
| * Remove executable bit from non-executable files.v1.2.21.2Jake Petroules2014-06-163-0/+0
| | | | | | | | | | | | Task-number: QBS-622 Change-Id: I080cff88ffa91fcb55ff8340847b684901ada44b Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Make sure to remove empty parent directories when removing artifacts.Christian Kandeler2014-07-021-1/+0
| | | | | | | | | | | | | | | | | | | | | | We create these directories when we create the artifacts, so we have to remove them when the artifacts are removed. For safety, we do not do that for artifacts located outside of the build directory. Task-number: QBS-630 Change-Id: I4da91a2b940ddea6837cb881bf3dc777b71fe702 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Correctly handle overriding of file tags via an empty list.Christian Kandeler2014-07-024-0/+16
| | | | | | | | | | | | Task-number: QBS-633 Change-Id: I4bf750ff94d6fae38fb3fdb49de265caddcd789e Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Do not lose rescuable artifact data after an incomplete build.Christian Kandeler2014-07-025-0/+113
| | | | | | | | | | | | Task-number: QBS-630 Change-Id: Ib69c541a6c1e228b1ad3c06da51d905194ed10d8 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Add failing autotest for QBS-635.Christian Kandeler2014-06-265-0/+20
| | | | | | | | | | | | Task-number: QBS-635 Change-Id: I30dc4b0694efa0417d340a75368b3af1eb117daa Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* | fix appWithoutSources test on OS XJoerg Bornemann2014-06-161-0/+1
| | | | | | | | | | Change-Id: I6319c2fad4c5aaa81d6942d111663d93951bc18a Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* | fix build directory checks in autotestsJoerg Bornemann2014-06-161-2/+2
| | | | | | | | | | | | | | Those were broken by 1074c99e. Change-Id: Ia2b847d938985f21c8f60bb50fd3f91ffdf02b7b Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* | Merge remote-tracking branch 'origin/1.2'Joerg Bornemann2014-06-132-2/+12
|\| | | | | | | Change-Id: Ic33a2440fae27b4ada5b950f3a411916e8ac17f7
| * 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>
* | Merge remote-tracking branch 'origin/1.2'Joerg Bornemann2014-06-103-0/+42
|\| | | | | | | Change-Id: I603430421156e4d23451a7a4ba0f884d6556f89a
| * 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>
* | fix TestBlackbox::usingsAsSoleInputsNonMultiplexedJoerg Bornemann2014-06-062-3/+3
| | | | | | | | | | | | | | | | Do not add bool to string, and fix the output file names of the custom-plus rule. Change-Id: If5fec2adc43dcf9639c3fd56c5d84693f3d6bc78 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | Fix the ability to use WiX localizations.Jake Petroules2014-06-022-1/+2
| | | | | | | | | | | | Task-number: QBS-604 Change-Id: I028193ad6c5e0bfb4755290ffcd48fe108f6d2b1 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | introduce cpp.entryPointJoerg Bornemann2014-06-021-4/+1
| | | | | | | | | | | | | | | | | | Set cpp.entryPoint to specify the entry point symbol for an executable or dynamic library. Task-number: QBS-602 Change-Id: I83e7c13b4ab7675a1cfa0cc8a2234cba0f850b3d Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
* | Properly treat "usings" as inputs when applying rules.Christian Kandeler2014-06-026-5/+72
| | | | | | | | | | | | | | | | | | This allows non-multiplex rules with only "usings" and no "inputs" to work as expected, that is they create one transformer per "usings" element. Change-Id: Iba5144f81b082043878f3eefc111846b6d05646a Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Fix WiX autotest.Jake Petroules2014-06-022-3/+3
| | | | | | | | | | Change-Id: I2b52a0ef469fd3faa036556babed20300837606d Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Fix "appWithoutSources" blackbox test for Windows.Christian Kandeler2014-05-283-3/+8
| | | | | | | | | | | | | | | | | | The "main" symbol seems to lose its magic if it comes from a library, so tell the linker where the entry point is. For this purpose, use C instead of C++, so we won't have to deal with name mangling. Change-Id: Ia2c0714431a1b54ebcbba3d13851d4cfcf9a6c3e Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | run rules on dependency-only productsJoerg Bornemann2014-05-264-0/+44
| | | | | | | | | | | | | | | | | | This enables compound products that do not provide their own source files but only consist of dependencies. Task-number: QBS-277 Change-Id: I8e3fc5b5e3a85ca2c6fe4890dcd52d3a55cebfe2 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* | Reduce code duplication in blackbox tests.Christian Kandeler2014-05-232-61/+61
| | | | | | | | | | Change-Id: I0154138ca2db91ce5ff04a109fb7e71af1b37c25 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Merge remote-tracking branch 'origin/1.2'Joerg Bornemann2014-05-223-1/+15
|\| | | | | | | Change-Id: I20fc0abcd4c6fa4bfb908d981399f75d50179e97
| * 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>
* | fix TestBlackbox::testTypeScriptJoerg Bornemann2014-05-191-3/+3
| | | | | | | | | | Change-Id: I6e1ef671dbced5d484712b233bf8a7d0f7ca1829 Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
* | fix TestBlackbox::testNodeJsJoerg Bornemann2014-05-161-1/+1
| | | | | | | | | | | | Change-Id: I95783a9ad57b7352b492a0b7712084b1bf6c1101 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com> Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
* | Merge remote-tracking branch 'origin/1.2'Joerg Bornemann2014-05-151-2/+7
|\| | | | | | | Change-Id: I0fb9bb82e951ef10737013886c2b893b5444bc6d
| * 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>
* | make product.buildDirectory available in Probe itemJoerg Bornemann2014-05-141-2/+3
| | | | | | | | | | | | | | | | | | | | As a consequence product.name is evaluated very early and cannot depend on module properties and such. Autotests that used product.name as verification script had to be adjusted accordingly. Task-number: QBS-393 Change-Id: I62ae1a92313af54d9eb15e88b7457388584f7556 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>