aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/blackbox/testdata/dynamicMultiplexRule/dynamicMultiplexRule.qbs33
-rw-r--r--tests/auto/blackbox/testdata/dynamicMultiplexRule/one.txt0
-rw-r--r--tests/auto/blackbox/testdata/dynamicMultiplexRule/three.txt0
-rw-r--r--tests/auto/blackbox/testdata/dynamicMultiplexRule/two.txt0
-rw-r--r--tests/auto/blackbox/tst_blackbox.cpp14
-rw-r--r--tests/auto/blackbox/tst_blackbox.h1
6 files changed, 48 insertions, 0 deletions
diff --git a/tests/auto/blackbox/testdata/dynamicMultiplexRule/dynamicMultiplexRule.qbs b/tests/auto/blackbox/testdata/dynamicMultiplexRule/dynamicMultiplexRule.qbs
new file mode 100644
index 000000000..d5315ac45
--- /dev/null
+++ b/tests/auto/blackbox/testdata/dynamicMultiplexRule/dynamicMultiplexRule.qbs
@@ -0,0 +1,33 @@
+import qbs
+import qbs.TextFile
+
+Project {
+ Product {
+ type: ["stuff"]
+ Group {
+ files: ["one.txt", "two.txt", "three.txt"]
+ fileTags: ["text"]
+ }
+ Rule {
+ multiplex: true
+ inputs: "text"
+ outputFileTags: ["stuff"]
+ outputArtifacts: {
+ return [{
+ filePath: "stuff-from-" + inputs.text.length + "-inputs",
+ fileTags: ["stuff"]
+ }];
+ }
+ prepare: {
+ var cmd = new JavaScriptCommand();
+ cmd.silent = true;
+ cmd.sourceCode = function() {
+ var f = new TextFile(output.filePath, TextFile.WriteOnly);
+ f.write("narf!");
+ f.close();
+ }
+ return cmd;
+ }
+ }
+ }
+}
diff --git a/tests/auto/blackbox/testdata/dynamicMultiplexRule/one.txt b/tests/auto/blackbox/testdata/dynamicMultiplexRule/one.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/auto/blackbox/testdata/dynamicMultiplexRule/one.txt
diff --git a/tests/auto/blackbox/testdata/dynamicMultiplexRule/three.txt b/tests/auto/blackbox/testdata/dynamicMultiplexRule/three.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/auto/blackbox/testdata/dynamicMultiplexRule/three.txt
diff --git a/tests/auto/blackbox/testdata/dynamicMultiplexRule/two.txt b/tests/auto/blackbox/testdata/dynamicMultiplexRule/two.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/auto/blackbox/testdata/dynamicMultiplexRule/two.txt
diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp
index b9cc46c45..f995ef3ec 100644
--- a/tests/auto/blackbox/tst_blackbox.cpp
+++ b/tests/auto/blackbox/tst_blackbox.cpp
@@ -1540,6 +1540,20 @@ void TestBlackbox::dynamicLibs()
QCOMPARE(runQbs(), 0);
}
+void TestBlackbox::dynamicMultiplexRule()
+{
+ const QString testDir = testDataDir + "/dynamicMultiplexRule";
+ QDir::setCurrent(testDir);
+ QCOMPARE(runQbs(), 0);
+ const QString outputFilePath = productBuildDir("dynamicMultiplexRule") + "/stuff-from-3-inputs";
+ QVERIFY(regularFileExists(outputFilePath));
+ waitForNewTimestamp();
+ touch("two.txt");
+ QCOMPARE(runQbs(), 0);
+ QEXPECT_FAIL("", "QBS-645", Abort);
+ QVERIFY(regularFileExists(outputFilePath));
+}
+
void TestBlackbox::dynamicRuleOutputs()
{
const QString testDir = testDataDir + "/dynamicRuleOutputs";
diff --git a/tests/auto/blackbox/tst_blackbox.h b/tests/auto/blackbox/tst_blackbox.h
index 3b155e1d9..6b63343ef 100644
--- a/tests/auto/blackbox/tst_blackbox.h
+++ b/tests/auto/blackbox/tst_blackbox.h
@@ -112,6 +112,7 @@ private slots:
void duplicateProductNames();
void duplicateProductNames_data();
void dynamicLibs();
+ void dynamicMultiplexRule();
void dynamicRuleOutputs();
void emptyFileTagList();
void emptySubmodulesList();