From bd172083e9b4367aa712b7c4314bff379e6e96ee Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Thu, 31 Jul 2014 18:30:03 +0200 Subject: add test for dynamic multiplex rule inputs Task-number: QBS-645 Change-Id: Ib14533084c575d91cc937ca1f7e05145c06b108f Reviewed-by: Christian Kandeler --- .../dynamicMultiplexRule/dynamicMultiplexRule.qbs | 33 ++++++++++++++++++++++ .../blackbox/testdata/dynamicMultiplexRule/one.txt | 0 .../testdata/dynamicMultiplexRule/three.txt | 0 .../blackbox/testdata/dynamicMultiplexRule/two.txt | 0 tests/auto/blackbox/tst_blackbox.cpp | 14 +++++++++ tests/auto/blackbox/tst_blackbox.h | 1 + 6 files changed, 48 insertions(+) create mode 100644 tests/auto/blackbox/testdata/dynamicMultiplexRule/dynamicMultiplexRule.qbs create mode 100644 tests/auto/blackbox/testdata/dynamicMultiplexRule/one.txt create mode 100644 tests/auto/blackbox/testdata/dynamicMultiplexRule/three.txt create mode 100644 tests/auto/blackbox/testdata/dynamicMultiplexRule/two.txt 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 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 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 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(); -- cgit v1.2.3