Merge lp:~nick-dedekind/unity8/indicator.positions into lp:unity8
- indicator.positions
- Merge into trunk
Status: | Merged |
---|---|
Approved by: | MichaĆ Sawicz |
Approved revision: | 181 |
Merged at revision: | 190 |
Proposed branch: | lp:~nick-dedekind/unity8/indicator.positions |
Merge into: | lp:unity8 |
Diff against target: |
365 lines (+68/-31) 16 files modified
Panel/IndicatorsDataModel.qml (+0/-5) plugins/Unity/Indicators/indicator.cpp (+16/-1) plugins/Unity/Indicators/indicator.h (+5/-0) plugins/Unity/Indicators/indicators.h (+1/-1) plugins/Unity/Indicators/indicatorsmodel.cpp (+10/-5) src/Panel/Indicators/servicefiles/com.canonical.indicator.battery (+1/-0) src/Panel/Indicators/servicefiles/com.canonical.indicator.messages (+1/-0) src/Panel/Indicators/servicefiles/com.canonical.indicator.time (+1/-0) src/Panel/Indicators/servicefiles/com.canonical.settings.network (+1/-0) src/Panel/Indicators/servicefiles/com.canonical.settings.sound (+1/-0) tests/data/unity/indicators/com.canonical.indicator.fake1 (+1/-0) tests/data/unity/indicators/com.canonical.indicator.fake2 (+1/-0) tests/data/unity/indicators/com.canonical.indicator.fake3 (+1/-0) tests/data/unity/indicators/com.canonical.indicator.fake4 (+1/-0) tests/plugins/Unity/Indicators/indicatorsmanagertest.cpp (+1/-0) tests/plugins/Unity/Indicators/indicatorsmodeltest.cpp (+26/-19) |
To merge this branch: | bzr merge lp:~nick-dedekind/unity8/indicator.positions |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
PS Jenkins bot (community) | continuous-integration | Approve | |
Albert Astals Cid (community) | Approve | ||
Review via email: mp+179505@code.launchpad.net |
Commit message
Use key from indicator service file to source indicator positions.
Description of the change
Use key from indicator service file to source indicator positions.
PS Jenkins bot (ps-jenkins) wrote : | # |
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:181
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Albert Astals Cid (aacid) wrote : | # |
Looks and works good
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Autolanding.
More details in the following jenkins job:
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Autolanding.
More details in the following jenkins job:
http://
Executed test runs:
FAILURE: http://
SUCCESS: http://
SUCCESS: http://
FAILURE: http://
FAILURE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
PS Jenkins bot (ps-jenkins) : | # |
Preview Diff
1 | === modified file 'Panel/IndicatorsDataModel.qml' |
2 | --- Panel/IndicatorsDataModel.qml 2013-07-08 11:02:06 +0000 |
3 | +++ Panel/IndicatorsDataModel.qml 2013-08-09 17:42:20 +0000 |
4 | @@ -30,35 +30,30 @@ |
5 | 'indicator-messaging' : { |
6 | 'title': 'Messaging', |
7 | 'description' : '', |
8 | - 'priority': 10, |
9 | 'widgetSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/MessagingIndicatorWidget.qml', |
10 | 'pageSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/MessagingIndicatorPage.qml' |
11 | }, |
12 | 'indicator-sound' : { |
13 | 'title': 'Sound', |
14 | 'description' : '', |
15 | - 'priority': 20, |
16 | 'widgetSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/SoundIndicatorWidget.qml', |
17 | 'pageSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/DefaultIndicatorPage.qml' |
18 | }, |
19 | 'indicator-network' : { |
20 | 'title': 'Networks', |
21 | 'description' : '', |
22 | - 'priority': 30, |
23 | 'widgetSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/NetworkIndicatorWidget.qml', |
24 | 'pageSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/NetworkIndicatorPage.qml' |
25 | }, |
26 | 'indicator-battery' : { |
27 | 'title': 'Battery', |
28 | 'description' : '', |
29 | - 'priority': 40, |
30 | 'widgetSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/DefaultIndicatorWidget.qml', |
31 | 'pageSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/DefaultIndicatorPage.qml' |
32 | }, |
33 | 'indicator-time' : { |
34 | 'title': 'Date and Time', |
35 | 'description' : '', |
36 | - 'priority': 100, |
37 | 'widgetSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/DatetimeIndicatorWidget.qml', |
38 | 'pageSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/DatetimeIndicatorPage.qml' |
39 | } |
40 | |
41 | === modified file 'plugins/Unity/Indicators/indicator.cpp' |
42 | --- plugins/Unity/Indicators/indicator.cpp 2013-06-17 12:27:05 +0000 |
43 | +++ plugins/Unity/Indicators/indicator.cpp 2013-08-09 17:42:20 +0000 |
44 | @@ -22,7 +22,8 @@ |
45 | #include <QStringList> |
46 | |
47 | Indicator::Indicator(QObject *parent) |
48 | - : QObject(parent) |
49 | + : QObject(parent), |
50 | + m_position(0) |
51 | { |
52 | } |
53 | |
54 | @@ -33,6 +34,7 @@ |
55 | void Indicator::init(const QString& busName, const QSettings& settings) |
56 | { |
57 | setId(settings.value("Indicator Service/Name").toString()); |
58 | + setPosition(settings.value("Indicator Service/Position", QVariant::fromValue(0)).toInt()); |
59 | |
60 | QString actionObjectPath = settings.value("Indicator Service/ObjectPath").toString(); |
61 | |
62 | @@ -72,6 +74,19 @@ |
63 | } |
64 | } |
65 | |
66 | +int Indicator::position() const |
67 | +{ |
68 | + return m_position; |
69 | +} |
70 | + |
71 | +void Indicator::setPosition(int position) |
72 | +{ |
73 | + if (position != m_position) { |
74 | + m_position = position; |
75 | + Q_EMIT positionChanged(m_position); |
76 | + } |
77 | +} |
78 | + |
79 | |
80 | QVariant Indicator::indicatorProperties() const |
81 | { |
82 | |
83 | === modified file 'plugins/Unity/Indicators/indicator.h' |
84 | --- plugins/Unity/Indicators/indicator.h 2013-07-17 08:57:57 +0000 |
85 | +++ plugins/Unity/Indicators/indicator.h 2013-08-09 17:42:20 +0000 |
86 | @@ -30,6 +30,7 @@ |
87 | { |
88 | Q_OBJECT |
89 | Q_PROPERTY(QString identifier READ identifier NOTIFY identifierChanged) |
90 | + Q_PROPERTY(int position READ position NOTIFY positionChanged) |
91 | Q_PROPERTY(QVariant indicatorProperties READ indicatorProperties NOTIFY indicatorPropertiesChanged) |
92 | |
93 | public: |
94 | @@ -41,18 +42,22 @@ |
95 | void init(const QString& busName, const QSettings& settings); |
96 | |
97 | QString identifier() const; |
98 | + int position() const; |
99 | QVariant indicatorProperties() const; |
100 | |
101 | Q_SIGNALS: |
102 | void identifierChanged(const QString &identifier); |
103 | + void positionChanged(int position); |
104 | void indicatorPropertiesChanged(const QVariant &properties); |
105 | |
106 | protected: |
107 | void setId(const QString &id); |
108 | + void setPosition(int position); |
109 | void setIndicatorProperties(const QVariant &properties); |
110 | |
111 | private: |
112 | QString m_identifier; |
113 | + int m_position; |
114 | QVariant m_properties; |
115 | }; |
116 | |
117 | |
118 | === modified file 'plugins/Unity/Indicators/indicators.h' |
119 | --- plugins/Unity/Indicators/indicators.h 2013-07-17 08:57:57 +0000 |
120 | +++ plugins/Unity/Indicators/indicators.h 2013-08-09 17:42:20 +0000 |
121 | @@ -73,7 +73,7 @@ |
122 | Q_ENUMS(Roles) |
123 | enum Roles { |
124 | Identifier = 0, |
125 | - Priority, |
126 | + Position, |
127 | Title, |
128 | Description, |
129 | WidgetSource, |
130 | |
131 | === modified file 'plugins/Unity/Indicators/indicatorsmodel.cpp' |
132 | --- plugins/Unity/Indicators/indicatorsmodel.cpp 2013-07-18 15:57:36 +0000 |
133 | +++ plugins/Unity/Indicators/indicatorsmodel.cpp 2013-08-09 17:42:20 +0000 |
134 | @@ -118,8 +118,8 @@ |
135 | int pos = 0; |
136 | while (pos < count()) |
137 | { |
138 | - // keep going while the existing priority is less. |
139 | - if (indicatorData(indicator, IndicatorsModelRole::Priority).toInt() < data(index(pos), IndicatorsModelRole::Priority).toInt()) |
140 | + // keep going while the existing position is greater. (put lower position on end) |
141 | + if (indicator->position() >= data(index(pos), IndicatorsModelRole::Position).toInt()) |
142 | break; |
143 | pos++; |
144 | } |
145 | @@ -200,7 +200,7 @@ |
146 | if (roles.isEmpty()) |
147 | { |
148 | roles[IndicatorsModelRole::Identifier] = "identifier"; |
149 | - roles[IndicatorsModelRole::Priority] = "priority"; |
150 | + roles[IndicatorsModelRole::Position] = "position"; |
151 | roles[IndicatorsModelRole::Title] = "title"; |
152 | roles[IndicatorsModelRole::Description] = "description"; |
153 | roles[IndicatorsModelRole::WidgetSource] = "widgetSource"; |
154 | @@ -222,7 +222,7 @@ |
155 | { |
156 | switch (role) |
157 | { |
158 | - case IndicatorsModelRole::Priority: |
159 | + case IndicatorsModelRole::Position: |
160 | return 0; |
161 | case IndicatorsModelRole::Title: |
162 | return indicator ? indicator->identifier() : "Unknown"; |
163 | @@ -257,6 +257,12 @@ |
164 | return QVariant(indicator->identifier()); |
165 | } |
166 | break; |
167 | + case IndicatorsModelRole::Position: |
168 | + if (indicator) |
169 | + { |
170 | + return QVariant(indicator->position()); |
171 | + } |
172 | + break; |
173 | case IndicatorsModelRole::IndicatorProperties: |
174 | if (indicator) |
175 | { |
176 | @@ -265,7 +271,6 @@ |
177 | break; |
178 | case IndicatorsModelRole::IsValid: |
179 | return (indicator ? true : false); |
180 | - case IndicatorsModelRole::Priority: |
181 | case IndicatorsModelRole::Title: |
182 | case IndicatorsModelRole::Description: |
183 | case IndicatorsModelRole::WidgetSource: |
184 | |
185 | === modified file 'src/Panel/Indicators/servicefiles/com.canonical.indicator.battery' |
186 | --- src/Panel/Indicators/servicefiles/com.canonical.indicator.battery 2013-07-08 11:02:06 +0000 |
187 | +++ src/Panel/Indicators/servicefiles/com.canonical.indicator.battery 2013-08-09 17:42:20 +0000 |
188 | @@ -1,6 +1,7 @@ |
189 | [Indicator Service] |
190 | Name=indicator-battery |
191 | ObjectPath=/com/canonical/indicator/battery |
192 | +Position=40 |
193 | |
194 | [phone] |
195 | ObjectPath=/com/canonical/indicator/battery/phone |
196 | |
197 | === modified file 'src/Panel/Indicators/servicefiles/com.canonical.indicator.messages' |
198 | --- src/Panel/Indicators/servicefiles/com.canonical.indicator.messages 2013-06-07 12:51:16 +0000 |
199 | +++ src/Panel/Indicators/servicefiles/com.canonical.indicator.messages 2013-08-09 17:42:20 +0000 |
200 | @@ -1,6 +1,7 @@ |
201 | [Indicator Service] |
202 | Name=indicator-messaging |
203 | ObjectPath=/com/canonical/indicator/messages |
204 | +Position=50 |
205 | |
206 | [phone] |
207 | ObjectPath=/com/canonical/indicator/messages/phone |
208 | |
209 | === modified file 'src/Panel/Indicators/servicefiles/com.canonical.indicator.time' |
210 | --- src/Panel/Indicators/servicefiles/com.canonical.indicator.time 2013-07-08 11:02:06 +0000 |
211 | +++ src/Panel/Indicators/servicefiles/com.canonical.indicator.time 2013-08-09 17:42:20 +0000 |
212 | @@ -1,6 +1,7 @@ |
213 | [Indicator Service] |
214 | Name=indicator-time |
215 | ObjectPath=/com/canonical/indicator/time |
216 | +Position=20 |
217 | |
218 | [phone] |
219 | ObjectPath=/com/canonical/indicator/time/phone |
220 | |
221 | === modified file 'src/Panel/Indicators/servicefiles/com.canonical.settings.network' |
222 | --- src/Panel/Indicators/servicefiles/com.canonical.settings.network 2013-06-07 12:51:16 +0000 |
223 | +++ src/Panel/Indicators/servicefiles/com.canonical.settings.network 2013-08-09 17:42:20 +0000 |
224 | @@ -1,6 +1,7 @@ |
225 | [Indicator Service] |
226 | Name=indicator-network |
227 | ObjectPath=/com/canonical/settings/network |
228 | +Position=69 |
229 | |
230 | [phone] |
231 | ObjectPath=/com/canonical/settings/network/phone |
232 | |
233 | === modified file 'src/Panel/Indicators/servicefiles/com.canonical.settings.sound' |
234 | --- src/Panel/Indicators/servicefiles/com.canonical.settings.sound 2013-06-07 12:51:16 +0000 |
235 | +++ src/Panel/Indicators/servicefiles/com.canonical.settings.sound 2013-08-09 17:42:20 +0000 |
236 | @@ -1,6 +1,7 @@ |
237 | [Indicator Service] |
238 | Name=indicator-sound |
239 | ObjectPath=/com/canonical/settings/sound |
240 | +Position=30 |
241 | |
242 | [phone] |
243 | ObjectPath=/com/canonical/settings/sound/phone |
244 | |
245 | === modified file 'tests/data/unity/indicators/com.canonical.indicator.fake1' |
246 | --- tests/data/unity/indicators/com.canonical.indicator.fake1 2013-06-12 10:09:43 +0000 |
247 | +++ tests/data/unity/indicators/com.canonical.indicator.fake1 2013-08-09 17:42:20 +0000 |
248 | @@ -1,6 +1,7 @@ |
249 | [Indicator Service] |
250 | Name=indicator-fake1 |
251 | ObjectPath=/com/canonical/indicator/fake1 |
252 | +Position=1 |
253 | |
254 | [phone] |
255 | ObjectPath=/com/canonical/indicator/fake1/phone |
256 | |
257 | === modified file 'tests/data/unity/indicators/com.canonical.indicator.fake2' |
258 | --- tests/data/unity/indicators/com.canonical.indicator.fake2 2013-06-12 10:09:43 +0000 |
259 | +++ tests/data/unity/indicators/com.canonical.indicator.fake2 2013-08-09 17:42:20 +0000 |
260 | @@ -1,6 +1,7 @@ |
261 | [Indicator Service] |
262 | Name=indicator-fake2 |
263 | ObjectPath=/com/canonical/indicator/fake2 |
264 | +Position=0 |
265 | |
266 | [phone] |
267 | ObjectPath=/com/canonical/indicator/fake2/phone |
268 | |
269 | === modified file 'tests/data/unity/indicators/com.canonical.indicator.fake3' |
270 | --- tests/data/unity/indicators/com.canonical.indicator.fake3 2013-06-12 10:09:43 +0000 |
271 | +++ tests/data/unity/indicators/com.canonical.indicator.fake3 2013-08-09 17:42:20 +0000 |
272 | @@ -1,6 +1,7 @@ |
273 | [Indicator Service] |
274 | Name=indicator-fake3 |
275 | ObjectPath=/com/canonical/indicator/fake3 |
276 | +Position=3 |
277 | |
278 | [phone] |
279 | ObjectPath=/com/canonical/indicator/fake3/phone |
280 | |
281 | === modified file 'tests/data/unity/indicators/com.canonical.indicator.fake4' |
282 | --- tests/data/unity/indicators/com.canonical.indicator.fake4 2013-06-12 10:09:43 +0000 |
283 | +++ tests/data/unity/indicators/com.canonical.indicator.fake4 2013-08-09 17:42:20 +0000 |
284 | @@ -1,6 +1,7 @@ |
285 | [Indicator Service] |
286 | Name=indicator-fake4 |
287 | ObjectPath=/com/canonical/indicator/fake4 |
288 | +Position=2 |
289 | |
290 | [phone] |
291 | ObjectPath=/com/canonical/indicator/fake4/phone |
292 | |
293 | === modified file 'tests/plugins/Unity/Indicators/indicatorsmanagertest.cpp' |
294 | --- tests/plugins/Unity/Indicators/indicatorsmanagertest.cpp 2013-07-29 11:29:15 +0000 |
295 | +++ tests/plugins/Unity/Indicators/indicatorsmanagertest.cpp 2013-08-09 17:42:20 +0000 |
296 | @@ -72,6 +72,7 @@ |
297 | QVERIFY(indicator ? true : false); |
298 | |
299 | QCOMPARE(indicator->identifier(), QString("indicator-fake1")); |
300 | + QCOMPARE(indicator->position(), 1); |
301 | |
302 | // Check that the initial properties have been set. |
303 | QVariantMap props = indicator->indicatorProperties().toMap(); |
304 | |
305 | === modified file 'tests/plugins/Unity/Indicators/indicatorsmodeltest.cpp' |
306 | --- tests/plugins/Unity/Indicators/indicatorsmodeltest.cpp 2013-07-29 11:29:15 +0000 |
307 | +++ tests/plugins/Unity/Indicators/indicatorsmodeltest.cpp 2013-08-09 17:42:20 +0000 |
308 | @@ -66,10 +66,10 @@ |
309 | { |
310 | // Priority order. (2, 1, 4, 3) |
311 | QVariantMap map; |
312 | - QVariantMap map1; map1["priority"] = 1; map1["title"] = "fake1"; |
313 | - QVariantMap map2; map2["priority"] = 0; map2["title"] = "fake2"; |
314 | - QVariantMap map3; map3["priority"] = 3; map3["title"] = "fake3"; |
315 | - QVariantMap map4; map4["priority"] = 2; map4["title"] = "fake4"; |
316 | + QVariantMap map1; map1["title"] = "fake1"; |
317 | + QVariantMap map2; map2["title"] = "fake2"; |
318 | + QVariantMap map3; map3["title"] = "fake3"; |
319 | + QVariantMap map4; map4["title"] = "fake4"; |
320 | map["indicator-fake1"] = map1; |
321 | map["indicator-fake2"] = map2; |
322 | map["indicator-fake3"] = map3; |
323 | @@ -79,21 +79,28 @@ |
324 | model.setIndicatorData(map); |
325 | model.load(); |
326 | |
327 | - QCOMPARE(model.data(0, IndicatorsModelRole::Identifier).toString(), QString("indicator-fake2")); |
328 | - QCOMPARE(model.data(0, IndicatorsModelRole::Title).toString(), QString("fake2")); |
329 | - QCOMPARE(model.data(0, IndicatorsModelRole::IndicatorProperties).toMap()["busName"].toString(), QString("com.canonical.indicator.fake2")); |
330 | - |
331 | - QCOMPARE(model.data(1, IndicatorsModelRole::Identifier).toString(), QString("indicator-fake1")); |
332 | - QCOMPARE(model.data(1, IndicatorsModelRole::Title).toString(), QString("fake1")); |
333 | - QCOMPARE(model.data(1, IndicatorsModelRole::IndicatorProperties).toMap()["busName"].toString(), QString("com.canonical.indicator.fake1")); |
334 | - |
335 | - QCOMPARE(model.data(2, IndicatorsModelRole::Identifier).toString(), QString("indicator-fake4")); |
336 | - QCOMPARE(model.data(2, IndicatorsModelRole::Title).toString(), QString("fake4")); |
337 | - QCOMPARE(model.data(2, IndicatorsModelRole::IndicatorProperties).toMap()["busName"].toString(), QString("com.canonical.indicator.fake4")); |
338 | - |
339 | - QCOMPARE(model.data(3, IndicatorsModelRole::Identifier).toString(), QString("indicator-fake3")); |
340 | - QCOMPARE(model.data(3, IndicatorsModelRole::Title).toString(), QString("fake3")); |
341 | - QCOMPARE(model.data(3, IndicatorsModelRole::IndicatorProperties).toMap()["busName"].toString(), QString("com.canonical.indicator.fake3")); |
342 | + // should be in order: |
343 | + // fake3, fake4, fake1, fake2 |
344 | + |
345 | + QCOMPARE(model.data(0, IndicatorsModelRole::Identifier).toString(), QString("indicator-fake3")); |
346 | + QCOMPARE(model.data(0, IndicatorsModelRole::Title).toString(), QString("fake3")); |
347 | + QCOMPARE(model.data(0, IndicatorsModelRole::Position).toInt(), 3); |
348 | + QCOMPARE(model.data(0, IndicatorsModelRole::IndicatorProperties).toMap()["busName"].toString(), QString("com.canonical.indicator.fake3")); |
349 | + |
350 | + QCOMPARE(model.data(1, IndicatorsModelRole::Identifier).toString(), QString("indicator-fake4")); |
351 | + QCOMPARE(model.data(1, IndicatorsModelRole::Title).toString(), QString("fake4")); |
352 | + QCOMPARE(model.data(1, IndicatorsModelRole::Position).toInt(), 2); |
353 | + QCOMPARE(model.data(1, IndicatorsModelRole::IndicatorProperties).toMap()["busName"].toString(), QString("com.canonical.indicator.fake4")); |
354 | + |
355 | + QCOMPARE(model.data(2, IndicatorsModelRole::Identifier).toString(), QString("indicator-fake1")); |
356 | + QCOMPARE(model.data(2, IndicatorsModelRole::Title).toString(), QString("fake1")); |
357 | + QCOMPARE(model.data(2, IndicatorsModelRole::Position).toInt(), 1); |
358 | + QCOMPARE(model.data(2, IndicatorsModelRole::IndicatorProperties).toMap()["busName"].toString(), QString("com.canonical.indicator.fake1")); |
359 | + |
360 | + QCOMPARE(model.data(3, IndicatorsModelRole::Identifier).toString(), QString("indicator-fake2")); |
361 | + QCOMPARE(model.data(3, IndicatorsModelRole::Title).toString(), QString("fake2")); |
362 | + QCOMPARE(model.data(3, IndicatorsModelRole::Position).toInt(), 0); |
363 | + QCOMPARE(model.data(3, IndicatorsModelRole::IndicatorProperties).toMap()["busName"].toString(), QString("com.canonical.indicator.fake2")); |
364 | } |
365 | }; |
366 |
FAILED: Continuous integration, rev:181 jenkins. qa.ubuntu. com/job/ unity8- ci/570/ jenkins. qa.ubuntu. com/job/ generic- mediumtests- saucy/2092 jenkins. qa.ubuntu. com/job/ unity-phablet- qmluitests- saucy/1010/ console jenkins. qa.ubuntu. com/job/ unity8- saucy-armhf- ci/571 jenkins. qa.ubuntu. com/job/ unity8- saucy-armhf- ci/571/ artifact/ work/output/ *zip*/output. zip jenkins. qa.ubuntu. com/job/ unity8- saucy-i386- ci/570 jenkins. qa.ubuntu. com/job/ generic- mediumtests- builder- saucy/2097 jenkins. qa.ubuntu. com/job/ generic- mediumtests- builder- saucy/2097/ artifact/ work/output/ *zip*/output. zip jenkins. qa.ubuntu. com/job/ generic- mediumtests- runner- saucy/1784
http://
Executed test runs:
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild: s-jenkins: 8080/job/ unity8- ci/570/ rebuild
http://