Merge lp:~aacid/unity8/make_dash_test_more_stable into lp:unity8

Proposed by Albert Astals Cid
Status: Merged
Approved by: Andrea Cimitan
Approved revision: 2399
Merged at revision: 2437
Proposed branch: lp:~aacid/unity8/make_dash_test_more_stable
Merge into: lp:unity8
Diff against target: 195 lines (+43/-22)
11 files modified
tests/mocks/GSettings.1.0/fake_gsettings.cpp (+1/-0)
tests/mocks/IntegratedLightDM/liblightdm/GreeterPrivate.h (+0/-1)
tests/mocks/Ubuntu/Payments/MockPayments.cpp (+1/-0)
tests/mocks/Unity/Application/MirSurfaceItem.cpp (+1/-0)
tests/mocks/libusermetrics/UserMetrics.cpp (+1/-1)
tests/plugins/Unity/Indicators/MenuContentActivatorTest.cpp (+1/-0)
tests/qmltests/Dash/Previews/tst_PreviewWidgetFactory.qml (+1/-1)
tests/qmltests/Dash/tst_Card.qml (+10/-10)
tests/qmltests/Dash/tst_CardTool.qml (+1/-1)
tests/uqmlscene/main.cpp (+0/-1)
tests/utils/modules/Unity/Test/UnityTestCase.qml (+26/-7)
To merge this branch: bzr merge lp:~aacid/unity8/make_dash_test_more_stable
Reviewer Review Type Date Requested Status
Unity8 CI Bot continuous-integration Approve
Andrea Cimitan (community) Approve
Review via email: mp+294127@code.launchpad.net

Commit message

Make tests a bit more stable

findChild is now stubborn and will try for a bit more before returning a null child

Description of the change

 * Are there any related MPs required for this MP to build/function as expected?
No

 * Did you perform an exploratory manual test run of your code change and any related functionality?
N/A

 * If you changed the packaging (debian), did you subscribe the ubuntu-unity team to this MP?
N/A

 * If you changed the UI, has there been a design review?
N/A

To post a comment you must log in.
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2395
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/1155/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/707
    FAILURE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/707/console
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=phone-armhf,release=vivid+overlay,testname=autopilot.sh/707
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/1548
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1508
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/1508
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1508
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1508/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1508
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1508/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1508
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1508/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1508
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1508/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/1508
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/1508/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/1508
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/1508/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/1155/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Andrea Cimitan (cimi) wrote :

 * Did you perform an exploratory manual test run of the code change and any related functionality?
y
 * Did CI run pass? If not, please explain why.
unrelated

review: Approve
2397. By Albert Astals Cid

reshuffle while

Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2396
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/1200/
Executed test runs:

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/1200/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2397
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/1201/
Executed test runs:
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/738
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/738
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/1609
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1565
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/1565
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1557
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1557/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1557
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1557/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1557
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1557/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1557
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1557/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/1557
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/1557/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/1557
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/1557/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/1201/rebuild

review: Needs Fixing (continuous-integration)
2398. By Albert Astals Cid

Actually pass down the timeout D:

2399. By Albert Astals Cid

use 0 timeout for those global findChilds that testCard has

Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

PASSED: Continuous integration, rev:2399
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/1204/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/743
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/743
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/1615
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1571
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/1571
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1564
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1564/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1564
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1564/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1564
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1564/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1564
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1564/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/1564
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/1564/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/1564
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/1564/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/1204/rebuild

review: Approve (continuous-integration)
2400. By Albert Astals Cid

Merge

2401. By Albert Astals Cid

Set the timeout to 0 in this findChild too

They are not unstable and make the test too slow because of them being global

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'tests/mocks/GSettings.1.0/fake_gsettings.cpp'
2--- tests/mocks/GSettings.1.0/fake_gsettings.cpp 2016-04-14 15:04:29 +0000
3+++ tests/mocks/GSettings.1.0/fake_gsettings.cpp 2016-05-26 14:41:29 +0000
4@@ -22,6 +22,7 @@
5
6 GSettingsControllerQml::GSettingsControllerQml()
7 : m_disableHeight(false)
8+ , m_lockedOutTime(0)
9 , m_usageMode("Staged")
10 , m_autohideLauncher(false)
11 , m_launcherWidth(8)
12
13=== modified file 'tests/mocks/IntegratedLightDM/liblightdm/GreeterPrivate.h'
14--- tests/mocks/IntegratedLightDM/liblightdm/GreeterPrivate.h 2015-01-20 11:50:19 +0000
15+++ tests/mocks/IntegratedLightDM/liblightdm/GreeterPrivate.h 2016-05-26 14:41:29 +0000
16@@ -41,7 +41,6 @@
17 void handleRespond(const QString &response);
18
19 protected:
20- GreeterImpl *m_impl; // if the backend needs more private data
21 Greeter * const q_ptr;
22
23 private:
24
25=== modified file 'tests/mocks/Ubuntu/Payments/MockPayments.cpp'
26--- tests/mocks/Ubuntu/Payments/MockPayments.cpp 2014-09-15 21:32:06 +0000
27+++ tests/mocks/Ubuntu/Payments/MockPayments.cpp 2016-05-26 14:41:29 +0000
28@@ -21,6 +21,7 @@
29
30 MockPayments::MockPayments(QObject *parent)
31 : QObject(parent)
32+ , m_price(0)
33 {
34 }
35
36
37=== modified file 'tests/mocks/Unity/Application/MirSurfaceItem.cpp'
38--- tests/mocks/Unity/Application/MirSurfaceItem.cpp 2016-05-09 08:54:11 +0000
39+++ tests/mocks/Unity/Application/MirSurfaceItem.cpp 2016-05-26 14:41:29 +0000
40@@ -40,6 +40,7 @@
41 MirSurfaceItem::MirSurfaceItem(QQuickItem *parent)
42 : MirSurfaceItemInterface(parent)
43 , m_qmlSurface(nullptr)
44+ , m_qmlContentComponent(nullptr)
45 , m_qmlItem(nullptr)
46 , m_consumesInput(false)
47 , m_surfaceWidth(0)
48
49=== modified file 'tests/mocks/libusermetrics/UserMetrics.cpp'
50--- tests/mocks/libusermetrics/UserMetrics.cpp 2015-09-16 14:34:56 +0000
51+++ tests/mocks/libusermetrics/UserMetrics.cpp 2016-05-26 14:41:29 +0000
52@@ -220,7 +220,7 @@
53 }
54
55 UserMetricsPrivate::UserMetricsPrivate(UserMetrics *parent) :
56- q_ptr(parent), m_firstColor(this), m_secondColor(this)
57+ q_ptr(parent), m_firstColor(this), m_secondColor(this), m_currentDay(0)
58 {
59 m_fakeData.insert("", UserMetricsDataPtr(new UserMetricsData(this)));
60 }
61
62=== modified file 'tests/plugins/Unity/Indicators/MenuContentActivatorTest.cpp'
63--- tests/plugins/Unity/Indicators/MenuContentActivatorTest.cpp 2015-05-21 15:50:16 +0000
64+++ tests/plugins/Unity/Indicators/MenuContentActivatorTest.cpp 2016-05-26 14:41:29 +0000
65@@ -28,6 +28,7 @@
66 public:
67 FakeTimer(QObject *parent = 0)
68 : UnityIndicators::AbstractTimer(parent)
69+ , m_duration(0)
70 {}
71
72 int interval() const override { return m_duration; }
73
74=== modified file 'tests/qmltests/Dash/Previews/tst_PreviewWidgetFactory.qml'
75--- tests/qmltests/Dash/Previews/tst_PreviewWidgetFactory.qml 2015-11-19 16:55:31 +0000
76+++ tests/qmltests/Dash/Previews/tst_PreviewWidgetFactory.qml 2016-05-26 14:41:29 +0000
77@@ -43,7 +43,7 @@
78 name: "PreviewWidgetFactory"
79 when: windowShown
80
81- property Item mockWidget: findChild(factory, "mockPreviewWidget")
82+ property Item mockWidget: findChild(factory, "mockPreviewWidget", 0 /*timeout*/)
83
84 function cleanup() {
85 factory.source = Qt.binding(function() { return factory.widgetSource });
86
87=== modified file 'tests/qmltests/Dash/tst_Card.qml'
88--- tests/qmltests/Dash/tst_Card.qml 2016-05-04 14:09:00 +0000
89+++ tests/qmltests/Dash/tst_Card.qml 2016-05-26 14:41:29 +0000
90@@ -226,16 +226,16 @@
91
92 when: windowShown
93
94- property Item title: findChild(loader, "titleLabel")
95- property Item subtitle: findChild(loader, "subtitleLabel")
96- property var headerRow: findChild(loader, "outerRow")
97- property var art: findChild(loader, "artShape")
98- property Item artImage: findChild(loader, "artImage")
99- property Item summary: findChild(loader, "summaryLabel")
100- property Item background: findChild(loader, "background")
101- property Item backgroundLoader: findChild(loader, "backgroundLoader")
102- property Item backgroundImage: findChild(loader, "backgroundImage")
103- property Item mascotImage: findChild(loader, "mascotImage");
104+ property Item title: findChild(loader, "titleLabel", 0 /*timeout*/)
105+ property Item subtitle: findChild(loader, "subtitleLabel", 0 /*timeout*/)
106+ property var headerRow: findChild(loader, "outerRow", 0 /*timeout*/)
107+ property var art: findChild(loader, "artShape", 0 /*timeout*/)
108+ property Item artImage: findChild(loader, "artImage", 0 /*timeout*/)
109+ property Item summary: findChild(loader, "summaryLabel", 0 /*timeout*/)
110+ property Item background: findChild(loader, "background", 0 /*timeout*/)
111+ property Item backgroundLoader: findChild(loader, "backgroundLoader", 0 /*timeout*/)
112+ property Item backgroundImage: findChild(loader, "backgroundImage", 0 /*timeout*/)
113+ property Item mascotImage: findChild(loader, "mascotImage", 0 /*timeout*/)
114
115 function init() {
116 cardTool.components = Qt.binding(function() { return Helpers.update(JSON.parse(Helpers.defaultLayout), Helpers.tryParse(layoutArea.text, layoutError))['components']; });
117
118=== modified file 'tests/qmltests/Dash/tst_CardTool.qml'
119--- tests/qmltests/Dash/tst_CardTool.qml 2016-02-16 15:29:59 +0000
120+++ tests/qmltests/Dash/tst_CardTool.qml 2016-05-26 14:41:29 +0000
121@@ -240,7 +240,7 @@
122 id: testCase
123 name: "CardTool"
124
125- property var internalCard: findChild(cardTool, "cardToolCard")
126+ property var internalCard: findChild(cardTool, "cardToolCard", 0 /*timeout*/)
127
128 when: windowShown
129
130
131=== modified file 'tests/uqmlscene/main.cpp'
132--- tests/uqmlscene/main.cpp 2015-09-17 12:25:29 +0000
133+++ tests/uqmlscene/main.cpp 2016-05-26 14:41:29 +0000
134@@ -159,7 +159,6 @@
135 bool maximized;
136 bool fullscreen;
137 bool transparent;
138- bool scenegraphOnGraphicsview;
139 bool clip;
140 bool versionDetection;
141 bool quitImmediately;
142
143=== modified file 'tests/utils/modules/Unity/Test/UnityTestCase.qml'
144--- tests/utils/modules/Unity/Test/UnityTestCase.qml 2016-04-27 15:01:10 +0000
145+++ tests/utils/modules/Unity/Test/UnityTestCase.qml 2016-05-26 14:41:29 +0000
146@@ -175,11 +175,11 @@
147
148
149 // Find an object with the given name in the children tree of "obj"
150- function findChild(obj, objectName) {
151+ function findChild(obj, objectName, timeout) {
152 if (!obj)
153 qtest_fail("no obj given", 1);
154
155- return findChildIn(obj, "children", objectName);
156+ return findChildInWithTimeout(obj, "children", objectName, timeout);
157 }
158
159 // Find an object with the given name in the children tree of "obj"
160@@ -187,11 +187,30 @@
161 // Note: you should use findChild if you're not sure you need this
162 // as this tree is much bigger and might contain stuff that goes
163 // away randomly.
164- function findInvisibleChild(obj, objectName) {
165- if (!obj)
166- qtest_fail("no obj given", 1);
167-
168- return findChildIn(obj, "data", objectName);
169+ function findInvisibleChild(obj, objectName, timeout) {
170+ if (!obj)
171+ qtest_fail("no obj given", 1);
172+
173+ return findChildInWithTimeout(obj, "data", objectName, timeout);
174+ }
175+
176+ // Find a child in the named property with timeout
177+ function findChildInWithTimeout(obj, prop, objectName, timeout) {
178+ if (!obj)
179+ qtest_fail("no obj given", 1);
180+
181+ var timeSpent = 0
182+ if (timeout === undefined)
183+ timeout = 5000;
184+
185+ var child = findChildIn(obj, prop, objectName);
186+
187+ while (timeSpent < timeout && !child) {
188+ wait(50)
189+ timeSpent += 50
190+ child = findChildIn(obj, prop, objectName);
191+ }
192+ return child;
193 }
194
195 // Find a child in the named property

Subscribers

People subscribed via source and target branches