diff options
author | Joerg Bornemann <joerg.bornemann@digia.com> | 2014-07-16 18:50:45 +0200 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@digia.com> | 2014-07-18 10:57:50 +0200 |
commit | dce309bf4e18cc20f3f9b03fbd33f63f5c60d025 (patch) | |
tree | 117edb10fc3dd42b4a4b6591c23897589669f9c9 /tests/auto/blackbox | |
parent | bbdf9592d14dfb9cc771e0fed4881428830d916f (diff) |
invalidate artifacts if a dependency is removed
Artifacts must be invalidated if a dependency is removed.
Consider a foo.cpp that includes bar.h. If bar.h is removed from the
project, then we must recompile foo.cpp to trigger the compile error
that stems from the wrong include.
Change-Id: Ifc2bc3085be553f87685a17c5ff05273daa6579c
Task-number: QBS-631
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Diffstat (limited to 'tests/auto/blackbox')
8 files changed, 50 insertions, 0 deletions
diff --git a/tests/auto/blackbox/testdata/renameDependency/after/lib2.cpp b/tests/auto/blackbox/testdata/renameDependency/after/lib2.cpp new file mode 100644 index 000000000..cf45da25a --- /dev/null +++ b/tests/auto/blackbox/testdata/renameDependency/after/lib2.cpp @@ -0,0 +1,7 @@ +#include "lib2.h" +#include <iostream> + +void print_two_numbers(int a, int b, int c) +{ + std::cout << "a=" << a << ", b=" << b << ", c=" << c << std::endl; +} diff --git a/tests/auto/blackbox/testdata/renameDependency/after/lib2.h b/tests/auto/blackbox/testdata/renameDependency/after/lib2.h new file mode 100644 index 000000000..30e6c55fb --- /dev/null +++ b/tests/auto/blackbox/testdata/renameDependency/after/lib2.h @@ -0,0 +1 @@ +void print_two_numbers(int a, int b, int c); diff --git a/tests/auto/blackbox/testdata/renameDependency/before/lib.cpp b/tests/auto/blackbox/testdata/renameDependency/before/lib.cpp new file mode 100644 index 000000000..9ad8f3857 --- /dev/null +++ b/tests/auto/blackbox/testdata/renameDependency/before/lib.cpp @@ -0,0 +1,7 @@ +#include "lib.h" +#include <iostream> + +void print_two_numbers(int a, int b/*, int c*/) +{ + std::cout << "a=" << a << ", b=" << b /*<< ", c=" << c */ << std::endl; +} diff --git a/tests/auto/blackbox/testdata/renameDependency/before/lib.h b/tests/auto/blackbox/testdata/renameDependency/before/lib.h new file mode 100644 index 000000000..b98a95484 --- /dev/null +++ b/tests/auto/blackbox/testdata/renameDependency/before/lib.h @@ -0,0 +1 @@ +void print_two_numbers(int a, int b/*, int c*/); diff --git a/tests/auto/blackbox/testdata/renameDependency/before/main.cpp b/tests/auto/blackbox/testdata/renameDependency/before/main.cpp new file mode 100644 index 000000000..d78950ee9 --- /dev/null +++ b/tests/auto/blackbox/testdata/renameDependency/before/main.cpp @@ -0,0 +1,8 @@ +#include <iostream> +#include "lib.h" + +int main() +{ + print_two_numbers(2, 3); + return 0; +} diff --git a/tests/auto/blackbox/testdata/renameDependency/before/renameDependency.qbs b/tests/auto/blackbox/testdata/renameDependency/before/renameDependency.qbs new file mode 100644 index 000000000..e6f3cf66b --- /dev/null +++ b/tests/auto/blackbox/testdata/renameDependency/before/renameDependency.qbs @@ -0,0 +1,5 @@ +import qbs + +CppApplication { + files: ["*.cpp", "*.h"] +} diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp index f998f8b95..30cf99cd1 100644 --- a/tests/auto/blackbox/tst_blackbox.cpp +++ b/tests/auto/blackbox/tst_blackbox.cpp @@ -662,6 +662,26 @@ void TestBlackbox::rc() QCOMPARE(rcFileWasCompiled, HostOsInfo::isWindowsHost()); } +void TestBlackbox::renameDependency() +{ + QDir::setCurrent(testDataDir + "/renameDependency"); + if (QFile::exists("work")) + rmDirR("work"); + QDir().mkdir("work"); + ccp("before", "work"); + QDir::setCurrent(testDataDir + "/renameDependency/work"); + QCOMPARE(runQbs(), 0); + + waitForNewTimestamp(); + QFile::remove("lib.h"); + QFile::remove("lib.cpp"); + ccp("../after", "."); + QbsRunParameters params; + params.expectFailure = true; + QVERIFY(runQbs(params) != 0); + QVERIFY(m_qbsStdout.contains("compiling main.cpp")); +} + void TestBlackbox::renameProduct() { QDir::setCurrent(testDataDir + "/renameProduct"); diff --git a/tests/auto/blackbox/tst_blackbox.h b/tests/auto/blackbox/tst_blackbox.h index aa8310a28..c975a9815 100644 --- a/tests/auto/blackbox/tst_blackbox.h +++ b/tests/auto/blackbox/tst_blackbox.h @@ -147,6 +147,7 @@ private slots: void exportWithRecursiveDepends(); void fileTagger(); void rc(); + void renameDependency(); void renameProduct(); void renameTargetArtifact(); void softDependency(); |