From afd141c892418419fa0084898c0cc5b03a69f96a Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Tue, 22 Oct 2013 16:28:23 +0200 Subject: Take dependencies into account when tracking changes. They are currently ignored. Change-Id: I94b89f9b7c6838106670d553429b297823ac861f Reviewed-by: Joerg Bornemann --- .../auto/blackbox/testdata/propertyChanges/lib.cpp | 1 + .../blackbox/testdata/propertyChanges/project.qbs | 6 ++++++ tests/auto/blackbox/tst_blackbox.cpp | 21 +++++++++++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 tests/auto/blackbox/testdata/propertyChanges/lib.cpp (limited to 'tests') diff --git a/tests/auto/blackbox/testdata/propertyChanges/lib.cpp b/tests/auto/blackbox/testdata/propertyChanges/lib.cpp new file mode 100644 index 000000000..56757a701 --- /dev/null +++ b/tests/auto/blackbox/testdata/propertyChanges/lib.cpp @@ -0,0 +1 @@ +void f() {} diff --git a/tests/auto/blackbox/testdata/propertyChanges/project.qbs b/tests/auto/blackbox/testdata/propertyChanges/project.qbs index 13c568ec5..9b23e08d7 100644 --- a/tests/auto/blackbox/testdata/propertyChanges/project.qbs +++ b/tests/auto/blackbox/testdata/propertyChanges/project.qbs @@ -9,6 +9,7 @@ Project { files: "source1.cpp" } CppApplication { + Depends { name: 'library' } name: "product 2" cpp.defines: project.projectDefines files: "source2.cpp" @@ -18,6 +19,11 @@ Project { cpp.defines: qbs.getenv("QBS_BLACKBOX_DEFINE") files: "source3.cpp" } + DynamicLibrary { + name: "library" + Depends { name: "cpp" } + files: "lib.cpp" + } Product { name: "generated text file" diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp index 0d378259f..8cbbbb50a 100644 --- a/tests/auto/blackbox/tst_blackbox.cpp +++ b/tests/auto/blackbox/tst_blackbox.cpp @@ -1040,6 +1040,7 @@ void TestBlackbox::propertyChanges() QVERIFY(m_qbsStdout.contains("compiling source1.cpp")); QVERIFY(m_qbsStdout.contains("compiling source2.cpp")); QVERIFY(m_qbsStdout.contains("compiling source3.cpp")); + QVERIFY(m_qbsStdout.contains("compiling lib.cpp")); QVERIFY(m_qbsStdout.contains("linking product 1.debug")); QVERIFY(m_qbsStdout.contains("generated.txt")); QFile generatedFile(buildDir + QLatin1String("/generated.txt")); @@ -1052,6 +1053,7 @@ void TestBlackbox::propertyChanges() QVERIFY(!m_qbsStdout.contains("compiling source1.cpp")); QVERIFY(!m_qbsStdout.contains("compiling source2.cpp")); QVERIFY(!m_qbsStdout.contains("compiling source3.cpp")); + QVERIFY(!m_qbsStdout.contains("compiling lib.cpp.cpp")); QVERIFY(!m_qbsStdout.contains("linking")); QVERIFY(!m_qbsStdout.contains("generated.txt")); @@ -1064,6 +1066,7 @@ void TestBlackbox::propertyChanges() QVERIFY(!m_qbsStdout.contains("compiling source1.cpp")); QVERIFY(!m_qbsStdout.contains("compiling source2.cpp")); QVERIFY(!m_qbsStdout.contains("compiling source3.cpp")); + QVERIFY(!m_qbsStdout.contains("compiling lib.cpp")); QVERIFY(!m_qbsStdout.contains("linking")); QVERIFY(!m_qbsStdout.contains("generated.txt")); @@ -1080,6 +1083,7 @@ void TestBlackbox::propertyChanges() QVERIFY(m_qbsStdout.contains("linking product 1.debug")); QVERIFY(!m_qbsStdout.contains("linking product 2")); QVERIFY(!m_qbsStdout.contains("linking product 3")); + QVERIFY(!m_qbsStdout.contains("linking library")); QVERIFY(!m_qbsStdout.contains("generated.txt")); // Incremental build, input property changed via project for second product. @@ -1129,6 +1133,7 @@ void TestBlackbox::propertyChanges() QVERIFY(m_qbsStdout.contains("linking product 1.release")); QVERIFY(m_qbsStdout.contains("compiling source2.cpp")); QVERIFY(m_qbsStdout.contains("compiling source3.cpp")); + QVERIFY(m_qbsStdout.contains("compiling lib.cpp")); QVERIFY(!m_qbsStdout.contains("generated.txt")); QCOMPARE(runQbs(), 0); QVERIFY(m_qbsStdout.contains("compiling source1.cpp")); @@ -1137,6 +1142,21 @@ void TestBlackbox::propertyChanges() QVERIFY(m_qbsStdout.contains("compiling source3.cpp")); QVERIFY(!m_qbsStdout.contains("generated.txt")); + // Incremental build, non-essential dependency removed. + waitForNewTimestamp(); + QVERIFY(projectFile.open(QIODevice::ReadWrite)); + contents = projectFile.readAll(); + contents.replace("Depends { name: 'library' }", "// Depends { name: 'library' }"); + projectFile.resize(0); + projectFile.write(contents); + projectFile.close(); + QCOMPARE(runQbs(), 0); + QVERIFY(!m_qbsStdout.contains("linking product 1")); + QVERIFY(m_qbsStdout.contains("linking product 2")); + QVERIFY(!m_qbsStdout.contains("linking product 3")); + QVERIFY(!m_qbsStdout.contains("linking library")); + QVERIFY(!m_qbsStdout.contains("generated.txt")); + // Incremental build, prepare script of a transformer changed. waitForNewTimestamp(); QVERIFY(projectFile.open(QIODevice::ReadWrite)); @@ -1149,6 +1169,7 @@ void TestBlackbox::propertyChanges() QVERIFY(!m_qbsStdout.contains("compiling source1.cpp")); QVERIFY(!m_qbsStdout.contains("compiling source2.cpp")); QVERIFY(!m_qbsStdout.contains("compiling source3.cpp")); + QVERIFY(!m_qbsStdout.contains("compiling lib.cpp")); QVERIFY(m_qbsStdout.contains("generated.txt")); QVERIFY(generatedFile.open(QIODevice::ReadOnly)); QCOMPARE(generatedFile.readAll(), QByteArray("contents 2")); -- cgit v1.2.1