diff options
author | Joerg Bornemann <joerg.bornemann@digia.com> | 2012-12-14 17:51:01 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@digia.com> | 2012-12-16 15:43:58 +0100 |
commit | 159e5e61dbea6283bfc64d6a28bce2f44a1c2b92 (patch) | |
tree | 1f6d9721ed670c1d9499130296dde2738b107250 /tests/auto/language | |
parent | 5879aa0d78ca3a2f53a4efe644565e2b68190aa1 (diff) |
testcase for outer property in groups added
Change-Id: Ib46a92f3887aefcb4ae4351769d1d5acce8e7b4d
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Diffstat (limited to 'tests/auto/language')
-rw-r--r-- | tests/auto/language/language.pro | 3 | ||||
-rw-r--r-- | tests/auto/language/testdata/outerInGroup.qbs | 14 | ||||
-rw-r--r-- | tests/auto/language/tst_language.cpp | 36 | ||||
-rw-r--r-- | tests/auto/language/tst_language.h | 1 |
4 files changed, 53 insertions, 1 deletions
diff --git a/tests/auto/language/language.pro b/tests/auto/language/language.pro index 12295ef45..235e48d52 100644 --- a/tests/auto/language/language.pro +++ b/tests/auto/language/language.pro @@ -16,4 +16,5 @@ SOURCES += \ tst_language.cpp OTHER_FILES += \ - $$PWD/testdata/* + $$PWD/testdata/* \ + testdata/outerInGroup.qbs diff --git a/tests/auto/language/testdata/outerInGroup.qbs b/tests/auto/language/testdata/outerInGroup.qbs new file mode 100644 index 000000000..b5ead48d9 --- /dev/null +++ b/tests/auto/language/testdata/outerInGroup.qbs @@ -0,0 +1,14 @@ +import qbs.base 1.0 + +Project { + Product { + name: "OuterInGroup" + qbs.installPrefix: "/somewhere" + files: ["main.cpp"] + Group { + name: "Special Group" + files: ["aboutdialog.cpp"] + qbs.installPrefix: outer + "/else" + } + } +} diff --git a/tests/auto/language/tst_language.cpp b/tests/auto/language/tst_language.cpp index 0b046e408..59413cd0a 100644 --- a/tests/auto/language/tst_language.cpp +++ b/tests/auto/language/tst_language.cpp @@ -301,6 +301,42 @@ void TestLanguage::jsImportUsedInMultipleScopes() QVERIFY(!exceptionCaught); } +void TestLanguage::outerInGroup() +{ + bool exceptionCaught = false; + try { + ResolvedProjectPtr project = loader->loadProject(SRCDIR "testdata/outerInGroup.qbs", + "/some/build/directory", buildConfig); + QVERIFY(project); + QHash<QString, ResolvedProductPtr> products = productsFromProject(project); + QCOMPARE(products.count(), 1); + ResolvedProductPtr product = products.value("OuterInGroup"); + QVERIFY(product); + QCOMPARE(product->groups.count(), 2); + ResolvedGroup::Ptr group = product->groups.at(0); + QVERIFY(group); + QCOMPARE(group->name, product->name); + QCOMPARE(group->files.count(), 1); + SourceArtifactConstPtr artifact = group->files.first(); + QVariant installPrefix = getConfigProperty(artifact->properties->value(), + QStringList() << "modules" << "qbs" << "installPrefix"); + QCOMPARE(installPrefix.toString(), QString("/somewhere")); + group = product->groups.at(1); + QVERIFY(group); + QCOMPARE(group->name, QString("Special Group")); + QCOMPARE(group->files.count(), 1); + artifact = group->files.first(); + installPrefix = getConfigProperty(artifact->properties->value(), + QStringList() << "modules" << "qbs" << "installPrefix"); + QCOMPARE(installPrefix.toString(), QString("/somewhere/else")); + } + catch (const Error &e) { + exceptionCaught = true; + qDebug() << e.toString(); + } + QCOMPARE(exceptionCaught, false); +} + void TestLanguage::productConditions() { bool exceptionCaught = false; diff --git a/tests/auto/language/tst_language.h b/tests/auto/language/tst_language.h index ee4752050..43a61844e 100644 --- a/tests/auto/language/tst_language.h +++ b/tests/auto/language/tst_language.h @@ -63,6 +63,7 @@ private slots: void identifierSearch(); void jsImportUsedInMultipleScopes_data(); void jsImportUsedInMultipleScopes(); + void outerInGroup(); void productConditions(); void propertiesBlocks_data(); void propertiesBlocks(); |