aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/language
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@digia.com>2013-02-04 09:19:14 +0100
committerChristian Kandeler <christian.kandeler@digia.com>2013-02-04 11:14:59 +0100
commitc8c85551f819da4e624570dca7cc851dfb9f8d56 (patch)
treef543aa0e0a35b613610a934b13430411935e8632 /tests/auto/language
parent029dfef60f9fc89fab75165fd0135199990c982f (diff)
add autotest for invalid Depends usage
Change-Id: I46a1089323a191c71c00522f1b96c2fdd700039f Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Diffstat (limited to 'tests/auto/language')
-rw-r--r--tests/auto/language/testdata/invaliddepends/submodule_syntax.qbs3
-rw-r--r--tests/auto/language/testdata/invaliddepends/unknown_module.qbs3
-rw-r--r--tests/auto/language/tst_language.cpp28
-rw-r--r--tests/auto/language/tst_language.h2
4 files changed, 36 insertions, 0 deletions
diff --git a/tests/auto/language/testdata/invaliddepends/submodule_syntax.qbs b/tests/auto/language/testdata/invaliddepends/submodule_syntax.qbs
new file mode 100644
index 000000000..4254bb8f6
--- /dev/null
+++ b/tests/auto/language/testdata/invaliddepends/submodule_syntax.qbs
@@ -0,0 +1,3 @@
+Product {
+ Depends { name: "abc.def"; submodules: ["ghi"] }
+}
diff --git a/tests/auto/language/testdata/invaliddepends/unknown_module.qbs b/tests/auto/language/testdata/invaliddepends/unknown_module.qbs
new file mode 100644
index 000000000..dcfc79a9c
--- /dev/null
+++ b/tests/auto/language/testdata/invaliddepends/unknown_module.qbs
@@ -0,0 +1,3 @@
+Product {
+ Depends { name: "neitherModuleNorProduct" }
+}
diff --git a/tests/auto/language/tst_language.cpp b/tests/auto/language/tst_language.cpp
index 1353ce54e..e1ff68167 100644
--- a/tests/auto/language/tst_language.cpp
+++ b/tests/auto/language/tst_language.cpp
@@ -159,6 +159,34 @@ void TestLanguage::conditionalDepends()
QCOMPARE(exceptionCaught, false);
}
+void TestLanguage::invalidDepends_data()
+{
+ QTest::addColumn<QString>("errorMessage");
+ QTest::newRow("unknown_module")
+ << "Product dependency 'neithermodulenorproduct' not found";
+ QTest::newRow("submodule_syntax")
+ << "Depends.submodules cannot be used if name contains a dot";
+}
+
+void TestLanguage::invalidDepends()
+{
+ QFETCH(QString, errorMessage);
+ QString fileName = QString::fromLocal8Bit(QTest::currentDataTag()) + QLatin1String(".qbs");
+ try {
+ defaultParameters.projectFilePath
+ = QString::fromLatin1(SRCDIR "testdata/invaliddepends/") + fileName;
+ loader->loadProject(defaultParameters);
+ } catch (const Error &e) {
+ if (!e.toString().contains(errorMessage)) {
+ qDebug() << "Message: " << e.toString();
+ qDebug() << "Expected: " << errorMessage;
+ QFAIL("Unexpected error message.");
+ }
+ return;
+ }
+ QFAIL("No error thrown on invalid input.");
+}
+
void TestLanguage::groupName()
{
bool exceptionCaught = false;
diff --git a/tests/auto/language/tst_language.h b/tests/auto/language/tst_language.h
index 8fb5f2599..02112c74e 100644
--- a/tests/auto/language/tst_language.h
+++ b/tests/auto/language/tst_language.h
@@ -61,6 +61,8 @@ private slots:
void initTestCase();
void cleanupTestCase();
void conditionalDepends();
+ void invalidDepends_data();
+ void invalidDepends();
void groupName();
void identifierSearch_data();
void identifierSearch();