aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/blackbox/tst_blackbox.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/blackbox/tst_blackbox.cpp')
-rw-r--r--tests/auto/blackbox/tst_blackbox.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp
index dd9719b09..8d2f6dbdb 100644
--- a/tests/auto/blackbox/tst_blackbox.cpp
+++ b/tests/auto/blackbox/tst_blackbox.cpp
@@ -589,6 +589,41 @@ void TestBlackbox::trackAddFile()
QCOMPARE(unchangedObjectFileTime1, unchangedObjectFileTime2);
}
+void TestBlackbox::trackExternalProductChanges()
+{
+ QDir::setCurrent(testDataDir + "/trackExternalProductChanges");
+ QCOMPARE(runQbs(), 0);
+ QVERIFY(m_qbsStdout.contains("compiling main.cpp"));
+ QVERIFY(!m_qbsStdout.contains("compiling environmentChange.cpp"));
+ QVERIFY(!m_qbsStdout.contains("compiling jsFileChange.cpp"));
+
+ QbsRunParameters params;
+ params.environment.insert("QBS_TEST_PULL_IN_FILE_VIA_ENV", "1");
+ QCOMPARE(runQbs(params), 0);
+ QVERIFY(!m_qbsStdout.contains("compiling main.cpp"));
+ QVERIFY(m_qbsStdout.contains("compiling environmentChange.cpp"));
+ QVERIFY(!m_qbsStdout.contains("compiling jsFileChange.cpp"));
+
+ rmDirR(buildDir);
+ QCOMPARE(runQbs(), 0);
+ QVERIFY(m_qbsStdout.contains("compiling main.cpp"));
+ QVERIFY(!m_qbsStdout.contains("compiling environmentChange.cpp"));
+ QVERIFY(!m_qbsStdout.contains("compiling jsFileChange.cpp"));
+
+ waitForNewTimestamp();
+ QFile jsFile("fileList.js");
+ QVERIFY(jsFile.open(QIODevice::ReadWrite));
+ QByteArray jsCode = jsFile.readAll();
+ jsCode.replace("[]", "['jsFileChange.cpp']");
+ jsFile.resize(0);
+ jsFile.write(jsCode);
+ jsFile.close();
+ QCOMPARE(runQbs(), 0);
+ QVERIFY(!m_qbsStdout.contains("compiling main.cpp"));
+ QVERIFY(!m_qbsStdout.contains("compiling environmentChange.cpp"));
+ QVERIFY(m_qbsStdout.contains("compiling jsFileChange.cpp"));
+}
+
void TestBlackbox::trackRemoveFile()
{
QProcess process;