fix storing/loading of null string values

There was no distinction between empty strings and null strings when
storing/loading values. This led to surprising empty strings where
undefined values were expected in JavaScript.

Change-Id: Iadb0507632e468a6da58ef6c0bda7916d350e49e
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Fix autotest on Windows.

Library symbol export problem again.

Change-Id: Icd728dd07d2502b9a96b14a77f03020e6cffb303
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Merge remote-tracking branch 'origin/1.3'

Change-Id: I5a1b6f7e9c41420d45f7ad8c6935794b7e03b7e8
Speed up autotest execution on Unix.

Make use of the fact that waiting for a new timestamp takes on average
considerably less time than the full resolution.
Also remove some calls to waitForNewTimestamp() from a test where that
made no sense at all.

Change-Id: I8728d5de63411f1048218749854a48a70bc14630
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
API test: Make defaultSetupParameters() smarter.

It now takes the project file path and can derive a couple of things
from that, so the calling functions need to do less.
With the newly introduced conventions, it is no longer possible to share
test data with the blackbox tests, so copy the respective directories.

Change-Id: I311d982364a87188441bc6f7fedda71d025acc38
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Add missing member initialization in BuildOptions class.

The member specifying whether to check timestamps of generated artifacts
had a random value in a default-constructed object, which lead to
"interesting" behavior.

Change-Id: Id12a94832451bbe18791139687ea10d67da829c3
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Merge remote-tracking branch 'origin/1.3'

Change-Id: I3a1a9f0ab892034853d783fcd82d3ec4e6fa388c
Cpp module: Add property cxxLanguageVersion.

For simple enabling of C++11.

Change-Id: Ie8dbebd5d903388ed87c23005ae56f104437a106
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Fix ib module.

Artifact.condition is now a syntax error (and it didn't actually work
before either).

Change-Id: Ie3bdc8d2580b227d460226ccba5c425e9d540226
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
do not distinguish between internal and external module names

Hierarchical module names (e.g. "Qt.core") were represented
internally with slashes ("Qt/core"). There's no good reason for doing
this.

Change-Id: Ia9e8d5dcc1a09a8232d69b8557ac8c0e53d27a1f
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Turn some blackbox tests into API tests.

Different test executables can run in parallel, whereas the functions
within one test executable cannot. This means that tst_blackbox is
currently a bottleneck, as it takes an order of magnitude longer
than all other tests combined. We therefore turn a number of blackbox
tests into API tests (most tests work equally well in either).
The run-time of these two test executables is now about the same, and as
a result, the time it takes to run "make check" has almost halved.

Change-Id: I55ef43a60588f86a8438bdecb7795aca0880efd0
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Fix race condition in API test.

The waitForFinished() function will run indefinitely if the job has
already finished. This can happen in the projectLocking test, which
calls the function for two jobs, but cannot know which one of them will
finish first.

Change-Id: I44c3e0550c0a287d96b0a79a9064455ecaaf7437
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Fix compiler warning in API test.

Move helper function for changeContent test into the #ifdef.

Change-Id: I0627023bde3a7814036e929c9c5df050b783c12d
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
support module names with more than one dot

It's now possible to deeply nest modules in hierarchies that are deeper
than two. This restriction was arbitrary and quite pointless.

Task-number: QBS-666
Change-Id: Id2702073e95d26cee38e9852a70f817f59506073
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
support product dependencies with dots

Depends items with dots were always interpreted as module dependencies.
It's now possible to refer to products that have dots in their names.

Task-number: QBS-665
Change-Id: I481d714d2d496cc62044197d0fdf8f7dd1e10224
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Remove calls to qSleep() from blackbox tests.

These were left over from older, more primitive times.

Change-Id: Ieb877c7593dadfc7827e83ab7991745d7e706157
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Core library: Do not depend on Qt GUI module unconditionally.

This was missed in 0ebf1bfa33.

Task-number: QBS-565
Change-Id: I34a4b2c37b32749c94c045de0a2f7a628f4b0ada
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
remove unused member from Item class

Change-Id: I045279dd983c13640f65f08229fc8e6a65e4f642
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
add missing member copy in Item::clone

This has no immediate effect as we're not cloning module instances at
the moment, but needs to be added for the sake of correctness.

Change-Id: I389519efae2ffad4c2710d3d36ee1077e5de982a
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Merge remote-tracking branch 'origin/1.3' into master

Change-Id: I993334f861aab911efbea2a6a9f60ce2d6a1a484