aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2017-11-09 11:45:02 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2017-11-30 09:35:35 +0000
commit8022fd9a5c43daf16f5409a9a6b14f4ac762763b (patch)
tree5e2311a693b598dc640fb5b01fec68ca878500d5 /tests
parentc666376f2ec2bd0f94727241f21b9d3b1efea736 (diff)
Consider imported files when tracking changes to Probe.configure
Change-Id: Iafe068bffd926642ad0f07160e13b0ab5715a0db Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/blackbox/testdata/import-change-tracking/import-change-tracking-product.qbs21
-rw-r--r--tests/auto/blackbox/testdata/import-change-tracking/probe1.js3
-rw-r--r--tests/auto/blackbox/testdata/import-change-tracking/probe2.js1
-rw-r--r--tests/auto/blackbox/tst_blackbox.cpp41
4 files changed, 66 insertions, 0 deletions
diff --git a/tests/auto/blackbox/testdata/import-change-tracking/import-change-tracking-product.qbs b/tests/auto/blackbox/testdata/import-change-tracking/import-change-tracking-product.qbs
index f7e9bc5de..c229de889 100644
--- a/tests/auto/blackbox/testdata/import-change-tracking/import-change-tracking-product.qbs
+++ b/tests/auto/blackbox/testdata/import-change-tracking/import-change-tracking-product.qbs
@@ -2,12 +2,14 @@ import qbs
import "irrelevant.js" as Irrelevant
import "custom1prepare1.js" as Custom1Prepare
import "custom2prepare" as Custom2Prepare
+import "probe1.js" as ProbeFunc
Product {
name: "customProduct"
type: ["custom1", "custom2"]
property string irrelevant: Irrelevant.irrelevant()
+ property string dummy: probe1.result
Group {
files: "input1.txt"
@@ -34,4 +36,23 @@ Product {
return Custom2Prepare.prepare();
}
}
+
+ Probe {
+ id: probe1
+ property string input: Irrelevant.irrelevant()
+ property string result
+ configure: {
+ found = true;
+ console.info("running probe1");
+ return ProbeFunc.probe1Func();
+ }
+ }
+
+ Probe {
+ id: probe2
+ configure: {
+ console.info("running probe2");
+ found = true;
+ }
+ }
}
diff --git a/tests/auto/blackbox/testdata/import-change-tracking/probe1.js b/tests/auto/blackbox/testdata/import-change-tracking/probe1.js
new file mode 100644
index 000000000..f9cb64dd0
--- /dev/null
+++ b/tests/auto/blackbox/testdata/import-change-tracking/probe1.js
@@ -0,0 +1,3 @@
+var Probe2 = require("./probe2.js")
+
+function probe1Func() { return Probe2.probe2Func(); }
diff --git a/tests/auto/blackbox/testdata/import-change-tracking/probe2.js b/tests/auto/blackbox/testdata/import-change-tracking/probe2.js
new file mode 100644
index 000000000..563ba6b93
--- /dev/null
+++ b/tests/auto/blackbox/testdata/import-change-tracking/probe2.js
@@ -0,0 +1 @@
+function probe2Func() { return "probeData"; }
diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp
index 15440f838..8f5f73dc6 100644
--- a/tests/auto/blackbox/tst_blackbox.cpp
+++ b/tests/auto/blackbox/tst_blackbox.cpp
@@ -5539,6 +5539,8 @@ void TestBlackbox::importChangeTracking()
QDir::setCurrent(testDataDir + "/import-change-tracking");
QCOMPARE(runQbs(QStringList({"-f", "import-change-tracking.qbs"})), 0);
QVERIFY2(m_qbsStdout.contains("Resolving"), m_qbsStdout.constData());
+ QVERIFY2(m_qbsStdout.contains("running probe1"), m_qbsStdout.constData());
+ QVERIFY2(m_qbsStdout.contains("running probe2"), m_qbsStdout.constData());
QVERIFY2(m_qbsStdout.contains("running custom1 prepare script"), m_qbsStdout.constData());
QVERIFY2(m_qbsStdout.contains("running custom2 prepare script"), m_qbsStdout.constData());
QVERIFY2(m_qbsStdout.contains("running custom1 command"), m_qbsStdout.constData());
@@ -5549,6 +5551,8 @@ void TestBlackbox::importChangeTracking()
touch("irrelevant.js");
QCOMPARE(runQbs(), 0);
QVERIFY2(m_qbsStdout.contains("Resolving"), m_qbsStdout.constData());
+ QVERIFY2(!m_qbsStdout.contains("running probe1 "), m_qbsStdout.constData());
+ QVERIFY2(!m_qbsStdout.contains("running probe2"), m_qbsStdout.constData());
QVERIFY2(!m_qbsStdout.contains("running custom1 prepare script"), m_qbsStdout.constData());
QVERIFY2(!m_qbsStdout.contains("running custom2 prepare script"), m_qbsStdout.constData());
QVERIFY2(!m_qbsStdout.contains("running custom1 command"), m_qbsStdout.constData());
@@ -5559,6 +5563,8 @@ void TestBlackbox::importChangeTracking()
touch("custom1prepare1.js");
QCOMPARE(runQbs(), 0);
QVERIFY2(m_qbsStdout.contains("Resolving"), m_qbsStdout.constData());
+ QVERIFY2(!m_qbsStdout.contains("running probe1 "), m_qbsStdout.constData());
+ QVERIFY2(!m_qbsStdout.contains("running probe2"), m_qbsStdout.constData());
QVERIFY2(m_qbsStdout.contains("running custom1 prepare script"), m_qbsStdout.constData());
QVERIFY2(!m_qbsStdout.contains("running custom1 command"), m_qbsStdout.constData());
QVERIFY2(!m_qbsStdout.contains("running custom2 command"), m_qbsStdout.constData());
@@ -5568,6 +5574,8 @@ void TestBlackbox::importChangeTracking()
touch("custom1prepare2.js");
QCOMPARE(runQbs(), 0);
QVERIFY2(m_qbsStdout.contains("Resolving"), m_qbsStdout.constData());
+ QVERIFY2(!m_qbsStdout.contains("running probe1 "), m_qbsStdout.constData());
+ QVERIFY2(!m_qbsStdout.contains("running probe2"), m_qbsStdout.constData());
QVERIFY2(m_qbsStdout.contains("running custom1 prepare script"), m_qbsStdout.constData());
QVERIFY2(!m_qbsStdout.contains("running custom1 command"), m_qbsStdout.constData());
QVERIFY2(!m_qbsStdout.contains("running custom2 command"), m_qbsStdout.constData());
@@ -5577,6 +5585,8 @@ void TestBlackbox::importChangeTracking()
touch("custom1command.js");
QCOMPARE(runQbs(), 0);
QVERIFY2(m_qbsStdout.contains("Resolving"), m_qbsStdout.constData());
+ QVERIFY2(!m_qbsStdout.contains("running probe1 "), m_qbsStdout.constData());
+ QVERIFY2(!m_qbsStdout.contains("running probe2"), m_qbsStdout.constData());
QVERIFY2(m_qbsStdout.contains("running custom1 command"), m_qbsStdout.constData());
QVERIFY2(!m_qbsStdout.contains("running custom2 command"), m_qbsStdout.constData());
@@ -5585,6 +5595,8 @@ void TestBlackbox::importChangeTracking()
touch("custom2prepare/custom2prepare2.js");
QCOMPARE(runQbs(), 0);
QVERIFY2(m_qbsStdout.contains("Resolving"), m_qbsStdout.constData());
+ QVERIFY2(!m_qbsStdout.contains("running probe1 "), m_qbsStdout.constData());
+ QVERIFY2(!m_qbsStdout.contains("running probe2"), m_qbsStdout.constData());
QVERIFY2(m_qbsStdout.contains("running custom2 prepare script"), m_qbsStdout.constData());
QVERIFY2(!m_qbsStdout.contains("running custom1 command"), m_qbsStdout.constData());
QVERIFY2(!m_qbsStdout.contains("running custom2 command"), m_qbsStdout.constData());
@@ -5594,9 +5606,35 @@ void TestBlackbox::importChangeTracking()
touch("imports/custom2command/custom2command1.js");
QCOMPARE(runQbs(), 0);
QVERIFY2(m_qbsStdout.contains("Resolving"), m_qbsStdout.constData());
+ QVERIFY2(!m_qbsStdout.contains("running probe1 "), m_qbsStdout.constData());
+ QVERIFY2(!m_qbsStdout.contains("running probe2"), m_qbsStdout.constData());
QVERIFY2(!m_qbsStdout.contains("running custom1 command"), m_qbsStdout.constData());
QVERIFY2(m_qbsStdout.contains("running custom2 command"), m_qbsStdout.constData());
+ // Change in directly imported file only used by one Probe
+ WAIT_FOR_NEW_TIMESTAMP();
+ touch("probe1.js");
+ QCOMPARE(runQbs(), 0);
+ QVERIFY2(m_qbsStdout.contains("Resolving"), m_qbsStdout.constData());
+ QVERIFY2(m_qbsStdout.contains("running probe1"), m_qbsStdout.constData());
+ QVERIFY2(!m_qbsStdout.contains("running probe2"), m_qbsStdout.constData());
+ QVERIFY2(!m_qbsStdout.contains("running custom1 prepare script"), m_qbsStdout.constData());
+ QVERIFY2(!m_qbsStdout.contains("running custom2 prepare script"), m_qbsStdout.constData());
+ QVERIFY2(!m_qbsStdout.contains("running custom1 command"), m_qbsStdout.constData());
+ QVERIFY2(!m_qbsStdout.contains("running custom2 command"), m_qbsStdout.constData());
+
+ // Change in indirectly imported file only used by one Probe
+ WAIT_FOR_NEW_TIMESTAMP();
+ touch("probe2.js");
+ QCOMPARE(runQbs(), 0);
+ QVERIFY2(m_qbsStdout.contains("Resolving"), m_qbsStdout.constData());
+ QVERIFY2(m_qbsStdout.contains("running probe1"), m_qbsStdout.constData());
+ QVERIFY2(!m_qbsStdout.contains("running probe2"), m_qbsStdout.constData());
+ QVERIFY2(!m_qbsStdout.contains("running custom1 prepare script"), m_qbsStdout.constData());
+ QVERIFY2(!m_qbsStdout.contains("running custom2 prepare script"), m_qbsStdout.constData());
+ QVERIFY2(!m_qbsStdout.contains("running custom1 command"), m_qbsStdout.constData());
+ QVERIFY2(!m_qbsStdout.contains("running custom2 command"), m_qbsStdout.constData());
+
// Change everything at once.
WAIT_FOR_NEW_TIMESTAMP();
touch("irrelevant.js");
@@ -5605,8 +5643,11 @@ void TestBlackbox::importChangeTracking()
touch("custom1command.js");
touch("custom2prepare/custom2prepare1.js");
touch("imports/custom2command/custom2command2.js");
+ touch("probe2.js");
QCOMPARE(runQbs(), 0);
QVERIFY2(m_qbsStdout.contains("Resolving"), m_qbsStdout.constData());
+ QVERIFY2(m_qbsStdout.contains("running probe1"), m_qbsStdout.constData());
+ QVERIFY2(!m_qbsStdout.contains("running probe2"), m_qbsStdout.constData());
QVERIFY2(m_qbsStdout.contains("running custom1 prepare script"), m_qbsStdout.constData());
QVERIFY2(m_qbsStdout.contains("running custom2 prepare script"), m_qbsStdout.constData());
QVERIFY2(m_qbsStdout.contains("running custom1 command"), m_qbsStdout.constData());