diff options
Diffstat (limited to 'tests')
8 files changed, 52 insertions, 0 deletions
diff --git a/tests/auto/blackbox/testdata/scanner-item/modules/m/m.qbs b/tests/auto/blackbox/testdata/scanner-item/modules/m/m.qbs new file mode 100644 index 000000000..9af4cc539 --- /dev/null +++ b/tests/auto/blackbox/testdata/scanner-item/modules/m/m.qbs @@ -0,0 +1,9 @@ +import qbs.FileInfo + +Module { + Scanner { + inputs: "i" + searchPaths: [FileInfo.path(input.filePath)] + scan: ["file.inc"] + } +} diff --git a/tests/auto/blackbox/testdata/scanner-item/scanner-item.qbs b/tests/auto/blackbox/testdata/scanner-item/scanner-item.qbs new file mode 100644 index 000000000..f389651d4 --- /dev/null +++ b/tests/auto/blackbox/testdata/scanner-item/scanner-item.qbs @@ -0,0 +1,24 @@ +import qbs.File +import qbs.FileInfo + +Product { + type: "t" + Depends { name: "m" } + Group { + files: ["subdir1/file1.in", "subdir2/file2.in"] + fileTags: "i" + } + Rule { + inputs: "i" + Artifact { + filePath: FileInfo.baseName(input.fileName) + ".out" + fileTags: "t" + } + prepare: { + var cmd = new JavaScriptCommand(); + cmd.description = "handling " + input.fileName; + cmd.sourceCode = function() { File.copy(input.filePath, output.filePath); }; + return cmd; + } + } +} diff --git a/tests/auto/blackbox/testdata/scanner-item/subdir1/file.inc b/tests/auto/blackbox/testdata/scanner-item/subdir1/file.inc new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/tests/auto/blackbox/testdata/scanner-item/subdir1/file.inc diff --git a/tests/auto/blackbox/testdata/scanner-item/subdir1/file1.in b/tests/auto/blackbox/testdata/scanner-item/subdir1/file1.in new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/tests/auto/blackbox/testdata/scanner-item/subdir1/file1.in diff --git a/tests/auto/blackbox/testdata/scanner-item/subdir2/file.inc b/tests/auto/blackbox/testdata/scanner-item/subdir2/file.inc new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/tests/auto/blackbox/testdata/scanner-item/subdir2/file.inc diff --git a/tests/auto/blackbox/testdata/scanner-item/subdir2/file2.in b/tests/auto/blackbox/testdata/scanner-item/subdir2/file2.in new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/tests/auto/blackbox/testdata/scanner-item/subdir2/file2.in diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp index d1cd1d503..df4a2066f 100644 --- a/tests/auto/blackbox/tst_blackbox.cpp +++ b/tests/auto/blackbox/tst_blackbox.cpp @@ -2410,6 +2410,24 @@ void TestBlackbox::ruleWithNonRequiredInputs() QVERIFY2(m_qbsStdout.contains("Generating"), m_qbsStdout.constData()); } +void TestBlackbox::scannerItem() +{ + QDir::setCurrent(testDataDir + "/scanner-item"); + QCOMPARE(runQbs(), 0); + QVERIFY2(m_qbsStdout.contains("handling file1.in"), m_qbsStdout.constData()); + QVERIFY2(m_qbsStdout.contains("handling file2.in"), m_qbsStdout.constData()); + WAIT_FOR_NEW_TIMESTAMP(); + touch("subdir1/file.inc"); + QCOMPARE(runQbs(), 0); + QVERIFY2(m_qbsStdout.contains("handling file1.in"), m_qbsStdout.constData()); + QVERIFY2(!m_qbsStdout.contains("handling file2.in"), m_qbsStdout.constData()); + WAIT_FOR_NEW_TIMESTAMP(); + touch("subdir2/file.inc"); + QCOMPARE(runQbs(), 0); + QVERIFY2(!m_qbsStdout.contains("handling file1.in"), m_qbsStdout.constData()); + QVERIFY2(m_qbsStdout.contains("handling file2.in"), m_qbsStdout.constData()); +} + void TestBlackbox::setupBuildEnvironment() { QDir::setCurrent(testDataDir + "/setup-build-environment"); diff --git a/tests/auto/blackbox/tst_blackbox.h b/tests/auto/blackbox/tst_blackbox.h index 9a715e721..313ad5d40 100644 --- a/tests/auto/blackbox/tst_blackbox.h +++ b/tests/auto/blackbox/tst_blackbox.h @@ -247,6 +247,7 @@ private slots: void ruleCycle(); void ruleWithNoInputs(); void ruleWithNonRequiredInputs(); + void scannerItem(); void setupBuildEnvironment(); void setupRunEnvironment(); void smartRelinking(); |