Merge lp:~roadmr/ubuntu/quantal/checkbox/0.14.8 into lp:ubuntu/quantal/checkbox

Proposed by Daniel Manrique
Status: Merged
Merged at revision: 53
Proposed branch: lp:~roadmr/ubuntu/quantal/checkbox/0.14.8
Merge into: lp:ubuntu/quantal/checkbox
Diff against target: 4032 lines (+691/-1663)
52 files modified
backend (+7/-3)
checkbox/parsers/udevadm.py (+8/-1)
data/whitelists/default.whitelist (+1/-0)
debian/changelog (+56/-0)
debian/control (+7/-2)
debian/po/ast.po (+2/-2)
debian/po/cs.po (+2/-2)
debian/po/de.po (+2/-2)
debian/po/en_AU.po (+2/-2)
debian/po/en_GB.po (+2/-2)
debian/po/es.po (+4/-3)
debian/po/fr.po (+13/-13)
debian/po/he.po (+2/-2)
debian/po/hu.po (+2/-2)
debian/po/id.po (+2/-2)
debian/po/it.po (+2/-2)
debian/po/ja.po (+2/-2)
debian/po/nl.po (+2/-2)
debian/po/oc.po (+2/-2)
debian/po/pl.po (+2/-2)
debian/po/pt_BR.po (+2/-2)
debian/po/ro.po (+2/-2)
debian/po/ru.po (+2/-2)
debian/po/tr.po (+2/-2)
debian/po/uk.po (+2/-2)
debian/po/zh_CN.po (+2/-2)
debian/po/zh_TW.po (+2/-2)
jobs/cpu.txt.in (+1/-0)
jobs/esata.txt.in (+0/-6)
jobs/firewire.txt.in (+0/-6)
jobs/mediacard.txt.in (+0/-48)
jobs/optical.txt.in (+90/-52)
jobs/resource.txt.in (+1/-1)
jobs/usb.txt.in (+7/-19)
jobs/wireless.txt.in (+17/-3)
plugins/apport_prompt.py (+0/-280)
plugins/backend_info.py (+60/-21)
plugins/suites_prompt.py (+8/-1)
po/POTFILES.in (+0/-1)
po/ar.po (+13/-12)
po/fi.po (+28/-14)
po/fr.po (+131/-109)
po/pt_BR.po (+5/-5)
qt/checkbox-qt.ui (+0/-935)
qt/frontend/qtfront.cpp (+2/-1)
qt/frontend/qtfront.ui (+8/-5)
scripts/display_resource (+84/-0)
scripts/graphics_driver (+81/-50)
scripts/network_info (+15/-2)
scripts/network_wireless_test (+0/-25)
scripts/optical_write_test (+3/-4)
setup.py (+1/-1)
To merge this branch: bzr merge lp:~roadmr/ubuntu/quantal/checkbox/0.14.8
Reviewer Review Type Date Requested Status
Daniel Holbach (community) Approve
Micah Gersten (community) Needs Fixing
Ubuntu branches Pending
Review via email: mp+127923@code.launchpad.net

Description of the change

Another batch of bugfixes for checkbox. Also note a series of translations that were automatically pulled into trunk by Launchpad.

Thanks!

To post a comment you must log in.
Revision history for this message
Micah Gersten (micahg) wrote :

This looks fine except for the following looks like a new feature which probably needs an FFe:
 * scripts/graphics_driver: Added NVIDIA driver detection (LP: #1060211)

Also, you don't mention the running of wrap-and-sort on debian/control

review: Needs Fixing
54. By Daniel Manrique

Added mention of wrap-and-sort

Revision history for this message
Ara Pulido (ara) wrote :

The FFe has been granted by the release team. Can we get the upload now, please?

Revision history for this message
Daniel Holbach (dholbach) wrote :

Uploaded. Sitting in the review queue now.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'backend'
2--- backend 2012-06-26 16:07:04 +0000
3+++ backend 2012-10-05 14:06:24 +0000
4@@ -35,10 +35,14 @@
5 while True:
6 try:
7 message = reader.read_object()
8+ #"unpack" the message
9+ sequence, message = message
10 if message == "stop":
11 break
12 if message == "ping":
13- writer.write_object("pong")
14+ #Build a tuple with the sequence number as
15+ #received
16+ writer.write_object((sequence, "pong",))
17 continue
18 if isinstance(message, dict) and "command" in message:
19 job = Job(message["command"], message.get("environ"),
20@@ -50,8 +54,8 @@
21 status, data, duration = (FAIL, "Decode error", 0,)
22 else:
23 status, data, duration = (FAIL, "", 0,)
24-
25- writer.write_object((status, data, duration,))
26+ #Build a tuple with sequence number
27+ writer.write_object((sequence, (status, data, duration,),))
28 except IOError:
29 break
30
31
32=== modified file 'checkbox/parsers/udevadm.py'
33--- checkbox/parsers/udevadm.py 2012-08-20 18:13:17 +0000
34+++ checkbox/parsers/udevadm.py 2012-10-05 14:06:24 +0000
35@@ -91,6 +91,9 @@
36 if "IFINDEX" in self._environment:
37 return "NETWORK"
38
39+ if self.bus == "ieee80211":
40+ return "WIRELESS"
41+
42 if "PCI_CLASS" in self._environment:
43 pci_class_string = self._environment["PCI_CLASS"]
44 pci_class = int(pci_class_string, 16)
45@@ -156,7 +159,7 @@
46 return "BLUETOOTH"
47
48 if class_id == Pci.BASE_CLASS_BRIDGE \
49- and (subclass_id == Pci.CLASS_BRIDGE_PCMCIA \
50+ and (subclass_id == Pci.CLASS_BRIDGE_PCMCIA
51 or subclass_id == Pci.CLASS_BRIDGE_CARDBUS):
52 return "SOCKET"
53
54@@ -396,6 +399,10 @@
55 if not device.bus:
56 return True
57
58+ # Keep 80211 devices
59+ if device.bus == "ieee80211":
60+ return False
61+
62 # Ignore devices without product information
63 if not device.product and device.product_id is None:
64 return True
65
66=== modified file 'data/whitelists/default.whitelist'
67--- data/whitelists/default.whitelist 2012-08-20 18:13:17 +0000
68+++ data/whitelists/default.whitelist 2012-10-05 14:06:24 +0000
69@@ -114,6 +114,7 @@
70 __optical__
71 optical/detect
72 optical/read
73+optical/read_.*
74 __pcmcia-pcix__
75 pcmcia-pcix/detect
76 __power-management__
77
78=== modified file 'debian/changelog'
79--- debian/changelog 2012-09-26 16:10:55 +0000
80+++ debian/changelog 2012-10-05 14:06:24 +0000
81@@ -1,3 +1,59 @@
82+checkbox (0.14.8) quantal; urgency=low
83+
84+ * New upstream release (LP: #1061359)
85+
86+ * Launchpad automated translation updates
87+
88+ [Sylvain Pineau]
89+ * setup.py, qt/checkbox-qt.ui: Removed the old UI design file (LP: #1049912)
90+ * scripts/display_resource, jobs/resource.txt.in: Added a new display
91+ resource script to properly handle connector names returned by proprietary
92+ drivers (LP: #956139) (LP: #992727)
93+ * jobs/optical.txt.in, scripts/optical_write_test: Filter ANSI escape char
94+ outputed by wodim and removed some stray whitespace (LP: #1052803)
95+ * checkbox/parsers/udevadm.py: Improved wireless devices detection.
96+ The wireless category is now set if the subsystem is equal to ieee80211
97+ (LP: #855382)
98+ * debian/control, jobs/esata.txt.in, jobs/firewire.txt.in, jobs/usb.txt.in,
99+ jobs/mediacard.txt.in: Remove udisks package references in all of the jobs
100+ that use removable_storage scripts (LP: #1059620). Used wrap-and-sort in
101+ debian/control for clarity (Depends).
102+ * scripts/graphics_driver: Added NVIDIA driver detection (LP: #1060211)
103+
104+ [Brendan Donegan]
105+ * jobs/cpu.txt.in - add environ field containing
106+ CHECKBOX_DATA to allow that environment variable to be used in the command
107+ (LP: #1049595)
108+ * jobs/wireless.txt.in - replace use of network_wireless_test in wireless_scanning
109+ with a simple Bash script using nmcli and delete network_wireless_test (LP: #900370)
110+ * [UIFe] qt/frontend/qtfront.ui, qt/frontend/qtfront.cpp - set focus to Continue
111+ button and make it the default so that it can be 'clicked' using Enter,
112+ as well as renaming it to 'continueButton' (LP: #1052506)
113+ * jobs/usb.txt.in - Fix dependencies of USB tests so that things work properly if
114+ the usb/storage-automated test fails (LP: #987876)
115+ * scripts/network_info - add exception handling to file reading so that
116+ sensible values are given if the required file cannot be read (LP: #823606)
117+
118+ [Marc Tardif]
119+ * qt/frontend/qtfront.ui: Fixed warnings when building with
120+ qtcreator (LP: #1053126)
121+ * plugins/suites_prompt.py: Fixed tree view in selection window (LP: #1056432)
122+ * plugins/apport_prompt.py: Removed apport plugin that caused crashes
123+ when trying to send bug report (LP: #1047857)
124+ * jobs/optical.txt.in: Fixed missing category assignment in optical
125+ dvd write tests (LP: #1057762)
126+
127+ [Jeff Marcom]
128+ * jobs/optical.txt.in: Changed optical read/write job commands to use
129+ a more reliable dev path (LP: #990560)
130+
131+ [Daniel Manrique]
132+ * Added consecutive numbering to messages sent to the backend, so the
133+ frontend knows to discard out-of-sequence messages. (LP: #886118)
134+
135+
136+ -- Daniel Manrique <roadmr@ubuntu.com> Wed, 03 Oct 2012 17:23:34 -0400
137+
138 checkbox (0.14.7) quantal; urgency=low
139
140 * New upstream release (LP: #1057001)
141
142=== modified file 'debian/control'
143--- debian/control 2012-08-20 18:13:17 +0000
144+++ debian/control 2012-10-05 14:06:24 +0000
145@@ -19,7 +19,13 @@
146 Package: checkbox
147 Section: python
148 Architecture: any
149-Depends: debconf, python3-lxml, udev, ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}
150+Depends: debconf,
151+ python3-lxml,
152+ udev,
153+ udisks2 | udisks,
154+ ${misc:Depends},
155+ ${python3:Depends},
156+ ${shlibs:Depends}
157 Recommends: dpkg (>= 1.13),
158 gir1.2-gst-plugins-base-0.10 | gir1.2-gst-plugins-base-1.0,
159 gstreamer0.10-gconf | gstreamer1.0-plugins-good,
160@@ -48,7 +54,6 @@
161 sox,
162 stress,
163 sysstat,
164- udisks,
165 wmctrl,
166 wodim
167 Description: System testing application
168
169=== modified file 'debian/po/ast.po'
170--- debian/po/ast.po 2012-09-26 16:10:55 +0000
171+++ debian/po/ast.po 2012-10-05 14:06:24 +0000
172@@ -15,8 +15,8 @@
173 "MIME-Version: 1.0\n"
174 "Content-Type: text/plain; charset=UTF-8\n"
175 "Content-Transfer-Encoding: 8bit\n"
176-"X-Launchpad-Export-Date: 2012-09-11 04:36+0000\n"
177-"X-Generator: Launchpad (build 15924)\n"
178+"X-Launchpad-Export-Date: 2012-09-22 04:32+0000\n"
179+"X-Generator: Launchpad (build 15985)\n"
180
181 #. Type: string
182 #. Description
183
184=== modified file 'debian/po/cs.po'
185--- debian/po/cs.po 2012-09-26 16:10:55 +0000
186+++ debian/po/cs.po 2012-10-05 14:06:24 +0000
187@@ -15,8 +15,8 @@
188 "MIME-Version: 1.0\n"
189 "Content-Type: text/plain; charset=UTF-8\n"
190 "Content-Transfer-Encoding: 8bit\n"
191-"X-Launchpad-Export-Date: 2012-09-11 04:36+0000\n"
192-"X-Generator: Launchpad (build 15924)\n"
193+"X-Launchpad-Export-Date: 2012-09-22 04:32+0000\n"
194+"X-Generator: Launchpad (build 15985)\n"
195
196 #. Type: string
197 #. Description
198
199=== modified file 'debian/po/de.po'
200--- debian/po/de.po 2012-09-26 16:10:55 +0000
201+++ debian/po/de.po 2012-10-05 14:06:24 +0000
202@@ -15,8 +15,8 @@
203 "MIME-Version: 1.0\n"
204 "Content-Type: text/plain; charset=UTF-8\n"
205 "Content-Transfer-Encoding: 8bit\n"
206-"X-Launchpad-Export-Date: 2012-09-11 04:36+0000\n"
207-"X-Generator: Launchpad (build 15924)\n"
208+"X-Launchpad-Export-Date: 2012-09-22 04:32+0000\n"
209+"X-Generator: Launchpad (build 15985)\n"
210
211 #. Type: string
212 #. Description
213
214=== modified file 'debian/po/en_AU.po'
215--- debian/po/en_AU.po 2012-09-26 16:10:55 +0000
216+++ debian/po/en_AU.po 2012-10-05 14:06:24 +0000
217@@ -15,8 +15,8 @@
218 "MIME-Version: 1.0\n"
219 "Content-Type: text/plain; charset=UTF-8\n"
220 "Content-Transfer-Encoding: 8bit\n"
221-"X-Launchpad-Export-Date: 2012-09-11 04:36+0000\n"
222-"X-Generator: Launchpad (build 15924)\n"
223+"X-Launchpad-Export-Date: 2012-09-22 04:32+0000\n"
224+"X-Generator: Launchpad (build 15985)\n"
225
226 #. Type: string
227 #. Description
228
229=== modified file 'debian/po/en_GB.po'
230--- debian/po/en_GB.po 2012-09-26 16:10:55 +0000
231+++ debian/po/en_GB.po 2012-10-05 14:06:24 +0000
232@@ -15,8 +15,8 @@
233 "MIME-Version: 1.0\n"
234 "Content-Type: text/plain; charset=UTF-8\n"
235 "Content-Transfer-Encoding: 8bit\n"
236-"X-Launchpad-Export-Date: 2012-09-11 04:36+0000\n"
237-"X-Generator: Launchpad (build 15924)\n"
238+"X-Launchpad-Export-Date: 2012-09-22 04:32+0000\n"
239+"X-Generator: Launchpad (build 15985)\n"
240
241 #. Type: string
242 #. Description
243
244=== modified file 'debian/po/es.po'
245--- debian/po/es.po 2012-09-26 16:10:55 +0000
246+++ debian/po/es.po 2012-10-05 14:06:24 +0000
247@@ -15,8 +15,8 @@
248 "MIME-Version: 1.0\n"
249 "Content-Type: text/plain; charset=UTF-8\n"
250 "Content-Transfer-Encoding: 8bit\n"
251-"X-Launchpad-Export-Date: 2012-09-11 04:36+0000\n"
252-"X-Generator: Launchpad (build 15924)\n"
253+"X-Launchpad-Export-Date: 2012-09-22 04:32+0000\n"
254+"X-Generator: Launchpad (build 15985)\n"
255
256 #. Type: string
257 #. Description
258@@ -42,7 +42,8 @@
259 #. Description
260 #: ../checkbox.templates:2001
261 msgid "List of jobs to run when testing with checkbox."
262-msgstr "Lista de tareas a ejecutar mientras se realizan pruebas con checkbox."
263+msgstr ""
264+"Lista de tareas a ejecutar mientras se realizan pruebas con checkbox."
265
266 #. Type: string
267 #. Description
268
269=== modified file 'debian/po/fr.po'
270--- debian/po/fr.po 2012-09-26 16:10:55 +0000
271+++ debian/po/fr.po 2012-10-05 14:06:24 +0000
272@@ -8,69 +8,69 @@
273 "Project-Id-Version: checkbox\n"
274 "Report-Msgid-Bugs-To: checkbox@packages.debian.org\n"
275 "POT-Creation-Date: 2012-07-12 15:37-0400\n"
276-"PO-Revision-Date: 2012-08-16 12:53+0000\n"
277-"Last-Translator: gisele perreault <Unknown>\n"
278+"PO-Revision-Date: 2012-09-25 09:16+0000\n"
279+"Last-Translator: Sylvie Gallet <Unknown>\n"
280 "Language-Team: French <fr@li.org>\n"
281 "Language: fr\n"
282 "MIME-Version: 1.0\n"
283 "Content-Type: text/plain; charset=UTF-8\n"
284 "Content-Transfer-Encoding: 8bit\n"
285-"X-Launchpad-Export-Date: 2012-09-11 04:36+0000\n"
286-"X-Generator: Launchpad (build 15924)\n"
287+"X-Launchpad-Export-Date: 2012-09-26 04:32+0000\n"
288+"X-Generator: Launchpad (build 16022)\n"
289
290 #. Type: string
291 #. Description
292 #: ../checkbox.templates:1001
293 msgid "Test suite blacklist:"
294-msgstr ""
295+msgstr "Liste noire de la suite de tests :"
296
297 #. Type: string
298 #. Description
299 #: ../checkbox.templates:1001
300 msgid "List of job files to never run when testing with checkbox."
301-msgstr ""
302+msgstr "Liste des tests à ne jamais lancer avec checkbox."
303
304 #. Type: string
305 #. Description
306 #: ../checkbox.templates:2001
307 msgid "Test suite whitelist:"
308-msgstr ""
309+msgstr "Liste blanche de la suite de tests :"
310
311 #. Type: string
312 #. Description
313 #: ../checkbox.templates:2001
314 msgid "List of jobs to run when testing with checkbox."
315-msgstr ""
316+msgstr "Liste des tests à lancer avec checkbox."
317
318 #. Type: string
319 #. Description
320 #: ../checkbox.templates:3001
321 msgid "Transport URL:"
322-msgstr ""
323+msgstr "URL de transport :"
324
325 #. Type: string
326 #. Description
327 #: ../checkbox.templates:3001
328 msgid "URL where to send submissions."
329-msgstr ""
330+msgstr "Adresse URL où envoyer les rapports."
331
332 #. Type: string
333 #. Description
334 #: ../checkbox.templates:4001
335 msgid "Launchpad E-mail:"
336-msgstr ""
337+msgstr "Adresse courriel de Launchpad :"
338
339 #. Type: string
340 #. Description
341 #: ../checkbox.templates:4001
342 msgid "E-mail address used to sign in to Launchpad."
343-msgstr ""
344+msgstr "Adresse courriel utilisée pour se connecter à Launchpad."
345
346 #. Type: string
347 #. Description
348 #: ../checkbox.templates:5001
349 msgid "HTTP Proxy:"
350-msgstr ""
351+msgstr "Serveur mandataire HTTP :"
352
353 #. Type: string
354 #. Description
355
356=== modified file 'debian/po/he.po'
357--- debian/po/he.po 2012-09-26 16:10:55 +0000
358+++ debian/po/he.po 2012-10-05 14:06:24 +0000
359@@ -15,8 +15,8 @@
360 "MIME-Version: 1.0\n"
361 "Content-Type: text/plain; charset=UTF-8\n"
362 "Content-Transfer-Encoding: 8bit\n"
363-"X-Launchpad-Export-Date: 2012-09-11 04:36+0000\n"
364-"X-Generator: Launchpad (build 15924)\n"
365+"X-Launchpad-Export-Date: 2012-09-22 04:32+0000\n"
366+"X-Generator: Launchpad (build 15985)\n"
367
368 #. Type: string
369 #. Description
370
371=== modified file 'debian/po/hu.po'
372--- debian/po/hu.po 2012-09-26 16:10:55 +0000
373+++ debian/po/hu.po 2012-10-05 14:06:24 +0000
374@@ -15,8 +15,8 @@
375 "MIME-Version: 1.0\n"
376 "Content-Type: text/plain; charset=UTF-8\n"
377 "Content-Transfer-Encoding: 8bit\n"
378-"X-Launchpad-Export-Date: 2012-09-11 04:36+0000\n"
379-"X-Generator: Launchpad (build 15924)\n"
380+"X-Launchpad-Export-Date: 2012-09-22 04:32+0000\n"
381+"X-Generator: Launchpad (build 15985)\n"
382
383 #. Type: string
384 #. Description
385
386=== modified file 'debian/po/id.po'
387--- debian/po/id.po 2012-09-26 16:10:55 +0000
388+++ debian/po/id.po 2012-10-05 14:06:24 +0000
389@@ -15,8 +15,8 @@
390 "MIME-Version: 1.0\n"
391 "Content-Type: text/plain; charset=UTF-8\n"
392 "Content-Transfer-Encoding: 8bit\n"
393-"X-Launchpad-Export-Date: 2012-09-11 04:36+0000\n"
394-"X-Generator: Launchpad (build 15924)\n"
395+"X-Launchpad-Export-Date: 2012-09-22 04:32+0000\n"
396+"X-Generator: Launchpad (build 15985)\n"
397
398 #. Type: string
399 #. Description
400
401=== modified file 'debian/po/it.po'
402--- debian/po/it.po 2012-09-26 16:10:55 +0000
403+++ debian/po/it.po 2012-10-05 14:06:24 +0000
404@@ -15,8 +15,8 @@
405 "MIME-Version: 1.0\n"
406 "Content-Type: text/plain; charset=UTF-8\n"
407 "Content-Transfer-Encoding: 8bit\n"
408-"X-Launchpad-Export-Date: 2012-09-11 04:36+0000\n"
409-"X-Generator: Launchpad (build 15924)\n"
410+"X-Launchpad-Export-Date: 2012-09-22 04:32+0000\n"
411+"X-Generator: Launchpad (build 15985)\n"
412
413 #. Type: string
414 #. Description
415
416=== modified file 'debian/po/ja.po'
417--- debian/po/ja.po 2012-09-26 16:10:55 +0000
418+++ debian/po/ja.po 2012-10-05 14:06:24 +0000
419@@ -15,8 +15,8 @@
420 "MIME-Version: 1.0\n"
421 "Content-Type: text/plain; charset=UTF-8\n"
422 "Content-Transfer-Encoding: 8bit\n"
423-"X-Launchpad-Export-Date: 2012-09-11 04:36+0000\n"
424-"X-Generator: Launchpad (build 15924)\n"
425+"X-Launchpad-Export-Date: 2012-09-22 04:32+0000\n"
426+"X-Generator: Launchpad (build 15985)\n"
427
428 #. Type: string
429 #. Description
430
431=== modified file 'debian/po/nl.po'
432--- debian/po/nl.po 2012-09-26 16:10:55 +0000
433+++ debian/po/nl.po 2012-10-05 14:06:24 +0000
434@@ -15,8 +15,8 @@
435 "MIME-Version: 1.0\n"
436 "Content-Type: text/plain; charset=UTF-8\n"
437 "Content-Transfer-Encoding: 8bit\n"
438-"X-Launchpad-Export-Date: 2012-09-11 04:36+0000\n"
439-"X-Generator: Launchpad (build 15924)\n"
440+"X-Launchpad-Export-Date: 2012-09-22 04:32+0000\n"
441+"X-Generator: Launchpad (build 15985)\n"
442
443 #. Type: string
444 #. Description
445
446=== modified file 'debian/po/oc.po'
447--- debian/po/oc.po 2012-09-26 16:10:55 +0000
448+++ debian/po/oc.po 2012-10-05 14:06:24 +0000
449@@ -15,8 +15,8 @@
450 "MIME-Version: 1.0\n"
451 "Content-Type: text/plain; charset=UTF-8\n"
452 "Content-Transfer-Encoding: 8bit\n"
453-"X-Launchpad-Export-Date: 2012-09-11 04:36+0000\n"
454-"X-Generator: Launchpad (build 15924)\n"
455+"X-Launchpad-Export-Date: 2012-09-22 04:32+0000\n"
456+"X-Generator: Launchpad (build 15985)\n"
457
458 #. Type: string
459 #. Description
460
461=== modified file 'debian/po/pl.po'
462--- debian/po/pl.po 2012-09-26 16:10:55 +0000
463+++ debian/po/pl.po 2012-10-05 14:06:24 +0000
464@@ -15,8 +15,8 @@
465 "MIME-Version: 1.0\n"
466 "Content-Type: text/plain; charset=UTF-8\n"
467 "Content-Transfer-Encoding: 8bit\n"
468-"X-Launchpad-Export-Date: 2012-09-11 04:36+0000\n"
469-"X-Generator: Launchpad (build 15924)\n"
470+"X-Launchpad-Export-Date: 2012-09-22 04:32+0000\n"
471+"X-Generator: Launchpad (build 15985)\n"
472
473 #. Type: string
474 #. Description
475
476=== modified file 'debian/po/pt_BR.po'
477--- debian/po/pt_BR.po 2012-09-26 16:10:55 +0000
478+++ debian/po/pt_BR.po 2012-10-05 14:06:24 +0000
479@@ -15,8 +15,8 @@
480 "MIME-Version: 1.0\n"
481 "Content-Type: text/plain; charset=UTF-8\n"
482 "Content-Transfer-Encoding: 8bit\n"
483-"X-Launchpad-Export-Date: 2012-09-11 04:36+0000\n"
484-"X-Generator: Launchpad (build 15924)\n"
485+"X-Launchpad-Export-Date: 2012-09-22 04:32+0000\n"
486+"X-Generator: Launchpad (build 15985)\n"
487
488 #. Type: string
489 #. Description
490
491=== modified file 'debian/po/ro.po'
492--- debian/po/ro.po 2012-09-26 16:10:55 +0000
493+++ debian/po/ro.po 2012-10-05 14:06:24 +0000
494@@ -15,8 +15,8 @@
495 "MIME-Version: 1.0\n"
496 "Content-Type: text/plain; charset=UTF-8\n"
497 "Content-Transfer-Encoding: 8bit\n"
498-"X-Launchpad-Export-Date: 2012-09-11 04:36+0000\n"
499-"X-Generator: Launchpad (build 15924)\n"
500+"X-Launchpad-Export-Date: 2012-09-22 04:32+0000\n"
501+"X-Generator: Launchpad (build 15985)\n"
502
503 #. Type: string
504 #. Description
505
506=== modified file 'debian/po/ru.po'
507--- debian/po/ru.po 2012-09-26 16:10:55 +0000
508+++ debian/po/ru.po 2012-10-05 14:06:24 +0000
509@@ -15,8 +15,8 @@
510 "MIME-Version: 1.0\n"
511 "Content-Type: text/plain; charset=UTF-8\n"
512 "Content-Transfer-Encoding: 8bit\n"
513-"X-Launchpad-Export-Date: 2012-09-11 04:36+0000\n"
514-"X-Generator: Launchpad (build 15924)\n"
515+"X-Launchpad-Export-Date: 2012-09-22 04:32+0000\n"
516+"X-Generator: Launchpad (build 15985)\n"
517
518 #. Type: string
519 #. Description
520
521=== modified file 'debian/po/tr.po'
522--- debian/po/tr.po 2012-09-26 16:10:55 +0000
523+++ debian/po/tr.po 2012-10-05 14:06:24 +0000
524@@ -15,8 +15,8 @@
525 "MIME-Version: 1.0\n"
526 "Content-Type: text/plain; charset=UTF-8\n"
527 "Content-Transfer-Encoding: 8bit\n"
528-"X-Launchpad-Export-Date: 2012-09-11 04:36+0000\n"
529-"X-Generator: Launchpad (build 15924)\n"
530+"X-Launchpad-Export-Date: 2012-09-22 04:32+0000\n"
531+"X-Generator: Launchpad (build 15985)\n"
532
533 #. Type: string
534 #. Description
535
536=== modified file 'debian/po/uk.po'
537--- debian/po/uk.po 2012-09-26 16:10:55 +0000
538+++ debian/po/uk.po 2012-10-05 14:06:24 +0000
539@@ -15,8 +15,8 @@
540 "MIME-Version: 1.0\n"
541 "Content-Type: text/plain; charset=UTF-8\n"
542 "Content-Transfer-Encoding: 8bit\n"
543-"X-Launchpad-Export-Date: 2012-09-11 04:36+0000\n"
544-"X-Generator: Launchpad (build 15924)\n"
545+"X-Launchpad-Export-Date: 2012-09-22 04:32+0000\n"
546+"X-Generator: Launchpad (build 15985)\n"
547
548 #. Type: string
549 #. Description
550
551=== modified file 'debian/po/zh_CN.po'
552--- debian/po/zh_CN.po 2012-09-26 16:10:55 +0000
553+++ debian/po/zh_CN.po 2012-10-05 14:06:24 +0000
554@@ -15,8 +15,8 @@
555 "MIME-Version: 1.0\n"
556 "Content-Type: text/plain; charset=UTF-8\n"
557 "Content-Transfer-Encoding: 8bit\n"
558-"X-Launchpad-Export-Date: 2012-09-11 04:36+0000\n"
559-"X-Generator: Launchpad (build 15924)\n"
560+"X-Launchpad-Export-Date: 2012-09-22 04:32+0000\n"
561+"X-Generator: Launchpad (build 15985)\n"
562
563 #. Type: string
564 #. Description
565
566=== modified file 'debian/po/zh_TW.po'
567--- debian/po/zh_TW.po 2012-09-26 16:10:55 +0000
568+++ debian/po/zh_TW.po 2012-10-05 14:06:24 +0000
569@@ -15,8 +15,8 @@
570 "MIME-Version: 1.0\n"
571 "Content-Type: text/plain; charset=UTF-8\n"
572 "Content-Transfer-Encoding: 8bit\n"
573-"X-Launchpad-Export-Date: 2012-09-11 04:36+0000\n"
574-"X-Generator: Launchpad (build 15924)\n"
575+"X-Launchpad-Export-Date: 2012-09-22 04:32+0000\n"
576+"X-Generator: Launchpad (build 15985)\n"
577
578 #. Type: string
579 #. Description
580
581=== modified file 'jobs/cpu.txt.in'
582--- jobs/cpu.txt.in 2012-08-20 18:13:17 +0000
583+++ jobs/cpu.txt.in 2012-10-05 14:06:24 +0000
584@@ -4,6 +4,7 @@
585 package.name == 'linux'
586 package.name == 'fwts'
587 user: root
588+environ: CHECKBOX_DATA
589 command: fwts_test -c -l ${CHECKBOX_DATA}/scaling_test.log
590 _description:
591 Test the CPU scaling capabilities using Firmware Test Suite (fwts cpufreq).
592
593=== modified file 'jobs/esata.txt.in'
594--- jobs/esata.txt.in 2012-08-20 18:13:17 +0000
595+++ jobs/esata.txt.in 2012-10-05 14:06:24 +0000
596@@ -1,7 +1,5 @@
597 plugin: manual
598 name: esata/insert
599-requires:
600- package.name == 'udisks'
601 command: removable_storage_watcher insert ata_serial_esata
602 _description:
603 PURPOSE:
604@@ -17,8 +15,6 @@
605 plugin: shell
606 name: esata/storage-test
607 depends: esata/insert
608-requires:
609- package.name == 'udisks'
610 command: removable_storage_test ata_serial_esata
611 _description:
612 This is an automated test which performs read/write operations on an attached
613@@ -27,8 +23,6 @@
614 plugin: manual
615 name: esata/remove
616 depends: esata/storage-test
617-requires:
618- package.name == 'udisks'
619 command: removable_storage_watcher remove ata_serial_esata
620 _description:
621 PURPOSE:
622
623=== modified file 'jobs/firewire.txt.in'
624--- jobs/firewire.txt.in 2012-07-17 16:27:55 +0000
625+++ jobs/firewire.txt.in 2012-10-05 14:06:24 +0000
626@@ -1,7 +1,5 @@
627 plugin: manual
628 name: firewire/insert
629-requires:
630- package.name == 'udisks'
631 command: removable_storage_watcher insert firewire
632 _description:
633 PURPOSE:
634@@ -17,8 +15,6 @@
635 plugin: shell
636 name: firewire/storage-test
637 depends: firewire/insert
638-requires:
639- package.name == 'udisks'
640 command: removable_storage_test firewire
641 _description:
642 This is an automated test which performs read/write operations on an attached
643@@ -27,8 +23,6 @@
644 plugin: manual
645 name: firewire/remove
646 depends: firewire/storage-test
647-requires:
648- package.name == 'udisks'
649 command: removable_storage_watcher remove firewire
650 _description:
651 PURPOSE:
652
653=== modified file 'jobs/mediacard.txt.in'
654--- jobs/mediacard.txt.in 2012-07-17 16:27:55 +0000
655+++ jobs/mediacard.txt.in 2012-10-05 14:06:24 +0000
656@@ -1,7 +1,5 @@
657 plugin: manual
658 name: mediacard/mmc-insert
659-requires:
660- package.name == 'udisks'
661 command: removable_storage_watcher insert sdio usb scsi
662 _description:
663 PURPOSE:
664@@ -18,8 +16,6 @@
665 plugin: shell
666 name: mediacard/mmc-storage
667 depends: mediacard/mmc-insert
668-requires:
669- package.name == 'udisks'
670 command: removable_storage_test sdio usb scsi
671 _description:
672 This test is automated and executes after the mediacard/mmc-insert
673@@ -28,8 +24,6 @@
674 plugin: manual
675 name: mediacard/mmc-remove
676 depends: mediacard/mmc-storage
677-requires:
678- package.name == 'udisks'
679 command: removable_storage_watcher remove sdio usb scsi
680 _description:
681 PURPOSE:
682@@ -45,8 +39,6 @@
683 plugin: manual
684 name: mediacard/mmc-insert-after-suspend
685 depends: suspend/suspend_advanced
686-requires:
687- package.name == 'udisks'
688 command: removable_storage_watcher insert sdio usb scsi
689 _description:
690 PURPOSE:
691@@ -63,8 +55,6 @@
692 plugin: shell
693 name: mediacard/mmc-storage-after-suspend
694 depends: mediacard/mmc-insert-after-suspend
695-requires:
696- package.name == 'udisks'
697 command: removable_storage_test sdio usb scsi
698 _description:
699 This test is automated and executes after the mediacard/mmc-insert-after-suspend test
700@@ -73,8 +63,6 @@
701 plugin: manual
702 name: mediacard/mmc-remove-after-suspend
703 depends: mediacard/mmc-storage-after-suspend
704-requires:
705- package.name == 'udisks'
706 command: removable_storage_watcher remove sdio usb scsi
707 _description:
708 PURPOSE:
709@@ -89,8 +77,6 @@
710
711 plugin: manual
712 name: mediacard/sd-insert
713-requires:
714- package.name == 'udisks'
715 command: removable_storage_watcher insert sdio usb scsi
716 _description:
717 PURPOSE:
718@@ -107,8 +93,6 @@
719 plugin: shell
720 name: mediacard/sd-storage
721 depends: mediacard/sd-insert
722-requires:
723- package.name == 'udisks'
724 command: removable_storage_test sdio usb scsi
725 _description:
726 This test is automated and executes after the mediacard/sd-insert
727@@ -117,8 +101,6 @@
728 plugin: manual
729 name: mediacard/sd-remove
730 depends: mediacard/sd-storage
731-requires:
732- package.name == 'udisks'
733 command: removable_storage_watcher remove sdio usb scsi
734 _description:
735 PURPOSE:
736@@ -134,8 +116,6 @@
737 plugin: manual
738 name: mediacard/sd-insert-after-suspend
739 depends: suspend/suspend_advanced
740-requires:
741- package.name == 'udisks'
742 command: removable_storage_watcher insert sdio usb scsi
743 _description:
744 PURPOSE:
745@@ -152,8 +132,6 @@
746 plugin: shell
747 name: mediacard/sd-storage-after-suspend
748 depends: mediacard/sd-insert-after-suspend
749-requires:
750- package.name == 'udisks'
751 command: removable_storage_test sdio usb scsi
752 _description:
753 This test is automated and executes after the mediacard/sd-insert-after-suspend test
754@@ -162,8 +140,6 @@
755 plugin: manual
756 name: mediacard/sd-remove-after-suspend
757 depends: mediacard/sd-storage-after-suspend
758-requires:
759- package.name == 'udisks'
760 command: removable_storage_watcher remove sdio usb scsi
761 _description:
762 PURPOSE:
763@@ -178,8 +154,6 @@
764
765 plugin: manual
766 name: mediacard/sdhc-insert
767-requires:
768- package.name == 'udisks'
769 command: removable_storage_watcher insert sdio usb scsi
770 _description:
771 PURPOSE:
772@@ -196,8 +170,6 @@
773 plugin: shell
774 name: mediacard/sdhc-storage
775 depends: mediacard/sdhc-insert
776-requires:
777- package.name == 'udisks'
778 command: removable_storage_test sdio usb scsi
779 _description:
780 This test is automated and executes after the mediacard/sdhc-insert
781@@ -206,8 +178,6 @@
782 plugin: manual
783 name: mediacard/sdhc-remove
784 depends: mediacard/sdhc-storage
785-requires:
786- package.name == 'udisks'
787 command: removable_storage_watcher remove sdio usb scsi
788 _description:
789 PURPOSE:
790@@ -223,8 +193,6 @@
791 plugin: manual
792 name: mediacard/sdhc-insert-after-suspend
793 depends: suspend/suspend_advanced
794-requires:
795- package.name == 'udisks'
796 command: removable_storage_watcher insert sdio usb scsi
797 _description:
798 PURPOSE:
799@@ -241,8 +209,6 @@
800 plugin: shell
801 name: mediacard/sdhc-storage-after-suspend
802 depends: mediacard/sdhc-insert-after-suspend
803-requires:
804- package.name == 'udisks'
805 command: removable_storage_test sdio usb scsi
806 _description:
807 This test is automated and executes after the mediacard/sdhc-insert-after-suspend test
808@@ -251,8 +217,6 @@
809 plugin: manual
810 name: mediacard/sdhc-remove-after-suspend
811 depends: mediacard/sdhc-storage-after-suspend
812-requires:
813- package.name == 'udisks'
814 command: removable_storage_watcher remove sdio usb scsi
815 _description:
816 PURPOSE:
817@@ -267,8 +231,6 @@
818
819 plugin: manual
820 name: mediacard/cf-insert
821-requires:
822- package.name == 'udisks'
823 command: removable_storage_watcher insert sdio usb scsi
824 _description:
825 PURPOSE:
826@@ -285,8 +247,6 @@
827 plugin: shell
828 name: mediacard/cf-storage
829 depends: mediacard/cf-insert
830-requires:
831- package.name == 'udisks'
832 command: removable_storage_test sdio usb scsi
833 _description:
834 This test is automated and executes after the mediacard/cf-insert
835@@ -295,8 +255,6 @@
836 plugin: manual
837 name: mediacard/cf-remove
838 depends: mediacard/cf-storage
839-requires:
840- package.name == 'udisks'
841 command: removable_storage_watcher remove sdio usb scsi
842 _description:
843 PURPOSE:
844@@ -312,8 +270,6 @@
845 plugin: manual
846 name: mediacard/cf-insert-after-suspend
847 depends: suspend/suspend_advanced
848-requires:
849- package.name == 'udisks'
850 command: removable_storage_watcher insert sdio usb scsi
851 _description:
852 PURPOSE:
853@@ -330,8 +286,6 @@
854 plugin: shell
855 name: mediacard/cf-storage-after-suspend
856 depends: mediacard/cf-insert-after-suspend
857-requires:
858- package.name == 'udisks'
859 command: removable_storage_test sdio usb scsi
860 _description:
861 This test is automated and executes after the mediacard/cf-insert-after-suspend test
862@@ -340,8 +294,6 @@
863 plugin: manual
864 name: mediacard/cf-remove-after-suspend
865 depends: mediacard/cf-storage-after-suspend
866-requires:
867- package.name == 'udisks'
868 command: removable_storage_watcher remove sdio usb scsi
869 _description:
870 PURPOSE:
871
872=== modified file 'jobs/optical.txt.in'
873--- jobs/optical.txt.in 2012-08-20 18:13:17 +0000
874+++ jobs/optical.txt.in 2012-10-05 14:06:24 +0000
875@@ -1,63 +1,88 @@
876 plugin: shell
877 name: optical/detect
878 requires: device.category == 'CDROM'
879+_description: Test to detect the optical drives
880 command:
881 cat <<'EOF' | run_templates -t -s 'udev_resource | filter_templates -w "category=CDROM"' | sed '/^$/d'
882 $vendor $product
883 EOF
884-_description: Test to detect the optical drives
885
886-plugin: manual
887+plugin: local
888 name: optical/read
889 requires:
890 device.category == 'CDROM'
891-user: root
892-command: optical_read_test /dev/cdrom
893-_description:
894- PURPOSE:
895- This test will check your optical devices ability to read CD media
896- STEPS:
897- 1. Insert appropriate non-blank media into your optical drive(s). Movie and Audio Disks may not work. Self-created data disks have the greatest chance of working.
898- 2. If a file browser window opens, you can safely close or ignore that window.
899- 3. Click "Test" to begin the test.
900- VERIFICATION:
901- This test should automatically select "Yes" if it passes, "No" if it fails.
902+_description: Optical read test.
903+command:
904+ cat <<'EOF' | run_templates -t -s 'udev_resource | filter_templates -w "category=CDROM"'
905+ plugin: manual
906+ name: optical/read_`ls /sys$path/block`
907+ requires: device.path == "$path"
908+ user: root
909+ command: optical_read_test /dev/`ls /sys$path/block`
910+ description:
911+ PURPOSE:
912+ This test will check your $product device's ability to read CD media
913+ STEPS:
914+ 1. Insert appropriate non-blank media into your optical drive(s). Movie and Audio Disks may not work. Self-created data disks have the greatest chance of working.
915+ 2. If a file browser window opens, you can safely close or ignore that window.
916+ 3. Click "Test" to begin the test.
917+ VERIFICATION:
918+ This test should automatically select "Yes" if it passes, "No" if it fails.
919+ EOF
920
921-plugin: shell
922+plugin: local
923 name: optical/read-automated
924 requires:
925 device.category == 'CDROM'
926-user: root
927-command: optical_read_test /dev/cdrom
928-description:
929- This is an automated version of optical/read. It assumes you have already inserted a data CD into your optical drive prior to running Checkbox.
930+_description: Optical read test.
931+command:
932+ cat <<'EOF' | run_templates -t -s 'udev_resource | filter_templates -w "category=CDROM"'
933+ plugin: shell
934+ name: optical/read-automated_`ls /sys$path/block`
935+ requires: device.path == "$path"
936+ user: root
937+ command: optical_read_test /dev/`ls /sys$path/block`
938+ description:
939+ This is an automated version of optical/read. It assumes you have already inserted a data CD into your optical drive prior to running Checkbox.
940+ EOF
941
942-plugin: manual
943+plugin: local
944 name: optical/cdrom-write
945 requires:
946 device.category == 'CDROM'
947 optical_drive.cd == 'writable'
948-user: root
949-command: optical_write_test /dev/cdrom
950-_description:
951- PURPOSE:
952- This test will check your system's CD writing capabilities. This test requires a blank CD-R or CD+R. If you do not have a blank disk, skip this test.
953- STEPS:
954- 1. Insert a blank CD-R or CD+R into your drive
955- 2. Click "Test" to begin.
956- 3. When the CD tray ejects the media after burning, close it (DO NOT remove the disk, it is needed for the second portion of the test). Note, you must close the drive within 5 minutes or the test will time out.
957- VERIFICATION:
958- This test should automatically select "Yes" if it passes, "No" if it fails.
959+_description: Optical write test.
960+command:
961+ cat <<'EOF' | run_templates -t -s 'udev_resource | filter_templates -w "category=CDROM"'
962+ plugin: manual
963+ name: optical/cdrom-write_`ls /sys$path/block`
964+ requires: device.path == "$path"
965+ user: root
966+ command: optical_write_test /dev/`ls /sys$path/block` | ansi_parser
967+ description:
968+ PURPOSE:
969+ This test will check your system's $product CD writing capabilities. This test requires a blank CD-R or CD+R. If you do not have a blank disk, skip this test.
970+ STEPS:
971+ 1. Insert a blank CD-R or CD+R into your drive
972+ 2. Click "Test" to begin.
973+ 3. When the CD tray ejects the media after burning, close it (DO NOT remove the disk, it is needed for the second portion of the test). Note, you must close the drive within 5 minutes or the test will time out.
974+ EOF
975
976-plugin: shell
977+plugin: local
978 name: optical/cdrom-write-automated
979-user: root
980 requires:
981 device.category == 'CDROM'
982 optical_drive.cd == 'writable'
983-command: optical_write_test /dev/cdrom
984-_description:
985- This is an automated version of optical/cdrom-write. It assumes you inserted a blank CD-R or CD+R disk before starting testing. You must watch for the tray opening. The test will attempt to close the tray and continue testing, however this is not possible in all optical drives, thus you may need to push the tray or disk back in manually to continue the test. This test has a 5 minute timeout to allow for the tester to catch this.
986+command:
987+ cat <<'EOF' | run_templates -t -s 'udev_resource | filter_templates -w "category=CDROM"'
988+ plugin: shell
989+ name: optical/cdrom-write-automated_`ls /sys$path/block`
990+ requires: device.path == "$path"
991+ user: root
992+ command: optical_write_test /dev/`ls /sys$path/block` | ansi_parser
993+ description:
994+ This is an automated version of optical/cdrom-write. It assumes you have already inserted a data CD into your optical drive prior to running Checkbox.
995+ EOF
996
997 plugin: manual
998 name: optical/cdrom-audio-playback
999@@ -78,32 +103,45 @@
1000 VERIFICATION:
1001 Did all the steps work?
1002
1003-plugin: manual
1004+plugin: local
1005 name: optical/dvd-write
1006-user: root
1007 requires:
1008 device.category == 'CDROM'
1009 optical_drive.dvd == 'writable'
1010-command: optical_write_test /dev/cdrom
1011-_description:
1012- PURPOSE:
1013- This test will check your system's DVD writing capabilities. This test requires a blank DVD-R or DVD+R. If you do not have a blank DVD disk, skip this test.
1014- STEPS:
1015- 1. Enter a blank DVD-R or DVD+R into your drive
1016- 2. Click "Test" to begin.
1017- 3. When the CD tray ejects the media after burning, close it (DO NOT remove the disk, it is needed for the second portion of the test). Note, you must close the drive within 5 minutes or the test will time out.
1018- VERIFICATION:
1019- This test should automatically select "Yes" if it passes, "No" if it fails.
1020+_description: Optical write test.
1021+command:
1022+ cat <<'EOF' | run_templates -t -s 'udev_resource | filter_templates -w "category=CDROM"'
1023+ plugin: manual
1024+ name: optical/dvd-write_`ls /sys$path/block`
1025+ requires: device.path == "$path"
1026+ user: root
1027+ command: optical_write_test /dev/`ls /sys$path/block` | ansi_parser
1028+ description:
1029+ PURPOSE:
1030+ This test will check your system's $product writing capabilities. This test requires a blank DVD-R or DVD+R. If you do not have a blank DVD disk, skip this test.
1031+ STEPS:
1032+ 1. Enter a blank DVD-R or DVD+R into your drive
1033+ 2. Click "Test" to begin.
1034+ 3. When the CD tray ejects the media after burning, close it (DO NOT remove the disk, it is needed for the second portion of the test). Note, you must close the drive within 5 minutes or the test will time out.
1035+ VERIFICATION:
1036+ This test should automatically select "Yes" if it passes, "No" if it fails.
1037+ EOF
1038
1039-plugin: shell
1040+plugin: local
1041 name: optical/dvd-write-automated
1042-user: root
1043 requires:
1044 device.category == 'CDROM'
1045 optical_drive.dvd == 'writable'
1046-command: optical_write_test /dev/cdrom
1047-_description:
1048- This is an automated version of optical/dvd-write. It assumes you inserted a blank DVD-R or DVD+R before starting testing. You must watch for the tray opening. The test will attempt to close the tray and continue testing, however this is not possible in all optical drives, thus you may need to push the tray or disk back in manually to continue the test. This test has a 5 minute timeout to allow for the tester to catch this.
1049+command:
1050+ cat <<'EOF' | run_templates -t -s 'udev_resource | filter_templates -w "category=CDROM"'
1051+ plugin: shell
1052+ name: optical/dvd-write-automated_`ls /sys$path/block`
1053+ requires: device.path == "$path"
1054+ user: root
1055+ command: optical_write_test /dev/`ls /sys$path/block` | ansi_parser
1056+ description:
1057+ This is an automated version of optical/dvd-write. It assumes you have already inserted a data CD into your optical drive prior to running Checkbox.
1058+ EOF
1059
1060 plugin: manual
1061 name: optical/dvd_movie_playback
1062
1063=== modified file 'jobs/resource.txt.in'
1064--- jobs/resource.txt.in 2012-07-17 16:27:55 +0000
1065+++ jobs/resource.txt.in 2012-10-05 14:06:24 +0000
1066@@ -76,4 +76,4 @@
1067
1068 name: display
1069 plugin: resource
1070-command: for display in `xrandr | grep connected | awk '{print $1}' | grep -o ^[A-Z]* | sort | uniq`; do echo "$display: supported"; done
1071+command: display_resource
1072
1073=== modified file 'jobs/usb.txt.in'
1074--- jobs/usb.txt.in 2012-08-06 20:24:04 +0000
1075+++ jobs/usb.txt.in 2012-10-05 14:06:24 +0000
1076@@ -7,9 +7,7 @@
1077 plugin: manual
1078 name: usb/disk_detect
1079 depends: usb/detect
1080-requires:
1081- package.name == 'linux'
1082- package.name == 'udisks'
1083+requires: package.name == 'linux'
1084 command: removable_storage_test -l usb
1085 _description:
1086 PURPOSE:
1087@@ -52,9 +50,7 @@
1088 plugin: manual
1089 name: usb/insert
1090 depends: usb/detect
1091-requires:
1092- package.name == 'linux'
1093- package.name == 'udisks'
1094+requires: package.name == 'linux'
1095 command: removable_storage_watcher insert usb
1096 _description:
1097 PURPOSE:
1098@@ -70,10 +66,8 @@
1099
1100 plugin: manual
1101 name: usb/remove
1102-depends: usb/storage-automated
1103-requires:
1104- package.name == 'linux'
1105- package.name == 'udisks'
1106+depends: usb/insert
1107+requires: package.name == 'linux'
1108 command: removable_storage_watcher remove usb
1109 _description:
1110 PURPOSE:
1111@@ -88,9 +82,7 @@
1112
1113 plugin: manual
1114 name: usb/storage-transfer
1115-requires:
1116- package.name == 'linux'
1117- package.name == 'udisks'
1118+requires: package.name == 'linux'
1119 depends: usb/insert
1120 command: removable_storage_test usb
1121 _description:
1122@@ -106,10 +98,8 @@
1123
1124 plugin: shell
1125 name: usb/storage-automated
1126-requires:
1127- package.name == 'linux'
1128- package.name == 'udisks'
1129 depends: usb/insert
1130+requires: package.name == 'linux'
1131 command: removable_storage_test usb
1132 _description:
1133 This test is automated and executes after the usb/insert test is run.
1134@@ -117,9 +107,7 @@
1135 plugin: shell
1136 name: usb/storage-preinserted
1137 user: root
1138-requires:
1139- package.name == 'linux'
1140- package.name == 'udisks'
1141+requires: package.name == 'linux'
1142 command: removable_storage_test -l usb && removable_storage_test usb
1143 _description:
1144 This is an automated version of usb/storage-automated and assumes that the
1145
1146=== modified file 'jobs/wireless.txt.in'
1147--- jobs/wireless.txt.in 2012-07-17 16:27:55 +0000
1148+++ jobs/wireless.txt.in 2012-10-05 14:06:24 +0000
1149@@ -1,8 +1,22 @@
1150 plugin: shell
1151 name: wireless/wireless_scanning
1152-user: root
1153-requires: package.name == 'wireless-tools'
1154-command: rfkill unblock wlan wifi; network_wireless_test
1155+requires:
1156+ package.name == 'network-manager'
1157+ device.category == 'WIRELESS'
1158+command:
1159+ rfkill unblock wlan wifi
1160+ if rfkill list wlan wifi | grep -q 'Hard blocked: yes'; then
1161+ echo "Hard block is applied to WiFi device. Please remove and retest."
1162+ exit 1
1163+ fi
1164+ wireless_networks=`nmcli -f SSID dev wifi list`
1165+ if [ `echo "$wireless_networks" | wc -l` -gt 1 ]; then
1166+ echo "Wireless networks discovered: "
1167+ echo "$wireless_networks"
1168+ exit 0
1169+ fi
1170+ echo "No wireless networks discovered."
1171+ exit 1
1172 _description: Wireless scanning test. It scans and reports on discovered APs.
1173
1174 plugin: manual
1175
1176=== removed file 'plugins/apport_prompt.py'
1177--- plugins/apport_prompt.py 2012-08-06 20:24:04 +0000
1178+++ plugins/apport_prompt.py 1970-01-01 00:00:00 +0000
1179@@ -1,280 +0,0 @@
1180-#
1181-# This file is part of Checkbox.
1182-#
1183-# Copyright 2008 Canonical Ltd.
1184-#
1185-# Checkbox is free software: you can redistribute it and/or modify
1186-# it under the terms of the GNU General Public License as published by
1187-# the Free Software Foundation, either version 3 of the License, or
1188-# (at your option) any later version.
1189-#
1190-# Checkbox is distributed in the hope that it will be useful,
1191-# but WITHOUT ANY WARRANTY; without even the implied warranty of
1192-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1193-# GNU General Public License for more details.
1194-#
1195-# You should have received a copy of the GNU General Public License
1196-# along with Checkbox. If not, see <http://www.gnu.org/licenses/>.
1197-#
1198-import logging
1199-
1200-from subprocess import check_output
1201-
1202-from gettext import gettext as _
1203-
1204-from checkbox.job import FAIL
1205-from checkbox.plugin import Plugin
1206-from checkbox.properties import Bool, Path, String
1207-from checkbox.reactor import StopAllException
1208-
1209-
1210-class DummyUserInterface:
1211- pass
1212-
1213-try:
1214- from apport.ui import UserInterface
1215- from apport.crashdb import get_crashdb
1216-except:
1217- UserInterface = DummyUserInterface
1218-
1219-
1220-CATEGORY_TO_PACKAGE = {
1221- "SOUND": "alsa-base"}
1222-
1223-CATEGORY_TO_SYMPTOM = {
1224- "VIDEO": "display",
1225- "DISK": "storage"}
1226-
1227-
1228-class ApportOptions:
1229-
1230- def __init__(self, test, device, package, symptom):
1231- self.test = test
1232- self.device = device
1233- self.package = package
1234- self.symptom = symptom
1235- self.pid = None
1236- self.save = False
1237- self.tag = '' #Additional tags to add to reports filed
1238- #through this tool
1239-
1240-
1241-class ApportUserInterface(UserInterface):
1242-
1243- def __init__(self, interface, options):
1244- self.interface = interface
1245- self.options = options
1246- self.report = None
1247- self.report_file = None
1248- self.cur_package = None
1249-
1250- # ImportError raised during package upgrade
1251- self.crashdb = get_crashdb(None)
1252-
1253- def ui_info_message(self, title, text):
1254- self.interface.show_info(text, ["close"])
1255-
1256- def ui_error_message(self, title, text):
1257- self.interface.show_progress_stop()
1258- self.interface.show_error(text)
1259-
1260- def ui_start_info_collection_progress(self):
1261- self.interface.show_progress_start(
1262- _("Collecting information about this test.\n"
1263- "This might take a few minutes."))
1264-
1265- def ui_pulse_info_collection_progress(self):
1266- self.interface.show_progress_pulse()
1267-
1268- def ui_stop_info_collection_progress(self):
1269- # tags
1270- if "Tags" in self.report:
1271- tags = self.report["Tags"].split(" ")
1272- else:
1273- tags = []
1274-
1275- tags.append("checkbox-bug")
1276- if self.options.device:
1277- tags.append(self.options.device)
1278-
1279- self.report["Tags"] = " ".join(tags)
1280-
1281- # checkbox
1282- test = self.options.test
1283- self.report["CheckboxTest"] = test["name"]
1284- if test.get("description"):
1285- self.report["CheckboxDescription"] = test["description"]
1286- if test.get("data"):
1287- self.report["CheckboxData"] = test["data"]
1288- if test.get("command"):
1289- self.report["CheckboxCommand"] = test["command"]
1290- if test.get("environ"):
1291- self.report["CheckboxEnvironment"] = test["environ"]
1292-
1293- self.interface.show_progress_stop()
1294-
1295- def ui_start_upload_progress(self):
1296- self.interface.show_progress_start(
1297- _("Collected information is being sent for bug tracking.\n"
1298- "This might take a few minutes."))
1299-
1300- def ui_set_upload_progress(self, progress):
1301- self.interface.show_progress_pulse()
1302-
1303- def ui_stop_upload_progress(self):
1304- self.interface.show_progress_stop()
1305-
1306- def ui_present_report_details(self, *args):
1307- return dict(report=1)
1308-
1309- def ui_question_choice(self, text, options, multiple):
1310- self.interface.show_progress_stop()
1311-
1312- if multiple:
1313- results = self.interface.show_check(text, options)
1314- else:
1315- results = [self.interface.show_radio(text, options)]
1316-
1317- return [options.index(r) for r in results]
1318-
1319- def ui_question_yesno(self, text):
1320- self.interface.show_progress_stop()
1321- result = self.interface.show_radio(text, ["Yes", "No"])
1322- return result == "Yes"
1323-
1324- def open_url(self, url):
1325- self.interface.show_url(url)
1326-
1327-
1328-class ApportPrompt(Plugin):
1329-
1330- # Default configuration filename
1331- default_filename = Path(default="/etc/default/apport")
1332-
1333- # Default enabled state
1334- default_enabled = Bool(required=False)
1335-
1336- # Default package if none is detected
1337- default_package = String(required=False)
1338-
1339- # Filename where Submission ID is cached
1340- submission_filename = Path(default="%(checkbox_data)s/submission")
1341-
1342- # Filename where System ID is cached
1343- system_filename = Path(default="%(checkbox_data)s/system")
1344-
1345- def register(self, manager):
1346- super(ApportPrompt, self).register(manager)
1347-
1348- self._submission_id = None
1349- self._system_id = None
1350-
1351- for (rt, rh) in [
1352- ("exchange-success", self.exchange_success),
1353- ("report-submission_id", self.report_submission_id),
1354- ("report-system_id", self.report_system_id)]:
1355- self._manager.reactor.call_on(rt, rh)
1356-
1357- if not isinstance(ApportUserInterface, DummyUserInterface):
1358- self._manager.reactor.call_on("gather", self.gather)
1359- self._manager.reactor.call_on("prompt-test", self.prompt_test, 100)
1360-
1361- def gather(self):
1362- if self.default_enabled is None:
1363- value = check_output("unset enabled && . %s && echo ${enabled}"
1364- % self.default_filename, shell=True, universal_newlines=True)
1365- self.default_enabled = value.strip() == "1"
1366-
1367- def prompt_test(self, interface, test):
1368- if not self.default_enabled:
1369- return
1370-
1371- if test["status"] != FAIL:
1372- return
1373-
1374- device = None
1375- package = None
1376- symptom = None
1377-
1378- # Give lowest priority to required packages
1379- for resource in test.get("resources", []):
1380- if "version" in resource:
1381- package = resource["name"]
1382- break
1383-
1384- # Give highest priority to required devices
1385- for resource in test.get("resources", []):
1386- if "bus" in resource:
1387- category = resource["category"]
1388- if category in CATEGORY_TO_PACKAGE:
1389- package = CATEGORY_TO_PACKAGE[category]
1390- break
1391-
1392- if category in CATEGORY_TO_SYMPTOM:
1393- symptom = CATEGORY_TO_SYMPTOM[category]
1394- break
1395-
1396- # Default to configuration
1397- if not package:
1398- package = self.default_package
1399-
1400- # Do not report a bug if no package nor symptom is defined
1401- if not package and not symptom:
1402- return
1403-
1404- if test.get("suite"):
1405- failed_test_message = _("Test %(name)s failed.") % {
1406- 'name': test["name"]}
1407- else:
1408- failed_test_message = _("Test %s failed.") % test["name"]
1409- failed_test_message += "\n" + _("Do you want to report a bug?")
1410-
1411- response = interface.show_info(failed_test_message,
1412- ["yes", "no"], "no")
1413- if response == "no":
1414- return
1415-
1416- # Determine corresponding device
1417- for resource in test.get("resources", []):
1418- if "bus" in resource:
1419- device = resource["category"].lower()
1420- break
1421-
1422- try:
1423- options = ApportOptions(test, device, package, symptom)
1424- apport_interface = ApportUserInterface(interface, options)
1425- except ImportError as e:
1426- interface.show_error(_("Is a package upgrade in process? Error: %s") % e)
1427- return
1428-
1429- try:
1430- if symptom and hasattr(apport_interface, "run_symptom"):
1431- apport_interface.run_symptom()
1432- else:
1433- apport_interface.run_report_bug()
1434- except SystemExit as e:
1435- # In case of error, show_error already have been called
1436- raise StopAllException
1437-
1438- def exchange_success(self, response):
1439- for message, filename in [
1440- (self._submission_id, self.submission_filename),
1441- (self._system_id, self.system_filename)]:
1442- try:
1443- file = open(filename, "w")
1444- try:
1445- file.write(message)
1446- finally:
1447- file.close()
1448- except IOError as e:
1449- logging.info("Failed to write to file '%s': %d %s",
1450- filename, e.errno, e.strerror)
1451-
1452- def report_submission_id(self, submission_id):
1453- self._submission_id = submission_id
1454-
1455- def report_system_id(self, system_id):
1456- self._system_id = system_id
1457-
1458-
1459-factory = ApportPrompt
1460
1461=== modified file 'plugins/backend_info.py'
1462--- plugins/backend_info.py 2012-06-26 16:07:04 +0000
1463+++ plugins/backend_info.py 2012-10-05 14:06:24 +0000
1464@@ -26,11 +26,12 @@
1465 from checkbox.lib.fifo import FifoReader, FifoWriter, create_fifo
1466
1467 from checkbox.plugin import Plugin
1468-from checkbox.properties import Path, Float
1469+from checkbox.properties import Path, Float
1470 from checkbox.job import FAIL
1471
1472 from gettext import gettext as _
1473
1474+
1475 class BackendInfo(Plugin):
1476
1477 # how long to wait for I/O from/to the backend before the call returns.
1478@@ -39,6 +40,37 @@
1479
1480 command = Path(default="%(checkbox_share)s/backend")
1481
1482+ next_sequence = 0
1483+ expected_sequence = 0
1484+
1485+ def write_to_parent(self, object):
1486+ message = (self.next_sequence, object,)
1487+ logging.debug("Sending message with sequence number %s to backend" %
1488+ self.next_sequence)
1489+ self.parent_writer.write_object(message)
1490+ self.expected_sequence = self.next_sequence
1491+ self.next_sequence += 1
1492+
1493+ def read_from_parent(self):
1494+ correct_sequence = False
1495+ while not correct_sequence:
1496+ ro = self.parent_reader.read_object()
1497+ if ro:
1498+ sequence, result = ro
1499+ logging.debug("Expecting sequence number %s from backend, "
1500+ "got sequence number %s" %
1501+ (self.expected_sequence, sequence))
1502+ if (self.expected_sequence == sequence):
1503+ correct_sequence = True
1504+ else:
1505+ logging.warning("Backend sent wrong sequence number, "
1506+ "Discarding message and re-reading")
1507+ else:
1508+ #If we timed out, just return nothing, the rest of
1509+ #the code knows how to handle this.
1510+ return ro
1511+ return result
1512+
1513 def register(self, manager):
1514 super(BackendInfo, self).register(manager)
1515
1516@@ -57,7 +89,10 @@
1517
1518 def get_root_command(self, *args):
1519 uid = os.getuid()
1520- password_text = _("SYSTEM TESTING: Please enter your password. Some tests require root access to run properly. Your password will never be stored and will never be submitted with test results.")
1521+ password_text = _("SYSTEM TESTING: Please enter your password. "
1522+ "Some tests require root access to run properly. "
1523+ "Your password will never be stored and will never "
1524+ "be submitted with test results.")
1525 password_prompt = _("PASSWORD: ")
1526 if uid == 0:
1527 prefix = []
1528@@ -88,31 +123,35 @@
1529 def ping_backend(self):
1530 if not self.parent_reader or not self.parent_writer:
1531 return False
1532- self.parent_writer.write_object("ping")
1533- result = self.parent_reader.read_object()
1534+ self.write_to_parent("ping")
1535+ result = self.read_from_parent()
1536 return result == "pong"
1537
1538-
1539 def gather(self):
1540 self.directory = mkdtemp(prefix="checkbox")
1541- child_input = create_fifo(os.path.join(self.directory, "input"), 0o600)
1542- child_output = create_fifo(os.path.join(self.directory, "output"), 0o600)
1543+ child_input = create_fifo(os.path.join(self.directory, "input"),
1544+ 0o600)
1545+ child_output = create_fifo(os.path.join(self.directory, "output"),
1546+ 0o600)
1547
1548 self.backend_is_alive = False
1549- for attempt in range(1,4):
1550+ for attempt in range(1, 4):
1551 self.spawn_backend(child_input, child_output)
1552- #Only returns if I'm still the parent, so I can do parent stuff here
1553+ #Only returns if I'm still the parent,
1554+ #so I can do parent stuff here
1555 self.parent_writer = FifoWriter(child_input, timeout=self.timeout)
1556- self.parent_reader = FifoReader(child_output, timeout=self.timeout)
1557+ self.parent_reader = FifoReader(child_output,
1558+ timeout=self.timeout)
1559 if self.ping_backend():
1560 logging.debug("Backend responded, continuing execution.")
1561 self.backend_is_alive = True
1562 break
1563 else:
1564- logging.debug("Backend didn't respond, trying to create again.")
1565+ logging.debug("Backend didn't respond, "
1566+ "trying to create again.")
1567
1568- if not self.backend_is_alive:
1569- logging.warning("Privileged backend not responding. " +
1570+ if not self.backend_is_alive:
1571+ logging.warning("Privileged backend not responding. " +
1572 "jobs specifying user will not be run")
1573
1574 def message_exec(self, message):
1575@@ -120,20 +159,20 @@
1576 if "environ" in message:
1577 #Prepare variables to be "exported" from my environment
1578 #to the backend's.
1579- backend_environ=["%s=%s" % (key, os.environ[key])
1580- for key in message["environ"]
1581+ backend_environ = ["%s=%s" % (key, os.environ[key])
1582+ for key in message["environ"]
1583 if key in os.environ]
1584- message=dict(message) #so as to not wreck the
1585- #original message
1586- message["environ"]=backend_environ
1587+ message = dict(message) # so as to not wreck the
1588+ # original message
1589+ message["environ"] = backend_environ
1590
1591 if (self.backend_is_alive and not self.ping_backend()):
1592 self.backend_is_alive = False
1593
1594 if self.backend_is_alive:
1595- self.parent_writer.write_object(message)
1596+ self.write_to_parent(message)
1597 while True:
1598- result = self.parent_reader.read_object()
1599+ result = self.read_from_parent()
1600 if result:
1601 break
1602 else:
1603@@ -145,7 +184,7 @@
1604 self._manager.reactor.fire("message-result", *result)
1605
1606 def stop(self):
1607- self.parent_writer.write_object("stop")
1608+ self.write_to_parent("stop")
1609 self.parent_writer.close()
1610 self.parent_reader.close()
1611 shutil.rmtree(self.directory)
1612
1613=== modified file 'plugins/suites_prompt.py'
1614--- plugins/suites_prompt.py 2012-08-20 18:13:17 +0000
1615+++ plugins/suites_prompt.py 2012-10-05 14:06:24 +0000
1616@@ -114,9 +114,16 @@
1617 self.store.add_pending_offset(offset)
1618 tests = dict([(m["name"], m) for m in messages
1619 if m.get("type") in ("test", "metric")])
1620+
1621+ def walk_dependencies(job, all_dependencies):
1622+ for dependency in resolver.get_dependencies(job)[:-1]:
1623+ walk_dependencies(dependency, all_dependencies)
1624+ all_dependencies.append(job)
1625+
1626 for job in resolver.get_dependents():
1627 suboptions = options
1628- dependencies = resolver.get_dependencies(job)
1629+ dependencies = []
1630+ walk_dependencies(job, dependencies)
1631 for dependency in dependencies:
1632 if dependency in tests:
1633 value = tests[dependency]["status"]
1634
1635=== modified file 'po/POTFILES.in'
1636--- po/POTFILES.in 2012-07-17 16:27:55 +0000
1637+++ po/POTFILES.in 2012-10-05 14:06:24 +0000
1638@@ -47,7 +47,6 @@
1639 checkbox_urwid/urwid_interface.py
1640 checkbox_gtk/gtk_interface.py
1641 checkbox/user_interface.py
1642-plugins/apport_prompt.py
1643 plugins/final_prompt.py
1644 plugins/gather_prompt.py
1645 plugins/intro_prompt.py
1646
1647=== modified file 'po/ar.po'
1648--- po/ar.po 2012-09-26 16:10:55 +0000
1649+++ po/ar.po 2012-10-05 14:06:24 +0000
1650@@ -8,14 +8,14 @@
1651 "Project-Id-Version: checkbox\n"
1652 "Report-Msgid-Bugs-To: \n"
1653 "POT-Creation-Date: 2012-07-12 16:08-0400\n"
1654-"PO-Revision-Date: 2012-08-23 12:49+0000\n"
1655+"PO-Revision-Date: 2012-09-19 00:27+0000\n"
1656 "Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
1657 "Language-Team: Arabic <ar@li.org>\n"
1658 "MIME-Version: 1.0\n"
1659 "Content-Type: text/plain; charset=UTF-8\n"
1660 "Content-Transfer-Encoding: 8bit\n"
1661-"X-Launchpad-Export-Date: 2012-09-11 04:32+0000\n"
1662-"X-Generator: Launchpad (build 15924)\n"
1663+"X-Launchpad-Export-Date: 2012-09-20 04:32+0000\n"
1664+"X-Generator: Launchpad (build 15985)\n"
1665
1666 #. Title of the user interface
1667 #: ../gtk/checkbox-gtk.ui.h:1 ../qt/checkbox-qt.desktop.in.h:1
1668@@ -3348,7 +3348,7 @@
1669
1670 #: ../checkbox_urwid/urwid_interface.py:127 ../qt/frontend/ui_qtfront.h:637
1671 msgid "Continue"
1672-msgstr ""
1673+msgstr "تابع"
1674
1675 #: ../checkbox_urwid/urwid_interface.py:220
1676 #: ../checkbox_urwid/urwid_interface.py:296
1677@@ -3367,11 +3367,11 @@
1678 #. Show buttons
1679 #: ../checkbox_urwid/urwid_interface.py:445
1680 msgid "Select All"
1681-msgstr ""
1682+msgstr "حدّد الكل"
1683
1684 #: ../checkbox_urwid/urwid_interface.py:446
1685 msgid "Deselect All"
1686-msgstr ""
1687+msgstr "أزل تحديد الكل"
1688
1689 #. Show buttons
1690 #: ../checkbox_urwid/urwid_interface.py:567
1691@@ -3565,13 +3565,14 @@
1692 "you plan to participate in Ubuntu Friendly, please, select all tests. You "
1693 "can always skip individual tests if you don't have the needed equipment."
1694 msgstr ""
1695-"عدم اختيار اختبار ما سيلغي تسليمه إلى مجتمع أبونتو. إذا كان هدفك هو المشاركة "
1696-"في مجتمع أبونتو والمساعدة على تحسين النظام، من فضلك اختر جميع الاختبارات. "
1697-"يمكنك دائمًا تخطي اختبارات مفردة إذا لم تكن تمتلك المعدات اللازمة."
1698+"عدم تحديد أحد الاختبارات سيلغي تسليمه إلى مجتمع أبونتو. إذا كان هدفك هو "
1699+"المشاركة في مجتمع أبونتو والمساعدة على تحسين النظام، من فضلك حدّد جميع "
1700+"الاختبارات. يمكنك دائمًا تخطي اختبارات مفردة إذا لم تكن تمتلك التجهيزات "
1701+"اللازمة."
1702
1703 #: ../plugins/suites_prompt.py:136 ../qt/frontend/ui_qtfront.h:641
1704 msgid "Choose tests to run on your system:"
1705-msgstr ""
1706+msgstr "حدّد اختبارات لتشغيلها على نظامك:"
1707
1708 #: ../scripts/keyboard_test:22
1709 msgid "Enter text:\n"
1710@@ -3743,11 +3744,11 @@
1711
1712 #: ../qt/frontend/ui_qtfront.h:644
1713 msgid "Select all"
1714-msgstr ""
1715+msgstr "حدّد الكل"
1716
1717 #: ../qt/frontend/ui_qtfront.h:645
1718 msgid "Deselect all"
1719-msgstr ""
1720+msgstr "أزل تحديد الكل"
1721
1722 #: ../qt/frontend/ui_qtfront.h:646
1723 msgid "Start testing"
1724
1725=== modified file 'po/fi.po'
1726--- po/fi.po 2012-09-26 16:10:55 +0000
1727+++ po/fi.po 2012-10-05 14:06:24 +0000
1728@@ -8,14 +8,14 @@
1729 "Project-Id-Version: checkbox\n"
1730 "Report-Msgid-Bugs-To: \n"
1731 "POT-Creation-Date: 2012-07-12 16:08-0400\n"
1732-"PO-Revision-Date: 2011-07-19 17:55+0000\n"
1733-"Last-Translator: Heikki Mäntysaari <heikki.mantysaari@linux.fi>\n"
1734+"PO-Revision-Date: 2012-09-26 08:04+0000\n"
1735+"Last-Translator: sampo555 <Unknown>\n"
1736 "Language-Team: Finnish <fi@li.org>\n"
1737 "MIME-Version: 1.0\n"
1738 "Content-Type: text/plain; charset=UTF-8\n"
1739 "Content-Transfer-Encoding: 8bit\n"
1740-"X-Launchpad-Export-Date: 2012-09-11 04:33+0000\n"
1741-"X-Generator: Launchpad (build 15924)\n"
1742+"X-Launchpad-Export-Date: 2012-09-27 04:32+0000\n"
1743+"X-Generator: Launchpad (build 16033)\n"
1744
1745 #. Title of the user interface
1746 #: ../gtk/checkbox-gtk.ui.h:1 ../qt/checkbox-qt.desktop.in.h:1
1747@@ -106,6 +106,17 @@
1748 " 1. Do you hear the sound coming out on the corresponding channel?\n"
1749 " 2. Did you hear a sound?"
1750 msgstr ""
1751+"TARKOITUS:\n"
1752+" 1. HDMI-liitännän tarkistaminen\n"
1753+"SUORITUS:\n"
1754+" 1. Kiinnitä ulkoinen HDMI-äänilaite\n"
1755+" 2. Avaa ääniasetukset\n"
1756+" 3. Siirry Ulostulo-välilehdelle, valitse HDMI ja paina \"Kokeile ääntä\" "
1757+"testataksesi oikeaa ja vasenta kanavaa\n"
1758+" 4. Paina testaa\n"
1759+"VAHVISTUS:\n"
1760+" 1. Kuulitko ääntä oikeista kanavasta?\n"
1761+" 2. Kuulitko äänen?"
1762
1763 #. description
1764 #: ../jobs/audio.txt.in:58
1765@@ -209,11 +220,14 @@
1766 "this computer's audio subsystem and perform more detailed tests under a "
1767 "controlled environment."
1768 msgstr ""
1769+"Kerää äänijärjestelmän tietoja. Tietoja voidaan käyttää tietokoneen "
1770+"äänijärjestelmän simulointiin ja tarkempien testien suorittamiseen "
1771+"hallitussa ympäristössä."
1772
1773 #. description
1774 #: ../jobs/audio.txt.in:143
1775 msgid "Attaches the audio hardware data collection log to the results."
1776-msgstr ""
1777+msgstr "Liittää äänilaitteiston tietojen keräyslokin tuloksiin."
1778
1779 #. description
1780 #: ../jobs/benchmarks.txt.in:18
1781@@ -223,22 +237,22 @@
1782 #. description
1783 #: ../jobs/benchmarks.txt.in:41
1784 msgid "Run Render-Bench XRender/Imlib2 benchmark"
1785-msgstr ""
1786+msgstr "Aja Render-Bench XRender/Imlib2 -mittaus"
1787
1788 #. description
1789 #: ../jobs/benchmarks.txt.in:47
1790 msgid "Run Qgears2 XRender Extension gearsfancy benchmark"
1791-msgstr ""
1792+msgstr "Aja Qgears2 XRender Extension gearsfancy -mittaus"
1793
1794 #. description
1795 #: ../jobs/benchmarks.txt.in:53
1796 msgid "Run Qgears2 XRender Extension image scaling benchmark"
1797-msgstr ""
1798+msgstr "Aja Qgears2 XRender Extension image scaling -mittaus"
1799
1800 #. description
1801 #: ../jobs/benchmarks.txt.in:59
1802 msgid "Run Qgears2 OpenGL gearsfancy benchmark"
1803-msgstr ""
1804+msgstr "Aja Qgears2 OpenGL gearsfancy -mittaus"
1805
1806 #. description
1807 #: ../jobs/benchmarks.txt.in:65
1808@@ -4329,7 +4343,7 @@
1809 "Once you are finished running the tests, you can view a summary report for "
1810 "your system."
1811 msgstr ""
1812-"Tervetuloa Järjestelmän testaukseen!\n"
1813+"Tervetuloa järjestelmän testaukseen!\n"
1814 "\n"
1815 "Checkbox tarjoaa testejä, joilla järjestelmän oikeanlainen toimivuus voidaan "
1816 "varmistaa. Testien suorittamisen jälkeen on mahdollista katsella "
1817@@ -4409,7 +4423,7 @@
1818
1819 #: ../plugins/launchpad_prompt.py:84
1820 msgid "Email"
1821-msgstr ""
1822+msgstr "Sähköposti"
1823
1824 #: ../plugins/launchpad_prompt.py:93
1825 msgid "Email address must be in a proper format."
1826@@ -4461,7 +4475,7 @@
1827
1828 #: ../plugins/suites_prompt.py:136 ../qt/frontend/ui_qtfront.h:641
1829 msgid "Choose tests to run on your system:"
1830-msgstr ""
1831+msgstr "Valitse suoritettavat testit:"
1832
1833 #: ../scripts/keyboard_test:22
1834 msgid "Enter text:\n"
1835@@ -4633,11 +4647,11 @@
1836
1837 #: ../qt/frontend/ui_qtfront.h:644
1838 msgid "Select all"
1839-msgstr ""
1840+msgstr "Valitse kaikki"
1841
1842 #: ../qt/frontend/ui_qtfront.h:645
1843 msgid "Deselect all"
1844-msgstr ""
1845+msgstr "Poista kaikki valinnat"
1846
1847 #: ../qt/frontend/ui_qtfront.h:646
1848 msgid "Start testing"
1849
1850=== modified file 'po/fr.po'
1851--- po/fr.po 2012-09-26 16:10:55 +0000
1852+++ po/fr.po 2012-10-05 14:06:24 +0000
1853@@ -7,14 +7,14 @@
1854 "Project-Id-Version: checkbox 0.1\n"
1855 "Report-Msgid-Bugs-To: \n"
1856 "POT-Creation-Date: 2012-07-12 16:08-0400\n"
1857-"PO-Revision-Date: 2011-08-29 10:42+0000\n"
1858-"Last-Translator: Pierre Slamich <pierre.slamich@gmail.com>\n"
1859+"PO-Revision-Date: 2012-09-24 20:26+0000\n"
1860+"Last-Translator: Sylvie Gallet <Unknown>\n"
1861 "Language-Team: French <fr@li.org>\n"
1862 "MIME-Version: 1.0\n"
1863 "Content-Type: text/plain; charset=UTF-8\n"
1864 "Content-Transfer-Encoding: 8bit\n"
1865-"X-Launchpad-Export-Date: 2012-09-11 04:33+0000\n"
1866-"X-Generator: Launchpad (build 15924)\n"
1867+"X-Launchpad-Export-Date: 2012-09-25 04:32+0000\n"
1868+"X-Generator: Launchpad (build 16019)\n"
1869
1870 #. Title of the user interface
1871 #: ../gtk/checkbox-gtk.ui.h:1 ../qt/checkbox-qt.desktop.in.h:1
1872@@ -1396,7 +1396,7 @@
1873 "BUT :\n"
1874 " Ce test va vérifier le bon fonctionnement de votre clavier\n"
1875 "ÉTAPES :\n"
1876-" 1. Cliquez sur « Test »\n"
1877+" 1. Cliquez sur « Tester »\n"
1878 " 2. Dans la zone de texte, utilisez votre clavier pour y taper quelque "
1879 "chose\n"
1880 "VÉRIFICATION :\n"
1881@@ -1750,7 +1750,7 @@
1882 #. description
1883 #: ../jobs/local.txt.in:269
1884 msgid "Sniff Sniffers"
1885-msgstr ""
1886+msgstr "Flairer les renifleurs"
1887
1888 #. description
1889 #: ../jobs/mediacard.txt.in:6
1890@@ -1804,7 +1804,7 @@
1891 " le retrait de la carte MMC du lecteur de carte du système.\n"
1892 "ÉTAPES :\n"
1893 " 1. Cliquez sur « Tester » et retirez la carte MMC du lecteur.\n"
1894-" (Note : ce test s'interrompra après 20 secondes.)\n"
1895+" (Note : ce test s'interrompra après 20 secondes.)\n"
1896 "VÉRIFICATION :\n"
1897 " La vérification de ce test est automatisée. Ne changez pas le\n"
1898 " résultat sélectionné automatiquement."
1899@@ -1867,7 +1867,7 @@
1900 "été suspendu..\n"
1901 "ÉTAPES :\n"
1902 " 1. Cliquez sur « Tester » et retirez la carte MMC du lecteur.\n"
1903-" (Note : ce test s'interrompra après 20 secondes.)\n"
1904+" (Note : ce test s'interrompra après 20 secondes.)\n"
1905 "VÉRIFICATION :\n"
1906 " La vérification de ce test est automatisée. Ne changez pas le\n"
1907 " résultat sélectionné automatiquement."
1908@@ -1891,7 +1891,7 @@
1909 " détecter l'insertion d'une carte Secure Digital (SD).\n"
1910 "ÉTAPES :\n"
1911 " 1. Cliquez sur « Tester » et insérez une carte SD dans le lecteur.\n"
1912-" (Note : ce test s'interrompra après 20 secondes.)\n"
1913+" (Note : ce test s'interrompra après 20 secondes.)\n"
1914 " 2. Ne débranchez pas l'appareil après le test.\n"
1915 "VÉRIFICATION :\n"
1916 " La vérification de ce test est automatisée. Ne changez pas le\n"
1917@@ -1924,7 +1924,7 @@
1918 " le retrait d'une carte SD du lecteur de carte du système.\n"
1919 "ÉTAPES :\n"
1920 " 1.  Cliquez sur « Tester » et retirez la carte SD du le lecteur.\n"
1921-" (Note : ce test s'interrompra après 20 secondes.)\n"
1922+" (Note : ce test s'interrompra après 20 secondes.)\n"
1923 "VÉRIFICATION :\n"
1924 " La vérification de ce test est automatisée. Ne changez pas le\n"
1925 " résultat sélectionné automatiquement."
1926@@ -1949,7 +1949,7 @@
1927 " l'insertion d'une carte SD card après que le système ait été suspendu.\n"
1928 "ÉTAPES :\n"
1929 " 1.  Cliquez sur « Tester » et insérez une carte SD dans le lecteur.\n"
1930-" (Note : ce test s'interrompra après 20 secondes.)\n"
1931+" (Note : ce test s'interrompra après 20 secondes.)\n"
1932 " 2. Ne débranchez pas l'appareil après le test.\n"
1933 "VÉRIFICATION :\n"
1934 " La vérification de ce test est automatisée. Ne changez pas le\n"
1935@@ -1986,7 +1986,7 @@
1936 "ait été suspendu..\n"
1937 "ÉTAPES :\n"
1938 " 1.  Cliquez sur « Tester » et retirez la carte SD du le lecteur.\n"
1939-" (Note : ce test s'interrompra après 20 secondes.)\n"
1940+" (Note : ce test s'interrompra après 20 secondes.)\n"
1941 "VÉRIFICATION :\n"
1942 " La vérification de ce test est automatisée. Ne changez pas le\n"
1943 " résultat sélectionné automatiquement."
1944@@ -2011,7 +2011,7 @@
1945 " détecter l'insertion d'une carte Secure Digital High-Capacity (SDHC).\n"
1946 "ÉTAPES :\n"
1947 " 1.  Cliquez sur « Tester » et insérez une carte SDHC dans le lecteur.\n"
1948-" (Note : ce test s'interrompra après 20 secondes.)\n"
1949+" (Note : ce test s'interrompra après 20 secondes.)\n"
1950 " 2. Ne débranchez pas l'appareil après le test.\n"
1951 "VÉRIFICATION :\n"
1952 " La vérification de ce test est automatisée. Ne changez pas le\n"
1953@@ -2044,7 +2044,7 @@
1954 " le retrait d'une carte SDHC du lecteur de carte du système.\n"
1955 "ÉTAPES :\n"
1956 " 1.  Cliquez sur « Tester » et retirez la carte SDHC du le lecteur.\n"
1957-" (Note : ce test s'interrompra après 20 secondes.)\n"
1958+" (Note : ce test s'interrompra après 20 secondes.)\n"
1959 "VÉRIFICATION :\n"
1960 " La vérification de ce test est automatisée. Ne changez pas le\n"
1961 " résultat sélectionné automatiquement."
1962@@ -2070,7 +2070,7 @@
1963 " l'insertion d'une carte SDHC après que le système ait été suspendu.\n"
1964 "ÉTAPES :\n"
1965 " 1.  Cliquez sur « Tester » et insérez une carte SDHC dans le lecteur.\n"
1966-" (Note : ce test s'interrompra après 20 secondes.)\n"
1967+" (Note : ce test s'interrompra après 20 secondes.)\n"
1968 " 2. Ne débranchez pas l'appareil après le test.\n"
1969 "VÉRIFICATION :\n"
1970 " La vérification de ce test est automatisée. Ne changez pas le\n"
1971@@ -2107,7 +2107,7 @@
1972 "été suspendu.\n"
1973 "ÉTAPES :\n"
1974 " 1.  Cliquez sur « Tester » et retirez la carte SDHC du le lecteur.\n"
1975-" (Note : ce test s'interrompra après 20 secondes.)\n"
1976+" (Note : ce test s'interrompra après 20 secondes.)\n"
1977 "VÉRIFICATION :\n"
1978 " La vérification de ce test est automatisée. Ne changez pas le\n"
1979 " résultat sélectionné automatiquement."
1980@@ -2131,7 +2131,7 @@
1981 " détecter l'insertion d'une carte Compact Flash (CF).\n"
1982 "ÉTAPES :\n"
1983 " 1.  Cliquez sur « Tester » et insérez une carte CF dans le lecteur.\n"
1984-" (Note : ce test s'interrompra après 20 secondes.)\n"
1985+" (Note : ce test s'interrompra après 20 secondes.)\n"
1986 " 2. Ne débranchez pas l'appareil après le test.\n"
1987 "VÉRIFICATION :\n"
1988 " La vérification de ce test est automatisée. Ne changez pas le\n"
1989@@ -2164,7 +2164,7 @@
1990 " le retrait d'une carte CF du lecteur de carte du système.\n"
1991 "ÉTAPES :\n"
1992 " 1.  Cliquez sur « Tester » et retirez la carte CF du le lecteur.\n"
1993-" (Note : ce test s'interrompra après 20 secondes.)\n"
1994+" (Note : ce test s'interrompra après 20 secondes.)\n"
1995 "VÉRIFICATION :\n"
1996 " La vérification de ce test est automatisée. Ne changez pas le\n"
1997 " résultat sélectionné automatiquement."
1998@@ -2189,7 +2189,7 @@
1999 " l'insertion d'une carte CF après que le système ait été suspendu.\n"
2000 "ÉTAPES :\n"
2001 " 1.  Cliquez sur « Tester » et insérez une carte CF le lecteur.\n"
2002-" (Note : ce test s'interrompra après 20 secondes.)\n"
2003+" (Note : ce test s'interrompra après 20 secondes.)\n"
2004 " 2. Ne débranchez pas l'appareil après le test.\n"
2005 "VÉRIFICATION :\n"
2006 " La vérification de ce test est automatisée. Ne changez pas le\n"
2007@@ -2226,7 +2226,7 @@
2008 "été suspendu..\n"
2009 "ÉTAPES :\n"
2010 " 1.  Cliquez sur « Tester » et retirez la carte CF du le lecteur.\n"
2011-" (Note : ce test s'interrompra après 20 secondes.)\n"
2012+" (Note : ce test s'interrompra après 20 secondes.)\n"
2013 "VÉRIFICATION :\n"
2014 " La vérification de ce test est automatisée. Ne changez pas le\n"
2015 " résultat sélectionné automatiquement."
2016@@ -2264,7 +2264,7 @@
2017 "ÉTAPES :\n"
2018 " 1. Informations sur le testeur\n"
2019 " 2. Veuillez entrer les informations suivantes dans les zones de "
2020-"commentaires :\n"
2021+"commentaires :\n"
2022 " a. Nom\n"
2023 " b. Adresse de courrier électronique\n"
2024 " c. La raison de l'exécution de ce test\n"
2025@@ -2530,7 +2530,7 @@
2026 " Ce test va vérifier votre connexion filaire\n"
2027 "ÉTAPES :\n"
2028 " 1. Cliquez sur l'icône Réseau dans le panneau supérieur\n"
2029-" 2. Sélectionnez un réseau en-dessous de la section \"Réseau filaire\"\n"
2030+" 2. Sélectionnez un réseau en-dessous de la section « Réseau filaire »\n"
2031 " 3. Cliquez sur « Tester » pour vérifier qu'il est possible d'établir une "
2032 "connexion HTTP\n"
2033 "VÉRIFICATION :\n"
2034@@ -2559,9 +2559,9 @@
2035 "ÉTAPES :\n"
2036 " 1. Connectez la ligne téléphonique à l'ordinateur\n"
2037 " 2. Cliquez sur l'icône Réseau dans le panneau supérieur.\n"
2038-" 3. Sélectionnez \"Modification des connexions\"\n"
2039-" 4. Sélectionnez l'onglet \"DSL\"\n"
2040-" 5. Cliquez sur le bouton \"Ajouter\"\n"
2041+" 3. Sélectionnez « Modification des connexions »\n"
2042+" 4. Sélectionnez l'onglet « DSL »\n"
2043+" 5. Cliquez sur le bouton « Ajouter »\n"
2044 " 6. Configurer les paramètres de connexion correctement\n"
2045 " 7. Cliquez sur « Tester » pour vérifier qu'il est possible d'établir une "
2046 "connexion HTTP\n"
2047@@ -2654,8 +2654,8 @@
2048 "fermer en toute sécurité ou ignorer cette fenêtre.\n"
2049 " 3.  Cliquez sur « Tester » pour démarrer le test.\n"
2050 "VÉRIFICATION :\n"
2051-" Ce test devrait sélectionner automatiquement \"Oui\" s'il réussit, "
2052-"\"Non\" s'il échoue."
2053+" Ce test devrait sélectionner automatiquement « Oui » s'il réussit, "
2054+"« Non » s'il échoue."
2055
2056 #. description
2057 #: ../jobs/optical.txt.in:42
2058@@ -2673,6 +2673,19 @@
2059 " This test should automatically select \"Yes\" if it passes, \"No\" if it "
2060 "fails."
2061 msgstr ""
2062+"BUT :\n"
2063+" Ce test va vérifier la capacité d'écriture du graveur de CD. Ce test "
2064+"requiert un CD-R vierge. Si vous n'en possédez pas, passez ce test.\n"
2065+"ÉTAPES :\n"
2066+" 1. Insérez un CD-R vierge dans votre lecteur.\n"
2067+" 2. Cliquez sur \"Tester\" pour démarrer la gravure.\n"
2068+" 3. Lorsque le système éjecte le CD après la gravure, refermez-le "
2069+"(N'ENLEVEZ PAS le disque, il est nécessaire pour la seconde partie du test). "
2070+"(Note : Si le CD n'est pas inséré dans les 10 secondes, le test sera "
2071+"annulé.)\n"
2072+"VÉRIFICATION :\n"
2073+" Le test devrait sélectionner automatiquement \"Oui\" s'il réussit, ou "
2074+"\"Non\" s'il échoue."
2075
2076 #. description
2077 #: ../jobs/optical.txt.in:65
2078@@ -2700,11 +2713,11 @@
2079 " 2. Une fois le CD détecté, lancez le lecteur de musique.\n"
2080 " 3. Localisez le CD dans la fenêtre du lecteur de musique.\n"
2081 " 4. Sélectionnez le CD dans le lecteur de musique.\n"
2082-" 5. Cliquez sur le bouton \"Lecture\" pour écouter la musique à partir du "
2083+" 5. Cliquez sur le bouton « Lecture » pour écouter la musique à partir du "
2084 "CD.\n"
2085 " 6. Arrêtez la lecture après quelques instants d'écoute.\n"
2086-" 7. Faites un clic droit sur l'icône du CD et cliquez sur \"Éjecter le "
2087-"disque\".\n"
2088+" 7. Faites un clic droit sur l'icône du CD et cliquez sur « Éjecter le "
2089+"disque ».\n"
2090 " 8. Le CD devrait s'éjecter.\n"
2091 " 9. Fermez le lecteur de musique.\n"
2092 "VÉRIFICATION :\n"
2093@@ -2726,6 +2739,19 @@
2094 " This test should automatically select \"Yes\" if it passes, \"No\" if it "
2095 "fails."
2096 msgstr ""
2097+"BUT :\n"
2098+" Ce test va vérifier la capacité d'écriture du graveur de DVD. Ce test "
2099+"requiert un DVD-R vierge. Si vous n'en possédez pas, passez ce test.\n"
2100+"DÉMARCHE :\n"
2101+" 1. Insérez un DVD-R vierge dans votre lecteur.\n"
2102+" 2. Cliquez sur \"Tester\" pour démarrer la gravure.\n"
2103+" 3. Lorsque le graveur éjecte le DVD après la gravure, refermez-le "
2104+"(N'ENLEVEZ PAS le disque, il est nécessaire pour la seconde partie du test.) "
2105+"Note : Si le DVD n'est pas inséré dans les 10 secondes, le test sera "
2106+"annulé.\n"
2107+"VÉRIFICATION :\n"
2108+" Le test devrait sélectionner automatiquement \"Oui\" s'il réussit, ou "
2109+"\"Non\" s'il échoue."
2110
2111 #. description
2112 #: ../jobs/optical.txt.in:111
2113@@ -2746,7 +2772,7 @@
2114 " Did all the steps work?"
2115 msgstr ""
2116 "BUT :\n"
2117-" Ce test va vérifier la capacité de lecture de DVD vidéo. Note : "
2118+" Ce test va vérifier la capacité de lecture de DVD vidéo. Note : "
2119 "l'installation de logiciels non-libres (codecs, lecteurs, etc) peut être "
2120 "nécessaire avant d'effectuer le test.\n"
2121 "ÉTAPES :\n"
2122@@ -2820,10 +2846,10 @@
2123 "l'horloge système.\n"
2124 "ÉTAPES :\n"
2125 " 1. Cliquez sur « Tester » et vérifiez que l'horloge avance d'une heure.\n"
2126-" (Note : L'horloge peut mettre presque une minute pour "
2127+" (Note : L'horloge peut mettre presque une minute pour "
2128 "s'actualiser.)\n"
2129-" 2. Faites un clic droit sur l'horloge et cliquez sur \"Réglages de la "
2130-"date et de l'heure...\"\n"
2131+" 2. Faites un clic droit sur l'horloge et cliquez sur « Réglages de la "
2132+"date et de l'heure... »\n"
2133 " 3. Vérifiez que l'horloge est en réglage manuel.\n"
2134 " 4. Reculez l'horloge d'une heure.\n"
2135 " 5. Fermez la fenêtre et redémarrez l'ordinateur.\n"
2136@@ -2851,8 +2877,8 @@
2137 "menu du bureau.\n"
2138 "ÉTAPES :\n"
2139 " 1. Cliquez sur l'icône Engrenage dans le coin supérieur droit de l'écran "
2140-"et cliquez sur \"Éteindre\".\n"
2141-" 2. Cliquez sur le bouton \"Redémarrer\" à gauche de la boîte de dialogue "
2142+"et cliquez sur « Éteindre ».\n"
2143+" 2. Cliquez sur le bouton « Redémarrer » à gauche de la boîte de dialogue "
2144 "de fermeture.\n"
2145 " 3. Après le redémarrage, relancez le Test Système. Il devrait reprendre "
2146 "à cet endroit.\n"
2147@@ -2900,14 +2926,14 @@
2148 "ÉTAPES :\n"
2149 " 1. Assurez-vous qu'une imprimante soit disponible sur votre réseau.\n"
2150 " 2. Cliquez sur l'icône Engrenage dans le coin supérieur droit de votre "
2151-"écran puis cliquez sur \"Imprimantes\".\n"
2152-" 3. Si l'imprimante n'est pas répertoriée, cliquez sur \"Ajouter\".\n"
2153+"écran puis cliquez sur « Imprimantes ».\n"
2154+" 3. Si l'imprimante n'est pas répertoriée, cliquez sur « Ajouter ».\n"
2155 " 4. L'imprimante devrait être détectée et les paramètres de configuration "
2156 "devraient s'afficher.\n"
2157 " 5. Imprimez une page de test.\n"
2158 "VÉRIFICATION :\n"
2159-" Êtes-vous parvenu à imprimer une page de test sur l'imprimante en réseau "
2160-"?"
2161+" Êtes-vous parvenu à imprimer une page de test sur l'imprimante en "
2162+"réseau ?"
2163
2164 #. description
2165 #: ../jobs/peripheral.txt.in:18
2166@@ -2941,8 +2967,8 @@
2167 " 6. Configurez les paramètres de connexion correctement\n"
2168 " 7. Une notification à l'écran devrait confirmer que la connexion a été "
2169 "établie\n"
2170-" 8. Sélectionnez Test pour vérifier qu'il est possible d'établir une "
2171-"connexion HTTP\n"
2172+" 8. Sélectionnez « Tester » pour vérifier qu'il est possible d'établir "
2173+"une connexion HTTP\n"
2174 "VÉRIFICATION :\n"
2175 " La connexion a-t-elle été établie correctement ?"
2176
2177@@ -2998,16 +3024,16 @@
2178 " Ce test va vérifier la capacité du système de s'éteindre et de "
2179 "redémarrer.\n"
2180 "ÉTAPES :\n"
2181-" 1. Sélectionnez \"Test\" pour démarrer.\n"
2182+" 1. Sélectionnez « Tester » pour démarrer.\n"
2183 " 2. L'ordinateur devrait s'éteindre.\n"
2184 " 3. Rallumez l'ordinateur.\n"
2185 " 4. Après le démarrage, attendez le message du test vous informant que le "
2186 "test est terminé.\n"
2187-" 5. Lorsque le test est terminé, redémarrez Checkbox et sélectionnez Ré-"
2188-"exécuter quand cela est proposé\n"
2189+" 5. Lorsque le test est terminé, redémarrez Checkbox et sélectionnez « Ré-"
2190+"exécuter » quand cela est proposé\n"
2191 "VÉRIFICATION :\n"
2192-" Si l'ordinateur s'éteint et redémarre correctement, sélectionnez Oui "
2193-"puis Suivant."
2194+" Si l'ordinateur s'éteint et redémarre correctement, sélectionnez « Oui » "
2195+"puis « Suivant »."
2196
2197 #. description
2198 #: ../jobs/power-management.txt.in:54
2199@@ -3036,14 +3062,15 @@
2200 "BUT :\n"
2201 " Ce test va vérifier la capacité du système à redémarrer proprement.\n"
2202 "ÉTAPES :\n"
2203-" 1. Sélectionnez \"Test\" pour démarrer.\n"
2204+" 1. Sélectionnez « Tester » pour démarrer.\n"
2205 " 2. L'ordinateur devrait redémarrer.\n"
2206 " 3. Après le redémarrage, attendez le message du test vous informant que "
2207 "le test est terminé.\n"
2208-" 4. Lorsque le test est terminé, redémarrez Checkbox et sélectionnez Ré-"
2209-"exécuter quand cela est proposé\n"
2210+" 4. Lorsque le test est terminé, redémarrez Checkbox et sélectionnez « Ré-"
2211+"exécuter » quand cela est proposé\n"
2212 "VÉRIFICATION :\n"
2213-" Si l'ordinateur redémarre correctement, sélectionnez Oui puis Suivant."
2214+" Si l'ordinateur redémarre correctement, sélectionnez « Oui«  puis "
2215+"« Suivant »."
2216
2217 #. description
2218 #: ../jobs/power-management.txt.in:78
2219@@ -3087,7 +3114,7 @@
2220 " Ce test va vérifier les capteurs du couvercle de votre ordinateur "
2221 "portable\n"
2222 "ÉTAPES :\n"
2223-" 1. Cliquez \"Test\"\n"
2224+" 1. Cliquez sur « Tester »\n"
2225 " 2. Rabattez et rouvrez le couvercle de votre ordinateur portable\n"
2226 "VÉRIFICATION :\n"
2227 " Est-ce que l'écran s'est éteint quand le couvercle était fermé ?"
2228@@ -3109,7 +3136,7 @@
2229 " Ce test va vérifier les capteurs du couvercle de votre ordinateur "
2230 "portable\n"
2231 "ÉTAPES :\n"
2232-" 1. Cliquez \"Test\"\n"
2233+" 1. Cliquez sur « Tester »\n"
2234 " 2. Rabattez le couvercle\n"
2235 " 3. Laissez le couvercle fermé 5 secondes\n"
2236 " 4. Ouvrez le couvercle de votre ordinateur portable\n"
2237@@ -3318,7 +3345,7 @@
2238 "BUT :\n"
2239 " Ce test va vérifier la mise en veille et la sortie de veille\n"
2240 "ÉTAPES :\n"
2241-" 1. Cliquez sur « Oui » et votre système se mettra en veille pendant "
2242+" 1. Cliquez sur « Tester » et votre système se mettra en veille pendant "
2243 "environ 30 - 60 secondes\n"
2244 " 2. Si votre système ne se réveille pas de lui-même après 60 secondes, "
2245 "veuillez appuyer momentanément sur le bouton de mise en marche pour "
2246@@ -3707,7 +3734,7 @@
2247 " Ce test va vérifier votre connexion USB.\n"
2248 "ÉTAPES :\n"
2249 " 1. Brancher un clavier USB sur l'ordinateur.\n"
2250-" 2. Cliquer \"Test\" et taper du texte.\n"
2251+" 2. Cliquer sur « Tester » et taper du texte.\n"
2252 "VÉRIFICATION :\n"
2253 " Le clavier fonctionne-t-il ?"
2254
2255@@ -3748,9 +3775,9 @@
2256 " Ce test va vérifier que le système détecte correctement l'insertion\n"
2257 " d'un périphérique de stockage USB\n"
2258 "ÉTAPES :\n"
2259-" 1. Cliquez sur « Test » et insérez un périphérique de stockage USB "
2260+" 1. Cliquez sur « Tester » et insérez un périphérique de stockage USB "
2261 "(mémoire flash USB \"pen-drive\"/disque dur).\n"
2262-" Note : ce test s'interrompra après 20 secondes).\n"
2263+" Note : ce test s'interrompra après 20 secondes).\n"
2264 " 2. Ne débranchez pas le périphérique après le test.\n"
2265 "VÉRIFICATION :\n"
2266 " La vérification de ce test est automatisée. Ne modifiez pas le\n"
2267@@ -3773,8 +3800,8 @@
2268 " Ce test va vérifier que le système détecte correctement le retrait\n"
2269 " d'un périphérique de stockage USB\n"
2270 "ÉTAPES :\n"
2271-" 1. Cliquez \"Test\" et retirez le périphérique USB.\n"
2272-" (Note : ce test s'interrompra après 20 secondes.)\n"
2273+" 1. Cliquez sur « Tester » et retirez le périphérique USB.\n"
2274+" (Note : ce test s'interrompra après 20 secondes.)\n"
2275 "VÉRIFICATION :\n"
2276 " La vérification de ce test est automatisée. Ne modifiez pas le\n"
2277 " résultat sélectionné automatiquement."
2278@@ -3797,7 +3824,7 @@
2279 "ÉTAPES :\n"
2280 " 1. Branchez un disque dur USB ou une clé USB sur l'ordinateur.\n"
2281 " 2. Une icône devrait apparaître sur le lanceur d'application.\n"
2282-" 3. Cliquez \"Test\" pour démarrer le test.\n"
2283+" 3. Cliquez sur « Tester » pour démarrer le test.\n"
2284 "VÉRIFICATION :\n"
2285 " La vérification de ce test est automatisée. Ne modifiez pas le\n"
2286 " résultat sélectionné automatiquement."
2287@@ -3922,17 +3949,16 @@
2288 "dossier.\n"
2289 "ÉTAPES :\n"
2290 " 1. Cliquez sur « Tester » pour lancer le gestionnaire de fichiers.\n"
2291-" 2. Faites un clic droit sur le dossier \"Test Folder\" et cliquez sur "
2292-"Copier.\n"
2293+" 2. Faites un clic droit sur le dossier Test Folder et cliquez sur Copier.\n"
2294 " 3. Faites un clic droit dans la partie blanche de la fenêtre et cliquez sur "
2295 "Coller.\n"
2296-" 4. Faites un clic droit sur le dossier \"Test Folder(copie)\" et cliquez "
2297-"sur Renommer.\n"
2298-" 5. Saisissez le nom \"Test Data\" dans le champ de saisie et appuyez sur "
2299+" 4. Faites un clic droit sur le dossier Test Folder(copie) et cliquez sur "
2300+"Renommer.\n"
2301+" 5. Saisissez le nom Test Data dans le champ de saisie et appuyez sur "
2302 "Entrée.\n"
2303 " 6. Fermez le gestionnaire de fichiers.\n"
2304 "VÉRIFICATION :\n"
2305-" Avez-vous maintenant un dossier appelé \"Test Data\" ?"
2306+" Avez-vous maintenant un dossier appelé Test Data ?"
2307
2308 #. description
2309 #: ../jobs/user_apps.txt.in:54
2310@@ -3955,14 +3981,12 @@
2311 "dossier.\n"
2312 "ÉTAPES :\n"
2313 " 1. Cliquez sur « Tester » pour lancer le gestionnaire de fichiers.\n"
2314-" 2. Cliquez et déplacez le dossier \"Test Data\" sur l'icône \"Test "
2315-"Folder\".\n"
2316+" 2. Cliquez et déplacez le dossier Test Data sur l'icône Test Folder.\n"
2317 " 3. Relâchez le bouton.\n"
2318-" 4. Double cliquez sur le dossier \"Test Folder\" pour l'ouvrir.\n"
2319+" 4. Double cliquez sur le dossier Test Folder pour l'ouvrir.\n"
2320 " 5. Fermez le gestionnaire de fichiers.\n"
2321 "VÉRIFICATION :\n"
2322-" Le dossier \"Test Data\" a-t-il bien été déplacé dans le dossier \"Test "
2323-"Folder\" ?"
2324+" Le dossier Test Data a-t-il bien été déplacé dans le dossier Test Folder ?"
2325
2326 #. description
2327 #: ../jobs/user_apps.txt.in:70
2328@@ -3985,11 +4009,11 @@
2329 " 1. Cliquez sur « Tester » pour lancer le gestionnaire de fichiers.\n"
2330 " 2. Faites un clic droit dans la partie blanche et cliquez sur Créer un "
2331 "nouveau document -> document vide.\n"
2332-" 3. Saisissez le nom \"Test File 1\" dans le champ de saisie et appuyez sur "
2333+" 3. Saisissez le nom Test File 1 dans le champ de saisie et appuyez sur "
2334 "Entrée.\n"
2335 " 4. Fermez le gestionnaire de fichiers.\n"
2336 "VÉRIFICATION :\n"
2337-" Avez-vous maintenant un fichier \"Test File 1\" ?"
2338+" Avez-vous maintenant un fichier Test File 1 ?"
2339
2340 #. description
2341 #: ../jobs/user_apps.txt.in:85
2342@@ -4011,17 +4035,16 @@
2343 "fichier.\n"
2344 "ÉTAPES :\n"
2345 " 1. Cliquez sur « Tester » pour lancer le gestionnaire de fichiers.\n"
2346-" 2. Faites un clic droit sur le fichier \"Test File 1\" et cliquez sur "
2347-"Copier.\n"
2348+" 2. Faites un clic droit sur le fichier Test File 1 et cliquez sur Copier.\n"
2349 " 3. Faites un clic droit dans la partie blanche de la fenêtre et cliquez sur "
2350 "Coller.\n"
2351-" 4. Faites un clic droit sur le fichier \"Test File 1(copie)\" et cliquez "
2352-"sur Renommer.\n"
2353-" 5. Saisissez le nom \"Test File 2\" dans le champ de saisie et appuyez sur "
2354+" 4. Faites un clic droit sur le fichier Test File 1(copie) et cliquez sur "
2355+"Renommer.\n"
2356+" 5. Saisissez le nom Test File 2 dans le champ de saisie et appuyez sur "
2357 "Entrée.\n"
2358 " 6. Fermez le gestionnaire de fichiers.\n"
2359 "VÉRIFICATION :\n"
2360-" Avez-vous maintenant un fichier appelé \"Test File 2\" ?"
2361+" Avez-vous maintenant un fichier appelé Test File 2 ?"
2362
2363 #. description
2364 #: ../jobs/user_apps.txt.in:102
2365@@ -4043,14 +4066,13 @@
2366 "fichier.\n"
2367 "ÉTAPES :\n"
2368 " 1. Cliquez sur « Tester » pour lancer le gestionnaire de fichiers.\n"
2369-" 2. Cliquez et déplacez le fichier \"Test File 2\" sur l'icône du dossier "
2370-"\"Test Data\".\n"
2371+" 2. Cliquez et déplacez le fichier Test File 2 sur l'icône du dossier Test "
2372+"Data.\n"
2373 " 3. Relâchez le bouton.\n"
2374-" 4. Double cliquez sur le dossier \"Test Data\" pour l'ouvrir.\n"
2375+" 4. Double cliquez sur le dossier Test Data pour l'ouvrir.\n"
2376 " 5. Fermez le gestionnaire de fichiers.\n"
2377 "VÉRIFICATION :\n"
2378-" Le fichier \"Test File 2\" a-t-il bien été déplacé dans le dossier \"Test "
2379-"Data\" ?"
2380+" Le fichier Test File 2 a-t-il bien été déplacé dans le dossier Test Data ?"
2381
2382 #. description
2383 #: ../jobs/user_apps.txt.in:118
2384@@ -4070,12 +4092,12 @@
2385 "fichier.\n"
2386 "ÉTAPES :\n"
2387 " 1. Cliquez sur « Tester » pour lancer le gestionnaire de fichiers.\n"
2388-" 2. Faites un clic droit sur le fichier \"Test File 1\" et cliquez sur "
2389-"Mettre à la corbeille.\n"
2390-" 3. Vérifiez que \"Test File 1\" a bien été supprimé.\n"
2391+" 2. Faites un clic droit sur le fichier Test File 1 et cliquez sur Mettre à "
2392+"la corbeille.\n"
2393+" 3. Vérifiez que Test File 1 a bien été supprimé.\n"
2394 " 4. Fermez le gestionnaire de fichiers.\n"
2395 "VÉRIFICATION :\n"
2396-" \"Test File 1\" a-t-il bien disparu ?"
2397+" Test File 1 a-t-il bien disparu ?"
2398
2399 #. description
2400 #: ../jobs/user_apps.txt.in:133
2401@@ -4096,12 +4118,12 @@
2402 "dossier.\n"
2403 "ÉTAPES :\n"
2404 " 1. Cliquez sur « Tester » pour lancer le gestionnaire de fichiers.\n"
2405-" 2. Faites un clic droit sur le dossier \"Test Folder\" et cliquez sur "
2406-"Mettre à la corbeille.\n"
2407-" 3. Vérifiez que \"Test Folder\" a bien été supprimé.\n"
2408+" 2. Faites un clic droit sur le dossier Test Folder et cliquez sur Mettre à "
2409+"la corbeille.\n"
2410+" 3. Vérifiez que Test Folder a bien été supprimé.\n"
2411 " 4. Fermez le gestionnaire de fichiers.\n"
2412 "VÉRIFICATION :\n"
2413-" \"Test Folder\" a-t-il bien été supprimé ?"
2414+" Test Folder a-t-il bien été supprimé ?"
2415
2416 #. description
2417 #: ../jobs/user_apps.txt.in:207
2418@@ -4141,7 +4163,7 @@
2419 "BUT :\n"
2420 " Ce test va vérifier que Firefox peut exécuter une applet java dans une page "
2421 "web.\n"
2422-" Note : ceci peut nécessiter l'installation de logiciels supplémentaires "
2423+" Note : ceci peut nécessiter l'installation de logiciels supplémentaires "
2424 "pour réussir.\n"
2425 "ÉTAPES :\n"
2426 " 1. Choisissez « Tester » pour lancer Firefox avec la page de test Java, et "
2427@@ -4162,8 +4184,8 @@
2428 " Did you see the text?"
2429 msgstr ""
2430 "BUT :\n"
2431-" Ce test va vérifier que Firefox peut exécuter des applications Flash. Note "
2432-": ceci\n"
2433+" Ce test va vérifier que Firefox peut exécuter des applications Flash. "
2434+"Note : ceci\n"
2435 " peut nécessiter l'installation de logiciels supplémentaires pour réussir.\n"
2436 "ÉTAPES :\n"
2437 " 1. Choisissez « Tester » pour lancer Firefox et voir un test Flash.\n"
2438@@ -4457,7 +4479,7 @@
2439 "BUT :\n"
2440 "Ce test vérifie si gcalctool (Calculatrice) fonctionne.\n"
2441 "ÉTAPES :\n"
2442-" Cliquez sur « Tester » pour ouvrir la calculatrice et faites :\n"
2443+" Cliquez sur « Tester » pour ouvrir la calculatrice et faites :\n"
2444 " 1. Couper\n"
2445 " 2. Copier\n"
2446 " 3. Coller\n"
2447@@ -4500,11 +4522,11 @@
2448 "BUT:\n"
2449 " Ce test vérifie que gedit fonctionne.\n"
2450 "ÉTAPES:\n"
2451-" 1. Cliquez sur le bouton \"Test\" pour ouvrir gedit, et ré-ouvrez le "
2452-"fichier que vous avez créé précédemment.\n"
2453+" 1. Cliquez sur « Tester » pour ouvrir gedit, et ré-ouvrez le fichier que "
2454+"vous avez créé précédemment.\n"
2455 " 2. Modifiez puis enregistrez le fichier, puis fermez gedit.\n"
2456 "VÉRIFICATION:\n"
2457-" Cela a t-il fonctionné comme prévu?"
2458+" Cela a t-il fonctionné comme prévu ?"
2459
2460 #. description
2461 #: ../jobs/user_apps.txt.in:497
2462@@ -4523,7 +4545,7 @@
2463 "Ce test vérifie si le terminal GNOME fonctionne.\n"
2464 "ÉTAPES :\n"
2465 " 1. Cliquez sur « Tester » pour ouvrir le terminal.\n"
2466-" 2. Tapez 'ls' et appuyez sur Entrée. Vous devriez voir une liste de "
2467+" 2. Tapez « ls » et appuyez sur Entrée. Vous devriez voir une liste de "
2468 "fichiers et dossiers de votre dossier personnel.\n"
2469 " 3. Fermez la fenêtre du terminal.\n"
2470 "VÉRIFICATION :\n"
2471@@ -4553,7 +4575,7 @@
2472 " Ce test va vérifier votre connexion sans fil.\n"
2473 "ÉTAPES :\n"
2474 " 1. Cliquez sur l'icône Réseau du tableau de bord..\n"
2475-" 2. Sélectionnez un réseau dans la section 'Réseaux sans fil'.\n"
2476+" 2. Sélectionnez un réseau dans la section « Réseaux sans fil ».\n"
2477 " 3. Cliquez sur « Tester » pour vérifier que vous pouvez établir une "
2478 "connexion HTTP.\n"
2479 "VÉRIFICATION :\n"
2480@@ -4762,7 +4784,7 @@
2481
2482 #: ../checkbox_cli/cli_interface.py:127
2483 msgid "Press any key to continue..."
2484-msgstr "Appuyez sur une touche pour continuer..."
2485+msgstr "Appuyez sur une touche pour continuer…"
2486
2487 #: ../checkbox_cli/cli_interface.py:136 ../checkbox_cli/cli_interface.py:235
2488 #, python-format
2489@@ -4776,7 +4798,7 @@
2490
2491 #: ../checkbox_cli/cli_interface.py:368
2492 msgid "Combine with character above to expand node"
2493-msgstr ""
2494+msgstr "Combiner avec le caractère ci-dessus pour développer le nœud"
2495
2496 #: ../checkbox_cli/cli_interface.py:417
2497 msgid "test"
2498@@ -4884,7 +4906,7 @@
2499 #: ../plugins/apport_prompt.py:247
2500 #, python-format
2501 msgid "Is a package upgrade in process? Error: %s"
2502-msgstr "Une mise à jour de paquet est-elle en cours ? Erreur : %s"
2503+msgstr "Une mise à niveau de paquet est-elle en cours ? Erreur : %s"
2504
2505 #: ../plugins/final_prompt.py:33
2506 msgid "Successfully finished testing!"
2507@@ -4964,7 +4986,7 @@
2508
2509 #: ../plugins/launchpad_prompt.py:99
2510 msgid "Exchanging information with the server..."
2511-msgstr "Échange d'informations avec le serveur..."
2512+msgstr "Échange d'informations avec le serveur…"
2513
2514 #: ../plugins/launchpad_report.py:167
2515 msgid ""
2516@@ -5014,7 +5036,7 @@
2517
2518 #: ../plugins/suites_prompt.py:136 ../qt/frontend/ui_qtfront.h:641
2519 msgid "Choose tests to run on your system:"
2520-msgstr "Sélectionnez les tests à exécuter sur votre système :"
2521+msgstr "Sélectionnez les tests à exécuter sur votre système :"
2522
2523 #: ../scripts/keyboard_test:22
2524 msgid "Enter text:\n"
2525@@ -5030,7 +5052,7 @@
2526
2527 #: ../scripts/internet_test:214
2528 msgid "Connection established lost a packet"
2529-msgstr "Connexion établie avec perte d'un paquet"
2530+msgstr "La connexion établie a perdu un paquet"
2531
2532 #: ../scripts/internet_test:217
2533 msgid "Internet connection fully established"
2534@@ -5050,7 +5072,7 @@
2535
2536 #: ../qt/frontend/qtfront.cpp:82
2537 msgid "CPU Test"
2538-msgstr "Test micropresseur"
2539+msgstr "Test microprocesseur"
2540
2541 #: ../qt/frontend/qtfront.cpp:83
2542 msgid "Disk Test"
2543@@ -5162,7 +5184,7 @@
2544
2545 #: ../qt/frontend/ui_qtfront.h:601
2546 msgid "OK"
2547-msgstr ""
2548+msgstr "OK"
2549
2550 #: ../qt/frontend/ui_qtfront.h:602
2551 msgid "Don't show me this message in the future"
2552
2553=== modified file 'po/pt_BR.po'
2554--- po/pt_BR.po 2012-09-26 16:10:55 +0000
2555+++ po/pt_BR.po 2012-10-05 14:06:24 +0000
2556@@ -8,20 +8,20 @@
2557 "Project-Id-Version: checkbox\n"
2558 "Report-Msgid-Bugs-To: \n"
2559 "POT-Creation-Date: 2012-07-12 16:08-0400\n"
2560-"PO-Revision-Date: 2012-04-10 03:27+0000\n"
2561-"Last-Translator: Neliton Pereira Jr. <nelitonpjr@gmail.com>\n"
2562+"PO-Revision-Date: 2012-09-12 17:48+0000\n"
2563+"Last-Translator: Tiago Hillebrandt <tiagohillebrandt@gmail.com>\n"
2564 "Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
2565 "MIME-Version: 1.0\n"
2566 "Content-Type: text/plain; charset=UTF-8\n"
2567 "Content-Transfer-Encoding: 8bit\n"
2568-"X-Launchpad-Export-Date: 2012-09-11 04:36+0000\n"
2569-"X-Generator: Launchpad (build 15924)\n"
2570+"X-Launchpad-Export-Date: 2012-09-13 04:34+0000\n"
2571+"X-Generator: Launchpad (build 15944)\n"
2572
2573 #. Title of the user interface
2574 #: ../gtk/checkbox-gtk.ui.h:1 ../qt/checkbox-qt.desktop.in.h:1
2575 #: ../plugins/user_interface.py:43
2576 msgid "System Testing"
2577-msgstr "Testes do sistema"
2578+msgstr "Teste do sistema"
2579
2580 #: ../gtk/checkbox-gtk.ui.h:2 ../checkbox_gtk/gtk_interface.py:561
2581 msgid "_Test"
2582
2583=== removed file 'qt/checkbox-qt.ui'
2584--- qt/checkbox-qt.ui 2012-06-22 17:04:14 +0000
2585+++ qt/checkbox-qt.ui 1970-01-01 00:00:00 +0000
2586@@ -1,935 +0,0 @@
2587-<?xml version="1.0" encoding="UTF-8"?>
2588-<ui version="4.0">
2589- <class>main</class>
2590- <widget class="QWidget" name="main">
2591- <property name="geometry">
2592- <rect>
2593- <x>0</x>
2594- <y>0</y>
2595- <width>640</width>
2596- <height>443</height>
2597- </rect>
2598- </property>
2599- <property name="sizePolicy">
2600- <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
2601- <horstretch>0</horstretch>
2602- <verstretch>0</verstretch>
2603- </sizepolicy>
2604- </property>
2605- <property name="windowTitle">
2606- <string>Form</string>
2607- </property>
2608- <layout class="QHBoxLayout" name="horizontalLayout">
2609- <property name="spacing">
2610- <number>0</number>
2611- </property>
2612- <property name="margin">
2613- <number>0</number>
2614- </property>
2615- <item>
2616- <widget class="QTabWidget" name="tabWidget">
2617- <property name="currentIndex">
2618- <number>0</number>
2619- </property>
2620- <widget class="QWidget" name="tabWelcome">
2621- <attribute name="title">
2622- <string>Tab 1</string>
2623- </attribute>
2624- <layout class="QHBoxLayout" name="horizontalLayout_5">
2625- <property name="spacing">
2626- <number>0</number>
2627- </property>
2628- <property name="margin">
2629- <number>0</number>
2630- </property>
2631- <item>
2632- <layout class="QVBoxLayout" name="verticalLayout_5">
2633- <property name="spacing">
2634- <number>0</number>
2635- </property>
2636- <item>
2637- <widget class="QWidget" name="welcomeTop" native="true">
2638- <property name="sizePolicy">
2639- <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
2640- <horstretch>0</horstretch>
2641- <verstretch>0</verstretch>
2642- </sizepolicy>
2643- </property>
2644- <property name="minimumSize">
2645- <size>
2646- <width>0</width>
2647- <height>100</height>
2648- </size>
2649- </property>
2650- <layout class="QVBoxLayout" name="verticalLayout_6">
2651- <property name="spacing">
2652- <number>0</number>
2653- </property>
2654- <property name="margin">
2655- <number>0</number>
2656- </property>
2657- <item>
2658- <layout class="QHBoxLayout" name="horizontalLayout_4">
2659- <property name="spacing">
2660- <number>0</number>
2661- </property>
2662- <item>
2663- <widget class="QWidget" name="welcomeTopImage" native="true">
2664- <property name="sizePolicy">
2665- <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
2666- <horstretch>0</horstretch>
2667- <verstretch>0</verstretch>
2668- </sizepolicy>
2669- </property>
2670- <property name="minimumSize">
2671- <size>
2672- <width>120</width>
2673- <height>0</height>
2674- </size>
2675- </property>
2676- </widget>
2677- </item>
2678- <item>
2679- <widget class="QWidget" name="welcomeTopText" native="true">
2680- <widget class="QLabel" name="welcomeLabel">
2681- <property name="geometry">
2682- <rect>
2683- <x>30</x>
2684- <y>20</y>
2685- <width>330</width>
2686- <height>51</height>
2687- </rect>
2688- </property>
2689- <property name="font">
2690- <font>
2691- <family>Ubuntu</family>
2692- <pointsize>21</pointsize>
2693- </font>
2694- </property>
2695- <property name="text">
2696- <string>Ubuntu System Testing</string>
2697- </property>
2698- </widget>
2699- </widget>
2700- </item>
2701- </layout>
2702- </item>
2703- </layout>
2704- </widget>
2705- </item>
2706- <item>
2707- <widget class="QWidget" name="welcomeBottom" native="true">
2708- <property name="sizePolicy">
2709- <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
2710- <horstretch>0</horstretch>
2711- <verstretch>0</verstretch>
2712- </sizepolicy>
2713- </property>
2714- <property name="minimumSize">
2715- <size>
2716- <width>0</width>
2717- <height>0</height>
2718- </size>
2719- </property>
2720- <widget class="QTextEdit" name="welcomeTextBox">
2721- <property name="geometry">
2722- <rect>
2723- <x>30</x>
2724- <y>40</y>
2725- <width>571</width>
2726- <height>181</height>
2727- </rect>
2728- </property>
2729- <property name="frameShape">
2730- <enum>QFrame::NoFrame</enum>
2731- </property>
2732- <property name="frameShadow">
2733- <enum>QFrame::Plain</enum>
2734- </property>
2735- <property name="readOnly">
2736- <bool>true</bool>
2737- </property>
2738- </widget>
2739- <widget class="QPushButton" name="friendlyTestsButton">
2740- <property name="geometry">
2741- <rect>
2742- <x>30</x>
2743- <y>230</y>
2744- <width>571</width>
2745- <height>31</height>
2746- </rect>
2747- </property>
2748- <property name="font">
2749- <font>
2750- <pointsize>9</pointsize>
2751- </font>
2752- </property>
2753- <property name="text">
2754- <string>Ok</string>
2755- </property>
2756- </widget>
2757- <widget class="QCheckBox" name="checkBox">
2758- <property name="geometry">
2759- <rect>
2760- <x>330</x>
2761- <y>280</y>
2762- <width>281</width>
2763- <height>20</height>
2764- </rect>
2765- </property>
2766- <property name="font">
2767- <font>
2768- <family>Ubuntu</family>
2769- </font>
2770- </property>
2771- <property name="text">
2772- <string>Don't show me this message in the future</string>
2773- </property>
2774- </widget>
2775- </widget>
2776- </item>
2777- </layout>
2778- </item>
2779- </layout>
2780- </widget>
2781- <widget class="QWidget" name="tabMain">
2782- <attribute name="title">
2783- <string>Tab 2</string>
2784- </attribute>
2785- <layout class="QHBoxLayout" name="horizontalLayout_7">
2786- <property name="spacing">
2787- <number>0</number>
2788- </property>
2789- <property name="margin">
2790- <number>0</number>
2791- </property>
2792- <item>
2793- <layout class="QVBoxLayout" name="verticalLayout_7">
2794- <property name="spacing">
2795- <number>0</number>
2796- </property>
2797- <item>
2798- <widget class="QWidget" name="mainTop" native="true">
2799- <property name="sizePolicy">
2800- <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
2801- <horstretch>0</horstretch>
2802- <verstretch>0</verstretch>
2803- </sizepolicy>
2804- </property>
2805- <property name="minimumSize">
2806- <size>
2807- <width>0</width>
2808- <height>89</height>
2809- </size>
2810- </property>
2811- <property name="styleSheet">
2812- <string notr="true">background-color: #C2C7CB;</string>
2813- </property>
2814- <widget class="QProgressBar" name="progressBar">
2815- <property name="geometry">
2816- <rect>
2817- <x>50</x>
2818- <y>40</y>
2819- <width>191</width>
2820- <height>16</height>
2821- </rect>
2822- </property>
2823- <property name="sizePolicy">
2824- <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
2825- <horstretch>0</horstretch>
2826- <verstretch>0</verstretch>
2827- </sizepolicy>
2828- </property>
2829- <property name="autoFillBackground">
2830- <bool>false</bool>
2831- </property>
2832- <property name="styleSheet">
2833- <string notr="true"> QProgressBar {
2834- border: 0px solid grey;
2835- border-radius: 0px;
2836- background: #FFFFFF;
2837- }
2838-
2839- QProgressBar::chunk {
2840- background-color: #ed7341;
2841- width: 20px;
2842- }</string>
2843- </property>
2844- <property name="value">
2845- <number>50</number>
2846- </property>
2847- <property name="invertedAppearance">
2848- <bool>false</bool>
2849- </property>
2850- <property name="format">
2851- <string/>
2852- </property>
2853- </widget>
2854- <widget class="QLabel" name="progressLabel">
2855- <property name="geometry">
2856- <rect>
2857- <x>50</x>
2858- <y>20</y>
2859- <width>241</width>
2860- <height>17</height>
2861- </rect>
2862- </property>
2863- <property name="font">
2864- <font>
2865- <family>Ubuntu</family>
2866- <pointsize>9</pointsize>
2867- </font>
2868- </property>
2869- <property name="text">
2870- <string>10 tests completed out of 30 (30%)</string>
2871- </property>
2872- </widget>
2873- </widget>
2874- </item>
2875- <item>
2876- <widget class="QTabWidget" name="testsTab">
2877- <property name="sizePolicy">
2878- <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
2879- <horstretch>0</horstretch>
2880- <verstretch>0</verstretch>
2881- </sizepolicy>
2882- </property>
2883- <property name="minimumSize">
2884- <size>
2885- <width>0</width>
2886- <height>0</height>
2887- </size>
2888- </property>
2889- <property name="styleSheet">
2890- <string notr="true"> QTabWidget::pane#testsTab { /* The tab widget frame */
2891- border-top: 10 solid #C2C7CB;
2892- position: absolute;
2893- top: -1.2em;
2894- }
2895-
2896-QTabWidget::tab-bar#testsTab {
2897- alignment: center;
2898- }
2899-
2900- /* Style the tab using the tab sub-control. Note that
2901- it reads QTabBar _not_ QTabWidget */
2902- QTabBar::tab {
2903- background: #FFFFFF;
2904- border: 1px solid #000000;
2905- border-bottom-color: #000000; /* same as the pane color */
2906- min-width: 8ex;
2907- padding: 0px;
2908- }
2909-
2910- QTabBar::tab:selected {
2911- background: #C2C7CB;
2912- border-color: #000000;
2913- border-bottom-color: #000000; /* same as pane color */
2914- }</string>
2915- </property>
2916- <property name="currentIndex">
2917- <number>1</number>
2918- </property>
2919- <widget class="QWidget" name="welcome">
2920- <property name="font">
2921- <font>
2922- <pointsize>11</pointsize>
2923- </font>
2924- </property>
2925- <attribute name="title">
2926- <string> Welcome </string>
2927- </attribute>
2928- </widget>
2929- <widget class="QWidget" name="testSelection">
2930- <property name="font">
2931- <font>
2932- <pointsize>11</pointsize>
2933- </font>
2934- </property>
2935- <attribute name="title">
2936- <string> Selection </string>
2937- </attribute>
2938- <widget class="QLabel" name="label">
2939- <property name="geometry">
2940- <rect>
2941- <x>50</x>
2942- <y>20</y>
2943- <width>401</width>
2944- <height>16</height>
2945- </rect>
2946- </property>
2947- <property name="text">
2948- <string>Choose tests to run on your system:</string>
2949- </property>
2950- </widget>
2951- <widget class="Line" name="line">
2952- <property name="geometry">
2953- <rect>
2954- <x>40</x>
2955- <y>60</y>
2956- <width>571</width>
2957- <height>16</height>
2958- </rect>
2959- </property>
2960- <property name="orientation">
2961- <enum>Qt::Horizontal</enum>
2962- </property>
2963- </widget>
2964- <widget class="Line" name="line_2">
2965- <property name="geometry">
2966- <rect>
2967- <x>410</x>
2968- <y>40</y>
2969- <width>20</width>
2970- <height>211</height>
2971- </rect>
2972- </property>
2973- <property name="orientation">
2974- <enum>Qt::Vertical</enum>
2975- </property>
2976- </widget>
2977- <widget class="QLabel" name="label_2">
2978- <property name="geometry">
2979- <rect>
2980- <x>40</x>
2981- <y>48</y>
2982- <width>101</width>
2983- <height>17</height>
2984- </rect>
2985- </property>
2986- <property name="text">
2987- <string>Components</string>
2988- </property>
2989- </widget>
2990- <widget class="QLabel" name="label_3">
2991- <property name="geometry">
2992- <rect>
2993- <x>470</x>
2994- <y>46</y>
2995- <width>67</width>
2996- <height>17</height>
2997- </rect>
2998- </property>
2999- <property name="text">
3000- <string>Status</string>
3001- </property>
3002- </widget>
3003- <widget class="QListView" name="listView">
3004- <property name="geometry">
3005- <rect>
3006- <x>430</x>
3007- <y>80</y>
3008- <width>181</width>
3009- <height>171</height>
3010- </rect>
3011- </property>
3012- <property name="frameShape">
3013- <enum>QFrame::NoFrame</enum>
3014- </property>
3015- </widget>
3016- <widget class="QTreeView" name="treeView">
3017- <property name="geometry">
3018- <rect>
3019- <x>50</x>
3020- <y>80</y>
3021- <width>351</width>
3022- <height>171</height>
3023- </rect>
3024- </property>
3025- <property name="frameShape">
3026- <enum>QFrame::NoFrame</enum>
3027- </property>
3028- <property name="showDropIndicator" stdset="0">
3029- <bool>false</bool>
3030- </property>
3031- <property name="allColumnsShowFocus">
3032- <bool>false</bool>
3033- </property>
3034- <attribute name="headerVisible">
3035- <bool>false</bool>
3036- </attribute>
3037- </widget>
3038- <widget class="QPushButton" name="buttonStartTesting">
3039- <property name="enabled">
3040- <bool>false</bool>
3041- </property>
3042- <property name="geometry">
3043- <rect>
3044- <x>430</x>
3045- <y>260</y>
3046- <width>181</width>
3047- <height>27</height>
3048- </rect>
3049- </property>
3050- <property name="text">
3051- <string>Start testing</string>
3052- </property>
3053- </widget>
3054- </widget>
3055- <widget class="QWidget" name="testing">
3056- <property name="font">
3057- <font>
3058- <pointsize>11</pointsize>
3059- </font>
3060- </property>
3061- <attribute name="title">
3062- <string> Run </string>
3063- </attribute>
3064- <layout class="QHBoxLayout" name="horizontalLayout_2">
3065- <property name="spacing">
3066- <number>0</number>
3067- </property>
3068- <property name="margin">
3069- <number>0</number>
3070- </property>
3071- <item>
3072- <layout class="QVBoxLayout" name="verticalLayout">
3073- <property name="spacing">
3074- <number>0</number>
3075- </property>
3076- <item>
3077- <widget class="QTabWidget" name="radioTestTab">
3078- <property name="currentIndex">
3079- <number>0</number>
3080- </property>
3081- <widget class="QWidget" name="tab">
3082- <attribute name="title">
3083- <string>Tab 1</string>
3084- </attribute>
3085- <layout class="QVBoxLayout" name="verticalLayout_3">
3086- <property name="spacing">
3087- <number>0</number>
3088- </property>
3089- <property name="margin">
3090- <number>0</number>
3091- </property>
3092- <item>
3093- <layout class="QVBoxLayout" name="verticalLayout_2">
3094- <property name="spacing">
3095- <number>0</number>
3096- </property>
3097- <item>
3098- <widget class="QWidget" name="widget_2" native="true">
3099- <property name="sizePolicy">
3100- <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
3101- <horstretch>0</horstretch>
3102- <verstretch>0</verstretch>
3103- </sizepolicy>
3104- </property>
3105- <property name="minimumSize">
3106- <size>
3107- <width>0</width>
3108- <height>56</height>
3109- </size>
3110- </property>
3111- <widget class="QLabel" name="testTypeLabel">
3112- <property name="geometry">
3113- <rect>
3114- <x>20</x>
3115- <y>10</y>
3116- <width>291</width>
3117- <height>31</height>
3118- </rect>
3119- </property>
3120- <property name="font">
3121- <font>
3122- <family>Ubuntu</family>
3123- <pointsize>17</pointsize>
3124- </font>
3125- </property>
3126- <property name="text">
3127- <string>TextLabel</string>
3128- </property>
3129- </widget>
3130- <widget class="QLabel" name="purposeLabel">
3131- <property name="geometry">
3132- <rect>
3133- <x>30</x>
3134- <y>40</y>
3135- <width>571</width>
3136- <height>16</height>
3137- </rect>
3138- </property>
3139- <property name="font">
3140- <font>
3141- <family>Ubuntu</family>
3142- <pointsize>8</pointsize>
3143- <weight>50</weight>
3144- <bold>false</bold>
3145- <kerning>false</kerning>
3146- </font>
3147- </property>
3148- <property name="text">
3149- <string>TextLabel</string>
3150- </property>
3151- </widget>
3152- </widget>
3153- </item>
3154- <item>
3155- <widget class="QWidget" name="widget_3" native="true">
3156- <layout class="QHBoxLayout" name="horizontalLayout_6">
3157- <property name="spacing">
3158- <number>0</number>
3159- </property>
3160- <property name="margin">
3161- <number>0</number>
3162- </property>
3163- <item>
3164- <layout class="QHBoxLayout" name="horizontalLayout_3">
3165- <property name="spacing">
3166- <number>0</number>
3167- </property>
3168- <item>
3169- <widget class="QWidget" name="widget_5" native="true">
3170- <property name="sizePolicy">
3171- <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
3172- <horstretch>0</horstretch>
3173- <verstretch>0</verstretch>
3174- </sizepolicy>
3175- </property>
3176- <layout class="QHBoxLayout" name="horizontalLayout_8">
3177- <property name="spacing">
3178- <number>0</number>
3179- </property>
3180- <property name="margin">
3181- <number>0</number>
3182- </property>
3183- <item>
3184- <widget class="QScrollArea" name="scrollArea">
3185- <property name="sizePolicy">
3186- <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
3187- <horstretch>0</horstretch>
3188- <verstretch>0</verstretch>
3189- </sizepolicy>
3190- </property>
3191- <property name="frameShape">
3192- <enum>QFrame::NoFrame</enum>
3193- </property>
3194- <property name="frameShadow">
3195- <enum>QFrame::Plain</enum>
3196- </property>
3197- <property name="lineWidth">
3198- <number>0</number>
3199- </property>
3200- <property name="verticalScrollBarPolicy">
3201- <enum>Qt::ScrollBarAsNeeded</enum>
3202- </property>
3203- <property name="horizontalScrollBarPolicy">
3204- <enum>Qt::ScrollBarAsNeeded</enum>
3205- </property>
3206- <property name="widgetResizable">
3207- <bool>true</bool>
3208- </property>
3209- <widget class="QWidget" name="scrollAreaWidgetContents">
3210- <property name="geometry">
3211- <rect>
3212- <x>0</x>
3213- <y>0</y>
3214- <width>474</width>
3215- <height>193</height>
3216- </rect>
3217- </property>
3218- <layout class="QVBoxLayout" name="verticalLayout_9">
3219- <property name="spacing">
3220- <number>0</number>
3221- </property>
3222- <property name="sizeConstraint">
3223- <enum>QLayout::SetDefaultConstraint</enum>
3224- </property>
3225- <property name="margin">
3226- <number>0</number>
3227- </property>
3228- <item>
3229- <widget class="QFrame" name="stepsFrame">
3230- <property name="sizePolicy">
3231- <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
3232- <horstretch>0</horstretch>
3233- <verstretch>0</verstretch>
3234- </sizepolicy>
3235- </property>
3236- <property name="minimumSize">
3237- <size>
3238- <width>0</width>
3239- <height>178</height>
3240- </size>
3241- </property>
3242- <property name="sizeIncrement">
3243- <size>
3244- <width>0</width>
3245- <height>0</height>
3246- </size>
3247- </property>
3248- <property name="frameShape">
3249- <enum>QFrame::NoFrame</enum>
3250- </property>
3251- <property name="frameShadow">
3252- <enum>QFrame::Plain</enum>
3253- </property>
3254- <property name="lineWidth">
3255- <number>0</number>
3256- </property>
3257- </widget>
3258- </item>
3259- </layout>
3260- </widget>
3261- </widget>
3262- </item>
3263- </layout>
3264- </widget>
3265- </item>
3266- <item>
3267- <widget class="QWidget" name="widget_4" native="true">
3268- <property name="sizePolicy">
3269- <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
3270- <horstretch>0</horstretch>
3271- <verstretch>0</verstretch>
3272- </sizepolicy>
3273- </property>
3274- <property name="minimumSize">
3275- <size>
3276- <width>150</width>
3277- <height>0</height>
3278- </size>
3279- </property>
3280- <widget class="QPushButton" name="testTestButton">
3281- <property name="geometry">
3282- <rect>
3283- <x>30</x>
3284- <y>70</y>
3285- <width>80</width>
3286- <height>25</height>
3287- </rect>
3288- </property>
3289- <property name="text">
3290- <string>Test</string>
3291- </property>
3292- </widget>
3293- <widget class="QPushButton" name="yesTestButton">
3294- <property name="geometry">
3295- <rect>
3296- <x>30</x>
3297- <y>110</y>
3298- <width>80</width>
3299- <height>25</height>
3300- </rect>
3301- </property>
3302- <property name="text">
3303- <string>Yes</string>
3304- </property>
3305- </widget>
3306- <widget class="QPushButton" name="noTestButton">
3307- <property name="geometry">
3308- <rect>
3309- <x>30</x>
3310- <y>150</y>
3311- <width>80</width>
3312- <height>25</height>
3313- </rect>
3314- </property>
3315- <property name="text">
3316- <string>No</string>
3317- </property>
3318- </widget>
3319- </widget>
3320- </item>
3321- </layout>
3322- </item>
3323- </layout>
3324- </widget>
3325- </item>
3326- </layout>
3327- </item>
3328- </layout>
3329- </widget>
3330- <widget class="QWidget" name="tab_2">
3331- <attribute name="title">
3332- <string>Tab 2</string>
3333- </attribute>
3334- </widget>
3335- </widget>
3336- </item>
3337- <item>
3338- <widget class="QWidget" name="nextPrevButtons" native="true">
3339- <property name="sizePolicy">
3340- <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
3341- <horstretch>0</horstretch>
3342- <verstretch>0</verstretch>
3343- </sizepolicy>
3344- </property>
3345- <property name="minimumSize">
3346- <size>
3347- <width>0</width>
3348- <height>46</height>
3349- </size>
3350- </property>
3351- <widget class="QPushButton" name="nextTestButton">
3352- <property name="geometry">
3353- <rect>
3354- <x>520</x>
3355- <y>10</y>
3356- <width>80</width>
3357- <height>25</height>
3358- </rect>
3359- </property>
3360- <property name="text">
3361- <string>Next</string>
3362- </property>
3363- </widget>
3364- <widget class="QPushButton" name="previousTestButton">
3365- <property name="geometry">
3366- <rect>
3367- <x>420</x>
3368- <y>10</y>
3369- <width>80</width>
3370- <height>25</height>
3371- </rect>
3372- </property>
3373- <property name="text">
3374- <string>Previous</string>
3375- </property>
3376- </widget>
3377- </widget>
3378- </item>
3379- </layout>
3380- </item>
3381- </layout>
3382- </widget>
3383- <widget class="QWidget" name="submitResults">
3384- <property name="font">
3385- <font>
3386- <pointsize>11</pointsize>
3387- </font>
3388- </property>
3389- <attribute name="title">
3390- <string> Results </string>
3391- </attribute>
3392- <widget class="QLabel" name="label_4">
3393- <property name="geometry">
3394- <rect>
3395- <x>30</x>
3396- <y>20</y>
3397- <width>571</width>
3398- <height>41</height>
3399- </rect>
3400- </property>
3401- <property name="font">
3402- <font>
3403- <pointsize>10</pointsize>
3404- <weight>50</weight>
3405- <bold>false</bold>
3406- <kerning>true</kerning>
3407- </font>
3408- </property>
3409- <property name="text">
3410- <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
3411-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
3412-p, li { white-space: pre-wrap; }
3413-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
3414-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; color:#000000;&quot;&gt;Please enter the e-mail address associated with your Launchpad account &#40;if applicable&#41;&lt;/span&gt;&lt;/p&gt;
3415-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; color:#000000;&quot;&gt;and click the Submit Results button to submit these test results to Ubuntu Friendly.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
3416- </property>
3417- <property name="scaledContents">
3418- <bool>false</bool>
3419- </property>
3420- <property name="alignment">
3421- <set>Qt::AlignCenter</set>
3422- </property>
3423- <property name="wordWrap">
3424- <bool>false</bool>
3425- </property>
3426- </widget>
3427- <widget class="QPushButton" name="buttonViewResults">
3428- <property name="geometry">
3429- <rect>
3430- <x>90</x>
3431- <y>80</y>
3432- <width>461</width>
3433- <height>27</height>
3434- </rect>
3435- </property>
3436- <property name="text">
3437- <string>View results</string>
3438- </property>
3439- </widget>
3440- <widget class="QPushButton" name="buttonSubmitResults">
3441- <property name="geometry">
3442- <rect>
3443- <x>90</x>
3444- <y>120</y>
3445- <width>461</width>
3446- <height>27</height>
3447- </rect>
3448- </property>
3449- <property name="text">
3450- <string>Submit results</string>
3451- </property>
3452- </widget>
3453- <widget class="QGroupBox" name="groupBox">
3454- <property name="geometry">
3455- <rect>
3456- <x>90</x>
3457- <y>180</y>
3458- <width>461</width>
3459- <height>61</height>
3460- </rect>
3461- </property>
3462- <property name="font">
3463- <font>
3464- <pointsize>10</pointsize>
3465- </font>
3466- </property>
3467- <property name="title">
3468- <string>Personal details</string>
3469- </property>
3470- <property name="flat">
3471- <bool>false</bool>
3472- </property>
3473- <property name="checkable">
3474- <bool>false</bool>
3475- </property>
3476- <widget class="QLineEdit" name="lineEditEmailAddress">
3477- <property name="geometry">
3478- <rect>
3479- <x>110</x>
3480- <y>24</y>
3481- <width>201</width>
3482- <height>27</height>
3483- </rect>
3484- </property>
3485- <property name="text">
3486- <string/>
3487- </property>
3488- </widget>
3489- <widget class="QLabel" name="label_5">
3490- <property name="geometry">
3491- <rect>
3492- <x>10</x>
3493- <y>30</y>
3494- <width>101</width>
3495- <height>17</height>
3496- </rect>
3497- </property>
3498- <property name="font">
3499- <font>
3500- <pointsize>10</pointsize>
3501- </font>
3502- </property>
3503- <property name="text">
3504- <string>Email:</string>
3505- </property>
3506- </widget>
3507- </widget>
3508- </widget>
3509- </widget>
3510- </item>
3511- </layout>
3512- </item>
3513- </layout>
3514- </widget>
3515- </widget>
3516- </item>
3517- </layout>
3518- </widget>
3519- <resources/>
3520- <connections/>
3521-</ui>
3522
3523=== modified file 'qt/frontend/qtfront.cpp'
3524--- qt/frontend/qtfront.cpp 2012-08-30 19:51:51 +0000
3525+++ qt/frontend/qtfront.cpp 2012-10-05 14:06:24 +0000
3526@@ -56,7 +56,7 @@
3527 ui->radioTestTab->setVisible(false);
3528 ui->nextPrevButtons->setVisible(false);
3529 ui->treeView->verticalScrollBar()->setTracking(true);
3530- connect(ui->friendlyTestsButton, SIGNAL(clicked()), this, SLOT(onFullTestsClicked()));
3531+ connect(ui->continueButton, SIGNAL(clicked()), this, SLOT(onFullTestsClicked()));
3532 connect(ui->deselectAllButton, SIGNAL(clicked()), this, SLOT(onDeselectAllClicked()));
3533 connect(ui->selectAllButton, SIGNAL(clicked()), this, SLOT(onSelectAllClicked()));
3534 connect(ui->buttonStartTesting, SIGNAL(clicked()), this, SLOT(onStartTestsClicked()));
3535@@ -70,6 +70,7 @@
3536 connect(ui->treeView, SIGNAL(expanded(QModelIndex)), this, SLOT(onJobItemChanged(QModelIndex)));
3537 connect(ui->treeView, SIGNAL(clicked(QModelIndex)), this, SLOT(onTestSelectionChanged()));
3538 connect(this, SIGNAL(testSelectionChanged()), this, SLOT(onTestSelectionChanged()));
3539+ ui->continueButton->setFocus();
3540 ui->stepsFrame->setFixedHeight(0);
3541 ui->buttonSubmitResults->setEnabled(false);
3542 ui->submissionDataLineEdit->setEnabled(false);
3543
3544=== modified file 'qt/frontend/qtfront.ui'
3545--- qt/frontend/qtfront.ui 2012-09-26 16:10:55 +0000
3546+++ qt/frontend/qtfront.ui 2012-10-05 14:06:24 +0000
3547@@ -56,7 +56,7 @@
3548 <attribute name="title">
3549 <string>Tab 1</string>
3550 </attribute>
3551- <layout class="QHBoxLayout" name="horizontalLayout_2">
3552+ <layout class="QHBoxLayout" name="horizontalLayout_Welcome">
3553 <property name="spacing">
3554 <number>0</number>
3555 </property>
3556@@ -64,7 +64,7 @@
3557 <number>0</number>
3558 </property>
3559 <item>
3560- <layout class="QVBoxLayout" name="verticalLayout_2">
3561+ <layout class="QVBoxLayout" name="verticalLayout_Welcome">
3562 <property name="spacing">
3563 <number>0</number>
3564 </property>
3565@@ -187,7 +187,7 @@
3566 <bool>true</bool>
3567 </property>
3568 </widget>
3569- <widget class="QPushButton" name="friendlyTestsButton">
3570+ <widget class="QPushButton" name="continueButton">
3571 <property name="geometry">
3572 <rect>
3573 <x>20</x>
3574@@ -204,6 +204,9 @@
3575 <property name="text">
3576 <string>Continue</string>
3577 </property>
3578+ <property name="default">
3579+ <bool>true</bool>
3580+ </property>
3581 </widget>
3582 <widget class="Line" name="line_3">
3583 <property name="geometry">
3584@@ -745,7 +748,7 @@
3585 </property>
3586 </widget>
3587 </widget>
3588- <widget class="QWidget" name="layoutWidget">
3589+ <widget class="QWidget" name="mainTestLayoutWidget">
3590 <property name="geometry">
3591 <rect>
3592 <x>10</x>
3593@@ -774,7 +777,7 @@
3594 </item>
3595 </layout>
3596 </widget>
3597- <widget class="QWidget" name="layoutWidget">
3598+ <widget class="QWidget" name="testLayoutWidget">
3599 <property name="geometry">
3600 <rect>
3601 <x>9</x>
3602
3603=== added file 'scripts/display_resource'
3604--- scripts/display_resource 1970-01-01 00:00:00 +0000
3605+++ scripts/display_resource 2012-10-05 14:06:24 +0000
3606@@ -0,0 +1,84 @@
3607+#!/usr/bin/python3
3608+
3609+import re
3610+import sys
3611+import subprocess
3612+
3613+CONNECTOR_RE = re.compile(
3614+ r"\n(?P<Name>[\w\-]+)"
3615+ r"(?:\s+.*?"
3616+ r"SignalFormat:\s+(?P<SignalFormat>[\w\-_]+)\s+.*?"
3617+ r"ConnectorType:\s+(?P<ConnectorType>[\w\-_]+))?", re.S)
3618+SVIDEO_RE = re.compile(r"s\-?video|din|cv", re.I)
3619+DP_RE = re.compile(r"dp|displayport", re.I)
3620+
3621+
3622+def main():
3623+ try:
3624+ xrandr_output = subprocess.check_output(
3625+ ["xrandr", "-q", "--verbose"], universal_newlines=True)
3626+ except subprocess.CalledProcessError:
3627+ return 0
3628+
3629+ xrandr_output = "\n" + ''.join(xrandr_output.splitlines(True)[1:])
3630+ supported_connections = dict()
3631+
3632+ for m in CONNECTOR_RE.finditer(xrandr_output):
3633+ name = m.group('Name').lower()
3634+ signal_format = connector_type = '' # RandR 1.3 only
3635+ if m.group('SignalFormat'):
3636+ signal_format = m.group('SignalFormat').lower()
3637+ if m.group('ConnectorType'):
3638+ connector_type = m.group('ConnectorType').lower()
3639+
3640+ if name.startswith('vga'):
3641+ supported_connections['vga'] = 'supported'
3642+
3643+ elif name.startswith('dvi'):
3644+ supported_connections['dvi'] = 'supported'
3645+
3646+ elif DP_RE.match(name):
3647+ # HDMI uses TMDS links, DisplayPort (DP) uses LVDS pairs (lanes)
3648+ # to transmit micro data packets.
3649+ # Reported by NVIDIA proprietary drivers (version >= 302.17)
3650+ if signal_format == 'tmds':
3651+ supported_connections['hdmi'] = 'supported'
3652+ else:
3653+ supported_connections['dp'] = 'supported'
3654+
3655+ elif name.startswith('hdmi'):
3656+ supported_connections['hdmi'] = 'supported'
3657+
3658+ elif SVIDEO_RE.match(name):
3659+ supported_connections['svideo'] = 'supported'
3660+
3661+ elif name.startswith('rca'):
3662+ supported_connections['rca'] = 'supported'
3663+
3664+ elif name.startswith('tv'):
3665+ if SVIDEO_RE.match(signal_format):
3666+ supported_connections['svideo'] = 'supported'
3667+ else:
3668+ supported_connections['tv'] = 'supported'
3669+
3670+ # ATI/AMD proprietary FGLRX graphics driver codenames:
3671+ elif name.startswith('crt') or name.startswith('dfp'):
3672+ if connector_type.startswith('dvi'):
3673+ supported_connections['dvi'] = 'supported'
3674+ elif connector_type.startswith('vga'):
3675+ supported_connections['vga'] = 'supported'
3676+ elif DP_RE.match(connector_type) and DP_RE.match(signal_format):
3677+ supported_connections['dp'] = 'supported'
3678+ else:
3679+ # HDMI ports may appear as unknown
3680+ # (for both signal format and connector type).
3681+ supported_connections['hdmi'] = 'supported'
3682+
3683+ for connector in supported_connections.keys():
3684+ print("%s: supported" % connector)
3685+
3686+ return 0
3687+
3688+
3689+if __name__ == "__main__":
3690+ sys.exit(main())
3691
3692=== modified file 'scripts/graphics_driver'
3693--- scripts/graphics_driver 2012-09-26 16:10:55 +0000
3694+++ scripts/graphics_driver 2012-10-05 14:06:24 +0000
3695@@ -38,19 +38,20 @@
3696 import sys
3697 import os
3698
3699-from subprocess import Popen, PIPE
3700+from subprocess import Popen, PIPE, check_output, CalledProcessError
3701+
3702
3703 class XorgLog(object):
3704
3705 def __init__(self, logfile=None):
3706- self.modules = [ ]
3707- self.errors = [ ]
3708- self.warnings = [ ]
3709- self.info = [ ]
3710- self.notimpl = [ ]
3711- self.notices = [ ]
3712- self.cards = [ ]
3713- self.displays = { }
3714+ self.modules = []
3715+ self.errors = []
3716+ self.warnings = []
3717+ self.info = []
3718+ self.notimpl = []
3719+ self.notices = []
3720+ self.cards = []
3721+ self.displays = {}
3722 self.xserver_version = None
3723 self.boot_time = None
3724 self.boot_logfile = None
3725@@ -78,7 +79,8 @@
3726 self.modules.append(module)
3727 gathering_module = False
3728 module = None
3729- m = re.search('\(II\) Loading.*modules\/drivers\/(.+)_drv\.so', line)
3730+ m = re.search(
3731+ '\(II\) Loading.*modules\/drivers\/(.+)_drv\.so', line)
3732 if m:
3733 found_ddx = True
3734 m = re.search(r'\(II\) Module (\w+):', line)
3735@@ -96,26 +98,38 @@
3736 gathering_module = True
3737
3738 if gathering_module:
3739- m = re.search(r'vendor="(.*:?)"', line)
3740- if m:
3741- module['vendor'] = m.group(1)
3742-
3743- m = re.search(r'module version = (.*)', line)
3744- if m:
3745- module['version'] = m.group(1)
3746-
3747- m = re.search(r'class: (.*)', line)
3748- if m:
3749- module['class'] = m.group(1)
3750-
3751- m = re.search(r'ABI class:\s+(.*:?), version\s+(.*:?)', line)
3752- if m:
3753- if m.group(1)[:5] == "X.Org":
3754- module['abi_name'] = m.group(1)[6:]
3755- else:
3756- module['abi_name'] = m.group(1)
3757- module['abi_version'] = m.group(2)
3758- continue
3759+ m = re.search(r'vendor="(.*:?)"', line)
3760+ if m:
3761+ module['vendor'] = m.group(1)
3762+
3763+ m = re.search(r'module version = (.*)', line)
3764+ if m:
3765+ module['version'] = m.group(1)
3766+
3767+ if module['name'] == 'nvidia':
3768+ try:
3769+ version = check_output(
3770+ "nvidia-settings -v",
3771+ shell=True,
3772+ universal_newlines=True)
3773+ m = re.search(r'.*version\s+([0-9\.]+).*', version)
3774+ if m:
3775+ module['version'] = m.group(1)
3776+ except CalledProcessError:
3777+ pass
3778+
3779+ m = re.search(r'class: (.*)', line)
3780+ if m:
3781+ module['class'] = m.group(1)
3782+
3783+ m = re.search(r'ABI class:\s+(.*:?), version\s+(.*:?)', line)
3784+ if m:
3785+ if m.group(1)[:5] == "X.Org":
3786+ module['abi_name'] = m.group(1)[6:]
3787+ else:
3788+ module['abi_name'] = m.group(1)
3789+ module['abi_version'] = m.group(2)
3790+ continue
3791
3792 # General details
3793 m = re.search(r'Current Operating System: (.*)$', line)
3794@@ -163,19 +177,29 @@
3795 display = {'Output': display_name}
3796 continue
3797
3798- m = re.search(r'\(II\) (.*)\(\d+\): Assigned Display Device: (.*)$', line)
3799- if m:
3800- self.displays[display_name] = display
3801- self.video_driver = m.group(1)
3802- display_name = m.group(2)
3803- display = {'Output': display_name}
3804- continue
3805-
3806- m = re.search(r'Manufacturer: (.*) *Model: (.*) *Serial#: (.*)', line)
3807+ m = re.search(
3808+ r'\(II\) (.*)\(\d+\): Assigned Display Device: (.*)$', line)
3809+ if m:
3810+ self.displays[display_name] = display
3811+ self.video_driver = m.group(1)
3812+ display_name = m.group(2)
3813+ display = {'Output': display_name}
3814+ continue
3815+
3816+ m = re.search(r'\(II\) (.*)\(\d+\): Setting mode "(.*?):', line)
3817+ if m:
3818+ self.displays[display_name] = display
3819+ self.video_driver = m.group(1)
3820+ display_name = m.group(2)
3821+ display = {'Output': display_name}
3822+ continue
3823+
3824+ m = re.search(
3825+ r'Manufacturer: (.*) *Model: (.*) *Serial#: (.*)', line)
3826 if m:
3827 display['display manufacturer'] = m.group(1)
3828- display['display model'] = m.group(2)
3829- display['display serial no.'] = m.group(3)
3830+ display['display model'] = m.group(2)
3831+ display['display serial no.'] = m.group(3)
3832
3833 m = re.search(r'EDID Version: (.*)', line)
3834 if m:
3835@@ -186,15 +210,18 @@
3836 display['vendor'] = m.group(1)
3837 display['product id'] = m.group(2)
3838
3839- m = re.search(r'Max Image Size \[(.*)\]: *horiz.: (.*) *vert.: (.*)', line)
3840+ m = re.search(
3841+ r'Max Image Size \[(.*)\]: *horiz.: (.*) *vert.: (.*)', line)
3842 if m:
3843- display['size max horizontal'] = "%s %s" %(m.group(2), m.group(1))
3844- display['size max vertical'] = "%s %s" %(m.group(3), m.group(1))
3845+ display['size max horizontal'] = "%s %s" % (
3846+ m.group(2), m.group(1))
3847+ display['size max vertical'] = "%s %s" % (
3848+ m.group(3), m.group(1))
3849
3850 m = re.search(r'Image Size: *(.*) x (.*) (.*)', line)
3851 if m:
3852- display['size horizontal'] = "%s %s" %(m.group(1), m.group(3))
3853- display['size vertical'] = "%s %s" %(m.group(2), m.group(3))
3854+ display['size horizontal'] = "%s %s" % (m.group(1), m.group(3))
3855+ display['size vertical'] = "%s %s" % (m.group(2), m.group(3))
3856
3857 m = re.search(r'(.*) is preferred mode', line)
3858 if m:
3859@@ -202,7 +229,7 @@
3860
3861 m = re.search(r'Modeline \"(\d+)x(\d+)\"x([0-9\.]+) *(.*)$', line)
3862 if m:
3863- key = "mode %sx%s@%s" %(m.group(1), m.group(2), m.group(3))
3864+ key = "mode %sx%s@%s" % (m.group(1), m.group(2), m.group(3))
3865 display[key] = m.group(4)
3866 continue
3867
3868@@ -244,9 +271,10 @@
3869 ])
3870 return [err for err in self.warnings if err not in excludes]
3871
3872+
3873 def get_driver_info(xlog):
3874 '''Return the running driver and version'''
3875- print('-'*13,'VIDEO DRIVER INFORMATION','-'*13)
3876+ print('-' * 13, 'VIDEO DRIVER INFORMATION', '-' * 13)
3877 if xlog.video_driver:
3878 for module in xlog.modules:
3879 if module['name'] == xlog.video_driver.lower():
3880@@ -259,9 +287,11 @@
3881 file=sys.stderr)
3882 return 1
3883
3884+
3885 def is_laptop():
3886 return os.path.isdir('/proc/acpi/button/lid')
3887
3888+
3889 def hybrid_graphics_check(xlog):
3890 '''Check for Hybrid Graphics'''
3891 card_id1 = re.compile('.*0300: *(.+):(.+) \(.+\)')
3892@@ -289,14 +319,14 @@
3893 id = id1 + ':' + id2
3894 cards.append(id)
3895
3896- print('-'*13,'HYBRID GRAPHICS CHECK','-'*16)
3897+ print('-' * 13, 'HYBRID GRAPHICS CHECK', '-' * 16)
3898 for card in cards:
3899 formatted_name = cards_dict.get(card.split(':')[0], 'Unknown')
3900 formatted_cards.append(formatted_name)
3901 print('Graphics Chipset: %s (%s)' % (formatted_name, card))
3902
3903 for module in xlog.modules:
3904- if module['ddx'] == True and module['name'] not in drivers:
3905+ if module['ddx'] and module['name'] not in drivers:
3906 drivers.append(module['name'])
3907 print('Loaded DDX Drivers: %s' %
3908 ', '.join(drivers))
3909@@ -310,6 +340,7 @@
3910
3911 return 0
3912
3913+
3914 def main():
3915 xlog = XorgLog("/var/log/Xorg.0.log")
3916 results = []
3917
3918=== modified file 'scripts/network_info'
3919--- scripts/network_info 2012-06-22 17:04:14 +0000
3920+++ scripts/network_info 2012-10-05 14:06:24 +0000
3921@@ -19,7 +19,13 @@
3922 def get_connected(interface):
3923 STATUS = ('No', 'Yes')
3924 carrier_file = os.path.join(SYS_PATH, interface, 'carrier')
3925- carrier = int(_read_file(carrier_file))
3926+
3927+ carrier = 0
3928+ try:
3929+ carrier = int(_read_file(carrier_file))
3930+ except IOError:
3931+ pass
3932+
3933 return STATUS[carrier]
3934
3935
3936@@ -34,7 +40,14 @@
3937
3938 def get_mac_address(interface):
3939 address_file = os.path.join(SYS_PATH, interface, 'address')
3940- return _read_file(address_file)
3941+
3942+ address = ''
3943+ try:
3944+ address = _read_file(address_file)
3945+ except IOError:
3946+ pass
3947+
3948+ return address
3949
3950
3951 def main(args):
3952
3953=== removed file 'scripts/network_wireless_test'
3954--- scripts/network_wireless_test 2011-07-01 11:37:27 +0000
3955+++ scripts/network_wireless_test 1970-01-01 00:00:00 +0000
3956@@ -1,25 +0,0 @@
3957-#! /bin/sh
3958-
3959-#assume that the test fail at the beginning
3960-found=0
3961-
3962-iw_inter=`iwconfig 2>/dev/null | grep "^[^ ]" | awk '{print $1}'`
3963-if [ -z "$iw_inter" ]; then
3964- echo "No wireless device found"
3965- exit 0
3966-fi
3967-for dev in $iw_inter ; do
3968- iw_net=`iwlist $dev scan 2>/dev/null | grep "ESSID:"`
3969- if [ ! -z "$iw_net" ] ; then
3970- echo "Wireless network found on "$dev
3971- cat << EOF
3972-$iw_net
3973-EOF
3974- found=`expr $found + 1`
3975- else
3976- echo "No wireless network found on "$dev
3977- fi
3978-done
3979-if [ $found -eq 0 ]; then
3980- exit 1
3981-fi
3982
3983=== modified file 'scripts/optical_write_test'
3984--- scripts/optical_write_test 2012-08-20 18:13:17 +0000
3985+++ scripts/optical_write_test 2012-10-05 14:06:24 +0000
3986@@ -68,14 +68,14 @@
3987 while true; do
3988 sleep $INTERVAL
3989 SLEEP_COUNT=`expr $SLEEP_COUNT + $INTERVAL`
3990-
3991+
3992 mount $OPTICAL_DRIVE 2>&1 |egrep -q "already mounted"
3993 rt=$?
3994 if [ $rt -eq 0 ]; then
3995 echo "Drive appears to be mounted now"
3996 break
3997 fi
3998-
3999+
4000 # If they exceed the timeout limit, make a best effort to load the tray
4001 # in the next steps
4002 if [ $SLEEP_COUNT -ge $TIMEOUT ]; then
4003@@ -84,7 +84,6 @@
4004 fi
4005 done
4006
4007-
4008 echo "Deleting original data files ..."
4009 rm -rf $SAMPLE_FILE
4010 if [ ! -z "$(mount | grep $OPTICAL_DRIVE)" ]; then
4011@@ -131,7 +130,7 @@
4012 OPTICAL_DRIVE=$(readlink -f $1)
4013 else
4014 OPTICAL_DRIVE='/dev/sr0'
4015-fi
4016+fi
4017
4018 create_working_dirs || failed "Failed to create working directories"
4019 get_sample_data || failed "Failed to copy sample data"
4020
4021=== modified file 'setup.py'
4022--- setup.py 2012-07-17 16:27:55 +0000
4023+++ setup.py 2012-10-05 14:06:24 +0000
4024@@ -212,7 +212,7 @@
4025 This project provides an extensible interface for system testing.
4026 """,
4027 data_files = [
4028- ("lib/checkbox/qt/", ["qt/checkbox-qt.ui", "qt/*.png", "qt/frontend/checkbox-qt-service"]),
4029+ ("lib/checkbox/qt/", ["qt/frontend/checkbox-qt-service"]),
4030 ("share/checkbox/", ["backend", "run"]),
4031 ("share/checkbox/data/audio/", ["data/audio/*"]),
4032 ("share/checkbox/data/documents/", ["data/documents/*"]),

Subscribers

People subscribed via source and target branches