Merge ~sylvain-pineau/plainbox-provider-checkbox:extensions4all into plainbox-provider-checkbox:master

Proposed by Sylvain Pineau
Status: Merged
Approved by: Sylvain Pineau
Approved revision: 2293cee49342bcd402cd734092e5f0f859b04233
Merged at revision: 28542927a2a2bbc0f0f8a43cb2a22c0aff767f92
Proposed branch: ~sylvain-pineau/plainbox-provider-checkbox:extensions4all
Merge into: plainbox-provider-checkbox:master
Diff against target: 65741 lines (+682/-868)
66 files modified
README.rst (+0/-1)
bin/alsa_record_playback.sh (+1/-1)
bin/bluetooth_transfer_stress.sh (+2/-2)
bin/brightness_test.py (+1/-1)
bin/check-prerelease.py (+1/-1)
bin/color_depth_info.py (+1/-1)
bin/cpu_topology.py (+1/-1)
bin/disk_cpu_load.sh (+2/-2)
bin/dmitest.py (+1/-1)
bin/efi-pxeboot.py (+1/-1)
bin/fresh_rate_info.py (+2/-2)
bin/graphic_memory_info.py (+2/-2)
bin/graphics_env.sh (+1/-1)
bin/graphics_modes_info.py (+1/-1)
bin/graphics_stress_test.py (+1/-1)
bin/manage_compiz_plugin.py (+2/-2)
bin/network.py (+3/-3)
bin/network_predictable_names.sh (+1/-1)
bin/network_restart.py (+3/-2)
bin/pm_test.py (+11/-10)
bin/pulse-active-port-change.py (+1/-1)
bin/system_info.py (+2/-1)
bin/wifi_client_test.py (+1/-1)
bin/window_test.py (+1/-1)
dev/null (+0/-9)
units/audio/jobs.pxu (+69/-69)
units/audio/resource.pxu (+1/-1)
units/benchmarks/jobs.pxu (+7/-186)
units/bluetooth/jobs.pxu (+9/-9)
units/camera/jobs.pxu (+6/-6)
units/cpu/jobs.pxu (+5/-5)
units/disk/jobs.pxu (+10/-10)
units/dock/jobs.pxu (+120/-120)
units/esata/jobs.pxu (+3/-3)
units/ethernet/jobs.pxu (+9/-9)
units/firewire/jobs.pxu (+3/-3)
units/graphics/jobs.pxu (+27/-27)
units/graphics/legacy.pxu (+16/-16)
units/hibernate/jobs.pxu (+5/-5)
units/info/jobs.pxu (+11/-11)
units/input/jobs.pxu (+2/-2)
units/keys/jobs.pxu (+10/-10)
units/led/jobs.pxu (+2/-2)
units/mediacard/jobs.pxu (+34/-34)
units/memory/jobs.pxu (+5/-5)
units/miscellanea/jobs.pxu (+16/-16)
units/mobilebroadband/jobs.pxu (+4/-4)
units/monitor/jobs.pxu (+1/-1)
units/networking/jobs.pxu (+4/-4)
units/optical/jobs.pxu (+9/-9)
units/power-management/jobs.pxu (+6/-6)
units/stress/jobs.pxu (+33/-33)
units/stress/s3s4.pxu (+2/-2)
units/submission/jobs.pxu (+3/-3)
units/suspend/suspend-graphics.pxu (+16/-16)
units/suspend/suspend.pxu (+107/-107)
units/thunderbolt/jobs.pxu (+9/-9)
units/touchpad/jobs.pxu (+5/-5)
units/touchscreen/jobs.pxu (+4/-4)
units/usb/usb-c.pxu (+6/-6)
units/usb/usb.pxu (+14/-14)
units/virtualization/jobs.pxu (+2/-2)
units/wireless/jobs.pxu (+25/-25)
units/wireless/nm-hotspot.pxu (+2/-2)
units/wireless/wireless-connection-manual.pxu (+9/-9)
units/wireless/wireless-connection-netplan.pxu (+8/-8)
Reviewer Review Type Date Requested Status
Jonathan Cave (community) Approve
Sylvain Pineau (community) Needs Resubmitting
Review via email: mp+387358@code.launchpad.net

Description of the change

Add missing extensions to bin/* scripts.

It's a prerequisite to run shellcheck/flake8 via PMR (our merge tool).

One commit per script!

Notes:
- upstream scripts are untouched, e.g alsa_info & inxi_snapshot
- pm_test & network_restart both have a special patch to preserve the their log_filename (built using __file__)
- Deleted scripts are no longer used in job definitions
- legacy PTS benchmark jobs from 2011 are deleted, all new PTS jobs are living in their own provider
- The same effort on p-p-r will also impact p-p-c as many resource scripts are used here
- gateway_ping_test is left as is on purpose to not interfere with Joc's https://code.launchpad.net/~jocave/plainbox-provider-checkbox/+git/plainbox-provider-checkbox/+merge/387052

Enjoy the review ;)

To post a comment you must log in.
Revision history for this message
Jonathan Cave (jocave) wrote :

Sticking to form with a meta question - I think we discussed getting rid of the translation files. Instead of updating, and givien the large amount of changes, would this be a good time to just delete them?

Revision history for this message
Sylvain Pineau (sylvain-pineau) wrote :

probably, any objections? (/me is looking at ~checkbox-dev members)

review: Needs Information
Revision history for this message
Jeff Lane  (bladernr) wrote :

no objection here... IIRC the translations were necessary/required when these scripts were packaged in Main, but since that's no longer the case, they're not really required now, are they?

Revision history for this message
Maciej Kisielewski (kissiel) wrote :

Kill it with fire. I cannot recall anyone ever asking us for translations update.

Revision history for this message
Sylvain Pineau (sylvain-pineau) wrote :

Translations data removed

review: Needs Resubmitting
Revision history for this message
Sylvain Pineau (sylvain-pineau) wrote :

Oups, I pushed the p-p-r commits with this MR, https://code.launchpad.net/~sylvain-pineau/plainbox-provider-resource/+git/plainbox-provider-resource/+merge/387380 is now a prerequisite of this branch.

See all commits stating with p-p-r:bin below

review: Needs Resubmitting
Revision history for this message
Jonathan Cave (jocave) wrote :

+1, lets land it

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/README.rst b/README.rst
2index 8e12825..349e45d 100644
3--- a/README.rst
4+++ b/README.rst
5@@ -1,2 +1 @@
6 CheckBox provider is a collection of tests for system testing.
7-It is used together alongside with PlainBox
8diff --git a/bin/accelerometer_test b/bin/accelerometer_test.py
9similarity index 100%
10rename from bin/accelerometer_test
11rename to bin/accelerometer_test.py
12diff --git a/bin/alsa_pcm_info b/bin/alsa_pcm_info.py
13similarity index 100%
14rename from bin/alsa_pcm_info
15rename to bin/alsa_pcm_info.py
16diff --git a/bin/alsa_record_playback b/bin/alsa_record_playback.sh
17similarity index 71%
18rename from bin/alsa_record_playback
19rename to bin/alsa_record_playback.sh
20index cf5142b..e86d7d1 100755
21--- a/bin/alsa_record_playback
22+++ b/bin/alsa_record_playback.sh
23@@ -1,7 +1,7 @@
24 #!/bin/sh
25
26 OUTPUT=`mktemp -d`
27-gst_pipeline_test -t 5 "autoaudiosrc ! audioconvert ! level name=recordlevel interval=10000000 ! audioconvert ! wavenc ! filesink location=$OUTPUT/test.wav"
28+gst_pipeline_test.py -t 5 "autoaudiosrc ! audioconvert ! level name=recordlevel interval=10000000 ! audioconvert ! wavenc ! filesink location=$OUTPUT/test.wav"
29 aplay $OUTPUT/test.wav
30 rm $OUTPUT/test.wav
31 rmdir $OUTPUT
32diff --git a/bin/ansi_parser b/bin/ansi_parser.py
33similarity index 100%
34rename from bin/ansi_parser
35rename to bin/ansi_parser.py
36diff --git a/bin/audio_bluetooth_loopback_test b/bin/audio_bluetooth_loopback_test.sh
37similarity index 100%
38rename from bin/audio_bluetooth_loopback_test
39rename to bin/audio_bluetooth_loopback_test.sh
40diff --git a/bin/audio_driver_info b/bin/audio_driver_info.py
41similarity index 100%
42rename from bin/audio_driver_info
43rename to bin/audio_driver_info.py
44diff --git a/bin/audio_settings b/bin/audio_settings.py
45similarity index 100%
46rename from bin/audio_settings
47rename to bin/audio_settings.py
48diff --git a/bin/audio_test b/bin/audio_test.py
49similarity index 100%
50rename from bin/audio_test
51rename to bin/audio_test.py
52diff --git a/bin/battery_test b/bin/battery_test.py
53similarity index 100%
54rename from bin/battery_test
55rename to bin/battery_test.py
56diff --git a/bin/bluetooth_scan b/bin/bluetooth_scan
57deleted file mode 100755
58index 495ebdd..0000000
59--- a/bin/bluetooth_scan
60+++ /dev/null
61@@ -1,7 +0,0 @@
62-#!/bin/bash
63-
64-hciconfig hci0 reset
65-
66-name=`zenity --title="Bluetooth Send" --entry --text="Bluetooth Send"`
67-address=`hcitool scan | grep "$name" | awk '{print $1}'`
68-echo $address
69diff --git a/bin/bluetooth_test b/bin/bluetooth_test.py
70similarity index 100%
71rename from bin/bluetooth_test
72rename to bin/bluetooth_test.py
73diff --git a/bin/bluetooth_transfer_stress b/bin/bluetooth_transfer_stress.sh
74similarity index 95%
75rename from bin/bluetooth_transfer_stress
76rename to bin/bluetooth_transfer_stress.sh
77index 2add0b1..36e4de7 100755
78--- a/bin/bluetooth_transfer_stress
79+++ b/bin/bluetooth_transfer_stress.sh
80@@ -35,10 +35,10 @@ dd if=/dev/urandom of=$ORIGIN count=$SIZEKB bs=1024
81 ORIGIN_SUM=$(sha256sum $ORIGIN | cut -f 1 -d ' ')
82 set -o pipefail
83 echo "Sending file using Bluetooth"
84-time obexftp -v -b $BTDEVADDR -o $REMOTE --put $ORIGIN 2>&1 | ansi_parser
85+time obexftp -v -b $BTDEVADDR -o $REMOTE --put $ORIGIN 2>&1 | ansi_parser.py
86 sleep 5
87 echo "Receiving file using Bluetooth"
88-time obexftp -v -b $BTDEVADDR -o $DESTINATION --get $REMOTE 2>&1 | ansi_parser
89+time obexftp -v -b $BTDEVADDR -o $DESTINATION --get $REMOTE 2>&1 | ansi_parser.py
90 # Now checksum destination and compare
91 DESTINATION_SUM=$(sha256sum $DESTINATION | cut -f 1 -d ' ')
92 # Clean up before reporting
93diff --git a/bin/bmc_info b/bin/bmc_info.py
94similarity index 100%
95rename from bin/bmc_info
96rename to bin/bmc_info.py
97diff --git a/bin/boot_mode_test b/bin/boot_mode_test.py
98similarity index 100%
99rename from bin/boot_mode_test
100rename to bin/boot_mode_test.py
101diff --git a/bin/brightness_test b/bin/brightness_test.py
102similarity index 99%
103rename from bin/brightness_test
104rename to bin/brightness_test.py
105index af1de1b..52d478a 100755
106--- a/bin/brightness_test
107+++ b/bin/brightness_test.py
108@@ -1,7 +1,7 @@
109 #!/usr/bin/env python3
110 # -*- coding: utf-8 -*-
111 #
112-# brightness_test
113+# brightness_test.py
114 #
115 # This file is part of Checkbox.
116 #
117diff --git a/bin/broadband_info b/bin/broadband_info.sh
118similarity index 100%
119rename from bin/broadband_info
120rename to bin/broadband_info.sh
121diff --git a/bin/bt_connect b/bin/bt_connect.py
122similarity index 100%
123rename from bin/bt_connect
124rename to bin/bt_connect.py
125diff --git a/bin/camera_test b/bin/camera_test.py
126similarity index 100%
127rename from bin/camera_test
128rename to bin/camera_test.py
129diff --git a/bin/check-prerelease b/bin/check-prerelease.py
130similarity index 99%
131rename from bin/check-prerelease
132rename to bin/check-prerelease.py
133index 5e24902..68b1a2e 100755
134--- a/bin/check-prerelease
135+++ b/bin/check-prerelease.py
136@@ -25,7 +25,7 @@ system booted from the network (test passes) or from a local disk
137 (test fails).
138
139 Usage:
140- check-prerelease
141+ check-prerelease.py
142 """
143
144 import platform
145diff --git a/bin/check_is_laptop b/bin/check_is_laptop.sh
146similarity index 100%
147rename from bin/check_is_laptop
148rename to bin/check_is_laptop.sh
149diff --git a/bin/cking_suite b/bin/cking_suite
150deleted file mode 100755
151index 8c6f462..0000000
152--- a/bin/cking_suite
153+++ /dev/null
154@@ -1,105 +0,0 @@
155-#!/usr/bin/env python3
156-
157-import os
158-import sys
159-import posixpath
160-import subprocess
161-
162-from optparse import OptionParser
163-
164-
165-DEFAULT_DIRECTORY = "/tmp/checkbox.cking-scripts"
166-DEFAULT_LOCATION = "git://kernel.ubuntu.com/cking/scripts"
167-
168-COMMAND_TEMPLATE = "cd %(scripts)s; ./%(script)s"
169-
170-
171-def print_line(key, value):
172- if type(value) is list:
173- print("%s:" % key)
174- for v in value:
175- print(" %s" % v)
176- else:
177- print("%s: %s" % (key, value))
178-
179-
180-def print_element(element):
181- for key, value in element.items():
182- print_line(key, value)
183-
184- print()
185-
186-
187-def clone_cking_scripts(location, directory):
188- if posixpath.exists(directory):
189- return
190-
191- dirname = posixpath.dirname(directory)
192- if not posixpath.exists(dirname):
193- os.makedirs(dirname)
194-
195- process = subprocess.Popen(["git", "clone", location, directory],
196- stdout=subprocess.PIPE, stderr=subprocess.PIPE)
197- stdout, stderr = process.communicate()
198- if process.wait():
199- raise Exception("Failed to clone cking scripts from %s" % location)
200-
201-
202-def run_cking_scripts(scripts, location, directory, dry_run):
203- if not dry_run:
204- clone_cking_scripts(location, directory)
205-
206- for script in scripts:
207- path = posixpath.join(directory, script)
208-
209- # Initialize test structure
210- test = {}
211- test["plugin"] = "shell"
212- test["name"] = posixpath.splitext(posixpath.basename(path))[0]
213- test["command"] = COMMAND_TEMPLATE % {
214- "scripts": posixpath.dirname(path),
215- "script": posixpath.basename(path)}
216-
217- # Get description from first line of the README file
218- readme_path = posixpath.join(posixpath.dirname(path), "README")
219- if os.path.exists(readme_path):
220- file = open(readme_path)
221- test["description"] = file.readline().strip()
222- file.close
223- else:
224- test["description"] = "No description found"
225-
226- yield test
227-
228-
229-def main(args):
230- usage = "Usage: %prog [OPTIONS] [SCRIPTS]"
231- parser = OptionParser(usage=usage)
232- parser.add_option("--dry-run",
233- default=False,
234- action="store_true",
235- help="Dry run to avoid branching from the given location.")
236- parser.add_option("-d", "--directory",
237- default=DEFAULT_DIRECTORY,
238- help="Directory where to branch qa-regression-testing")
239- parser.add_option("-l", "--location",
240- default=DEFAULT_LOCATION,
241- help="Location from where to branch qa-regression-testing")
242-
243- (options, scripts) = parser.parse_args(args)
244-
245- if not scripts:
246- parser.error("Must specify a script")
247-
248- tests = run_cking_scripts(scripts, options.location, options.directory,
249- options.dry_run)
250- if not tests:
251- return 1
252-
253- for test in tests:
254- print_element(test)
255-
256- return 0
257-
258-if __name__ == "__main__":
259- sys.exit(main(sys.argv[1:]))
260diff --git a/bin/color_depth_info b/bin/color_depth_info.py
261similarity index 98%
262rename from bin/color_depth_info
263rename to bin/color_depth_info.py
264index 4137193..129f051 100755
265--- a/bin/color_depth_info
266+++ b/bin/color_depth_info.py
267@@ -1,7 +1,7 @@
268 #!/usr/bin/env python3
269 # -*- coding: utf-8 -*-
270 #
271-# color_depth_info
272+# color_depth_info.py
273 #
274 # This file is part of Checkbox.
275 #
276diff --git a/bin/connect_wireless b/bin/connect_wireless.sh
277similarity index 100%
278rename from bin/connect_wireless
279rename to bin/connect_wireless.sh
280diff --git a/bin/cpu_offlining b/bin/cpu_offlining.py
281similarity index 100%
282rename from bin/cpu_offlining
283rename to bin/cpu_offlining.py
284diff --git a/bin/cpu_topology b/bin/cpu_topology.py
285similarity index 99%
286rename from bin/cpu_topology
287rename to bin/cpu_topology.py
288index 78317b7..0ce68c5 100755
289--- a/bin/cpu_topology
290+++ b/bin/cpu_topology.py
291@@ -1,6 +1,6 @@
292 #!/usr/bin/env python3
293 '''
294-cpu_topology
295+cpu_topology.py
296 Written by Jeffrey Lane <jeffrey.lane@canonical.com>
297 '''
298 import sys
299diff --git a/bin/create_connection b/bin/create_connection.py
300similarity index 100%
301rename from bin/create_connection
302rename to bin/create_connection.py
303diff --git a/bin/cycle_vts b/bin/cycle_vts.sh
304similarity index 100%
305rename from bin/cycle_vts
306rename to bin/cycle_vts.sh
307diff --git a/bin/disk_cpu_load b/bin/disk_cpu_load.sh
308similarity index 98%
309rename from bin/disk_cpu_load
310rename to bin/disk_cpu_load.sh
311index 93b1569..adad55f 100755
312--- a/bin/disk_cpu_load
313+++ b/bin/disk_cpu_load.sh
314@@ -23,8 +23,8 @@
315 # stress-ng program.
316 #
317 # Usage:
318-# disk_cpu_load [ --max-load <load> ] [ --xfer <mebibytes> ]
319-# [ --verbose ] [ <device-filename> ]
320+# disk_cpu_load.sh [ --max-load <load> ] [ --xfer <mebibytes> ]
321+# [ --verbose ] [ <device-filename> ]
322 #
323 # Parameters:
324 # --max-load <load> -- The maximum acceptable CPU load, as a percentage.
325diff --git a/bin/disk_info b/bin/disk_info.py
326similarity index 100%
327rename from bin/disk_info
328rename to bin/disk_info.py
329diff --git a/bin/disk_read_performance_test b/bin/disk_read_performance_test.sh
330similarity index 100%
331rename from bin/disk_read_performance_test
332rename to bin/disk_read_performance_test.sh
333diff --git a/bin/disk_smart b/bin/disk_smart.py
334similarity index 100%
335rename from bin/disk_smart
336rename to bin/disk_smart.py
337diff --git a/bin/disk_stats_test b/bin/disk_stats_test.sh
338similarity index 100%
339rename from bin/disk_stats_test
340rename to bin/disk_stats_test.sh
341diff --git a/bin/dmitest b/bin/dmitest.py
342similarity index 96%
343rename from bin/dmitest
344rename to bin/dmitest.py
345index ef416ca..642af3a 100755
346--- a/bin/dmitest
347+++ b/bin/dmitest.py
348@@ -248,7 +248,7 @@ def serial_tests(args, stream, dmi_data):
349
350 def main():
351 """Main function."""
352- parser = ArgumentParser("dmitest")
353+ parser = ArgumentParser()
354 parser.add_argument('test_type',
355 help="Test type ('server', 'desktop' or 'cpu-check').",
356 choices=['server', 'desktop', 'cpu-check'])
357diff --git a/bin/dns_server_test b/bin/dns_server_test
358deleted file mode 100755
359index 1b29595..0000000
360--- a/bin/dns_server_test
361+++ /dev/null
362@@ -1,49 +0,0 @@
363-#!/bin/bash
364-#
365-# Verify dns server setup
366-# Packages and ports can be verified offline but external connections
367-# require a network connection. The script will check for this.
368-#
369-
370-# Verify process is running. Expected output 'pgrep named' is a $pid
371-check=`pgrep named`
372-if [ -z "$check" ]; then
373- echo "FAIL: DNS bind is not running."
374- exit 1
375-fi
376-
377-# Check ports
378-result1=`host www.ubuntu.com localhost | grep "#53"`
379-result2=`host -T -6 www.ubuntu.com ip6-localhost | grep "#53"`
380-if [ -z "$result1" ]; then
381- echo "FAIL: DNS is not using port 53."
382- exit 1
383-elif [ -z "$result2" ]; then
384- echo "FAIL: DNS is not using port 53 on IPv6."
385- exit 1
386-fi
387-
388-# Check if udp is established
389-udpCheck=`netstat -auvpn | egrep '(:53)' |egrep 'udp'`
390-if [ -z "$udpCheck" ]; then
391- echo "FAIL: DNS udp setup is not established."
392- exit 1
393-fi
394-
395-# Check if external dns queries work but first verify the network
396-# is up and running
397-check=`ping -c 2 www.ubuntu.com |grep "2 received"`
398-if [ -n "$check" ]; then
399- failure="2(SERVFAIL)"
400- result1=`host www.ubuntu.com localhost | grep "SERVFAIL" |awk '{print $5}'`
401- result2=`host -T -6 www.ubuntu.com ip6-localhost | grep "SERVFAIL" |awk '{print $5}'`
402- if [ "$result1" = $failure ]; then
403- echo "FAIL: DNS external connection fails."
404- exit 1
405- elif [ "$result2" = $failure ]; then
406- echo "FAIL: DNS external connection via IPv6 fails."
407- exit 1
408- fi
409-fi
410-
411-exit 0
412diff --git a/bin/efi-pxeboot b/bin/efi-pxeboot.py
413similarity index 99%
414rename from bin/efi-pxeboot
415rename to bin/efi-pxeboot.py
416index 24ac231..52eace9 100755
417--- a/bin/efi-pxeboot
418+++ b/bin/efi-pxeboot.py
419@@ -25,7 +25,7 @@ system booted from the network (test passes) or from a local disk
420 (test fails).
421
422 Usage:
423- efi-pxeboot
424+ efi-pxeboot.py
425 """
426
427 import os
428diff --git a/bin/floppy_test b/bin/floppy_test
429deleted file mode 100755
430index 4675948..0000000
431--- a/bin/floppy_test
432+++ /dev/null
433@@ -1,105 +0,0 @@
434-#!/usr/bin/env python3
435-
436-import os
437-import sys
438-import filecmp
439-import subprocess
440-import posixpath
441-
442-DEFAULT_DIR = "/tmp/checkbox.floppy"
443-DEFAULT_DEVICE_DIR = "floppy_device"
444-DEFAULT_IMAGE_DIR = "floppy_image"
445-DEFAULT_IMAGE = "floppy.img"
446-
447-
448-class FloppyTest(object):
449-
450- def __init__(self, device):
451- self.device = device
452- self.device_dir = os.path.join(DEFAULT_DIR, DEFAULT_DEVICE_DIR)
453- self.image_dir = os.path.join(DEFAULT_DIR, DEFAULT_IMAGE_DIR)
454- self.image = os.path.join(DEFAULT_DIR, DEFAULT_IMAGE)
455- self.interactive = True
456-
457- for dir in (self.device_dir, self.image_dir):
458- if not posixpath.exists(dir):
459- os.makedirs(dir)
460-
461- def run(self):
462- floppyDevice = self.device
463- if floppyDevice:
464- print(" Testing on floppy drive %s " % floppyDevice)
465- else:
466- print(" Error ! No floppy drive found !")
467- return 1
468- # remove temp files if they exist
469- os.system("umount /media/floppy 2>/dev/null")
470- if (os.path.exists(self.device_dir)
471- or os.path.exists(self.image_dir)
472- or os.path.exists(self.image)):
473- os.system("umount %s %s 2>/dev/null"
474- % (self.device_dir, self.image_dir))
475- os.system("rm -rf %s %s %s 2>/dev/null"
476- % (self.device_dir, self.image_dir, self.image))
477- # Create the test images
478- os.mkdir(self.device_dir)
479- os.mkdir(self.image_dir)
480- os.system("dd if=/dev/zero of=%s bs=1k count=1440" % self.image)
481- os.system("mkdosfs %s" % self.image)
482- os.system("mount -o loop %s %s" % (self.image, self.image_dir))
483- os.system("cp -a /etc/*.conf %s 2> /dev/null" % self.image_dir)
484- os.system("umount %s" % self.image_dir)
485- # start testing
486- (noFloppyDisk, junkOutput1) = \
487- subprocess.getstatusoutput("dd bs=1c if=%s count=0 2>/dev/null"
488- % floppyDevice)
489- if noFloppyDisk != 0:
490- print("Error ! No floppy disc or bad media in %s !" % floppyDevice)
491- return 1
492- else:
493- # writing files
494- print(" Writing data to floppy disc ... ")
495- (ddStatus, ddOutput) = \
496- subprocess.getstatusoutput("dd if=%s of=%s bs=1k count=1440"
497- % (self.image, floppyDevice))
498- if ddStatus == 0:
499- print(" Write data to floppy disc done ! ")
500- else:
501- print(" Error ! Write data to floppy disc error ! ")
502- print(" Please check if your floppy disc is write-protected !")
503- return 1
504- # comparing files
505- os.system("mount %s %s" % (floppyDevice, self.device_dir))
506- os.system("mount -o loop %s %s" % (self.image, self.image_dir))
507- print(" Comparing files ... ")
508- fileList = os.listdir(self.image_dir)
509- returnValue = 0
510- for textFile in fileList:
511- file1 = os.path.join(self.device_dir, textFile)
512- file2 = os.path.join(self.image_dir, textFile)
513- if filecmp.cmp(file1, file2):
514- print(" comparing file %s" % textFile)
515- else:
516- print(" -- Error ! File %s comparison failed ! -- "
517- % textFile)
518- returnValue = 1
519- print(" File comparison done ! ")
520- # remove temp files
521- os.system("umount /media/floppy 2>/dev/null")
522- os.system("umount %s %s " % (self.image_dir, self.device_dir))
523- os.system("rm -rf %s %s %s"
524- % (self.device_dir, self.image_dir, self.image))
525- print("Done !")
526- return returnValue
527-
528-
529-def main(args):
530- return_values = []
531- for device in args:
532- test = FloppyTest(device)
533- return_values.append(test.run())
534-
535- return 1 in return_values
536-
537-if __name__ == "__main__":
538- sys.exit(main(sys.argv[1:]))
539diff --git a/bin/frequency_governors_test b/bin/frequency_governors_test.py
540similarity index 100%
541rename from bin/frequency_governors_test
542rename to bin/frequency_governors_test.py
543diff --git a/bin/fresh_rate_info b/bin/fresh_rate_info.py
544similarity index 96%
545rename from bin/fresh_rate_info
546rename to bin/fresh_rate_info.py
547index 838e5a6..43a8f2a 100755
548--- a/bin/fresh_rate_info
549+++ b/bin/fresh_rate_info.py
550@@ -1,7 +1,7 @@
551 #!/usr/bin/env python3
552 # -*- coding: utf-8 -*-
553 #
554-# fresh_rate_info
555+# fresh_rate_info.py
556 #
557 # This file is part of Checkbox.
558 #
559@@ -23,7 +23,7 @@
560 # along with Checkbox. If not, see <http://www.gnu.org/licenses/>.
561
562 """
563- The fresh_rate_info got information from xrandr
564+ The fresh_rate_info.py got information from xrandr
565 """
566
567 import re
568diff --git a/bin/fstrim_test b/bin/fstrim_test.py
569similarity index 100%
570rename from bin/fstrim_test
571rename to bin/fstrim_test.py
572diff --git a/bin/gcov_tarball b/bin/gcov_tarball.sh
573similarity index 100%
574rename from bin/gcov_tarball
575rename to bin/gcov_tarball.sh
576diff --git a/bin/get_make_and_model b/bin/get_make_and_model.py
577similarity index 100%
578rename from bin/get_make_and_model
579rename to bin/get_make_and_model.py
580diff --git a/bin/gpu_test b/bin/gpu_test.py
581similarity index 100%
582rename from bin/gpu_test
583rename to bin/gpu_test.py
584diff --git a/bin/gputest_benchmark b/bin/gputest_benchmark.py
585similarity index 100%
586rename from bin/gputest_benchmark
587rename to bin/gputest_benchmark.py
588diff --git a/bin/graphic_memory_info b/bin/graphic_memory_info.py
589similarity index 97%
590rename from bin/graphic_memory_info
591rename to bin/graphic_memory_info.py
592index f9f8f64..ba7eece 100755
593--- a/bin/graphic_memory_info
594+++ b/bin/graphic_memory_info.py
595@@ -1,7 +1,7 @@
596 #!/usr/bin/env python3
597 # -*- coding: utf-8 -*-
598 #
599-# graphic_memory_info
600+# graphic_memory_info.py
601 #
602 # This file is part of Checkbox.
603 #
604@@ -23,7 +23,7 @@
605 # along with Checkbox. If not, see <http://www.gnu.org/licenses/>.
606
607 """
608- The graphic_memory_info got information from lspci
609+ The graphic_memory_info.py got information from lspci
610 """
611
612 import re
613diff --git a/bin/graphics_driver b/bin/graphics_driver.py
614similarity index 100%
615rename from bin/graphics_driver
616rename to bin/graphics_driver.py
617diff --git a/bin/graphics_env b/bin/graphics_env.sh
618similarity index 96%
619rename from bin/graphics_env
620rename to bin/graphics_env.sh
621index 19385a5..5160ae6 100755
622--- a/bin/graphics_env
623+++ b/bin/graphics_env.sh
624@@ -12,7 +12,7 @@ INDEX=$2
625 # We only want to set the DRI_PRIME env variable on systems with more than
626 # 1 GPU running the amdgpu/radeon drivers.
627 if [[ $DRIVER == "amdgpu" || $DRIVER == "radeon" ]]; then
628- NB_GPU=`udev_resource -l VIDEO | grep -oP -m1 '\d+'`
629+ NB_GPU=`udev_resource.py -l VIDEO | grep -oP -m1 '\d+'`
630 if [ $NB_GPU -gt 1 ]; then
631 if [ $INDEX -gt 1 ]; then
632 # See https://wiki.archlinux.org/index.php/PRIME
633diff --git a/bin/graphics_modes_info b/bin/graphics_modes_info.py
634similarity index 98%
635rename from bin/graphics_modes_info
636rename to bin/graphics_modes_info.py
637index c585324..f3c962a 100755
638--- a/bin/graphics_modes_info
639+++ b/bin/graphics_modes_info.py
640@@ -1,7 +1,7 @@
641 #!/usr/bin/env python3
642 # -*- coding: utf-8 -*-
643 #
644-# graphics_modes_info
645+# graphics_modes_info.py
646 #
647 # This file is part of Checkbox.
648 #
649diff --git a/bin/graphics_stress_test b/bin/graphics_stress_test.py
650similarity index 100%
651rename from bin/graphics_stress_test
652rename to bin/graphics_stress_test.py
653index bab2221..d467b3f 100755
654--- a/bin/graphics_stress_test
655+++ b/bin/graphics_stress_test.py
656@@ -1,7 +1,7 @@
657 #!/usr/bin/env python3
658 # -*- coding: utf-8 -*-
659 #
660-# graphics_stress_test
661+# graphics_stress_test.py
662 #
663 # This file is part of Checkbox.
664 #
665diff --git a/bin/gst_pipeline_test b/bin/gst_pipeline_test.py
666similarity index 100%
667rename from bin/gst_pipeline_test
668rename to bin/gst_pipeline_test.py
669diff --git a/bin/hdd_parking b/bin/hdd_parking.py
670similarity index 100%
671rename from bin/hdd_parking
672rename to bin/hdd_parking.py
673diff --git a/bin/kernel_taint_test b/bin/kernel_taint_test.py
674similarity index 100%
675rename from bin/kernel_taint_test
676rename to bin/kernel_taint_test.py
677diff --git a/bin/key_test b/bin/key_test.py
678similarity index 100%
679rename from bin/key_test
680rename to bin/key_test.py
681diff --git a/bin/keyboard_test b/bin/keyboard_test.py
682similarity index 100%
683rename from bin/keyboard_test
684rename to bin/keyboard_test.py
685diff --git a/bin/lamp_test b/bin/lamp_test
686deleted file mode 100755
687index f8a641b..0000000
688--- a/bin/lamp_test
689+++ /dev/null
690@@ -1,31 +0,0 @@
691-#!/bin/bash
692-#
693-# Test LAMP by checking Apache, MySQL, and PHP
694-# Requires: apache2, php5-mysql, libapache2-mod-php5, mysql-server
695-#
696-
697-# Check Apache is running; requires network connection so verify that
698-check=`ping -c 2 www.ubuntu.com |grep "2 received"`
699-if [ -n "$check" ]; then
700- run1=`w3m http://127.0.0.1/ | grep "404"`
701- if [ -n "$run1" ]; then
702- echo "FAIL: apache is not running."
703- exit 1
704- fi
705-fi
706-
707-# Check if MySQL server is running
708-run2=`netstat -tap | grep mysql`
709-if [ -z "$run2" ]; then
710- echo "FAIL: mysql is not running."
711- exit 1
712-fi
713-
714-# Check PHP
715-run3=`php -r 'phpinfo();' | grep 'PHP License'`
716-if [ -z "$run3" ]; then
717- echo "FAIL: php is not running."
718- exit 1
719-fi
720-
721-exit 0
722diff --git a/bin/led_hdd_test b/bin/led_hdd_test.sh
723similarity index 100%
724rename from bin/led_hdd_test
725rename to bin/led_hdd_test.sh
726diff --git a/bin/light_sensor_test b/bin/light_sensor_test.sh
727similarity index 100%
728rename from bin/light_sensor_test
729rename to bin/light_sensor_test.sh
730diff --git a/bin/lock_screen_watcher b/bin/lock_screen_watcher.py
731similarity index 100%
732rename from bin/lock_screen_watcher
733rename to bin/lock_screen_watcher.py
734diff --git a/bin/lsmod_info b/bin/lsmod_info.py
735similarity index 100%
736rename from bin/lsmod_info
737rename to bin/lsmod_info.py
738diff --git a/bin/maas-version-check b/bin/maas-version-check.sh
739similarity index 100%
740rename from bin/maas-version-check
741rename to bin/maas-version-check.sh
742diff --git a/bin/manage_compiz_plugin b/bin/manage_compiz_plugin.py
743similarity index 96%
744rename from bin/manage_compiz_plugin
745rename to bin/manage_compiz_plugin.py
746index 9650a9d..03c0ed8 100755
747--- a/bin/manage_compiz_plugin
748+++ b/bin/manage_compiz_plugin.py
749@@ -18,8 +18,8 @@
750 # You should have received a copy of the GNU General Public License
751 # along with Checkbox. If not, see <http://www.gnu.org/licenses/>.
752 """
753-manage_compiz_plugin
754-====================
755+manage_compiz_plugin.py
756+=======================
757
758 This script allows enabling or disabling compiz plugins using
759 gsettings. Changes take effect on the fly.
760diff --git a/bin/max_diskspace_used b/bin/max_diskspace_used
761deleted file mode 100755
762index cc30d85..0000000
763--- a/bin/max_diskspace_used
764+++ /dev/null
765@@ -1,34 +0,0 @@
766-#!/bin/bash
767-
768-# Verify default partitioning has used the entire local hard disk.
769-# Please remove any non-local attached storage prior to running this
770-# test.
771-
772-for disk in $@; do
773- echo "Checking maximum disk space available on : $disk"
774-
775- psize=`parted -l | grep $disk | awk '{print $3}'`
776-
777- if [ -n "$psize" ]
778- then
779- echo "Disk space available : $psize"
780-
781- fsizes=`df -B ${psize:(-2)} | grep $disk | awk '{print $2}'`
782-
783- if [ -n "$fsizes" ]
784- then
785- echo "Disk space used : $fsizes"
786-
787- fsize=0
788- for i in $fsizes; do
789- i=`echo $i | grep -oe '[0-9\.]*'`
790- fsize=$(($fsize + $i))
791- done
792-
793- psize=`echo $psize | grep -oe '[0-9\.]*'`
794- pct_difference=`awk "BEGIN{print(($psize - $fsize) / $fsize)}"`
795- echo "Difference ( > 0.15 fails ) : $pct_difference"
796- awk "BEGIN{exit($pct_difference > 0.15)}" || exit 1
797- fi
798- fi
799-done
800diff --git a/bin/memory_compare b/bin/memory_compare.py
801similarity index 100%
802rename from bin/memory_compare
803rename to bin/memory_compare.py
804diff --git a/bin/memory_info b/bin/memory_info
805deleted file mode 100755
806index 708c22d..0000000
807--- a/bin/memory_info
808+++ /dev/null
809@@ -1,35 +0,0 @@
810-#!/usr/bin/env python3
811-
812-import re
813-import sys
814-
815-
816-def get_meminfo():
817- meminfo = {}
818- for line in open("/proc/meminfo").readlines():
819- match = re.match(r"(.*):\s+(.*)", line)
820- if match:
821- key = match.group(1)
822- value = match.group(2)
823- meminfo[key] = value
824-
825- return meminfo
826-
827-
828-def main(args):
829- meminfo = get_meminfo()
830- amount, units = meminfo["MemTotal"].split()
831-
832- amount = float(amount)
833- next_units = {'kB': 'MB',
834- 'MB': 'GB'}
835-
836- while amount > 1024:
837- amount = amount / 1024
838- units = next_units[units]
839-
840- print("%.1f %s" % (amount, units))
841- return 0
842-
843-if __name__ == "__main__":
844- sys.exit(main(sys.argv[1:]))
845diff --git a/bin/memory_test b/bin/memory_test.py
846similarity index 100%
847rename from bin/memory_test
848rename to bin/memory_test.py
849diff --git a/bin/mm-test b/bin/mm-test
850deleted file mode 100755
851index 236504a..0000000
852--- a/bin/mm-test
853+++ /dev/null
854@@ -1,534 +0,0 @@
855-#!/usr/bin/env python3
856-# -*- Mode: python; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
857-#
858-# This program is free software; you can redistribute it and/or modify
859-# it under the terms of the GNU General Public License as published by
860-# the Free Software Foundation; either version 2 of the License, or
861-# (at your option) any later version.
862-#
863-# This program is distributed in the hope that it will be useful,
864-# but WITHOUT ANY WARRANTY; without even the implied warranty of
865-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
866-# GNU General Public License for more details:
867-#
868-# Copyright (C) 2008 Novell, Inc.
869-# Copyright (C) 2009 Red Hat, Inc.
870-#
871-
872-import sys, dbus, time, os, string, subprocess, socket
873-
874-DBUS_INTERFACE_PROPERTIES='org.freedesktop.DBus.Properties'
875-MM_DBUS_SERVICE='org.freedesktop.ModemManager'
876-MM_DBUS_PATH='/org/freedesktop/ModemManager'
877-MM_DBUS_INTERFACE='org.freedesktop.ModemManager'
878-MM_DBUS_INTERFACE_MODEM='org.freedesktop.ModemManager.Modem'
879-MM_DBUS_INTERFACE_MODEM_CDMA='org.freedesktop.ModemManager.Modem.Cdma'
880-MM_DBUS_INTERFACE_MODEM_GSM_CARD='org.freedesktop.ModemManager.Modem.Gsm.Card'
881-MM_DBUS_INTERFACE_MODEM_GSM_NETWORK='org.freedesktop.ModemManager.Modem.Gsm.Network'
882-MM_DBUS_INTERFACE_MODEM_SIMPLE='org.freedesktop.ModemManager.Modem.Simple'
883-
884-def get_cdma_band_class(band_class):
885- if band_class == 1:
886- return "800MHz"
887- elif band_class == 2:
888- return "1900MHz"
889- else:
890- return "Unknown"
891-
892-def get_reg_state(state):
893- if state == 1:
894- return "registered (roaming unknown)"
895- elif state == 2:
896- return "registered on home network"
897- elif state == 3:
898- return "registered on roaming network"
899- else:
900- return "unknown"
901-
902-def cdma_inspect(proxy, dump_private):
903- cdma = dbus.Interface(proxy, dbus_interface=MM_DBUS_INTERFACE_MODEM_CDMA)
904-
905- esn = "<private>"
906- if dump_private:
907- try:
908- esn = cdma.GetEsn()
909- except dbus.exceptions.DBusException:
910- esn = "<unavailable>"
911-
912- print("")
913- print("ESN: %s" % esn)
914-
915- try:
916- (cdma_1x_state, evdo_state) = cdma.GetRegistrationState()
917- print("1x State: %s" % get_reg_state (cdma_1x_state))
918- print("EVDO State: %s" % get_reg_state (evdo_state))
919- except dbus.exceptions.DBusException as e:
920- print("Error reading registration state: %s" % e)
921-
922- try:
923- quality = cdma.GetSignalQuality()
924- print("Signal quality: %d" % quality)
925- except dbus.exceptions.DBusException as e:
926- print("Error reading signal quality: %s" % e)
927-
928- try:
929- info = cdma.GetServingSystem()
930- print("Class: %s" % get_cdma_band_class(info[0]))
931- print("Band: %s" % info[1])
932- print("SID: %d" % info[2])
933- except dbus.exceptions.DBusException as e:
934- print("Error reading serving system: %s" % e)
935-
936-def cdma_connect(proxy, user, password):
937- # Modem.Simple interface
938- simple = dbus.Interface(proxy, dbus_interface=MM_DBUS_INTERFACE_MODEM_SIMPLE)
939- try:
940- simple.Connect({'number':"#777"}, timeout=92)
941- print("\nConnected!")
942- return True
943- except Exception as e:
944- print("Error connecting: %s" % e)
945- return False
946-
947-
948-def get_gsm_network_mode(modem):
949- mode = modem.GetNetworkMode()
950- if mode == 0x0:
951- mode = "Unknown"
952- elif mode == 0x1:
953- mode = "Any"
954- elif mode == 0x2:
955- mode = "GPRS"
956- elif mode == 0x4:
957- mode = "EDGE"
958- elif mode == 0x8:
959- mode = "UMTS"
960- elif mode == 0x10:
961- mode = "HSDPA"
962- elif mode == 0x20:
963- mode = "2G Preferred"
964- elif mode == 0x40:
965- mode = "3G Preferred"
966- elif mode == 0x80:
967- mode = "2G Only"
968- elif mode == 0x100:
969- mode = "3G Only"
970- elif mode == 0x200:
971- mode = "HSUPA"
972- elif mode == 0x400:
973- mode = "HSPA"
974- else:
975- mode = "(Unknown)"
976-
977- print("Mode: %s" % mode)
978-
979-def get_gsm_band(modem):
980- band = modem.GetBand()
981- if band == 0x0:
982- band = "Unknown"
983- elif band == 0x1:
984- band = "Any"
985- elif band == 0x2:
986- band = "EGSM (900 MHz)"
987- elif band == 0x4:
988- band = "DCS (1800 MHz)"
989- elif band == 0x8:
990- band = "PCS (1900 MHz)"
991- elif band == 0x10:
992- band = "G850 (850 MHz)"
993- elif band == 0x20:
994- band = "U2100 (WCSMA 2100 MHZ, Class I)"
995- elif band == 0x40:
996- band = "U1700 (WCDMA 3GPP UMTS1800 MHz, Class III)"
997- elif band == 0x80:
998- band = "17IV (WCDMA 3GPP AWS 1700/2100 MHz, Class IV)"
999- elif band == 0x100:
1000- band = "U800 (WCDMA 3GPP UMTS800 MHz, Class VI)"
1001- elif band == 0x200:
1002- band = "U850 (WCDMA 3GPP UMT850 MHz, Class V)"
1003- elif band == 0x400:
1004- band = "U900 (WCDMA 3GPP UMTS900 MHz, Class VIII)"
1005- elif band == 0x800:
1006- band = "U17IX (WCDMA 3GPP UMTS MHz, Class IX)"
1007- else:
1008- band = "(invalid)"
1009-
1010- print("Band: %s" % band)
1011-
1012-
1013-def gsm_inspect(proxy, dump_private, do_scan):
1014- # Gsm.Card interface
1015- card = dbus.Interface(proxy, dbus_interface=MM_DBUS_INTERFACE_MODEM_GSM_CARD)
1016-
1017- imei = "<private>"
1018- imsi = "<private>"
1019- if dump_private:
1020- try:
1021- imei = card.GetImei()
1022- except dbus.exceptions.DBusException:
1023- imei = "<unavailable>"
1024- try:
1025- imsi = card.GetImsi()
1026- except dbus.exceptions.DBusException:
1027- imsi = "<unavailable>"
1028-
1029- print("IMEI: %s" % imei)
1030- print("IMSI: %s" % imsi)
1031-
1032- # Gsm.Network interface
1033- net = dbus.Interface(proxy, dbus_interface=MM_DBUS_INTERFACE_MODEM_GSM_NETWORK)
1034- try:
1035- quality = net.GetSignalQuality()
1036- print("Signal quality: %d" % quality)
1037- except dbus.exceptions.DBusException as e:
1038- print("Error reading signal quality: %s" % e)
1039-
1040- if not do_scan:
1041- return
1042-
1043- print("Scanning...")
1044- try:
1045- results = net.Scan(timeout=120)
1046- except dbus.exceptions.DBusException as e:
1047- print("Error scanning: %s" % e)
1048- results = {}
1049-
1050- for r in results:
1051- status = r['status']
1052- if status == "1":
1053- status = "available"
1054- elif status == "2":
1055- status = "current"
1056- elif status == "3":
1057- status = "forbidden"
1058- else:
1059- status = "(Unknown)"
1060-
1061- access_tech = ""
1062- try:
1063- access_tech_num = r['access-tech']
1064- if access_tech_num == "0":
1065- access_tech = "(GSM)"
1066- elif access_tech_num == "1":
1067- access_tech = "(Compact GSM)"
1068- elif access_tech_num == "2":
1069- access_tech = "(UMTS)"
1070- elif access_tech_num == "3":
1071- access_tech = "(EDGE)"
1072- elif access_tech_num == "4":
1073- access_tech = "(HSDPA)"
1074- elif access_tech_num == "5":
1075- access_tech = "(HSUPA)"
1076- elif access_tech_num == "6":
1077- access_tech = "(HSPA)"
1078- except KeyError:
1079- pass
1080-
1081- if 'operator-long' in r and len(r['operator-long']):
1082- print("%s: %s %s" % (r['operator-long'], status, access_tech))
1083- elif 'operator-short' in r and len(r['operator-short']):
1084- print("%s: %s %s" % (r['operator-short'], status, access_tech))
1085- else:
1086- print("%s: %s %s" % (r['operator-num'], status, access_tech))
1087-
1088-def gsm_connect(proxy, apn, user, password):
1089- # Modem.Simple interface
1090- simple = dbus.Interface(proxy, dbus_interface=MM_DBUS_INTERFACE_MODEM_SIMPLE)
1091- try:
1092- opts = {'number':"*99#"}
1093- if apn is not None:
1094- opts['apn'] = apn
1095- if user is not None:
1096- opts['username'] = user
1097- if password is not None:
1098- opts['password'] = password
1099- simple.Connect(opts, timeout=120)
1100- print("\nConnected!")
1101- return True
1102- except Exception as e:
1103- print("Error connecting: %s" % e)
1104- return False
1105-
1106-def pppd_find():
1107- paths = ["/usr/local/sbin/pppd", "/usr/sbin/pppd", "/sbin/pppd"]
1108- for p in paths:
1109- if os.path.exists(p):
1110- return p
1111- return None
1112-
1113-def ppp_start(device, user, password, tmpfile):
1114- path = pppd_find()
1115- if not path:
1116- return None
1117-
1118- args = [path]
1119- args += ["nodetach"]
1120- args += ["lock"]
1121- args += ["nodefaultroute"]
1122- args += ["debug"]
1123- if user:
1124- args += ["user"]
1125- args += [user]
1126- args += ["noipdefault"]
1127- args += ["115200"]
1128- args += ["noauth"]
1129- args += ["crtscts"]
1130- args += ["modem"]
1131- args += ["usepeerdns"]
1132- args += ["ipparam"]
1133-
1134- ipparam = ""
1135- if user:
1136- ipparam += user
1137- ipparam += "+"
1138- if password:
1139- ipparam += password
1140- ipparam += "+"
1141- ipparam += tmpfile
1142- args += [ipparam]
1143-
1144- args += ["plugin"]
1145- args += ["mm-test-pppd-plugin.so"]
1146-
1147- args += [device]
1148-
1149- return subprocess.Popen(args, close_fds=True, cwd="/", env={})
1150-
1151-def ppp_wait(p, tmpfile):
1152- i = 0
1153- while p.poll() == None and i < 30:
1154- time.sleep(1)
1155- if os.path.exists(tmpfile):
1156- f = open(tmpfile, 'r')
1157- stuff = f.read(500)
1158- idx = string.find(stuff, "DONE")
1159- f.close()
1160- if idx >= 0:
1161- return True
1162- i += 1
1163- return False
1164-
1165-def ppp_stop(p):
1166- import signal
1167- p.send_signal(signal.SIGTERM)
1168- p.wait()
1169-
1170-def ntop_helper(ip):
1171- ip = socket.ntohl(ip)
1172- n1 = ip >> 24 & 0xFF
1173- n2 = ip >> 16 & 0xFF
1174- n3 = ip >> 8 & 0xFF
1175- n4 = ip & 0xFF
1176- a = "%c%c%c%c" % (n1, n2, n3, n4)
1177- return socket.inet_ntop(socket.AF_INET, a)
1178-
1179-def static_start(iface, modem):
1180- (addr_num, dns1_num, dns2_num, dns3_num) = modem.GetIP4Config()
1181- addr = ntop_helper(addr_num)
1182- dns1 = ntop_helper(dns1_num)
1183- dns2 = ntop_helper(dns2_num)
1184- configure_iface(iface, addr, 0, dns1, dns2)
1185-
1186-def down_iface(iface):
1187- ip = ["ip", "addr", "flush", "dev", iface]
1188- print(" ".join(ip))
1189- subprocess.call(ip)
1190- ip = ["ip", "link", "set", iface, "down"]
1191- print(" ".join(ip))
1192- subprocess.call(ip)
1193-
1194-def configure_iface(iface, addr, gw, dns1, dns2):
1195- print("\n\n******************************")
1196- print("iface: %s" % iface)
1197- print("addr: %s" % addr)
1198- print("gw: %s" % gw)
1199- print("dns1: %s" % dns1)
1200- print("dns2: %s" % dns2)
1201-
1202- ifconfig = ["ifconfig", iface, "%s/32" % addr]
1203- if gw != 0:
1204- ifconfig += ["pointopoint", gw]
1205- print(" ".join(ifconfig))
1206- print("\n******************************\n")
1207-
1208- subprocess.call(ifconfig)
1209-
1210-def file_configure_iface(tmpfile):
1211- addr = None
1212- gw = None
1213- iface = None
1214- dns1 = None
1215- dns2 = None
1216-
1217- f = open(tmpfile, 'r')
1218- lines = f.readlines()
1219- for l in lines:
1220- if l.startswith("addr"):
1221- addr = l[len("addr"):].strip()
1222- if l.startswith("gateway"):
1223- gw = l[len("gateway"):].strip()
1224- if l.startswith("iface"):
1225- iface = l[len("iface"):].strip()
1226- if l.startswith("dns1"):
1227- dns1 = l[len("dns1"):].strip()
1228- if l.startswith("dns2"):
1229- dns2 = l[len("dns2"):].strip()
1230- f.close()
1231-
1232- configure_iface(iface, addr, gw, dns1, dns2)
1233- return iface
1234-
1235-def try_ping(iface):
1236- cmd = ["ping", "-I", iface, "-c", "4", "-i", "3", "-w", "20", "4.2.2.1"]
1237- print(" ".join(cmd))
1238- retcode = subprocess.call(cmd)
1239- if retcode != 0:
1240- print("PING: failed")
1241- else:
1242- print("PING: success")
1243-
1244-
1245-dump_private = False
1246-connect = False
1247-apn = None
1248-user = None
1249-password = None
1250-do_ip = False
1251-do_scan = True
1252-x = 1
1253-while x < len(sys.argv):
1254- if sys.argv[x] == "--private":
1255- dump_private = True
1256- elif sys.argv[x] == "--connect":
1257- connect = True
1258- elif (sys.argv[x] == "--user" or sys.argv[x] == "--username"):
1259- x += 1
1260- user = sys.argv[x]
1261- elif sys.argv[x] == "--apn":
1262- x += 1
1263- apn = sys.argv[x]
1264- elif sys.argv[x] == "--password":
1265- x += 1
1266- password = sys.argv[x]
1267- elif sys.argv[x] == "--ip":
1268- do_ip = True
1269- if os.geteuid() != 0:
1270- print("You probably want to be root to use --ip")
1271- sys.exit(1)
1272- elif sys.argv[x] == "--no-scan":
1273- do_scan = False
1274- x += 1
1275-
1276-bus = dbus.SystemBus()
1277-
1278-# Get available modems:
1279-try:
1280- manager_proxy = bus.get_object('org.freedesktop.ModemManager', '/org/freedesktop/ModemManager')
1281- manager_iface = dbus.Interface(manager_proxy, dbus_interface='org.freedesktop.ModemManager')
1282- modems = manager_iface.EnumerateDevices()
1283-except dbus.exceptions.DBusException as excp:
1284- if (excp.get_dbus_name() == "org.freedesktop.DBus.Error.ServiceUnknown"):
1285- print("ERROR: mm-test doesn't work on ModemManager 1.0 and newer: {}".format(
1286- excp.get_dbus_message()))
1287- else:
1288- print("ERROR: {}".format(excp.get_dbus_message()))
1289- sys.exit(1)
1290-if not modems:
1291- print("No modems found")
1292- sys.exit(1)
1293-
1294-for m in modems:
1295- connect_success = False
1296- data_device = None
1297-
1298- proxy = bus.get_object(MM_DBUS_SERVICE, m)
1299-
1300- # Properties
1301- props_iface = dbus.Interface(proxy, dbus_interface='org.freedesktop.DBus.Properties')
1302-
1303- type = props_iface.Get(MM_DBUS_INTERFACE_MODEM, 'Type')
1304- if type == 1:
1305- print("GSM modem")
1306- elif type == 2:
1307- print("CDMA modem")
1308- else:
1309- print("Invalid modem type: %d" % type)
1310-
1311- print("Driver: '%s'" % (props_iface.Get(MM_DBUS_INTERFACE_MODEM, 'Driver')))
1312- print("Modem device: '%s'" % (props_iface.Get(MM_DBUS_INTERFACE_MODEM, 'MasterDevice')))
1313- data_device = props_iface.Get(MM_DBUS_INTERFACE_MODEM, 'Device')
1314- print("Data device: '%s'" % data_device)
1315-
1316- # Modem interface
1317- modem = dbus.Interface(proxy, dbus_interface=MM_DBUS_INTERFACE_MODEM)
1318-
1319- try:
1320- modem.Enable(True)
1321- except dbus.exceptions.DBusException as e:
1322- print("Error enabling modem: %s" % e)
1323- sys.exit(1)
1324-
1325- info = modem.GetInfo()
1326- print("Vendor: %s" % info[0])
1327- print("Model: %s" % info[1])
1328- print("Version: %s" % info[2])
1329-
1330- if type == 1:
1331- gsm_inspect(proxy, dump_private, do_scan)
1332- if connect == True:
1333- connect_success = gsm_connect(proxy, apn, user, password)
1334- elif type == 2:
1335- cdma_inspect(proxy, dump_private)
1336- if connect == True:
1337- connect_success = cdma_connect(proxy, user, password)
1338- print()
1339-
1340- if connect_success and do_ip:
1341- tmpfile = "/tmp/mm-test-%d.tmp" % os.getpid()
1342- success = False
1343- try:
1344- ip_method = props_iface.Get(MM_DBUS_INTERFACE_MODEM, 'IpMethod')
1345- if ip_method == 0:
1346- # ppp
1347- p = ppp_start(data_device, user, password, tmpfile)
1348- if ppp_wait(p, tmpfile):
1349- data_device = file_configure_iface(tmpfile)
1350- success = True
1351- elif ip_method == 1:
1352- # static
1353- static_start(data_device, modem)
1354- success = True
1355- elif ip_method == 2:
1356- # dhcp
1357- pass
1358- except Exception as e:
1359- print("Error setting up IP: %s" % e)
1360-
1361- if success:
1362- try_ping(data_device)
1363- print("Waiting for 30s...")
1364- time.sleep(30)
1365-
1366- print("Disconnecting...")
1367- try:
1368- if ip_method == 0:
1369- ppp_stop(p)
1370- try:
1371- os.remove(tmpfile)
1372- except:
1373- pass
1374- elif ip_method == 1:
1375- # static
1376- down_iface(data_device)
1377- elif ip_method == 2:
1378- # dhcp
1379- down_iface(data_device)
1380-
1381- modem.Disconnect()
1382- except Exception as e:
1383- print("Error tearing down IP: %s" % e)
1384-
1385- time.sleep(5)
1386-
1387- modem.Enable(False)
1388-
1389diff --git a/bin/net_driver_info b/bin/net_driver_info.py
1390similarity index 100%
1391rename from bin/net_driver_info
1392rename to bin/net_driver_info.py
1393diff --git a/bin/network b/bin/network.py
1394similarity index 99%
1395rename from bin/network
1396rename to bin/network.py
1397index fea7f72..a646f9c 100755
1398--- a/bin/network
1399+++ b/bin/network.py
1400@@ -710,17 +710,17 @@ This script provides benchmarking and information for a specified network
1401 interface.
1402
1403 Example NIC information usage:
1404-network info -i eth0 --max-speed
1405+network.py info -i eth0 --max-speed
1406
1407 For running iperf test:
1408-network test -i eth0 -t iperf --target 192.168.0.1
1409+network.py test -i eth0 -t iperf --target 192.168.0.1
1410 NOTE: The iperf test requires an iperf server running on the same network
1411 segment that the test machine is running on.
1412
1413 Also, you can use iperf3 rather than iperf2 by specifying the -3 or --iperf3
1414 option like so:
1415
1416-network test -i eth0 -t iperf -3 --target 192.168.0.1
1417+network.py test -i eth0 -t iperf -3 --target 192.168.0.1
1418
1419 Configuration
1420 =============
1421diff --git a/bin/network_check b/bin/network_check.py
1422similarity index 100%
1423rename from bin/network_check
1424rename to bin/network_check.py
1425diff --git a/bin/network_configs b/bin/network_configs.sh
1426similarity index 100%
1427rename from bin/network_configs
1428rename to bin/network_configs.sh
1429diff --git a/bin/network_ntp_test b/bin/network_ntp_test.py
1430similarity index 100%
1431rename from bin/network_ntp_test
1432rename to bin/network_ntp_test.py
1433diff --git a/bin/network_predictable_names b/bin/network_predictable_names.sh
1434similarity index 97%
1435rename from bin/network_predictable_names
1436rename to bin/network_predictable_names.sh
1437index 20c52df..31cf49f 100755
1438--- a/bin/network_predictable_names
1439+++ b/bin/network_predictable_names.sh
1440@@ -26,7 +26,7 @@ set -e
1441 # https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/
1442 #
1443 # Usage:
1444-# network_predictable_names
1445+# network_predictable_names.sh
1446 #
1447 # Parameters:
1448 # None
1449diff --git a/bin/network_printer_test b/bin/network_printer_test.sh
1450similarity index 100%
1451rename from bin/network_printer_test
1452rename to bin/network_printer_test.sh
1453diff --git a/bin/network_reconnect_resume_test b/bin/network_reconnect_resume_test.py
1454similarity index 100%
1455rename from bin/network_reconnect_resume_test
1456rename to bin/network_reconnect_resume_test.py
1457diff --git a/bin/network_restart b/bin/network_restart.py
1458similarity index 98%
1459rename from bin/network_restart
1460rename to bin/network_restart.py
1461index d01e983..14c7357 100755
1462--- a/bin/network_restart
1463+++ b/bin/network_restart.py
1464@@ -327,8 +327,9 @@ def configure_logging(log_level, output):
1465 logger.addHandler(log_handler)
1466
1467 # Log to rotating file using DEBUG log level
1468- log_filename = os.path.join(output,
1469- '{0}.log'.format(os.path.basename(__file__)))
1470+ log_filename = os.path.join(
1471+ output,
1472+ '{0}.log'.format(os.path.splitext(os.path.basename(__file__))[0]))
1473 rollover = os.path.exists(log_filename)
1474 log_handler = logging.handlers.RotatingFileHandler(log_filename, mode='a+',
1475 backupCount=3)
1476diff --git a/bin/network_wait b/bin/network_wait.sh
1477similarity index 100%
1478rename from bin/network_wait
1479rename to bin/network_wait.sh
1480diff --git a/bin/nvidia_nvlink_check b/bin/nvidia_nvlink_check.sh
1481similarity index 100%
1482rename from bin/nvidia_nvlink_check
1483rename to bin/nvidia_nvlink_check.sh
1484diff --git a/bin/optical_detect b/bin/optical_detect
1485deleted file mode 100755
1486index f1fe94b..0000000
1487--- a/bin/optical_detect
1488+++ /dev/null
1489@@ -1,29 +0,0 @@
1490-#!/usr/bin/env python3
1491-
1492-import os
1493-import re
1494-import sys
1495-
1496-
1497-def main(args):
1498- line_pattern = r"\s*(\d+)\s+dev='([^']+)'" \
1499- "\s+([wr-]{6})\s:\s'([^']+)'\s'([^']+)'"
1500- line_regex = re.compile(line_pattern)
1501-
1502- count = 0
1503- command = "wodim --devices"
1504- for line in os.popen(command).readlines():
1505- match = re.match(line_regex, line)
1506- if match:
1507- count += 1
1508- print(match.group(4), match.group(5))
1509-
1510- if not count:
1511- print("No optical devices detected.", file=sys.stderr)
1512- return 1
1513-
1514- return 0
1515-
1516-
1517-if __name__ == "__main__":
1518- sys.exit(main(sys.argv[1:]))
1519diff --git a/bin/optical_read_test b/bin/optical_read_test.py
1520similarity index 100%
1521rename from bin/optical_read_test
1522rename to bin/optical_read_test.py
1523diff --git a/bin/optical_write_test b/bin/optical_write_test.sh
1524similarity index 100%
1525rename from bin/optical_write_test
1526rename to bin/optical_write_test.sh
1527diff --git a/bin/pm_log_check b/bin/pm_log_check.py
1528similarity index 100%
1529rename from bin/pm_log_check
1530rename to bin/pm_log_check.py
1531diff --git a/bin/pm_test b/bin/pm_test.py
1532similarity index 97%
1533rename from bin/pm_test
1534rename to bin/pm_test.py
1535index 066f757..18cf97c 100755
1536--- a/bin/pm_test
1537+++ b/bin/pm_test.py
1538@@ -194,7 +194,7 @@ class PowerManagementOperation():
1539 self.args.log_dir) + command_tpl
1540 command_tpl = '{} ' + command_tpl
1541 else:
1542- script_name = 'sleep_test'
1543+ script_name = 'sleep_test.py'
1544 command_tpl = '{} -s mem -p -i {} -w 10'
1545 script_path = os.path.join(
1546 os.path.dirname(os.path.realpath(__file__)), script_name)
1547@@ -208,9 +208,9 @@ class PowerManagementOperation():
1548 input()
1549 else:
1550 try:
1551- # We call sleep_test or fwts_test script and log its output as
1552- # it contains average times we need to compute global average
1553- # times later.
1554+ # We call sleep_test.py or fwts_test script and log its output
1555+ # as it contains average times we need to compute global
1556+ # average times later.
1557 logging.info(subprocess.check_output(
1558 command_str, universal_newlines=True, shell=True))
1559 except subprocess.CalledProcessError as e:
1560@@ -611,7 +611,7 @@ class CountdownDialog(Gtk.Dialog):
1561 command = Command('fwts -r stdout klog oops').run()
1562 if command.process.returncode != 0:
1563 # Don't abort the test loop,
1564- # errors can be retrieved by pm_log_check
1565+ # errors can be retrieved by pm_log_check.py
1566 logging.error('Problem found in logs by fwts')
1567
1568 def on_system_info_timeout_cb(self):
1569@@ -1007,11 +1007,12 @@ class MyArgumentParser():
1570
1571 # Log filename shows clearly the type of test (pm_operation)
1572 # and the times it was repeated (repetitions)
1573- args.log_filename = os.path.join(args.log_dir,
1574- ('{0}.{1}.{2}.log'
1575- .format(os.path.basename(__file__),
1576- args.pm_operation,
1577- args.total)))
1578+ args.log_filename = os.path.join(
1579+ args.log_dir,
1580+ '{0}.{1}.{2}.log'.format(
1581+ os.path.splitext(os.path.basename(__file__))[0],
1582+ args.pm_operation,
1583+ args.total)))
1584 return args, extra_args
1585
1586
1587diff --git a/bin/process_wait b/bin/process_wait.py
1588similarity index 100%
1589rename from bin/process_wait
1590rename to bin/process_wait.py
1591diff --git a/bin/pts_run b/bin/pts_run
1592deleted file mode 100755
1593index 76921e8..0000000
1594--- a/bin/pts_run
1595+++ /dev/null
1596@@ -1,38 +0,0 @@
1597-#!/bin/bash
1598-
1599-# Exit on any error
1600-set -o errexit
1601-
1602-# Accept Terms & Conditions, disable anonymous reporting
1603-echo -e "Y\nn\nn" | phoronix-test-suite > /dev/null
1604-
1605-# Disable batch result saving and all test options selection
1606-echo -e "n\nn" | phoronix-test-suite batch-setup > /dev/null
1607-
1608-# Don't show the browser after each test.
1609-# The implementation is a bit hacky but works.
1610-phoronix-test-suite user-config-set DefaultBrowser=/bin/true
1611-
1612-# Run each test only one time
1613-export FORCE_TIMES_TO_RUN=1
1614-
1615-# Run only the following resolution
1616-export OVERRIDE_VIDEO_MODES=800x600
1617-
1618-set +o errexit
1619-rv=0
1620-output=$(phoronix-test-suite batch-benchmark $@ 2>&1)
1621-#The output does NOT report success. It may contain, if it fails:
1622-# The test did not produce a result
1623-# The test failed to run properly
1624-# Failed to Fetch
1625-
1626-if (echo "$output" | grep -q -i "Failed to fetch" ); then
1627- rv=1
1628-fi
1629-if ( echo "$output" | grep -q -i 'This test failed to run properly'); then
1630- rv=1
1631-fi
1632-echo "$output"
1633-exit $rv
1634-
1635diff --git a/bin/pulse-active-port-change b/bin/pulse-active-port-change.py
1636similarity index 99%
1637rename from bin/pulse-active-port-change
1638rename to bin/pulse-active-port-change.py
1639index f2d9527..90abed8 100755
1640--- a/bin/pulse-active-port-change
1641+++ b/bin/pulse-active-port-change.py
1642@@ -17,7 +17,7 @@
1643 # You should have received a copy of the GNU General Public License
1644 # along with Checkbox. If not, see <http://www.gnu.org/licenses/>.
1645 """
1646-pulse-active-port-change
1647+pulse-active-port-change.py
1648 ========================
1649
1650 This script checks if the active port on either sinks (speakers or headphones)
1651diff --git a/bin/removable_storage_test b/bin/removable_storage_test.py
1652similarity index 100%
1653rename from bin/removable_storage_test
1654rename to bin/removable_storage_test.py
1655diff --git a/bin/removable_storage_watcher b/bin/removable_storage_watcher.py
1656similarity index 100%
1657rename from bin/removable_storage_watcher
1658rename to bin/removable_storage_watcher.py
1659diff --git a/bin/rendercheck_test b/bin/rendercheck_test
1660deleted file mode 100755
1661index 89e07e9..0000000
1662--- a/bin/rendercheck_test
1663+++ /dev/null
1664@@ -1,263 +0,0 @@
1665-#!/usr/bin/env python3
1666-# -*- coding: utf-8 -*-
1667-#
1668-# rendercheck_test
1669-#
1670-# This file is part of Checkbox.
1671-#
1672-# Copyright 2012 Canonical Ltd.
1673-#
1674-# Authors: Alberto Milone <alberto.milone@canonical.com>
1675-#
1676-# Checkbox is free software: you can redistribute it and/or modify
1677-# it under the terms of the GNU General Public License version 3,
1678-# as published by the Free Software Foundation.
1679-
1680-#
1681-# Checkbox is distributed in the hope that it will be useful,
1682-# but WITHOUT ANY WARRANTY; without even the implied warranty of
1683-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1684-# GNU General Public License for more details.
1685-#
1686-# You should have received a copy of the GNU General Public License
1687-# along with Checkbox. If not, see <http://www.gnu.org/licenses/>.
1688-
1689-from subprocess import Popen, PIPE
1690-from argparse import ArgumentParser
1691-
1692-import logging
1693-import os
1694-import re
1695-import tempfile
1696-import errno
1697-
1698-
1699-class RenderCheck(object):
1700- """A simple class to run the rendercheck suites"""
1701-
1702- def __init__(self, temp_dir=None):
1703- self._temp_dir = temp_dir
1704-
1705- def _print_test_info(self, suites='all', iteration=1, show_errors=False):
1706- '''Print the output of the test suite'''
1707-
1708- main_command = 'rendercheck'
1709- passed = 0
1710- total = 0
1711-
1712- if self._temp_dir:
1713- # Use the specified path
1714- temp_file = tempfile.NamedTemporaryFile(dir=self._temp_dir,
1715- delete=False)
1716- else:
1717- # Use /tmp
1718- temp_file = tempfile.NamedTemporaryFile(delete=False)
1719-
1720- if suites == all:
1721- full_command = [main_command, '-f', 'a8r8g8b8']
1722- else:
1723- full_command = [main_command, '-t', suites, '-f', 'a8r8g8b8']
1724-
1725- try:
1726- # Let's dump the output into file as it can be very large
1727- # and we don't want to store it in memory
1728- process = Popen(full_command, stdout=temp_file,
1729- universal_newlines=True)
1730- except OSError as exc:
1731- if exc.errno == errno.ENOENT:
1732- logging.error('Error: please make sure that rendercheck '
1733- 'is installed.')
1734- exit(1)
1735- else:
1736- raise
1737-
1738- exit_code = process.wait()
1739-
1740- temp_file.close()
1741-
1742- # Read values from the file
1743- errors = re.compile('.*test error.*')
1744- results = re.compile('(.+) tests passed of (.+) total.*')
1745-
1746- first_error = True
1747- with open(temp_file.name) as temp_handle:
1748- for line in temp_handle:
1749- match_output = results.match(line)
1750- match_errors = errors.match(line)
1751- if match_output:
1752- passed = int(match_output.group(1).strip())
1753- total = int(match_output.group(2).strip())
1754- logging.info('Results:')
1755- logging.info(' %d tests passed out of %d.'
1756- % (passed, total))
1757- if show_errors and match_errors:
1758- error = match_errors.group(0).strip()
1759- if first_error:
1760- logging.debug('Rendercheck %s suite errors '
1761- 'from iteration %d:'
1762- % (suites, iteration))
1763- first_error = False
1764- logging.debug(' %s' % error)
1765-
1766- # Remove the file
1767- os.unlink(temp_file.name)
1768-
1769- return (exit_code, passed, total)
1770-
1771- def run_test(self, suites=[], iterations=1, show_errors=False):
1772- exit_status = 0
1773- for suite in suites:
1774- for it in range(iterations):
1775- logging.info('Iteration %d of Rendercheck %s suite...'
1776- % (it + 1, suite))
1777- (status, passed, total) = \
1778- self._print_test_info(suites=suite,
1779- iteration=it + 1,
1780- show_errors=show_errors)
1781- if status != 0:
1782- # Make sure to catch a non-zero exit status
1783- logging.info('Iteration %d of Rendercheck %s suite '
1784- 'exited with status %d.'
1785- % (it + 1, suite, status))
1786- exit_status = status
1787- it += 1
1788-
1789- # exit with 1 if passed < total
1790- if passed < total:
1791- if exit_status == 0:
1792- exit_status = 1
1793- return exit_status
1794-
1795- def get_suites_list(self):
1796- '''Return a list of the available test suites'''
1797- try:
1798- process = Popen(['rendercheck', '--help'], stdout=PIPE,
1799- stderr=PIPE, universal_newlines=True)
1800- except OSError as exc:
1801- if exc.errno == errno.ENOENT:
1802- logging.error('Error: please make sure that rendercheck '
1803- 'is installed.')
1804- exit(1)
1805- else:
1806- raise
1807-
1808- proc = process.communicate()[1].split('\n')
1809- found = False
1810- tests_pattern = re.compile('.*Available tests: *(.+).*')
1811- temp_line = ''
1812- tests = []
1813- for line in proc:
1814- if found:
1815- temp_line += line
1816- match = tests_pattern.match(line)
1817- if match:
1818- first_line = match.group(1).strip().lower()
1819- found = True
1820- temp_line += first_line
1821- for elem in temp_line.split(','):
1822- test = elem.strip()
1823- if elem:
1824- tests.append(test)
1825- return tests
1826-
1827-
1828-def main():
1829- usage = 'Usage: %prog [OPTIONS]'
1830- all_tests = RenderCheck().get_suites_list()
1831-
1832- parser = ArgumentParser(usage)
1833- parser.add_argument('-i', '--iterations',
1834- type=int,
1835- default=1,
1836- help='The number of times to run the test. \
1837- Default is 1')
1838- parser.add_argument('-t', '--test',
1839- default='all',
1840- help='The name of the test suit to run. \
1841- Available tests: \
1842- %s. \
1843- Default is all' % (', '.join(all_tests)))
1844- parser.add_argument('-b', '--blacklist',
1845- action='append',
1846- help='The name of a test which should not be run.')
1847- parser.add_argument('-d', '--debug',
1848- action='store_true',
1849- help='Choose this to add verbose output \
1850- for debug purposes')
1851- parser.add_argument('-o', '--output',
1852- default='',
1853- help='The path to the log which will be dumped. \
1854- Default is stdout')
1855- parser.add_argument('-tp', '--temp',
1856- default='',
1857- help='The path where to store temporary files. \
1858- Default is /tmp')
1859- args = parser.parse_args()
1860-
1861- # Set up logging to console
1862- format = '%(message)s'
1863-
1864- console_handler = logging.StreamHandler()
1865- console_handler.setFormatter(logging.Formatter(format))
1866-
1867- # Set up the overall logger
1868- logger = logging.getLogger()
1869- # This is necessary to ensure debug messages are passed through the logger
1870- # to the handler
1871- logger.setLevel(logging.DEBUG)
1872-
1873- # This is what happens when -d and/or -o are passed:
1874- # -o -> stdout (info) - log (info)
1875- # -d -> only stdout (info and debug) - no log
1876- # -d -o -> stdout (info) - log (info and debug)
1877-
1878- # Write to a log
1879- if args.output:
1880- # Write INFO to stdout
1881- console_handler.setLevel(logging.INFO)
1882- logger.addHandler(console_handler)
1883- # Specify a log file
1884- logfile = args.output
1885- logfile_handler = logging.FileHandler(logfile)
1886- if args.debug:
1887- # Write INFO and DEBUG to a log
1888- logfile_handler.setLevel(logging.DEBUG)
1889- else:
1890- # Write INFO to a log
1891- logfile_handler.setLevel(logging.INFO)
1892-
1893- logfile_handler.setFormatter(logging.Formatter(format))
1894- logger.addHandler(logfile_handler)
1895- log_path = os.path.abspath(logfile)
1896- logging.info("The log can be found at %s" % log_path)
1897-
1898- # Write only to stdout
1899- else:
1900- if args.debug:
1901- # Write INFO and DEBUG to stdout
1902- console_handler.setLevel(logging.DEBUG)
1903- logger.addHandler(console_handler)
1904- else:
1905- # Write INFO to stdout
1906- console_handler.setLevel(logging.INFO)
1907- logger.addHandler(console_handler)
1908-
1909- exit_status = 0
1910-
1911- if args.test == 'all':
1912- tests = all_tests
1913- else:
1914- tests = args.test.split(',')
1915-
1916- for test in args.blacklist:
1917- if test in tests:
1918- tests.remove(test)
1919-
1920- rendercheck = RenderCheck(args.temp)
1921- exit_status = rendercheck.run_test(tests, args.iterations,
1922- args.debug)
1923-
1924- exit(exit_status)
1925-
1926-if __name__ == '__main__':
1927- main()
1928diff --git a/bin/resolution_test b/bin/resolution_test.py
1929similarity index 100%
1930rename from bin/resolution_test
1931rename to bin/resolution_test.py
1932diff --git a/bin/rotation_test b/bin/rotation_test.py
1933similarity index 100%
1934rename from bin/rotation_test
1935rename to bin/rotation_test.py
1936diff --git a/bin/rotation_test_using_dbus b/bin/rotation_test_using_dbus
1937deleted file mode 100755
1938index 9e62daa..0000000
1939--- a/bin/rotation_test_using_dbus
1940+++ /dev/null
1941@@ -1,47 +0,0 @@
1942-#!/bin/sh
1943-#
1944-# rotation_test_using_dbus
1945-#
1946-# This script is used to trigger a main screen rotation directly from DBUS to
1947-# simulate the way screen rotation is done when using System Settings screen.
1948-# Indeed, when using xrandr command or Python lib, we sometimes have weird
1949-# behaviours, specifically when used with NVidia cards with proprietary drivers.
1950-#
1951-# This file is part of Checkbox.
1952-#
1953-# Copyright 2015 Canonical Ltd.
1954-#
1955-# Authors: Pierre Equoy <pierre.equoy@canonical.com>
1956-#
1957-# Checkbox is free software: you can redistribute it and/or modify
1958-# it under the terms of the GNU General Public License version 3,
1959-# as published by the Free Software Foundation.
1960-#
1961-# Checkbox is distributed in the hope that it will be useful,
1962-# but WITHOUT ANY WARRANTY; without even the implied warranty of
1963-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1964-# GNU General Public License for more details.
1965-#
1966-# You should have received a copy of the GNU General Public License
1967-# along with Checkbox. If not, see <http://www.gnu.org/licenses/>.
1968-
1969-
1970-rotate() {
1971- dbus-send --session --print-reply --dest=org.gnome.SettingsDaemon /org/gnome/SettingsDaemon/XRANDR org.gnome.SettingsDaemon.XRANDR_2.RotateTo int32:$1 int64:0 > /dev/null 2>&1
1972-}
1973-
1974-# Rotate the screen in-between the following modes and the normal mode:
1975-# 2 - left
1976-# 4 - inverted
1977-# 8 - right
1978-# 1 - normal
1979-for i in 2 1 4 1 8 1
1980-do
1981- rotate $i
1982- sleep 4
1983-done
1984-
1985-# Rotate one more time to "normal" so next time we logout/login,
1986-# the screen will be set in normal mode.
1987-rotate 1
1988-
1989diff --git a/bin/samba_test b/bin/samba_test
1990deleted file mode 100755
1991index a9a0bfe..0000000
1992--- a/bin/samba_test
1993+++ /dev/null
1994@@ -1,38 +0,0 @@
1995-#!/bin/bash
1996-#
1997-# Confirm Samba service is running
1998-# Requires: samba winbind
1999-#
2000-
2001-#Verify Samba processes are running
2002-smbd=`pgrep smbd`
2003-if [ -z "$smbd" ]; then
2004- echo "FAIL: smbd is not running."
2005- exit 1
2006-fi
2007-
2008-nmbd=`pgrep nmbd`
2009-if [ -z "$nmbd" ]; then
2010- echo "FAIL: nmbd is not running."
2011- exit 1
2012-fi
2013-
2014-winbindd=`pgrep winbindd`
2015-if [ -z "$winbindd" ]; then
2016- echo "FAIL: winbindd is not running."
2017- exit 1
2018-fi
2019-
2020-sid=`net getlocalsid | grep "S-1-5"` #req. root
2021-if [ -z "$sid" ]; then
2022- echo "FAIL: Default samba workgroup is not set."
2023- exit 1
2024-fi
2025-
2026-users=`net usersidlist | grep "UBUNTU"`
2027-if [ -z "$sid" ]; then
2028- echo "FAIL: samba userId is not set."
2029- exit 1
2030-fi
2031-
2032-exit 0
2033diff --git a/bin/sleep_test b/bin/sleep_test.py
2034similarity index 100%
2035rename from bin/sleep_test
2036rename to bin/sleep_test.py
2037diff --git a/bin/sleep_test_log_check b/bin/sleep_test_log_check.py
2038similarity index 100%
2039rename from bin/sleep_test_log_check
2040rename to bin/sleep_test_log_check.py
2041diff --git a/bin/sleep_time_check b/bin/sleep_time_check.py
2042similarity index 100%
2043rename from bin/sleep_time_check
2044rename to bin/sleep_time_check.py
2045diff --git a/bin/sources_test b/bin/sources_test.sh
2046similarity index 100%
2047rename from bin/sources_test
2048rename to bin/sources_test.sh
2049diff --git a/bin/spindown b/bin/spindown.sh
2050similarity index 100%
2051rename from bin/spindown
2052rename to bin/spindown.sh
2053diff --git a/bin/stress_ng_test b/bin/stress_ng_test.py
2054similarity index 100%
2055rename from bin/stress_ng_test
2056rename to bin/stress_ng_test.py
2057diff --git a/bin/system_info.py b/bin/system_info.py
2058index d03ae4a..95af6d4 100755
2059--- a/bin/system_info.py
2060+++ b/bin/system_info.py
2061@@ -224,7 +224,8 @@ def main():
2062 'Touchpad': 'TOUCHPAD'
2063 }
2064 for section, udev_category in extra_sections.items():
2065- section_info = _run_cmd('udev_resource -l {} -s'.format(udev_category))
2066+ section_info = _run_cmd(
2067+ 'udev_resource.py -l {} -s'.format(udev_category))
2068 if section_info:
2069 sys_info[section] = section_info.splitlines()
2070 print(json.dumps(sys_info, indent=4))
2071diff --git a/bin/test_bt_keyboard b/bin/test_bt_keyboard.py
2072similarity index 100%
2073rename from bin/test_bt_keyboard
2074rename to bin/test_bt_keyboard.py
2075diff --git a/bin/tomcat_test b/bin/tomcat_test
2076deleted file mode 100755
2077index 70cdb8c..0000000
2078--- a/bin/tomcat_test
2079+++ /dev/null
2080@@ -1,24 +0,0 @@
2081-#!/bin/bash
2082-#
2083-# Confirm Tomcat server is running and working properly
2084-# Requires: tomcat6
2085-#
2086-
2087-# Check tomcat is running
2088-run1=`netstat -ltnp | grep '8080' | grep 'java'`
2089-if [ -z "$run1" ]; then
2090- echo "FAIL: Tomcat is not running."
2091- exit 1
2092-fi
2093-
2094-# Check if Tomcat is working; requires network connection so check it
2095-check=`ping -c 2 www.ubuntu.com |grep "2 received"`
2096-if [ -n "$check" ]; then
2097- work1=`w3m http://127.0.0.1:8080 | grep "works"`
2098- if [ -z "$work1" ]; then
2099- echo "FAIL: Tomcat is not working properly."
2100- exit 1
2101- fi
2102-fi
2103-
2104-exit 0
2105diff --git a/bin/touchpad_driver_info b/bin/touchpad_driver_info.py
2106similarity index 100%
2107rename from bin/touchpad_driver_info
2108rename to bin/touchpad_driver_info.py
2109diff --git a/bin/touchpad_test b/bin/touchpad_test.py
2110similarity index 100%
2111rename from bin/touchpad_test
2112rename to bin/touchpad_test.py
2113diff --git a/bin/udisks2_monitor b/bin/udisks2_monitor
2114deleted file mode 100755
2115index 5b58a68..0000000
2116--- a/bin/udisks2_monitor
2117+++ /dev/null
2118@@ -1,154 +0,0 @@
2119-#!/usr/bin/env python3
2120-# Copyright 2012 Canonical Ltd.
2121-# Written by:
2122-# Zygmunt Krynicki <zygmunt.krynicki@canonical.com>
2123-#
2124-# This program is free software: you can redistribute it and/or modify
2125-# it under the terms of the GNU General Public License version 3,
2126-# as published by the Free Software Foundation.
2127-#
2128-# This program is distributed in the hope that it will be useful,
2129-# but WITHOUT ANY WARRANTY; without even the implied warranty of
2130-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2131-# GNU General Public License for more details.
2132-#
2133-# You should have received a copy of the GNU General Public License
2134-# along with this program. If not, see <http://www.gnu.org/licenses/>.
2135-
2136-"""
2137-Script that observes changes to various devices, as published by
2138-UDisks2. Note: this script has no UDisks (one) equivalent.
2139-"""
2140-
2141-import errno
2142-import logging
2143-import sys
2144-
2145-from checkbox_support.dbus import connect_to_system_bus, drop_dbus_type
2146-from checkbox_support.dbus.udisks2 import UDisks2Observer
2147-
2148-from dbus.exceptions import DBusException
2149-
2150-
2151-def _print_interfaces_and_properties(interfaces_and_properties):
2152- """
2153- Print a collection of interfaces and properties exported by some object
2154-
2155- The argument is the value of the dictionary _values_, as returned from
2156- GetManagedObjects() for example. See this for details:
2157- http://dbus.freedesktop.org/doc/dbus-specification.html#
2158- standard-interfaces-objectmanager
2159- """
2160- for interface_name, properties in interfaces_and_properties.items():
2161- print(" - Interface {}".format(interface_name))
2162- for prop_name, prop_value in properties.items():
2163- prop_value = drop_dbus_type(prop_value)
2164- print(" * Property {}: {}".format(prop_name, prop_value))
2165-
2166-
2167-def main():
2168- # Connect to the system bus, we also get the event
2169- # loop as we need it to start listening for signals.
2170- system_bus, loop = connect_to_system_bus()
2171-
2172- # Create an instance of the observer that we'll need for the model
2173- observer = UDisks2Observer()
2174-
2175- # Define all our callbacks in advance, there are three callbacks that we
2176- # need, for interface insertion/removal (which roughly corresponds to
2177- # objects/devices coming and going) and one extra signal that is only fired
2178- # once, when we get the initial list of objects.
2179-
2180- # Let's print everything we know about initially for the users to see
2181- def print_initial_objects(managed_objects):
2182- print("UDisks2 knows about the following objects:")
2183- for object_path, interfaces_and_properties in managed_objects.items():
2184- print(" * {}".format(object_path))
2185- _print_interfaces_and_properties(interfaces_and_properties)
2186- sys.stdout.flush()
2187- observer.on_initial_objects.connect(print_initial_objects)
2188-
2189- # Setup a callback for the InterfacesAdded signal. This way we will get
2190- # notified of any interface changes in this collection. In practice this
2191- # means that all objects that are added/removed will be advertised through
2192- # this mechanism
2193- def print_interfaces_added(object_path, interfaces_and_properties):
2194- print("The object:")
2195- print(" {}".format(object_path))
2196- print("has gained the following interfaces and properties:")
2197- _print_interfaces_and_properties(interfaces_and_properties)
2198- sys.stdout.flush()
2199- observer.on_interfaces_added.connect(print_interfaces_added)
2200-
2201- # Setup a callback on PropertiesChanged signal. This way we will get
2202- # notified on any changes to the values of properties exported by various
2203- # objects on the bus.
2204- def print_properties_changed(object_path, interface_name,
2205- changed_properties, invalidated_properties):
2206- print("The object")
2207- print(" {}".format(object_path))
2208- print("has changed the following properties")
2209- print(" - Interface {}".format(interface_name))
2210- for prop_name, prop_value in changed_properties.items():
2211- prop_value = drop_dbus_type(prop_value)
2212- print(" * Property {}: {}".format(prop_name, prop_value))
2213- for prop_name in invalidated_properties:
2214- print(" * Property {} (invalidated)".format(prop_name))
2215- observer.on_properties_changed.connect(print_properties_changed)
2216-
2217- # Again, a similar callback for interfaces that go away. It's not spelled
2218- # out explicitly but it seems that objects with no interfaces left are
2219- # simply gone. We'll treat them as such
2220- def print_interfaces_removed(object_path, interfaces):
2221- print("The object:")
2222- print(" {}".format(object_path))
2223- print("has lost the following interfaces:")
2224- for interface in interfaces:
2225- print(" * {}".format(interface))
2226- sys.stdout.flush()
2227- observer.on_interfaces_removed.connect(print_interfaces_removed)
2228-
2229- # Now that all signal handlers are set, connect the observer to the system
2230- # bus
2231- try:
2232- logging.debug("Connecting UDisks2 observer to DBus")
2233- observer.connect_to_bus(system_bus)
2234- except DBusException as exc:
2235- # Manage the missing service error if needed to give sensible error
2236- # message on precise where UDisks2 is not available
2237- if exc.get_dbus_name() == "org.freedesktop.DBus.Error.ServiceUnknown":
2238- print("You need to have udisks2 installed to run this program")
2239- print("It is only applicable to Ubuntu 12.10, or later")
2240- raise SystemExit(1)
2241- else:
2242- raise # main_shield() will catch this one
2243-
2244- # Now start the event loop and just display any device changes
2245- print("=" * 80)
2246- print("Waiting for device changes (press ctlr+c to exit)")
2247- print("=" * 80)
2248- logging.debug("Entering event loop")
2249- sys.stdout.flush() # Explicitly flush to allow tee users to see things
2250- try:
2251- loop.run()
2252- except KeyboardInterrupt:
2253- loop.quit()
2254- print("Exiting")
2255-
2256-
2257-def main_shield():
2258- """
2259- Helper for real main that manages exceptions we don't recover from
2260- """
2261- try:
2262- main()
2263- except DBusException as exc:
2264- logging.exception("Caught fatal DBus exception, aborting")
2265- except IOError as exc:
2266- # Ignore pipe errors as they are harmless
2267- if exc.errno != errno.EPIPE:
2268- raise
2269-
2270-
2271-if __name__ == "__main__":
2272- main_shield()
2273diff --git a/bin/virtualization b/bin/virtualization.py
2274similarity index 100%
2275rename from bin/virtualization
2276rename to bin/virtualization.py
2277diff --git a/bin/volume_test b/bin/volume_test.py
2278similarity index 100%
2279rename from bin/volume_test
2280rename to bin/volume_test.py
2281diff --git a/bin/wifi_client_test b/bin/wifi_client_test.py
2282similarity index 98%
2283rename from bin/wifi_client_test
2284rename to bin/wifi_client_test.py
2285index 6868847..2f17974 100755
2286--- a/bin/wifi_client_test
2287+++ b/bin/wifi_client_test.py
2288@@ -8,7 +8,7 @@
2289 """
2290 This script will run wireless network test automatically.
2291
2292-To see how to use, please run "./wifi_client_test --help"
2293+To see how to use, please run "./wifi_client_test.py --help"
2294 """
2295 import argparse
2296 import os
2297diff --git a/bin/wifi_time2reconnect b/bin/wifi_time2reconnect.py
2298similarity index 100%
2299rename from bin/wifi_time2reconnect
2300rename to bin/wifi_time2reconnect.py
2301diff --git a/bin/window_test b/bin/window_test.py
2302similarity index 100%
2303rename from bin/window_test
2304rename to bin/window_test.py
2305index 23b6f3b..ee79a89 100755
2306--- a/bin/window_test
2307+++ b/bin/window_test.py
2308@@ -1,7 +1,7 @@
2309 #!/usr/bin/env python3
2310 # -*- coding: utf-8 -*-
2311 #
2312-# window_test
2313+# window_test.py
2314 #
2315 # This file is part of Checkbox.
2316 #
2317diff --git a/bin/xen_test b/bin/xen_test
2318deleted file mode 100755
2319index ed237c5..0000000
2320--- a/bin/xen_test
2321+++ /dev/null
2322@@ -1,74 +0,0 @@
2323-#!/bin/bash
2324-## Xen Testing
2325-## Script to make and fire off some pre-made VMs to test the hypervisor
2326-## under a bit of simulated load
2327-##
2328-## USAGE: xentest.sh /path/to/ORIGINAL_IMAGE /path/to/ORIGINAL_CONFIG
2329-##
2330-## this is a kludge and a dirty, dirty hack and shoud die an ignomious
2331-## death soon. A more elegant solution would be to modify the script
2332-## /usr/share/checkbox/scripts/virtualization and add the missing Xen
2333-## functionality. But this will do as a first pass.
2334-
2335-ORIGINAL_VM=$1
2336-ORIGINAL_VM_TEMPLATE=$2
2337-VIRSH_CMD='virsh -c xen:///'
2338-CLONE_CMD='virt-clone'
2339-VM_NAME_BASE='xentest-vm'
2340-
2341-# First, figure out how many CPUs we have:
2342-#CPU_CORES=`xm dmesg | grep -c "(XEN) Processor #"`
2343-CPU_CORES=1
2344-
2345-# Verify our image and config file are present
2346-if [ ! -e $ORIGINAL_VM ]; then
2347- echo "Xen VM Image not found!" >&2
2348- exit 1
2349-fi
2350-if [ ! -e $ORIGINAL_VM_TEMPLATE ]; then
2351- echo "Xen VM Config File not found!" >&2
2352- exit 1
2353-fi
2354-
2355-#Clone those suckers enough that we have 2 VMs per core and LAUNCH!
2356-VM_TOTAL=$((CPU_CORES*2))
2357-
2358-#Set up an assoticative array (this would translate much better into
2359-#a simple python list later on, hint hint)
2360-declare -A VM_NAMES
2361-
2362-echo "Starting $VM_TOTAL VM clones" >&2
2363-for vm in `seq 1 $VM_TOTAL`; do
2364- VM_NAME="$VM_NAME_BASE$vm"
2365- VM_NAMES[$vm]=$VM_NAME
2366- echo "Cloning vm $vm" >&2
2367- $CLONE_CMD --original-xml=$ORIGINAL_VM_TEMPLATE -n $VM_NAME -f /vms/$VM_NAME.img --force >&2
2368- echo "Starting vm $vm" >&2
2369- $VIRSH_CMD start $VM_NAME
2370-done
2371-
2372-#Lets wait a few minutes to let them do some work
2373-echo "Sleeping for 5 miunutes to let VMs boot and start working" >&2
2374-sleep 5m
2375-echo "" >&2
2376-#Now verify the VMs are still running
2377-fail=false
2378-echo "Checking domU state..." >&2
2379-for vm in `seq 1 $VM_TOTAL`; do
2380- state=`$VIRSH_CMD domstate ${VM_NAMES[$vm]}`
2381- echo "${VM_NAMES[$vm]}: $state" >&2
2382- if [ "$state" != "running" ]; then
2383- fail=true
2384- echo "VM $vm is not in running state!" >&2
2385- fi
2386-done
2387-
2388-if $fail; then
2389- echo "One or more guests is not in the running state after 5 minutes." >&2
2390- echo "Test Fails" >&2
2391- exit 1
2392-else
2393- echo "All guests seem to be running correctly"
2394-fi
2395-
2396-exit 0
2397diff --git a/bin/xrandr_cycle b/bin/xrandr_cycle.py
2398similarity index 100%
2399rename from bin/xrandr_cycle
2400rename to bin/xrandr_cycle.py
2401diff --git a/po/POTFILES.in b/po/POTFILES.in
2402deleted file mode 100644
2403index d8a9a9e..0000000
2404--- a/po/POTFILES.in
2405+++ /dev/null
2406@@ -1,147 +0,0 @@
2407-[encoding: UTF-8]
2408-[type: gettext/rfc822deb] units/audio/jobs.pxu
2409-[type: gettext/rfc822deb] units/benchmarks/jobs.pxu
2410-[type: gettext/rfc822deb] units/bluetooth/jobs.pxu
2411-[type: gettext/rfc822deb] units/bluetooth/manifest.pxu
2412-[type: gettext/rfc822deb] units/camera/jobs.pxu
2413-[type: gettext/rfc822deb] units/camera/packaging.pxu
2414-[type: gettext/rfc822deb] units/codecs/jobs.pxu
2415-[type: gettext/rfc822deb] units/cpu/jobs.pxu
2416-[type: gettext/rfc822deb] units/disk/jobs.pxu
2417-[type: gettext/rfc822deb] units/disk/packaging.pxu
2418-[type: gettext/rfc822deb] units/dock/category.pxu
2419-[type: gettext/rfc822deb] units/dock/jobs.pxu
2420-[type: gettext/rfc822deb] units/esata/jobs.pxu
2421-[type: gettext/rfc822deb] units/ethernet/jobs.pxu
2422-[type: gettext/rfc822deb] units/ethernet/packaging.pxu
2423-[type: gettext/rfc822deb] units/expresscard/jobs.pxu
2424-[type: gettext/rfc822deb] units/fingerprint/jobs.pxu
2425-[type: gettext/rfc822deb] units/firewire/jobs.pxu
2426-[type: gettext/rfc822deb] units/firmware/jobs.pxu
2427-[type: gettext/rfc822deb] units/floppy/jobs.pxu
2428-[type: gettext/rfc822deb] units/graphics/jobs.pxu
2429-[type: gettext/rfc822deb] units/graphics/legacy.pxu
2430-[type: gettext/rfc822deb] units/hibernate/jobs.pxu
2431-[type: gettext/rfc822deb] units/info/jobs.pxu
2432-[type: gettext/rfc822deb] units/info/packaging.pxu
2433-[type: gettext/rfc822deb] units/input/jobs.pxu
2434-[type: gettext/rfc822deb] units/install/jobs.pxu
2435-[type: gettext/rfc822deb] units/keys/jobs.pxu
2436-[type: gettext/rfc822deb] units/keys/manifest.pxu
2437-[type: gettext/rfc822deb] units/led/jobs.pxu
2438-[type: gettext/rfc822deb] units/mediacard/jobs.pxu
2439-[type: gettext/rfc822deb] units/mediacard/manifest.pxu
2440-[type: gettext/rfc822deb] units/memory/jobs.pxu
2441-[type: gettext/rfc822deb] units/miscellanea/jobs.pxu
2442-[type: gettext/rfc822deb] units/mobilebroadband/jobs.pxu
2443-[type: gettext/rfc822deb] units/monitor/jobs.pxu
2444-[type: gettext/rfc822deb] units/networking/jobs.pxu
2445-[type: gettext/rfc822deb] units/networking/packaging.pxu
2446-[type: gettext/rfc822deb] units/optical/jobs.pxu
2447-[type: gettext/rfc822deb] units/power-management/jobs.pxu
2448-[type: gettext/rfc822deb] units/smoke/jobs.pxu
2449-[type: gettext/rfc822deb] units/smoke/test-plan.pxu
2450-[type: gettext/rfc822deb] units/stress/jobs.pxu
2451-[type: gettext/rfc822deb] units/stress/packaging.pxu
2452-[type: gettext/rfc822deb] units/submission/jobs.pxu
2453-[type: gettext/rfc822deb] units/submission/packaging.pxu
2454-[type: gettext/rfc822deb] units/suspend/suspend-graphics.pxu
2455-[type: gettext/rfc822deb] units/suspend/suspend.pxu
2456-[type: gettext/rfc822deb] units/thunderbolt/jobs.pxu
2457-[type: gettext/rfc822deb] units/thunderbolt/manifest.pxu
2458-[type: gettext/rfc822deb] units/touchpad/jobs.pxu
2459-[type: gettext/rfc822deb] units/touchscreen/jobs.pxu
2460-[type: gettext/rfc822deb] units/touchscreen/manifest.pxu
2461-[type: gettext/rfc822deb] units/usb/manifest.pxu
2462-[type: gettext/rfc822deb] units/usb/usb-c.pxu
2463-[type: gettext/rfc822deb] units/usb/usb.pxu
2464-[type: gettext/rfc822deb] units/virtualization/jobs.pxu
2465-[type: gettext/rfc822deb] units/wireless/jobs.pxu
2466-[type: gettext/python] bin/accelerometer_test
2467-[type: gettext/python] bin/ansi_parser
2468-[type: gettext/python] bin/audio_driver_info
2469-[type: gettext/python] bin/audio_settings
2470-[type: gettext/python] bin/audio_test
2471-[type: gettext/python] bin/battery_test
2472-bin/bluetooth_scan
2473-[type: gettext/python] bin/bluetooth_test
2474-[type: gettext/python] bin/brightness_test
2475-[type: gettext/python] bin/camera_test
2476-[type: gettext/python] bin/cking_suite
2477-[type: gettext/python] bin/color_depth_info
2478-bin/connect_wireless
2479-bin/cpu_offlining
2480-[type: gettext/python] bin/cpu_topology
2481-[type: gettext/python] bin/create_connection
2482-bin/cycle_vts
2483-bin/disk_read_performance_test
2484-[type: gettext/python] bin/disk_smart
2485-bin/disk_stats_test
2486-bin/dns_server_test
2487-[type: gettext/python] bin/floppy_test
2488-[type: gettext/python] bin/frequency_governors_test
2489-[type: gettext/python] bin/fresh_rate_info
2490-[type: gettext/python] bin/gateway_ping_test
2491-bin/gcov_tarball
2492-[type: gettext/python] bin/gpu_test
2493-[type: gettext/python] bin/gputest_benchmark
2494-[type: gettext/python] bin/graphic_memory_info
2495-[type: gettext/python] bin/graphics_driver
2496-[type: gettext/python] bin/graphics_modes_info
2497-[type: gettext/python] bin/graphics_stress_test
2498-[type: gettext/python] bin/gst_pipeline_test
2499-bin/ipmi_test
2500-[type: gettext/python] bin/key_test
2501-[type: gettext/python] bin/keyboard_test
2502-bin/lamp_test
2503-bin/led_hdd_test
2504-[type: gettext/python] bin/lock_screen_watcher
2505-[type: gettext/python] bin/lsmod_info
2506-bin/max_diskspace_used
2507-[type: gettext/python] bin/memory_compare
2508-[type: gettext/python] bin/memory_info
2509-[type: gettext/python] bin/memory_test
2510-[type: gettext/python] bin/mm-test
2511-[type: gettext/python] bin/network
2512-[type: gettext/python] bin/network_check
2513-[type: gettext/python] bin/network_device_info
2514-[type: gettext/python] bin/network_info
2515-[type: gettext/python] bin/network_ntp_test
2516-bin/network_printer_test
2517-[type: gettext/python] bin/network_reconnect_resume_test
2518-[type: gettext/python] bin/network_restart
2519-bin/network_wait
2520-[type: gettext/python] bin/optical_detect
2521-[type: gettext/python] bin/optical_read_test
2522-bin/optical_write_test
2523-[type: gettext/python] bin/pm_log_check
2524-[type: gettext/python] bin/pm_test
2525-[type: gettext/python] bin/process_wait
2526-bin/pts_run
2527-[type: gettext/python] bin/pulse-active-port-change
2528-[type: gettext/python] bin/removable_storage_test
2529-[type: gettext/python] bin/removable_storage_watcher
2530-[type: gettext/python] bin/rendercheck_test
2531-[type: gettext/python] bin/resolution_test
2532-[type: gettext/python] bin/rotation_test
2533-bin/samba_test
2534-[type: gettext/python] bin/sleep_test
2535-[type: gettext/python] bin/sleep_test_log_check
2536-[type: gettext/python] bin/sleep_time_check
2537-bin/sources_test
2538-bin/spindown
2539-bin/tomcat_test
2540-[type: gettext/python] bin/touchpad_driver_info
2541-[type: gettext/python] bin/touchpad_test
2542-[type: gettext/python] bin/udisks2_monitor
2543-[type: gettext/python] bin/virtualization
2544-[type: gettext/python] bin/volume_test
2545-[type: gettext/python] bin/wifi_time2reconnect
2546-[type: gettext/python] bin/window_test
2547-bin/wireless_ext
2548-bin/xen_test
2549-[type: gettext/python] bin/xrandr_cycle
2550-[type: gettext/python] manage.py
2551-src/clocktest.c
2552-src/threaded_memtest.c
2553-data/resolution_test.qml
2554diff --git a/po/bg.po b/po/bg.po
2555deleted file mode 100644
2556index 79c2414..0000000
2557--- a/po/bg.po
2558+++ /dev/null
2559@@ -1,9237 +0,0 @@
2560-# Bulgarian translation for checkbox
2561-# Copyright (c) 2016 Rosetta Contributors and Canonical Ltd 2016
2562-# This file is distributed under the same license as the checkbox package.
2563-# FIRST AUTHOR <EMAIL@ADDRESS>, 2016.
2564-#
2565-msgid ""
2566-msgstr ""
2567-"Project-Id-Version: checkbox\n"
2568-"Report-Msgid-Bugs-To: \n"
2569-"POT-Creation-Date: 2017-09-19 10:49+0200\n"
2570-"PO-Revision-Date: 2016-02-15 01:31+0000\n"
2571-"Last-Translator: Georgi Manchev <Unknown>\n"
2572-"Language-Team: Bulgarian <bg@li.org>\n"
2573-"Language: bg\n"
2574-"MIME-Version: 1.0\n"
2575-"Content-Type: text/plain; charset=UTF-8\n"
2576-"Content-Transfer-Encoding: 8bit\n"
2577-"X-Launchpad-Export-Date: 2016-09-28 05:53+0000\n"
2578-"X-Generator: Launchpad (build 18204)\n"
2579-
2580-#. description
2581-#: ../units/audio/jobs.pxu:9 ../units/dock/jobs.pxu:216
2582-msgid "Test to detect audio devices"
2583-msgstr "Тест за откриване на аудио устройства"
2584-
2585-#. description
2586-#: ../units/audio/jobs.pxu:28
2587-msgid ""
2588-"PURPOSE:\n"
2589-" This test will check that internal speakers work correctly\n"
2590-"STEPS:\n"
2591-" 1. Make sure that no external speakers or headphones are connected\n"
2592-" When testing a desktop, you can skip this test if there is no\n"
2593-" internal speaker, we will test the external output later\n"
2594-" 2. Commence the test to play a brief tone on your audio device\n"
2595-"VERIFICATION:\n"
2596-" Did you hear a tone?"
2597-msgstr ""
2598-"ПРЕДНАЗНАЧЕНИЕ:\n"
2599-" Този тест ще провери дали вградените високоговорители работят коректно\n"
2600-"СТЪПКИ:\n"
2601-" 1. Убедете се, че няма включени външни високоговорители или слушалки\n"
2602-" Когато тествате десктоп компютър Вие можете да пропуснете този тест, "
2603-"ако не са\n"
2604-" налични вградени високоговорители, ние ще тестваме външния изход по-"
2605-"късно\n"
2606-" 2. Започнете теста за да възпроизведете кратък тон на Вашето аудио "
2607-"устройство\n"
2608-"ПРОВЕРКА:\n"
2609-" Чувате ли тон?"
2610-
2611-#. purpose
2612-#: ../units/audio/jobs.pxu:59
2613-msgid " HDMI audio interface verification"
2614-msgstr " Проверка на HDMI аудио интерфейса"
2615-
2616-#. steps
2617-#: ../units/audio/jobs.pxu:61
2618-msgid ""
2619-" 1. Plug an external HDMI device with sound (Use only one HDMI/DisplayPort/"
2620-"Thunderbolt interface at a time for this test)\n"
2621-" 2. Commence the test"
2622-msgstr ""
2623-" 1. Включете външно HDMI устройство със звук (Използвайте само един HDMI/"
2624-"DisplayPort/Thunderbolt интерфейс в един и същи момент за този тест)\n"
2625-" 2. Започнете теста"
2626-
2627-#. verification
2628-#: ../units/audio/jobs.pxu:64 ../units/dock/jobs.pxu:242
2629-msgid " Did you hear the sound from the HDMI device?"
2630-msgstr " Чувате ли звук от HDMI устройството?"
2631-
2632-#. purpose
2633-#: ../units/audio/jobs.pxu:87
2634-msgid " DisplayPort audio interface verification"
2635-msgstr ""
2636-
2637-#. steps
2638-#: ../units/audio/jobs.pxu:89
2639-msgid ""
2640-" 1. Plug an external DisplayPort device with sound (Use only one HDMI/"
2641-"DisplayPort/Thunderbolt interface at a time for this test)\n"
2642-" 2. Commence the test"
2643-msgstr ""
2644-" 1. Включете външно DisplayPort устройство със звук (Използвайте само "
2645-"един HDMI/DisplayPort/Thunderbolt интерфейс в един и същи момент за този "
2646-"тест)\n"
2647-" 2. Започнете теста"
2648-
2649-#. purpose
2650-#: ../units/audio/jobs.pxu:145
2651-msgid " Thunderbolt audio interface verification"
2652-msgstr ""
2653-
2654-#. steps
2655-#: ../units/audio/jobs.pxu:147
2656-msgid ""
2657-" 1. Plug an external Thunderbolt device with sound (Use only one HDMI/"
2658-"DisplayPort/Thunderbolt interface at a time for this test)\n"
2659-" 2. Commence the test"
2660-msgstr ""
2661-" 1. Включете външно Thunderbolt устройство със звук (Използвайте само "
2662-"един HDMI/DisplayPort/Thunderbolt интерфейс в един и същи момент за този "
2663-"тест)\n"
2664-" 2. Започнете теста"
2665-
2666-#. verification
2667-#: ../units/audio/jobs.pxu:150
2668-msgid " Did you hear the sound from the Thunderbolt device?"
2669-msgstr " Чувате ли звук от Thunderbolt устройството?"
2670-
2671-#. purpose
2672-#: ../units/audio/jobs.pxu:175
2673-#, fuzzy
2674-msgid " DisplayPort audio via USB Type-C port interface verification"
2675-msgstr " Проверка на HDMI аудио интерфейса"
2676-
2677-#. steps
2678-#: ../units/audio/jobs.pxu:177
2679-#, fuzzy
2680-msgid ""
2681-" 1. Plug an external DisplayPort device with sound on a USB Type-C port "
2682-"using a \"USB Typce-C to DisplayPort\" adapter (Use only one HDMI/"
2683-"DisplayPort/Thunderbolt interface at a time for this test)\n"
2684-" 2. Commence the test"
2685-msgstr ""
2686-" 1. Включете външно DisplayPort устройство със звук (Използвайте само "
2687-"един HDMI/DisplayPort/Thunderbolt интерфейс в един и същи момент за този "
2688-"тест)\n"
2689-" 2. Започнете теста"
2690-
2691-#. verification
2692-#: ../units/audio/jobs.pxu:180 ../units/dock/jobs.pxu:269
2693-msgid " Did you hear the sound from the DisplayPort device?"
2694-msgstr " Чувате ли звук от DisplayPort устройството?"
2695-
2696-#. description
2697-#: ../units/audio/jobs.pxu:200
2698-msgid ""
2699-"PURPOSE:\n"
2700-" This test will check that headphones connector works correctly\n"
2701-"STEPS:\n"
2702-" 1. Connect a pair of headphones to your audio device\n"
2703-" 2. Commence the test to play a sound to your audio device\n"
2704-"VERIFICATION:\n"
2705-" Did you hear a sound through the headphones and did the sound play "
2706-"without any distortion, clicks or other strange noises from your headphones?"
2707-msgstr ""
2708-"ПРЕДНАЗНАЧЕНИЕ:\n"
2709-" Този тест ще провери дали конектора за слушалките работи коректно\n"
2710-"СТЪПКИ:\n"
2711-" 1. Свържете чифт слушалки към Вашето аудио устройство\n"
2712-" 2. Започнете теста за да възпроизведете звук към Вашето аудио "
2713-"устройство\n"
2714-"ПРОВЕРКА:\n"
2715-" Чувате ли звук през слушалките и възпроизвежда ли се звука без "
2716-"изкривяване, пукания или някакви други шумове от Вашите слушалки?"
2717-
2718-#. description
2719-#: ../units/audio/jobs.pxu:226
2720-msgid ""
2721-"PURPOSE:\n"
2722-" This test will check that recording sound using the onboard microphone "
2723-"works correctly\n"
2724-"STEPS:\n"
2725-" 1. Disconnect any external microphones that you have plugged in\n"
2726-" 2. Click \"Test\", then speak into your internal microphone\n"
2727-" 3. After a few seconds, your speech will be played back to you.\n"
2728-"VERIFICATION:\n"
2729-" Did you hear your speech played back?"
2730-msgstr ""
2731-"ПРЕДНАЗНАЧЕНИЕ:\n"
2732-" Този тест ще провери дали записа на звук чрез вградения микрофон работи "
2733-"коректно\n"
2734-"СТЪПКИ:\n"
2735-" 1. Изключете всички външни микрофони които сте включили\n"
2736-" 2. Натиснете \"Проверка\", след което говорете във Вашия вграден "
2737-"микрофон\n"
2738-" 3. След няколко секунди ще чуете запис на Вашата реч\n"
2739-"ПРОВЕРКА:\n"
2740-" Чухте ли записа на Вашата реч?"
2741-
2742-#. description
2743-#: ../units/audio/jobs.pxu:253
2744-msgid ""
2745-"PURPOSE:\n"
2746-" This test will check that recording sound using an external microphone "
2747-"works correctly\n"
2748-"STEPS:\n"
2749-" 1. Connect a microphone to your microphone port\n"
2750-" 2. Click \"Test\", then speak into the external microphone\n"
2751-" 3. After a few seconds, your speech will be played back to you\n"
2752-"VERIFICATION:\n"
2753-" Did you hear your speech played back?"
2754-msgstr ""
2755-"ПРЕДНАЗНАЧЕНИЕ:\n"
2756-" Този тест ще провери дали записа на звук чрез външния микрофон работи "
2757-"коректно\n"
2758-"СТЪПКИ:\n"
2759-" 1. Свържете микрофон към жака за микрофон\n"
2760-" 2. Натиснете \"Проверка\", след което говорете на външния микрофон\n"
2761-" 3. След няколко секунди ще чуете запис на Вашата реч\n"
2762-"ПРОВЕРКА:\n"
2763-" Чухте ли записа на Вашата реч?"
2764-
2765-#. description
2766-#: ../units/audio/jobs.pxu:279
2767-msgid ""
2768-"PURPOSE:\n"
2769-" This test will check that a USB audio device works correctly\n"
2770-"STEPS:\n"
2771-" 1. Connect a USB audio device to your system\n"
2772-" 2. Click \"Test\", then speak into the microphone\n"
2773-" 3. After a few seconds, your speech will be played back to you\n"
2774-"VERIFICATION:\n"
2775-" Did you hear your speech played back through the USB headphones?"
2776-msgstr ""
2777-
2778-#. description
2779-#: ../units/audio/jobs.pxu:302
2780-msgid ""
2781-"Play back a sound on the default output and listen for it on the default "
2782-"input."
2783-msgstr ""
2784-
2785-#. description
2786-#: ../units/audio/jobs.pxu:311 ../units/dock/jobs.pxu:334
2787-msgid ""
2788-"Collect audio-related system information. This data can be used to simulate "
2789-"this computer's audio subsystem and perform more detailed tests under a "
2790-"controlled environment."
2791-msgstr ""
2792-
2793-#. description
2794-#: ../units/audio/jobs.pxu:322 ../units/dock/jobs.pxu:346
2795-msgid "Attaches the audio hardware data collection log to the results."
2796-msgstr ""
2797-
2798-#. description
2799-#: ../units/audio/jobs.pxu:330
2800-msgid ""
2801-"PURPOSE:\n"
2802-" Check that the various audio channels are working properly\n"
2803-"STEPS:\n"
2804-" 1. Commence the test\n"
2805-"VERIFICATION:\n"
2806-" You should clearly hear a voice from the different audio channels"
2807-msgstr ""
2808-
2809-#. description
2810-#: ../units/audio/jobs.pxu:358
2811-msgid ""
2812-"PURPOSE:\n"
2813-" Check that external line out connection works correctly\n"
2814-"STEPS:\n"
2815-" 1. Insert cable to speakers (with built-in amplifiers) on the line out "
2816-"port\n"
2817-" 2. Open system sound preferences, 'Output' tab, select 'Line-out' on "
2818-"the connector list. Commence the test\n"
2819-" 3. On the system sound preferences, select 'Internal Audio' on the "
2820-"device list and click 'Test Speakers' to check left and right channel\n"
2821-"VERIFICATION:\n"
2822-" 1. Do you hear a sound in the speakers? The internal speakers should "
2823-"*not* be muted automatically\n"
2824-" 2. Do you hear the sound coming out on the corresponding channel?"
2825-msgstr ""
2826-
2827-#. description
2828-#: ../units/audio/jobs.pxu:385
2829-msgid ""
2830-"PURPOSE:\n"
2831-" Check that external line in connection works correctly\n"
2832-"STEPS:\n"
2833-" 1. Use a cable to connect the line in port to an external line out "
2834-"source.\n"
2835-" 2. Open system sound preferences, 'Input' tab, select 'Line-in' on the "
2836-"connector list. Commence the test\n"
2837-" 3. After a few seconds, your recording will be played back to you.\n"
2838-"VERIFICATION:\n"
2839-" Did you hear your recording?"
2840-msgstr ""
2841-
2842-#. description
2843-#: ../units/audio/jobs.pxu:403
2844-msgid ""
2845-"PURPOSE:\n"
2846-" Check that system detects speakers or headphones being plugged in\n"
2847-"STEPS:\n"
2848-" 1. Prepare a pair of headphones or speakers with a standard 3.5mm jack\n"
2849-" 2. Locate the speaker / headphone jack on the device under test\n"
2850-" 3. Run the test (you have 30 seconds from now on)\n"
2851-" 4. Plug headphones or speakers into the appropriate jack\n"
2852-" 5. Unplug the device for subsequent tests.\n"
2853-"VERIFICATION:\n"
2854-" Verification is automatic, no action is required.\n"
2855-" The test times out after 30 seconds (and fails in that case)."
2856-msgstr ""
2857-
2858-#. description
2859-#: ../units/audio/jobs.pxu:424
2860-msgid ""
2861-"PURPOSE:\n"
2862-" Check that system detects a microphone being plugged in\n"
2863-"STEPS:\n"
2864-" 1. Prepare a microphone with a standard 3.5mm jack\n"
2865-" 2. Locate the microphone jack on the device under test.\n"
2866-" Keep in mind that it may be shared with the headphone jack.\n"
2867-" 3. Run the test (you have 30 seconds from now on)\n"
2868-" 4. Plug the microphone into the appropriate jack\n"
2869-" 5. Unplug the device for subsequent tests.\n"
2870-"VERIFICATION:\n"
2871-" Verification is automatic, no action is required.\n"
2872-" The test times out after 30 seconds (and fails in that case)."
2873-msgstr ""
2874-
2875-#. description
2876-#: ../units/audio/jobs.pxu:455
2877-msgid ""
2878-"PURPOSE:\n"
2879-" Check that balance control works correctly on internal speakers\n"
2880-"STEPS:\n"
2881-" 1. Check that moving the balance slider from left to right works "
2882-"smoothly\n"
2883-" 2. Commence the test to play an audio tone for 10 seconds.\n"
2884-" 3. Move the balance slider from left to right and back.\n"
2885-" 4. Check that actual speaker audio balance follows your setting.\n"
2886-"VERIFICATION:\n"
2887-" Does the slider move smoothly, as well as being followed by the setting "
2888-"by the actual audio output?"
2889-msgstr ""
2890-
2891-#. description
2892-#: ../units/audio/jobs.pxu:483
2893-msgid ""
2894-"PURPOSE:\n"
2895-" Check that balance control works correctly on external headphone\n"
2896-"STEPS:\n"
2897-" 1. Check that moving the balance slider from left to right works "
2898-"smoothly\n"
2899-" 2. Commence the test to play an audio tone for 10 seconds.\n"
2900-" 3. Move the balance slider from left to right and back.\n"
2901-" 4. Check that actual headphone audio balance follows your setting.\n"
2902-"VERIFICATION:\n"
2903-" Does the slider move smoothly, as well as being followed by the setting "
2904-"by the actual audio output?"
2905-msgstr ""
2906-
2907-#. description
2908-#: ../units/audio/jobs.pxu:503
2909-msgid "Test to detect audio devices after suspending 30 times."
2910-msgstr ""
2911-
2912-#. description
2913-#: ../units/audio/jobs.pxu:522
2914-msgid ""
2915-"PURPOSE:\n"
2916-" This test will check that internal speakers work correctly after "
2917-"suspending 30 times.\n"
2918-"STEPS:\n"
2919-" 1. Make sure that no external speakers or headphones are connected\n"
2920-" When testing a desktop, you can skip this test if there is no\n"
2921-" internal speaker, we will test the external output later\n"
2922-" 2. Commence the test to play a brief tone on your audio device\n"
2923-"VERIFICATION:\n"
2924-" Did you hear a tone?"
2925-msgstr ""
2926-
2927-#. description
2928-#: ../units/audio/jobs.pxu:547
2929-msgid ""
2930-"Play back a sound on the default output and listen for it on the default "
2931-"input, after suspending 30 times."
2932-msgstr ""
2933-
2934-#. description
2935-#: ../units/audio/jobs.pxu:560
2936-msgid ""
2937-"This test will verify that the volume levels are at an acceptable level on "
2938-"your local system. The test will validate that the volume is greater than "
2939-"or equal to minvol and less than or equal to maxvol for all sources (inputs) "
2940-"and sinks (outputs) recognized by PulseAudio. It will also validate that "
2941-"the active source and sink are not muted. You should not manually adjust "
2942-"the volume or mute before running this test."
2943-msgstr ""
2944-
2945-#. description
2946-#: ../units/audio/jobs.pxu:576
2947-msgid "Record mixer settings after suspending 30 times."
2948-msgstr ""
2949-
2950-#. summary
2951-#: ../units/benchmarks/jobs.pxu:10
2952-msgid "Raw read timing benchmark of {name} using hdparm"
2953-msgstr ""
2954-
2955-#. description
2956-#: ../units/benchmarks/jobs.pxu:11
2957-msgid "This test runs hdparm timing of device reads as a benchmark for {name}"
2958-msgstr ""
2959-
2960-#. summary
2961-#: ../units/benchmarks/jobs.pxu:22
2962-msgid "Cached read timing benchmark of {name} using hdparm"
2963-msgstr ""
2964-
2965-#. description
2966-#: ../units/benchmarks/jobs.pxu:23
2967-msgid "This test runs hdparm timing of cache reads as a benchmark for {name}"
2968-msgstr ""
2969-
2970-#. description
2971-#: ../units/benchmarks/jobs.pxu:32
2972-msgid "Run gtkperf to make sure that GTK based test cases work"
2973-msgstr ""
2974-
2975-#. description
2976-#: ../units/benchmarks/jobs.pxu:41
2977-msgid "Run Render-Bench XRender/Imlib2 benchmark"
2978-msgstr ""
2979-
2980-#. description
2981-#: ../units/benchmarks/jobs.pxu:49
2982-msgid "Run Qgears2 XRender Extension gearsfancy benchmark"
2983-msgstr ""
2984-
2985-#. description
2986-#: ../units/benchmarks/jobs.pxu:57
2987-msgid "Run Qgears2 XRender Extension image scaling benchmark"
2988-msgstr ""
2989-
2990-#. description
2991-#: ../units/benchmarks/jobs.pxu:65
2992-msgid "Run Qgears2 OpenGL gearsfancy benchmark"
2993-msgstr ""
2994-
2995-#. description
2996-#: ../units/benchmarks/jobs.pxu:73
2997-msgid "Run Qgears2 OpenGL image scaling benchmark"
2998-msgstr ""
2999-
3000-#. description
3001-#: ../units/benchmarks/jobs.pxu:83
3002-msgid "Run GLmark2-ES2 benchmark"
3003-msgstr ""
3004-
3005-#. description
3006-#: ../units/benchmarks/jobs.pxu:94
3007-msgid "Run GLmark2 benchmark"
3008-msgstr ""
3009-
3010-#. description
3011-#: ../units/benchmarks/jobs.pxu:101
3012-msgid "Run Unigine Santuary benchmark"
3013-msgstr ""
3014-
3015-#. description
3016-#: ../units/benchmarks/jobs.pxu:108
3017-msgid "Run Unigine Tropics benchmark"
3018-msgstr ""
3019-
3020-#. description
3021-#: ../units/benchmarks/jobs.pxu:115
3022-msgid "Run Unigine Heaven benchmark"
3023-msgstr ""
3024-
3025-#. description
3026-#: ../units/benchmarks/jobs.pxu:122
3027-msgid "Run Lightsmark benchmark"
3028-msgstr ""
3029-
3030-#. description
3031-#: ../units/benchmarks/jobs.pxu:130
3032-msgid "Run Cachebench Read benchmark"
3033-msgstr ""
3034-
3035-#. description
3036-#: ../units/benchmarks/jobs.pxu:138
3037-msgid "Run Cachebench Write benchmark"
3038-msgstr ""
3039-
3040-#. description
3041-#: ../units/benchmarks/jobs.pxu:146
3042-msgid "Run Cachebench Read / Modify / Write benchmark"
3043-msgstr ""
3044-
3045-#. description
3046-#: ../units/benchmarks/jobs.pxu:154
3047-msgid "Run Stream Copy benchmark"
3048-msgstr ""
3049-
3050-#. description
3051-#: ../units/benchmarks/jobs.pxu:162
3052-msgid "Run Stream Scale benchmark"
3053-msgstr ""
3054-
3055-#. description
3056-#: ../units/benchmarks/jobs.pxu:170
3057-msgid "Run Stream Add benchmark"
3058-msgstr ""
3059-
3060-#. description
3061-#: ../units/benchmarks/jobs.pxu:178
3062-msgid "Run Stream Triad benchmark"
3063-msgstr ""
3064-
3065-#. description
3066-#: ../units/benchmarks/jobs.pxu:186
3067-msgid "Run Network Loopback benchmark"
3068-msgstr ""
3069-
3070-#. description
3071-#: ../units/benchmarks/jobs.pxu:193
3072-msgid "Check the time needed to reconnect to a WIFI access point"
3073-msgstr ""
3074-
3075-#. description
3076-#: ../units/benchmarks/jobs.pxu:201
3077-msgid "Run Encode MP3 benchmark"
3078-msgstr ""
3079-
3080-#. description
3081-#: ../units/benchmarks/jobs.pxu:209
3082-msgid "Run x264 H.264/AVC encoder benchmark"
3083-msgstr ""
3084-
3085-#. description
3086-#: ../units/benchmarks/jobs.pxu:216
3087-msgid "Run GnuPG benchmark"
3088-msgstr ""
3089-
3090-#. description
3091-#: ../units/benchmarks/jobs.pxu:224
3092-msgid "Run Compress PBZIP2 benchmark"
3093-msgstr ""
3094-
3095-#. description
3096-#: ../units/benchmarks/jobs.pxu:232
3097-msgid "Run Compress 7ZIP benchmark"
3098-msgstr ""
3099-
3100-#. description
3101-#: ../units/benchmarks/jobs.pxu:240
3102-msgid "Run N-Queens benchmark"
3103-msgstr ""
3104-
3105-#. description
3106-#: ../units/benchmarks/jobs.pxu:248
3107-msgid "Run Himeno benchmark"
3108-msgstr ""
3109-
3110-#. description
3111-#: ../units/benchmarks/jobs.pxu:256
3112-msgid "CPU utilization on an idle system."
3113-msgstr ""
3114-
3115-#. description
3116-#: ../units/benchmarks/jobs.pxu:264
3117-msgid "Disk utilization on an idle system."
3118-msgstr ""
3119-
3120-#. description
3121-#: ../units/benchmarks/jobs.pxu:274
3122-msgid ""
3123-"Run a stress test based on FurMark (OpenGL 2.1 or 3.2) Fullscreen 1920x1080 "
3124-"no antialiasing"
3125-msgstr ""
3126-
3127-#. description
3128-#: ../units/benchmarks/jobs.pxu:286
3129-msgid ""
3130-"Run a stress test based on FurMark (OpenGL 2.1 or 3.2) Windowed 1024x640 no "
3131-"antialiasing"
3132-msgstr ""
3133-
3134-#. description
3135-#: ../units/benchmarks/jobs.pxu:298
3136-msgid ""
3137-"Run GiMark, a geometry instancing test (OpenGL 3.3) Fullscreen 1920x1080 no "
3138-"antialiasing"
3139-msgstr ""
3140-
3141-#. description
3142-#: ../units/benchmarks/jobs.pxu:310
3143-msgid ""
3144-"Run GiMark, a geometry instancing test (OpenGL 3.3) Windowed 1024x640 no "
3145-"antialiasing"
3146-msgstr ""
3147-
3148-#. description
3149-#: ../units/benchmarks/jobs.pxu:322
3150-msgid ""
3151-"Run a tessellation test based on TessMark (OpenGL 4.0) Fullscreen 1920x1080 "
3152-"no antialiasing"
3153-msgstr ""
3154-
3155-#. description
3156-#: ../units/benchmarks/jobs.pxu:333
3157-msgid ""
3158-"Run a tessellation test based on TessMark (OpenGL 4.0) Windowed 1024x640 no "
3159-"antialiasing"
3160-msgstr ""
3161-
3162-#. description
3163-#: ../units/bluetooth/jobs.pxu:23
3164-msgid "Automated test to store bluetooth device information in checkbox report"
3165-msgstr ""
3166-
3167-#. description
3168-#: ../units/bluetooth/jobs.pxu:31
3169-msgid ""
3170-"PURPOSE:\n"
3171-" This test will check that bluetooth connection works correctly\n"
3172-"STEPS:\n"
3173-" 1. Enable bluetooth on any mobile device (PDA, smartphone, etc.)\n"
3174-" 2. Click on the bluetooth icon in the menu bar\n"
3175-" 3. Select 'Setup new device'\n"
3176-" 4. Look for the device in the list and select it\n"
3177-" 5. In the device write the PIN code automatically chosen by the wizard\n"
3178-" 6. The device should pair with the computer\n"
3179-" 7. Right-click on the bluetooth icon and select browse files\n"
3180-" 8. Authorize the computer to browse the files in the device if needed\n"
3181-" 9. You should be able to browse the files\n"
3182-"VERIFICATION:\n"
3183-" Did all the steps work?"
3184-msgstr ""
3185-
3186-#. description
3187-#: ../units/bluetooth/jobs.pxu:52
3188-msgid ""
3189-"PURPOSE:\n"
3190-" This test will check that you can transfer information through a "
3191-"bluetooth connection\n"
3192-"STEPS:\n"
3193-" 1. Make sure that you're able to browse the files in your mobile device\n"
3194-" 2. Copy a file from the computer to the mobile device\n"
3195-" 3. Copy a file from the mobile device to the computer\n"
3196-"VERIFICATION:\n"
3197-" Were all files copied correctly?"
3198-msgstr ""
3199-
3200-#. description
3201-#: ../units/bluetooth/jobs.pxu:77
3202-msgid ""
3203-"PURPOSE:\n"
3204-" This test will check the High Fidelity Playback (A2DP) capability of "
3205-"your Bluetooth device,\n"
3206-" to see if you can hear audio from it.\n"
3207-"STEPS:\n"
3208-" 1. Enable and pair the bluetooth headset\n"
3209-" 2. Click \"Test\" to play a brief tone on your Bluetooth device, if it "
3210-"failed to set the Mode to A2DP,\n"
3211-" please select the device and change it manually in the \"Sound "
3212-"Settings\"\n"
3213-"VERIFICATION:\n"
3214-" Did you hear the tone?"
3215-msgstr ""
3216-
3217-#. description
3218-#: ../units/bluetooth/jobs.pxu:94
3219-msgid ""
3220-"PURPOSE:\n"
3221-" This test will check the Telephony Duplex capability of your bluetooth "
3222-"device,\n"
3223-" to see if you can record and hear audio from it simultaneously.\n"
3224-"STEPS:\n"
3225-" 1. Enable the bluetooth headset\n"
3226-" 2. Click on the bluetooth icon in the menu bar\n"
3227-" 3. Select \"Setup new device\"\n"
3228-" 4. Look for the device in the list and pair it\n"
3229-" 5. Click the sound icon\n"
3230-" 6. Click \"Sound Settings\"\n"
3231-" 7. Select device and ensure Mode is set to \"Telephony Duplex (HSP/"
3232-"HFP)\"\n"
3233-" 8. Click \"Test\" to record and play for five seconds in the bluetooth "
3234-"device\n"
3235-"VERIFICATION:\n"
3236-" Did you hear the sound you recorded in the bluetooth with a slight "
3237-"intended delay?"
3238-msgstr ""
3239-
3240-#. description
3241-#: ../units/bluetooth/jobs.pxu:116
3242-msgid ""
3243-"PURPOSE:\n"
3244-" This test will check that you can use a BlueTooth HID device\n"
3245-"STEPS:\n"
3246-" 1. Enable either a BT mouse or keyboard\n"
3247-" 2. Click on the bluetooth icon in the menu bar\n"
3248-" 3. Select 'Setup new device'\n"
3249-" 4. Look for the device in the list and select it\n"
3250-" 5. For mice, perform actions such as moving the pointer, right and left "
3251-"button clicks and double clicks\n"
3252-" 6. For keyboards, commence the test to launch a small tool. Enter some "
3253-"text into the tool and close it.\n"
3254-"VERIFICATION:\n"
3255-" Did the device work as expected?"
3256-msgstr ""
3257-
3258-#. description
3259-#: ../units/bluetooth/jobs.pxu:154
3260-msgid ""
3261-"This is an automated Bluetooth file transfer test. It sends a large file to "
3262-"the device specified by the BTDEVADDR environment variable, then retrieves "
3263-"it again using Bluetooth and verifies the checksum to ensure the transfer "
3264-"didn't corrupt the file."
3265-msgstr ""
3266-
3267-#. purpose
3268-#: ../units/bluetooth/jobs.pxu:170
3269-msgid ""
3270-" This test will check that you can use a HID Over GATT Profile (HOGP) "
3271-"with your Bluetooth Smart mouse."
3272-msgstr ""
3273-
3274-#. steps
3275-#: ../units/bluetooth/jobs.pxu:172
3276-msgid ""
3277-" 1. Enable a Bluetooth smart mouse, and put it into paring mode.\n"
3278-" 2. Commence the test to do the auto-pairing, you will be asked to select "
3279-"targeting mouse from the list.\n"
3280-" 3. After it's paired and connected, perform actions such as moving the "
3281-"pointer, right and left button clicks and double clicks."
3282-msgstr ""
3283-
3284-#. verification
3285-#: ../units/bluetooth/jobs.pxu:176
3286-msgid " Did the Bluetooth Smart mouse work as expected?"
3287-msgstr ""
3288-
3289-#. purpose
3290-#: ../units/bluetooth/jobs.pxu:189
3291-msgid ""
3292-" This test will check that you can use a HID Over GATT Profile (HOGP) "
3293-"with your Bluetooth Smart keyboard."
3294-msgstr ""
3295-
3296-#. steps
3297-#: ../units/bluetooth/jobs.pxu:191
3298-msgid ""
3299-" 1. Enable a Bluetooth Smart keyboard, and put it into paring mode.\n"
3300-" 2. Commence the test to do the auto-pairing, you will be asked to select "
3301-"targeting keyboard from the list.\n"
3302-" 3. After it's paired and connected, enter some text with your keyboard "
3303-"and close the small input test tool."
3304-msgstr ""
3305-
3306-#. verification
3307-#: ../units/bluetooth/jobs.pxu:195
3308-msgid " Did the Bluetooth Smart keyboard work as expected?"
3309-msgstr ""
3310-
3311-#. name
3312-#: ../units/bluetooth/manifest.pxu:3
3313-msgid "Bluetooth Smart (4.0 or later) Support"
3314-msgstr ""
3315-
3316-#. description
3317-#: ../units/camera/jobs.pxu:8
3318-msgid "This Automated test attempts to detect a camera."
3319-msgstr ""
3320-
3321-#. description
3322-#: ../units/camera/jobs.pxu:18
3323-msgid ""
3324-"PURPOSE:\n"
3325-" This test will check that the built-in camera works\n"
3326-"STEPS:\n"
3327-" 1. Click on Test to display a video capture from the camera for ten "
3328-"seconds.\n"
3329-"VERIFICATION:\n"
3330-" Did you see the video capture?"
3331-msgstr ""
3332-
3333-#. description
3334-#: ../units/camera/jobs.pxu:37
3335-msgid ""
3336-"PURPOSE:\n"
3337-" This test will check that the built-in camera works\n"
3338-"STEPS:\n"
3339-" 1. Click on Test to display a still image from the camera for ten "
3340-"seconds.\n"
3341-"VERIFICATION:\n"
3342-" Did you see the image?"
3343-msgstr ""
3344-
3345-#. description
3346-#: ../units/camera/jobs.pxu:54
3347-msgid ""
3348-" Takes multiple pictures based on the resolutions supported by the camera "
3349-"and\n"
3350-" validates their size and that they are of a valid format."
3351-msgstr ""
3352-
3353-#. description
3354-#: ../units/codecs/jobs.pxu:9
3355-msgid ""
3356-"PURPOSE:\n"
3357-" This test will verify your system's ability to play Ogg Vorbis audio "
3358-"files.\n"
3359-"STEPS:\n"
3360-" 1. Click Test to play an Ogg Vorbis file (.ogg)\n"
3361-" 2. Please close the player to proceed.\n"
3362-"VERIFICATION:\n"
3363-" Did the sample play correctly?"
3364-msgstr ""
3365-
3366-#. description
3367-#: ../units/codecs/jobs.pxu:26
3368-msgid ""
3369-"PURPOSE:\n"
3370-" This test will verify your system's ability to play Wave Audio files.\n"
3371-"STEPS:\n"
3372-" 1. Select Test to play a Wave Audio format file (.wav)\n"
3373-" 2. Please close the player to proceed.\n"
3374-"VERIFICATION:\n"
3375-" Did the sample play correctly?"
3376-msgstr ""
3377-
3378-#. summary
3379-#: ../units/cpu/jobs.pxu:14
3380-msgid "Test the CPU scaling capabilities"
3381-msgstr ""
3382-
3383-#. description
3384-#: ../units/cpu/jobs.pxu:16
3385-msgid ""
3386-"Use Firmware Test Suite (fwts cpufreq) to test the scaling capabilities of "
3387-"the CPU."
3388-msgstr ""
3389-
3390-#. summary
3391-#: ../units/cpu/jobs.pxu:26
3392-msgid "Attach CPU scaling capabilities log"
3393-msgstr ""
3394-
3395-#. description
3396-#: ../units/cpu/jobs.pxu:28
3397-msgid ""
3398-"Attaches the log generated by cpu/scaling_test to the results submission."
3399-msgstr ""
3400-
3401-#. summary
3402-#: ../units/cpu/jobs.pxu:45
3403-msgid "Test that the CPU can run at its max frequency"
3404-msgstr ""
3405-
3406-#. description
3407-#: ../units/cpu/jobs.pxu:47
3408-msgid ""
3409-"Use the Firmware Test Suite (fwts cpufreq) to ensure that the CPU can run at "
3410-"its maximum frequency."
3411-msgstr ""
3412-
3413-#. summary
3414-#: ../units/cpu/jobs.pxu:57
3415-msgid "Attach CPU max frequency log"
3416-msgstr ""
3417-
3418-#. description
3419-#: ../units/cpu/jobs.pxu:59
3420-msgid ""
3421-"Attaches the log generated by cpu/maxfreq_test to the results submission."
3422-msgstr ""
3423-
3424-#. summary
3425-#: ../units/cpu/jobs.pxu:67
3426-msgid "Tests the CPU for clock jitter"
3427-msgstr ""
3428-
3429-#. description
3430-#: ../units/cpu/jobs.pxu:69
3431-msgid "Runs a test for clock jitter on SMP machines."
3432-msgstr ""
3433-
3434-#. summary
3435-#: ../units/cpu/jobs.pxu:78
3436-msgid "Test offlining of each CPU core"
3437-msgstr ""
3438-
3439-#. description
3440-#: ../units/cpu/jobs.pxu:80
3441-msgid "Attempts to offline each core in a multicore system."
3442-msgstr ""
3443-
3444-#. summary
3445-#: ../units/cpu/jobs.pxu:89
3446-msgid "Check CPU topology for accuracy between proc and sysfs"
3447-msgstr ""
3448-
3449-#. description
3450-#: ../units/cpu/jobs.pxu:91
3451-msgid ""
3452-"Parses information about CPU topology provided by proc and sysfs and checks "
3453-"that they are consistent."
3454-msgstr ""
3455-
3456-#. description
3457-#: ../units/cpu/jobs.pxu:101
3458-msgid "This test checks that CPU frequency governors are obeyed when set."
3459-msgstr ""
3460-
3461-#. summary
3462-#: ../units/cpu/jobs.pxu:112
3463-msgid "Validate that the Vector Floating Point Unit is running on ARM device"
3464-msgstr ""
3465-
3466-#. description
3467-#: ../units/cpu/jobs.pxu:114
3468-msgid "Validate that the Vector Floating Point Unit is running on ARM device."
3469-msgstr ""
3470-
3471-#. summary
3472-#: ../units/cpu/jobs.pxu:123
3473-msgid "Run C-States tests"
3474-msgstr ""
3475-
3476-#. description
3477-#: ../units/cpu/jobs.pxu:125
3478-msgid ""
3479-"Uses the Firmware Test Suite (fwts) to test the power saving states of the "
3480-"CPU."
3481-msgstr ""
3482-
3483-#. summary
3484-#: ../units/cpu/jobs.pxu:140
3485-msgid "Attach C-States test log"
3486-msgstr ""
3487-
3488-#. description
3489-#: ../units/cpu/jobs.pxu:142
3490-msgid "Attaches the FWTS desktop diagnosis results log to the submission."
3491-msgstr ""
3492-
3493-#. summary
3494-#. description
3495-#: ../units/cpu/jobs.pxu:149 ../units/suspend/suspend.pxu:41
3496-msgid "Verify that all the CPUs are online before suspending"
3497-msgstr ""
3498-
3499-#. siblings
3500-#: ../units/cpu/jobs.pxu:151 ../units/memory/jobs.pxu:35
3501-msgid "["
3502-msgstr ""
3503-
3504-#. siblings
3505-#: ../units/cpu/jobs.pxu:151
3506-msgid ""
3507-" { \"id\": \"after-suspend-cpu/cpuinfo_after_suspend\",\n"
3508-" \"_summary\": \"Verify that all the CPUs are online after suspending"
3509-"\",\n"
3510-" \"command\": \"cpuinfo_resource | diff $PLAINBOX_SESSION_SHARE/"
3511-"cpuinfo_before_suspend -\",\n"
3512-" \"depends\": \"com.canonical.certification::suspend/"
3513-"suspend_advanced_auto\"}\n"
3514-"]"
3515-msgstr ""
3516-
3517-#. description
3518-#: ../units/cpu/jobs.pxu:164
3519-msgid "Identifies Purley Platform CPUs"
3520-msgstr ""
3521-
3522-#. summary
3523-#: ../units/disk/jobs.pxu:6
3524-msgid "Gathers information about each disk detected"
3525-msgstr ""
3526-
3527-#. description
3528-#: ../units/disk/jobs.pxu:7
3529-msgid ""
3530-"Uses lsblk to gather information about each disk detected on the system "
3531-"under test."
3532-msgstr ""
3533-
3534-#. summary
3535-#: ../units/disk/jobs.pxu:24
3536-msgid "Disk statistics for {product}"
3537-msgstr ""
3538-
3539-#. description
3540-#: ../units/disk/jobs.pxu:25
3541-msgid ""
3542-"This test checks disk stats, generates some activity and rechecks stats to "
3543-"verify they've changed. It also verifies that disks appear in the various "
3544-"files they're supposed to."
3545-msgstr ""
3546-
3547-#. description
3548-#: ../units/disk/jobs.pxu:25
3549-msgid "This test will inspect the following disk:"
3550-msgstr ""
3551-
3552-#. description
3553-#: ../units/disk/jobs.pxu:25
3554-msgid ""
3555-" product name: {product}\n"
3556-" sysfs path: {path}\n"
3557-" device node path: /dev/{name}"
3558-msgstr ""
3559-
3560-#. summary
3561-#: ../units/disk/jobs.pxu:46
3562-msgid "Test SMART capabilities for {product}"
3563-msgstr ""
3564-
3565-#. description
3566-#: ../units/disk/jobs.pxu:48
3567-msgid ""
3568-"This tests the SMART capabilities for {product} (Note that this test may not "
3569-"work against hardware RAID)"
3570-msgstr ""
3571-
3572-#. summary
3573-#: ../units/disk/jobs.pxu:61
3574-msgid "Disk performance test for {product}"
3575-msgstr ""
3576-
3577-#. description
3578-#: ../units/disk/jobs.pxu:62
3579-msgid "Verify that disk storage performs at or above baseline performance"
3580-msgstr ""
3581-
3582-#. summary
3583-#: ../units/disk/jobs.pxu:75
3584-msgid "Disk I/O stress test for {product}"
3585-msgstr ""
3586-
3587-#. description
3588-#: ../units/disk/jobs.pxu:76
3589-msgid "Take the path of the storage device and test is it a block device"
3590-msgstr ""
3591-
3592-#. description
3593-#: ../units/disk/jobs.pxu:91
3594-msgid "Disk stress_ng test for {product}"
3595-msgstr ""
3596-
3597-#. summary
3598-#: ../units/disk/jobs.pxu:105
3599-msgid "Check of CPU load imposed by {product}"
3600-msgstr ""
3601-
3602-#. description
3603-#: ../units/disk/jobs.pxu:106
3604-msgid "Check to ensure CPU load of {product} is not too high"
3605-msgstr ""
3606-
3607-#. description
3608-#: ../units/disk/jobs.pxu:118
3609-msgid ""
3610-"Some new hard drives include a feature that parks the drive heads after a "
3611-"short period of inactivity. This is a power-saving feature, but it can have "
3612-"a bad interaction with the operating system that results in the drive "
3613-"constantly parked then activated. This produces excess wear on the drive, "
3614-"potentially leading to early failures."
3615-msgstr ""
3616-
3617-#. description
3618-#: ../units/disk/jobs.pxu:131
3619-msgid ""
3620-"PURPOSE:\n"
3621-" This test checks that a systems drive protection mechanism works properly.\n"
3622-"STEPS:\n"
3623-" 1. Click on Test\n"
3624-" 2. Move the system under test around, ensuring it is raised and lowered at "
3625-"some point.\n"
3626-"VERIFICATION:\n"
3627-" The verification of this test is automated. Do not change the\n"
3628-" automatically selected result."
3629-msgstr ""
3630-
3631-#. summary
3632-#: ../units/disk/jobs.pxu:150
3633-msgid "Check support for Autonomous Power State Transition on {name}"
3634-msgstr ""
3635-
3636-#. name
3637-#: ../units/dock/category.pxu:3
3638-msgid "Docking station tests"
3639-msgstr ""
3640-
3641-#. name
3642-#: ../units/dock/category.pxu:7
3643-msgid "Docking station display tests"
3644-msgstr ""
3645-
3646-#. name
3647-#: ../units/dock/category.pxu:11
3648-msgid "Docking station audio tests"
3649-msgstr ""
3650-
3651-#. name
3652-#: ../units/dock/category.pxu:15
3653-msgid "Docking station network tests"
3654-msgstr ""
3655-
3656-#. name
3657-#: ../units/dock/category.pxu:19
3658-msgid "Docking station usb tests"
3659-msgstr ""
3660-
3661-#. name
3662-#: ../units/dock/category.pxu:23
3663-msgid "Docking station hotplug tests"
3664-msgstr ""
3665-
3666-#. name
3667-#: ../units/dock/category.pxu:27
3668-msgid "Docking station functional tests after suspend, undocked, resume."
3669-msgstr ""
3670-
3671-#. name
3672-#: ../units/dock/category.pxu:31
3673-msgid ""
3674-"Docking station functional tests after suspend, undocked, docked, resume."
3675-msgstr ""
3676-
3677-#. steps
3678-#: ../units/dock/jobs.pxu:8
3679-msgid " 1. Dock the device to the docking unit."
3680-msgstr ""
3681-
3682-#. verification
3683-#: ../units/dock/jobs.pxu:10
3684-msgid " Is the device working as expected after being docked?"
3685-msgstr ""
3686-
3687-#. summary
3688-#: ../units/dock/jobs.pxu:17
3689-msgid "Docking test (cold plug)"
3690-msgstr ""
3691-
3692-#. purpose
3693-#: ../units/dock/jobs.pxu:18
3694-msgid " To ensure docking station is plugged before system boot up."
3695-msgstr ""
3696-
3697-#. steps
3698-#: ../units/dock/jobs.pxu:20
3699-msgid ""
3700-" 1. shut down system.\n"
3701-" 2. plug in docking station.\n"
3702-" 3. boot up system."
3703-msgstr ""
3704-
3705-#. verification
3706-#: ../units/dock/jobs.pxu:24
3707-msgid " Did the system boot up with docking station plugged in?"
3708-msgstr ""
3709-
3710-#. purpose
3711-#: ../units/dock/jobs.pxu:33
3712-msgid " This test will test the power button on docking station"
3713-msgstr ""
3714-
3715-#. purpose
3716-#: ../units/dock/jobs.pxu:47
3717-msgid " This test will check the DisplayPort(s) on the dock."
3718-msgstr ""
3719-
3720-#. summary
3721-#: ../units/dock/jobs.pxu:60
3722-msgid "DVI port test on the dock"
3723-msgstr ""
3724-
3725-#. purpose
3726-#: ../units/dock/jobs.pxu:62
3727-msgid " This test will check the DVI port(s) on the dock."
3728-msgstr ""
3729-
3730-#. purpose
3731-#: ../units/dock/jobs.pxu:77
3732-msgid " This test will check the HDMI port(s) on the dock."
3733-msgstr ""
3734-
3735-#. summary
3736-#: ../units/dock/jobs.pxu:90
3737-msgid "VGA port test on the dock"
3738-msgstr ""
3739-
3740-#. purpose
3741-#: ../units/dock/jobs.pxu:92
3742-msgid " This test will check the VGA port(s) on the dock."
3743-msgstr ""
3744-
3745-#. summary
3746-#: ../units/dock/jobs.pxu:106
3747-msgid "Display connected via DisplayPort using an USB Type-C port"
3748-msgstr ""
3749-
3750-#. purpose
3751-#: ../units/dock/jobs.pxu:107
3752-msgid ""
3753-" This test will check the connection of a screen using a \"USB Type-C to "
3754-"DisplayPort\" adapter."
3755-msgstr ""
3756-
3757-#. summary
3758-#: ../units/dock/jobs.pxu:124
3759-msgid "Display connected via HDMI using an USB Type-C port"
3760-msgstr ""
3761-
3762-#. purpose
3763-#: ../units/dock/jobs.pxu:125
3764-msgid ""
3765-" This test will check the connection of a screen using a \"USB Type-C to "
3766-"HDMI\" adapter."
3767-msgstr ""
3768-
3769-#. summary
3770-#: ../units/dock/jobs.pxu:142
3771-msgid "Display connected via VGA using an USB Type-C port"
3772-msgstr ""
3773-
3774-#. purpose
3775-#: ../units/dock/jobs.pxu:143
3776-msgid ""
3777-" This test will check the connection of a screen using a \"USB Type-C to "
3778-"VGA\" adapter."
3779-msgstr ""
3780-
3781-#. summary
3782-#: ../units/dock/jobs.pxu:159
3783-msgid "Dual monitors test while docked"
3784-msgstr ""
3785-
3786-#. purpose
3787-#: ../units/dock/jobs.pxu:161
3788-msgid ""
3789-" This test verifies that dual-monitor output works using the dock. You "
3790-"will need two external monitors to perform this test."
3791-msgstr ""
3792-
3793-#. steps
3794-#: ../units/dock/jobs.pxu:163
3795-msgid ""
3796-" Skip this test if your video card or the dock do not support multiple "
3797-"monitors. Use 4K monitors to run this test if the video card and dock both "
3798-"support.\n"
3799-" 1. If your dock provides more than one monitor outputs, connect two "
3800-"monitors\n"
3801-" 2. Open the \"Displays\" tool (open the dash and search for \"Displays"
3802-"\")\n"
3803-" 3. Configure your output to provide one desktop across all the monitors\n"
3804-" 4. Open any application and drag its window from one monitor to the next."
3805-msgstr ""
3806-
3807-#. summary
3808-#: ../units/dock/jobs.pxu:176
3809-msgid "Tripple monitors test while docked"
3810-msgstr ""
3811-
3812-#. purpose
3813-#: ../units/dock/jobs.pxu:178
3814-msgid ""
3815-" This test verifies that tripple-monitor output works using the dock. You "
3816-"will need three external monitors to perform this test."
3817-msgstr ""
3818-
3819-#. steps
3820-#: ../units/dock/jobs.pxu:180
3821-msgid ""
3822-" Skip this test if your video card or the dock do not support multiple "
3823-"monitors.\n"
3824-" 1. If your dock provides more than one monitor outputs, connect three "
3825-"monitors\n"
3826-" 2. Open the \"Displays\" tool (open the dash and search for \"Displays"
3827-"\")\n"
3828-" 3. Turn off internal monitor\n"
3829-" 4. Configure your output to provide one desktop across all the monitors\n"
3830-" 5. Open any application and drag its window from one monitor to the next."
3831-msgstr ""
3832-
3833-#. verification
3834-#: ../units/dock/jobs.pxu:187
3835-msgid ""
3836-" Was the stretched desktop displayed correctly across all the screens?"
3837-msgstr ""
3838-
3839-#. summary
3840-#: ../units/dock/jobs.pxu:194
3841-msgid "Video Out hotkey test"
3842-msgstr ""
3843-
3844-#. purpose
3845-#: ../units/dock/jobs.pxu:196
3846-msgid " Validate that the External Video hotkey is working as expected"
3847-msgstr ""
3848-
3849-#. steps
3850-#: ../units/dock/jobs.pxu:198
3851-msgid ""
3852-" 1. Plug in an external monitor\n"
3853-" 2. Press the display hotkey to change the monitors configuration"
3854-msgstr ""
3855-
3856-#. verification
3857-#: ../units/dock/jobs.pxu:201
3858-msgid ""
3859-" Check that the video signal can be mirrored, extended, displayed on "
3860-"external or onboard only."
3861-msgstr ""
3862-
3863-#. summary
3864-#: ../units/dock/jobs.pxu:210
3865-msgid "List audio devices"
3866-msgstr ""
3867-
3868-#. summary
3869-#: ../units/dock/jobs.pxu:226
3870-msgid "HDMI audio test"
3871-msgstr ""
3872-
3873-#. purpose
3874-#: ../units/dock/jobs.pxu:236
3875-msgid " Dock HDMI audio interface verification"
3876-msgstr ""
3877-
3878-#. steps
3879-#: ../units/dock/jobs.pxu:238
3880-msgid ""
3881-" 1. Plug an external HDMI device with sound to the dock (use only one HDMI/"
3882-"DisplayPort/Thunderbolt interface at a time for this test)\n"
3883-" 2. Go to the Sound settings and make sure the correct Output is selected\n"
3884-" 3. Click the Test button"
3885-msgstr ""
3886-
3887-#. summary
3888-#: ../units/dock/jobs.pxu:253
3889-msgid "DisplayPort audio test"
3890-msgstr ""
3891-
3892-#. purpose
3893-#: ../units/dock/jobs.pxu:263
3894-msgid " Dock DisplayPort audio interface verification"
3895-msgstr ""
3896-
3897-#. steps
3898-#: ../units/dock/jobs.pxu:265
3899-msgid ""
3900-" 1. Plug an external DisplayPort device with sound to the dock (use only "
3901-"one HDMI/DisplayPort/Thunderbolt interface at a time for this test)\n"
3902-" 2. Go to the Sound settings and make sure the correct Output is selected\n"
3903-" 3. Click the Test button"
3904-msgstr ""
3905-
3906-#. summary
3907-#: ../units/dock/jobs.pxu:276
3908-msgid "Headphones output test"
3909-msgstr ""
3910-
3911-#. purpose
3912-#: ../units/dock/jobs.pxu:290
3913-msgid ""
3914-" This test will check that headphones connector works correctly.\n"
3915-" (Skip this test if there is no headphone connector on the dock)"
3916-msgstr ""
3917-
3918-#. steps
3919-#: ../units/dock/jobs.pxu:293
3920-msgid ""
3921-" 1. Connect a pair of headphones to the dock\n"
3922-" 2. Click the Test button to play a sound to your audio device"
3923-msgstr ""
3924-
3925-#. verification
3926-#: ../units/dock/jobs.pxu:296
3927-msgid ""
3928-" Did you hear a sound through the headphones and did the sound play "
3929-"without any distortion, clicks or other strange noises from your headphones?"
3930-msgstr ""
3931-
3932-#. summary
3933-#: ../units/dock/jobs.pxu:303
3934-msgid "External microphone plugged to the dock to record sound test"
3935-msgstr ""
3936-
3937-#. purpose
3938-#: ../units/dock/jobs.pxu:317
3939-msgid ""
3940-" This test will check that recording sound using an external microphone "
3941-"works correctly\n"
3942-" (Skip this test if the dock does not have a microphone connector)"
3943-msgstr ""
3944-
3945-#. steps
3946-#: ../units/dock/jobs.pxu:320
3947-msgid ""
3948-" 1. Connect a microphone to the dock's microphone port\n"
3949-" 2. Click \"Test\", then speak into the external microphone\n"
3950-" 3. After a few seconds, your speech will be played back to you"
3951-msgstr ""
3952-
3953-#. verification
3954-#: ../units/dock/jobs.pxu:324
3955-msgid " Did you hear your speech played back?"
3956-msgstr ""
3957-
3958-#. summary
3959-#: ../units/dock/jobs.pxu:331
3960-msgid "Collect audio-related system information"
3961-msgstr ""
3962-
3963-#. summary
3964-#: ../units/dock/jobs.pxu:344
3965-msgid "Attach audio hardware data log to results"
3966-msgstr ""
3967-
3968-#. summary
3969-#: ../units/dock/jobs.pxu:354
3970-msgid "Line-out connection test"
3971-msgstr ""
3972-
3973-#. purpose
3974-#: ../units/dock/jobs.pxu:355
3975-msgid ""
3976-" Check that external line-out connection works correctly\n"
3977-" (Skip this test if dock does not have a line out connector)"
3978-msgstr ""
3979-
3980-#. steps
3981-#: ../units/dock/jobs.pxu:358
3982-msgid ""
3983-" 1. Insert cable to speakers (with built-in amplifiers) on the dock's "
3984-"line-out port\n"
3985-" 2. Open system sound preferences, 'Output' tab, select 'Line-out' on the "
3986-"connector list. Click the Test button\n"
3987-" 3. On the system sound preferences, select 'Internal Audio' on the "
3988-"device list and click 'Test Speakers' to check left and right channel"
3989-msgstr ""
3990-
3991-#. verification
3992-#: ../units/dock/jobs.pxu:362
3993-msgid ""
3994-" 1. Do you hear a sound in the speakers? The internal speakers should "
3995-"*not* be muted automatically\n"
3996-" 2. Do you hear the sound coming out on the corresponding channel?"
3997-msgstr ""
3998-
3999-#. summary
4000-#: ../units/dock/jobs.pxu:371
4001-msgid "Line-in connection test"
4002-msgstr ""
4003-
4004-#. purpose
4005-#: ../units/dock/jobs.pxu:384
4006-msgid ""
4007-" Check that external line-in connection works correctly\n"
4008-" (Skip this test if the dock does not have a line in connector)"
4009-msgstr ""
4010-
4011-#. steps
4012-#: ../units/dock/jobs.pxu:387
4013-msgid ""
4014-" 1. Use a cable to connect the dock's line-in port to an external line-out "
4015-"source.\n"
4016-" 2. Open system sound preferences, 'Input' tab, select 'Line-in' on the "
4017-"connector list. Click the Test button\n"
4018-" 3. After a few seconds, your recording will be played back to you."
4019-msgstr ""
4020-
4021-#. verification
4022-#: ../units/dock/jobs.pxu:391
4023-msgid " Did you hear your recording?"
4024-msgstr ""
4025-
4026-#. summary
4027-#: ../units/dock/jobs.pxu:399
4028-msgid "Headphones recognized when plugged to the dock test"
4029-msgstr ""
4030-
4031-#. purpose
4032-#: ../units/dock/jobs.pxu:404
4033-msgid ""
4034-" Check that system detects speakers or headphones being plugged in\n"
4035-" (Skip this test if the dock does not have headphones connector)"
4036-msgstr ""
4037-
4038-#. steps
4039-#: ../units/dock/jobs.pxu:407
4040-msgid ""
4041-" 1. Prepare a pair of headphones or speakers with a standard 3.5mm jack\n"
4042-" 2. Locate the speaker / headphone jack on the dock under test\n"
4043-" 3. Run the test (you have 30 seconds from now on)\n"
4044-" 4. Plug headphones or speakers into the appropriate jack\n"
4045-" 5. Unplug the device for subsequent tests."
4046-msgstr ""
4047-
4048-#. summary
4049-#: ../units/dock/jobs.pxu:422
4050-msgid "Microphone recognized when plugged to the dock test"
4051-msgstr ""
4052-
4053-#. purpose
4054-#: ../units/dock/jobs.pxu:427
4055-msgid ""
4056-" Check that system detects a microphone being plugged in\n"
4057-" (Skip this test if the dock does not have a microphone connector)"
4058-msgstr ""
4059-
4060-#. steps
4061-#: ../units/dock/jobs.pxu:430
4062-msgid ""
4063-" 1. Prepare a microphone with a standard 3.5mm jack\n"
4064-" 2. Locate the microphone jack on the dock under test.\n"
4065-" Keep in mind that it may be shared with the headphone jack.\n"
4066-" 3. Run the test (you have 30 seconds from now on)\n"
4067-" 4. Plug the microphone into the appropriate jack\n"
4068-" 5. Unplug the device for subsequent tests."
4069-msgstr ""
4070-
4071-#. verification
4072-#: ../units/dock/jobs.pxu:437
4073-msgid ""
4074-" Verification is automatic, no action is required.\n"
4075-" The test times out after 30 seconds (and fails in that case)."
4076-msgstr ""
4077-
4078-#. summary
4079-#: ../units/dock/jobs.pxu:449
4080-msgid "Ping test using dock's Ethernet connectivity"
4081-msgstr ""
4082-
4083-#. purpose
4084-#: ../units/dock/jobs.pxu:450
4085-msgid " Tests whether the system has a working Internet connection."
4086-msgstr ""
4087-
4088-#. verification
4089-#: ../units/dock/jobs.pxu:456
4090-msgid " Was the test able to ping the network using the Ethernet connection?"
4091-msgstr ""
4092-
4093-#. summary
4094-#: ../units/dock/jobs.pxu:467
4095-msgid "NTP sync test using dock's Ethernet connectivity"
4096-msgstr ""
4097-
4098-#. purpose
4099-#: ../units/dock/jobs.pxu:468
4100-msgid " Test to see if we can sync local clock to an NTP server"
4101-msgstr ""
4102-
4103-#. steps
4104-#: ../units/dock/jobs.pxu:470
4105-msgid ""
4106-" 1. Make sure the dock is connected to network using an Ethernet cable\n"
4107-" 2. Make sure the laptop itself is not connected to any Ethernet cable\n"
4108-" 3. Launch the test"
4109-msgstr ""
4110-
4111-#. verification
4112-#: ../units/dock/jobs.pxu:474
4113-msgid ""
4114-" Was the test able to synchronize system time using the Ethernet "
4115-"connection?"
4116-msgstr ""
4117-
4118-#. summary
4119-#: ../units/dock/jobs.pxu:482
4120-msgid "MAC address pass through function test"
4121-msgstr ""
4122-
4123-#. purpose
4124-#: ../units/dock/jobs.pxu:483
4125-msgid ""
4126-" Test MAC address pass through function with docking station (Dell Dock "
4127-"specific function, TB15, WD15)"
4128-msgstr ""
4129-
4130-#. steps
4131-#: ../units/dock/jobs.pxu:485
4132-msgid ""
4133-" Skip this test if your docking station does not support MAC address pass "
4134-"through.\n"
4135-" 1. Make sure the dock is connected to network using an Ethernet cable\n"
4136-" 2. Run 'ifconfig' to get system specific MAC address and IP\n"
4137-" 3. Ping the IP address from another system\n"
4138-" 4. Run 'arp -a IP' from another system to get the MAC address of the test "
4139-"unit through dock"
4140-msgstr ""
4141-
4142-#. verification
4143-#: ../units/dock/jobs.pxu:491
4144-msgid " Is the MAC address got from arp matching with specific MAC address?"
4145-msgstr ""
4146-
4147-#. summary
4148-#: ../units/dock/jobs.pxu:500
4149-msgid "USB HID device test"
4150-msgstr ""
4151-
4152-#. summary
4153-#: ../units/dock/jobs.pxu:515
4154-msgid "USB drive insertion test"
4155-msgstr ""
4156-
4157-#. purpose
4158-#: ../units/dock/jobs.pxu:517
4159-msgid ""
4160-" This test will check that the system correctly detects the insertion of\n"
4161-" a USB storage device plugged on the dock"
4162-msgstr ""
4163-
4164-#. purpose
4165-#: ../units/dock/jobs.pxu:537
4166-msgid ""
4167-" This test will check that the system correctly detects the insertion of\n"
4168-" a USB 3.0 storage device"
4169-msgstr ""
4170-
4171-#. summary
4172-#: ../units/dock/jobs.pxu:555
4173-msgid "USB drive removal test"
4174-msgstr ""
4175-
4176-#. purpose
4177-#: ../units/dock/jobs.pxu:557
4178-msgid ""
4179-" This test will check that the system correctly detects the removal of\n"
4180-" a USB storage device"
4181-msgstr ""
4182-
4183-#. purpose
4184-#: ../units/dock/jobs.pxu:574
4185-msgid ""
4186-" This test will check that the system correctly detects the removal of\n"
4187-" a USB 3.0 storage device"
4188-msgstr ""
4189-
4190-#. summary
4191-#: ../units/dock/jobs.pxu:590
4192-msgid "USB drive storage test"
4193-msgstr ""
4194-
4195-#. description
4196-#: ../units/dock/jobs.pxu:592
4197-msgid ""
4198-"This test is automated and executes after the dock/usb_insert test is run."
4199-msgstr ""
4200-
4201-#. purpose
4202-#: ../units/dock/jobs.pxu:617
4203-msgid ""
4204-" This test will check that the system correctly detects the insertion of\n"
4205-" a USB 3 storage device in a USB Type-C connector on the dock using a\n"
4206-" \"Type-C to Type-A\" adapter"
4207-msgstr ""
4208-
4209-#. steps
4210-#: ../units/dock/jobs.pxu:621
4211-msgid ""
4212-" 1. Click \"Test\" and insert a USB 3 storage device in a USB Type-C "
4213-"port\n"
4214-" on the dock using a \"USB Type-C to Type-A\" adapter.\n"
4215-" (Note: this test will time-out after 20 seconds.)\n"
4216-" 2. Do not unplug the device after the test."
4217-msgstr ""
4218-
4219-#. purpose
4220-#: ../units/dock/jobs.pxu:639
4221-msgid ""
4222-" This test will check that the system correctly detects the insertion of\n"
4223-" a USB 3 storage device in a USB Type-C connector on the dock"
4224-msgstr ""
4225-
4226-#. purpose
4227-#: ../units/dock/jobs.pxu:661 ../units/usb/usb-c.pxu:69
4228-msgid ""
4229-" This test will check that the system correctly detects the removal of\n"
4230-" a USB 3 storage device connected to a USB Type-C port using a \"USB Type-"
4231-"C\n"
4232-" to Type-A\" adapter."
4233-msgstr ""
4234-
4235-#. purpose
4236-#: ../units/dock/jobs.pxu:682 ../units/usb/usb-c.pxu:165
4237-msgid ""
4238-" This test will check that the system correctly detects the removal of\n"
4239-" a USB 3 storage device connected to a USB Type-C port."
4240-msgstr ""
4241-
4242-#. purpose
4243-#: ../units/dock/jobs.pxu:732
4244-msgid ""
4245-" This test will check that the system correctly detects the insertion of\n"
4246-" a USB 3 storage device in a USB Type-C connector on the dock using a\n"
4247-" \"Type-C to Type-A\" adapter after suspend"
4248-msgstr ""
4249-
4250-#. steps
4251-#: ../units/dock/jobs.pxu:736
4252-msgid ""
4253-" 1. Click \"Test\" and insert a USB 3 storage device in a USB Type-C port "
4254-"on\n"
4255-" the dock using a \"USB Type-C to Type-A\" adapter.\n"
4256-" (Note: this test will time-out after 20 seconds.)\n"
4257-" 2. Do not unplug the device after the test."
4258-msgstr ""
4259-
4260-#. purpose
4261-#: ../units/dock/jobs.pxu:755
4262-msgid ""
4263-" This test will check that the system correctly detects the insertion of\n"
4264-" a USB 3 storage device in a USB Type-C connector on the dock after "
4265-"suspend"
4266-msgstr ""
4267-
4268-#. steps
4269-#: ../units/dock/jobs.pxu:758
4270-msgid ""
4271-" 1. Click \"Test\" and insert a USB 3 storage device in a USB Type-C "
4272-"port\n"
4273-" on the dock.\n"
4274-" (Note: this test will time-out after 20 seconds.)\n"
4275-" 2. Do not unplug the device after the test."
4276-msgstr ""
4277-
4278-#. purpose
4279-#: ../units/dock/jobs.pxu:777
4280-msgid ""
4281-" This test will check that the system correctly detects the removal of\n"
4282-" a USB 3 storage device connected to a USB Type-C port using a \"USB Type-"
4283-"C\n"
4284-" to Type-A\" adapter after suspend."
4285-msgstr ""
4286-
4287-#. purpose
4288-#: ../units/dock/jobs.pxu:798
4289-msgid ""
4290-" This test will check that the system correctly detects the removal of\n"
4291-" a USB 3 storage device connected to a USB Type-C port after suspend."
4292-msgstr ""
4293-
4294-#. steps
4295-#: ../units/dock/jobs.pxu:801
4296-msgid ""
4297-" 1. Click \"Test\" and remove the USB 3 device.\n"
4298-" (Note: this test will time-out after 20 seconds.)"
4299-msgstr ""
4300-
4301-#. verification
4302-#: ../units/dock/jobs.pxu:804 ../units/usb/usb-c.pxu:171
4303-msgid ""
4304-" The verification of this test is automated. Do not change the\n"
4305-" automatically selected result."
4306-msgstr ""
4307-
4308-#. description
4309-#: ../units/dock/jobs.pxu:819 ../units/usb/usb-c.pxu:49
4310-msgid ""
4311-"This test is automated and executes after the usb-c/c-to-a-adapter/insert "
4312-"test is run."
4313-msgstr ""
4314-
4315-#. description
4316-#: ../units/dock/jobs.pxu:834 ../units/usb/usb-c.pxu:144
4317-msgid "This test is automated and executes after the usb-c/insert test is run."
4318-msgstr ""
4319-
4320-#. summary
4321-#: ../units/dock/jobs.pxu:842
4322-msgid "Battery charging when docked test"
4323-msgstr ""
4324-
4325-#. description
4326-#: ../units/dock/jobs.pxu:848
4327-msgid ""
4328-"This test will make sure the laptop is being charged while connected to the "
4329-"dock."
4330-msgstr ""
4331-
4332-#. purpose
4333-#: ../units/dock/jobs.pxu:858
4334-msgid " This test will check the device can be used after docking."
4335-msgstr ""
4336-
4337-#. summary
4338-#: ../units/dock/jobs.pxu:966
4339-msgid "Network status before suspend"
4340-msgstr ""
4341-
4342-#. description
4343-#: ../units/dock/jobs.pxu:967 ../units/suspend/suspend.pxu:6
4344-msgid "Record the current network before suspending."
4345-msgstr ""
4346-
4347-#. summary
4348-#: ../units/dock/jobs.pxu:974
4349-msgid "Audio status before suspend"
4350-msgstr ""
4351-
4352-#. description
4353-#: ../units/dock/jobs.pxu:978 ../units/suspend/suspend.pxu:34
4354-msgid "Record mixer settings before suspending."
4355-msgstr ""
4356-
4357-#. summary
4358-#: ../units/dock/jobs.pxu:989
4359-msgid "Network gateway ping after suspend"
4360-msgstr ""
4361-
4362-#. description
4363-#: ../units/dock/jobs.pxu:990 ../units/networking/jobs.pxu:7
4364-msgid "Tests whether the system has a working Internet connection."
4365-msgstr ""
4366-
4367-#. summary
4368-#: ../units/dock/jobs.pxu:997
4369-msgid "USB drive insertion after resuming"
4370-msgstr ""
4371-
4372-#. purpose
4373-#: ../units/dock/jobs.pxu:999
4374-msgid ""
4375-" This test will check that the system correctly detects the insertion of\n"
4376-" a USB storage device plugged on the dock after suspend"
4377-msgstr ""
4378-
4379-#. steps
4380-#: ../units/dock/jobs.pxu:1002
4381-msgid ""
4382-" 1. Click \"Test\" and insert a USB storage device, preferably a HDD,\n"
4383-" in one of the dock's port.\n"
4384-" Although a USB pen drive may be used it might cause performance\n"
4385-" related tests to fail. (Note: this test will time-out after 20\n"
4386-" seconds.)\n"
4387-" 2. Do not unplug the device after the test."
4388-msgstr ""
4389-
4390-#. purpose
4391-#: ../units/dock/jobs.pxu:1019
4392-msgid ""
4393-" This test will test the power button on docking station after suspend"
4394-msgstr ""
4395-
4396-#. steps
4397-#: ../units/dock/jobs.pxu:1021
4398-msgid ""
4399-" Skip this test if your docking station has no power button.\n"
4400-" 1. press the power button on docking station."
4401-msgstr ""
4402-
4403-#. verification
4404-#: ../units/dock/jobs.pxu:1024
4405-msgid " Did the power management prompt pop up?"
4406-msgstr ""
4407-
4408-#. summary
4409-#: ../units/dock/jobs.pxu:1032
4410-msgid "USB3 drive insertion after resuming"
4411-msgstr ""
4412-
4413-#. purpose
4414-#: ../units/dock/jobs.pxu:1034
4415-msgid ""
4416-" This test will check that the system correctly detects the insertion of\n"
4417-" a USB 3.0 storage device after suspend"
4418-msgstr ""
4419-
4420-#. summary
4421-#: ../units/dock/jobs.pxu:1052
4422-msgid "USB drive removal after resuming"
4423-msgstr ""
4424-
4425-#. purpose
4426-#: ../units/dock/jobs.pxu:1054
4427-msgid ""
4428-" This test will check that the system correctly detects the removal of\n"
4429-" a USB storage device after suspend"
4430-msgstr ""
4431-
4432-#. steps
4433-#: ../units/dock/jobs.pxu:1057
4434-msgid ""
4435-" 1. Click \"Test\" and remove the USB device from the dock.\n"
4436-" (Note: this test will time-out after 20 seconds.)"
4437-msgstr ""
4438-
4439-#. summary
4440-#: ../units/dock/jobs.pxu:1069
4441-msgid "USB3 drive removal after resuming"
4442-msgstr ""
4443-
4444-#. purpose
4445-#: ../units/dock/jobs.pxu:1071
4446-msgid ""
4447-" This test will check that the system correctly detects the removal of\n"
4448-" a USB 3.0 storage device after suspend"
4449-msgstr ""
4450-
4451-#. summary
4452-#: ../units/dock/jobs.pxu:1087
4453-msgid "USB drive storage test after resuming"
4454-msgstr ""
4455-
4456-#. description
4457-#: ../units/dock/jobs.pxu:1089
4458-msgid ""
4459-"This test is automated and executes after the dock/usb-insert test is run."
4460-msgstr ""
4461-
4462-#. summary
4463-#: ../units/dock/jobs.pxu:1098
4464-msgid "USB3 drive storage test after resuming"
4465-msgstr ""
4466-
4467-#. description
4468-#: ../units/dock/jobs.pxu:1100
4469-msgid ""
4470-"This test is automated and executes after the dock/usb3-insert test is run."
4471-msgstr ""
4472-
4473-#. summary
4474-#: ../units/dock/jobs.pxu:1108
4475-msgid "USB HID device test after resuming"
4476-msgstr ""
4477-
4478-#. purpose
4479-#: ../units/dock/jobs.pxu:1110
4480-msgid " This test will check that you can use a USB HID device"
4481-msgstr ""
4482-
4483-#. steps
4484-#: ../units/dock/jobs.pxu:1112
4485-msgid ""
4486-" 1. Enable either a USB mouse or keyboard\n"
4487-" 2. For mice, perform actions such as moving the pointer, right and left "
4488-"button clicks and double clicks\n"
4489-" 3. For keyboards, click the Test button to lauch a small tool. Type some "
4490-"text and close the tool."
4491-msgstr ""
4492-
4493-#. verification
4494-#: ../units/dock/jobs.pxu:1116
4495-msgid " Did the device work as expected?"
4496-msgstr ""
4497-
4498-#. summary
4499-#: ../units/dock/jobs.pxu:1123
4500-msgid "DisplayPort test on the dock after resuming"
4501-msgstr ""
4502-
4503-#. purpose
4504-#: ../units/dock/jobs.pxu:1125
4505-msgid " This test will check the DisplayPort(s) on the dock after resuming."
4506-msgstr ""
4507-
4508-#. summary
4509-#: ../units/dock/jobs.pxu:1138
4510-msgid "DVI port test on the dock after resuming"
4511-msgstr ""
4512-
4513-#. purpose
4514-#: ../units/dock/jobs.pxu:1140
4515-msgid " This test will check the DVI port(s) on the dock after resuming."
4516-msgstr ""
4517-
4518-#. steps
4519-#: ../units/dock/jobs.pxu:1142
4520-msgid ""
4521-" Skip this test if the dock does not have a DVI port.\n"
4522-" 1. Connect a display (if not already connected) to the DVI port on the "
4523-"dock\n"
4524-" 2. Repeat step 1 for each additional DVI port, if any"
4525-msgstr ""
4526-
4527-#. summary
4528-#: ../units/dock/jobs.pxu:1153
4529-msgid "HDMI port test on the dock after resuming"
4530-msgstr ""
4531-
4532-#. purpose
4533-#: ../units/dock/jobs.pxu:1155
4534-msgid " This test will check the HDMI port(s) on the dock after resuming."
4535-msgstr ""
4536-
4537-#. summary
4538-#: ../units/dock/jobs.pxu:1168
4539-msgid "VGA port test on the dock after resuming"
4540-msgstr ""
4541-
4542-#. purpose
4543-#: ../units/dock/jobs.pxu:1170
4544-msgid " This test will check the VGA port(s) on the dock after resuming."
4545-msgstr ""
4546-
4547-#. steps
4548-#: ../units/dock/jobs.pxu:1172
4549-msgid ""
4550-" Skip this test if the dock does not have a VGA port.\n"
4551-" 1. Connect a display (if not already connected) to the VGA port on the "
4552-"dock\n"
4553-" 2. Repeat step 1 for each additional VGA port, if any"
4554-msgstr ""
4555-
4556-#. summary
4557-#: ../units/dock/jobs.pxu:1184
4558-msgid ""
4559-"Display connected via DisplayPort using an USB Type-C port after resuming"
4560-msgstr ""
4561-
4562-#. purpose
4563-#: ../units/dock/jobs.pxu:1185
4564-msgid ""
4565-" This test will check the connection of a screen using a \"USB Type-C to "
4566-"DisplayPort\" adapter after resuming."
4567-msgstr ""
4568-
4569-#. steps
4570-#: ../units/dock/jobs.pxu:1187
4571-msgid ""
4572-" Skip this test if the dock does not have a USB Type-C port.\n"
4573-" 1. Connect a display (if not already connected) to the USB Type-C port "
4574-"on\n"
4575-" your system using a \"USB Type-C to DisplayPort\" adapter\n"
4576-" 2. Switch display modes between in your Display Settings, check if it can "
4577-"be\n"
4578-" set to mirrored, extended, displayed on external or onboard only"
4579-msgstr ""
4580-
4581-#. verification
4582-#: ../units/dock/jobs.pxu:1193
4583-msgid ""
4584-" Was the desktop displayed correctly on the screen connected\n"
4585-" using a \"USB Type-C to DisplayPort\" adapter in every mode?"
4586-msgstr ""
4587-
4588-#. summary
4589-#: ../units/dock/jobs.pxu:1202
4590-msgid "Display connected via HDMI using an USB Type-C port after resuming"
4591-msgstr ""
4592-
4593-#. purpose
4594-#: ../units/dock/jobs.pxu:1203
4595-msgid ""
4596-" This test will check the connection of a screen using a \"USB Type-C to "
4597-"HDMI\" adapter after resuming."
4598-msgstr ""
4599-
4600-#. steps
4601-#: ../units/dock/jobs.pxu:1205
4602-msgid ""
4603-" Skip this test if the dock does not have a USB Type-C port.\n"
4604-" 1. Connect a display (if not already connected) to the USB Type-C port "
4605-"on\n"
4606-" your system using a \"USB Type-C to HDMI\" adapter\n"
4607-" 2. Switch display modes between in your Display Settings, check if it can "
4608-"be\n"
4609-" set to mirrored, extended, displayed on external or onboard only"
4610-msgstr ""
4611-
4612-#. verification
4613-#: ../units/dock/jobs.pxu:1211
4614-msgid ""
4615-" Was the desktop displayed correctly on the screen connected\n"
4616-" using a \"USB Type-C to HDMI\" adapter in every mode?"
4617-msgstr ""
4618-
4619-#. summary
4620-#: ../units/dock/jobs.pxu:1220
4621-msgid "Display connected via VGA using an USB Type-C port after resuming"
4622-msgstr ""
4623-
4624-#. purpose
4625-#: ../units/dock/jobs.pxu:1221
4626-msgid ""
4627-" This test will check the connection of a screen using a \"USB Type-C to "
4628-"VGA\" adapter after resuming."
4629-msgstr ""
4630-
4631-#. steps
4632-#: ../units/dock/jobs.pxu:1223
4633-msgid ""
4634-" Skip this test if the dock does not have a USB Type-C port.\n"
4635-" 1. Connect a display (if not already connected) to the USB Type-C port "
4636-"on\n"
4637-" your system using a \"USB Type-C to VGA\" adapter\n"
4638-" 2. Switch display modes between in your Display Settings, check if it can "
4639-"be\n"
4640-" set to mirrored, extended, displayed on external or onboard only"
4641-msgstr ""
4642-
4643-#. verification
4644-#: ../units/dock/jobs.pxu:1229
4645-msgid ""
4646-" Was the desktop displayed correctly on the screen connected\n"
4647-" using a \"USB Type-C to VGA\" adapter in every mode?"
4648-msgstr ""
4649-
4650-#. summary
4651-#: ../units/dock/jobs.pxu:1239
4652-msgid "Suspend the device, undock it and resume it"
4653-msgstr ""
4654-
4655-#. purpose
4656-#: ../units/dock/jobs.pxu:1240
4657-msgid ""
4658-" This test will check the device can be suspended, undocked and resumed "
4659-"properly"
4660-msgstr ""
4661-
4662-#. steps
4663-#: ../units/dock/jobs.pxu:1242
4664-msgid ""
4665-" 1. If the laptop is currently undocked, dock it now\n"
4666-" 2. Suspend the laptop (e.g. by closing its lid)\n"
4667-" 3. Undock the laptop\n"
4668-" 4. Resume the laptop (e.g. by pressing its Power button)\n"
4669-" 5. Enable wireless if it was disabled"
4670-msgstr ""
4671-
4672-#. verification
4673-#: ../units/dock/jobs.pxu:1248
4674-msgid " Is the device working as expected after being undocked and resumed?"
4675-msgstr ""
4676-
4677-#. summary
4678-#: ../units/dock/jobs.pxu:1256
4679-msgid "Wireless connection after suspend (WPA BG)"
4680-msgstr ""
4681-
4682-#. description
4683-#: ../units/dock/jobs.pxu:1271 ../units/suspend/suspend.pxu:848
4684-msgid ""
4685-"Tests that the systems wireless hardware can connect to a router using WPA "
4686-"security and the 802.11b/g protocols after the system has been suspended."
4687-msgstr ""
4688-
4689-#. summary
4690-#: ../units/dock/jobs.pxu:1280
4691-msgid "Wireless connection after suspend (Open BG)"
4692-msgstr ""
4693-
4694-#. description
4695-#: ../units/dock/jobs.pxu:1295 ../units/suspend/suspend.pxu:879
4696-msgid ""
4697-"Tests that the systems wireless hardware can connect to a router using no "
4698-"security and the 802.11b/g protocols after the system has been suspended."
4699-msgstr ""
4700-
4701-#. summary
4702-#: ../units/dock/jobs.pxu:1304
4703-msgid "Wireless connection after suspend (WPA N)"
4704-msgstr ""
4705-
4706-#. description
4707-#: ../units/dock/jobs.pxu:1319 ../units/suspend/suspend.pxu:910
4708-msgid ""
4709-"Tests that the systems wireless hardware can connect to a router using WPA "
4710-"security and the 802.11n protocol after the system has been suspended."
4711-msgstr ""
4712-
4713-#. summary
4714-#: ../units/dock/jobs.pxu:1328
4715-msgid "Wireless connection after suspend (Open N)"
4716-msgstr ""
4717-
4718-#. description
4719-#: ../units/dock/jobs.pxu:1343 ../units/suspend/suspend.pxu:941
4720-msgid ""
4721-"Tests that the systems wireless hardware can connect to a router using no "
4722-"security and the 802.11n protocol after the system has been suspended."
4723-msgstr ""
4724-
4725-#. summary
4726-#: ../units/dock/jobs.pxu:1352
4727-msgid "Wireless connection after suspend (WPA AC)"
4728-msgstr ""
4729-
4730-#. description
4731-#: ../units/dock/jobs.pxu:1368 ../units/suspend/suspend.pxu:973
4732-msgid ""
4733-"Tests that the systems wireless hardware can connect to a router using WPA "
4734-"security and the 802.11ac protocol after the system has been suspended."
4735-msgstr ""
4736-
4737-#. summary
4738-#: ../units/dock/jobs.pxu:1377
4739-msgid "Wireless connection after suspend (Open AC)"
4740-msgstr ""
4741-
4742-#. description
4743-#: ../units/dock/jobs.pxu:1393 ../units/suspend/suspend.pxu:1005
4744-msgid ""
4745-"Tests that the systems wireless hardware can connect to a router using no "
4746-"security and the 802.11ac protocol after the system has been suspended."
4747-msgstr ""
4748-
4749-#. summary
4750-#: ../units/dock/jobs.pxu:1401
4751-msgid "Audio after resuming test"
4752-msgstr ""
4753-
4754-#. description
4755-#: ../units/dock/jobs.pxu:1406 ../units/suspend/suspend.pxu:454
4756-msgid ""
4757-"Verify that mixer settings after suspend are the same as before suspend."
4758-msgstr ""
4759-
4760-#. summary
4761-#: ../units/dock/jobs.pxu:1415
4762-msgid "Record playback after resuming"
4763-msgstr ""
4764-
4765-#. description
4766-#: ../units/dock/jobs.pxu:1426 ../units/suspend/suspend.pxu:1601
4767-msgid ""
4768-"This will check to make sure that your audio device works properly after a "
4769-"suspend and resume. This may work fine with speakers and onboard "
4770-"microphone, however, it works best if used with a cable connecting the audio-"
4771-"out jack to the audio-in jack."
4772-msgstr ""
4773-
4774-#. purpose
4775-#: ../units/dock/jobs.pxu:1436
4776-msgid ""
4777-" This test will check that the system correctly detects the insertion of\n"
4778-" a USB 3.0 storage device after suspend, undocked, resume."
4779-msgstr ""
4780-
4781-#. purpose
4782-#: ../units/dock/jobs.pxu:1467
4783-msgid ""
4784-" This test will check that the system correctly detects the removal of\n"
4785-" a USB 3.0 storage device after suspend, undocked, resume."
4786-msgstr ""
4787-
4788-#. purpose
4789-#: ../units/dock/jobs.pxu:1483
4790-msgid ""
4791-" This test will check the DisplayPort(s) on the system after suspend, "
4792-"undocked, resume."
4793-msgstr ""
4794-
4795-#. steps
4796-#: ../units/dock/jobs.pxu:1485
4797-msgid ""
4798-" Skip this test if the system does not have a DisplayPort.\n"
4799-" 1. Connect a display (if not already connected) to the DisplayPort on the "
4800-"system\n"
4801-" 2. Repeat step 1 for each additional DisplayPorts, if any"
4802-msgstr ""
4803-
4804-#. purpose
4805-#: ../units/dock/jobs.pxu:1498
4806-msgid ""
4807-" This test will check the HDMI port(s) on the system after suspend, "
4808-"undocked, resume."
4809-msgstr ""
4810-
4811-#. steps
4812-#: ../units/dock/jobs.pxu:1500
4813-msgid ""
4814-" Skip this test if the system does not have a HDMI port.\n"
4815-" 1. Connect a display (if not already connected) to the HDMI port on the "
4816-"system\n"
4817-" 2. Repeat step 1 for each additional HDMI port, if any"
4818-msgstr ""
4819-
4820-#. summary
4821-#: ../units/dock/jobs.pxu:1511
4822-msgid "ExpressCard slot verification"
4823-msgstr ""
4824-
4825-#. purpose
4826-#: ../units/dock/jobs.pxu:1513
4827-msgid ""
4828-" This will verify that an ExpressCard slot on the dock can detect inserted "
4829-"devices."
4830-msgstr ""
4831-
4832-#. steps
4833-#: ../units/dock/jobs.pxu:1515
4834-msgid ""
4835-" Skip this test if you do not have an ExpressCard slot on the dock.\n"
4836-" 1. Plug an ExpressCard device into the ExpressCard slot"
4837-msgstr ""
4838-
4839-#. verification
4840-#: ../units/dock/jobs.pxu:1518
4841-msgid " Was the device correctly detected?"
4842-msgstr ""
4843-
4844-#. summary
4845-#: ../units/dock/jobs.pxu:1525
4846-msgid "FireWire HDD insertion test"
4847-msgstr ""
4848-
4849-#. purpose
4850-#: ../units/dock/jobs.pxu:1528
4851-msgid ""
4852-" This test will check the system can detect the insertion of a FireWire "
4853-"HDD on the dock"
4854-msgstr ""
4855-
4856-#. steps
4857-#: ../units/dock/jobs.pxu:1530
4858-msgid ""
4859-" (Skip this test id there is no FireWire connector on the dock)\n"
4860-" 1. Click 'Test' to begin the test. This test will\n"
4861-" timeout and fail if the insertion has not been detected within 20 "
4862-"seconds.\n"
4863-" 2. Plug a FireWire HDD into an available FireWire port."
4864-msgstr ""
4865-
4866-#. summary
4867-#: ../units/dock/jobs.pxu:1543
4868-msgid "FireWire HDD storage test"
4869-msgstr ""
4870-
4871-#. description
4872-#: ../units/dock/jobs.pxu:1547 ../units/firewire/jobs.pxu:24
4873-msgid ""
4874-"This is an automated test which performs read/write operations on an "
4875-"attached FireWire HDD"
4876-msgstr ""
4877-
4878-#. summary
4879-#: ../units/dock/jobs.pxu:1555
4880-msgid "FireWire HDD removal test"
4881-msgstr ""
4882-
4883-#. purpose
4884-#: ../units/dock/jobs.pxu:1558
4885-msgid ""
4886-" This test will check the system can detect the removal of a FireWire HDD"
4887-msgstr ""
4888-
4889-#. steps
4890-#: ../units/dock/jobs.pxu:1560
4891-msgid ""
4892-" 1. Click 'Test' to begin the test. This test will timeout and fail if\n"
4893-" the removal has not been detected within 20 seconds.\n"
4894-" 2. Remove the previously attached FireWire HDD from the FireWire port on\n"
4895-" the dock."
4896-msgstr ""
4897-
4898-#. summary
4899-#: ../units/dock/jobs.pxu:1573
4900-msgid "eSATA HDD insertion test"
4901-msgstr ""
4902-
4903-#. purpose
4904-#: ../units/dock/jobs.pxu:1576
4905-msgid ""
4906-" This test will check the system can detect the insertion of an eSATA HDD "
4907-"on the dock"
4908-msgstr ""
4909-
4910-#. steps
4911-#: ../units/dock/jobs.pxu:1578
4912-msgid ""
4913-" (Skip this test if there are no eSATA connectors on the dock)\n"
4914-" 1. Click 'Test' to begin the test. This test will\n"
4915-" timeout and fail if the insertion has not been detected within 20 "
4916-"seconds.\n"
4917-" 2. Plug an eSATA HDD into an available eSATA port on the dock."
4918-msgstr ""
4919-
4920-#. summary
4921-#: ../units/dock/jobs.pxu:1591
4922-msgid "eSATA HDD storage test"
4923-msgstr ""
4924-
4925-#. description
4926-#: ../units/dock/jobs.pxu:1595 ../units/esata/jobs.pxu:22
4927-msgid ""
4928-"This is an automated test which performs read/write operations on an "
4929-"attached eSATA HDD"
4930-msgstr ""
4931-
4932-#. summary
4933-#: ../units/dock/jobs.pxu:1603
4934-msgid "eSATA HDD removal test"
4935-msgstr ""
4936-
4937-#. purpose
4938-#: ../units/dock/jobs.pxu:1606
4939-msgid ""
4940-" This test will check the system can detect the removal of an eSATA HDD "
4941-"from the dock"
4942-msgstr ""
4943-
4944-#. steps
4945-#: ../units/dock/jobs.pxu:1608
4946-msgid ""
4947-" 1. Click 'Test' to begin the test. This test will timeout and fail if\n"
4948-" the removal has not been detected within 20 seconds.\n"
4949-" 2. Remove the previously attached eSATA HDD from the eSATA port on the "
4950-"dock."
4951-msgstr ""
4952-
4953-#. summary
4954-#: ../units/dock/jobs.pxu:1621
4955-msgid "Optical media (CD) read test"
4956-msgstr ""
4957-
4958-#. purpose
4959-#: ../units/dock/jobs.pxu:1622
4960-msgid " This test will check the dock's ability to read CD media"
4961-msgstr ""
4962-
4963-#. steps
4964-#: ../units/dock/jobs.pxu:1624
4965-msgid ""
4966-" (Skip this test if the dock does not have an optical reader)\n"
4967-" 1. Insert appropriate non-blank media into your optical drive(s). Movie "
4968-"and Audio Disks may not work. Self-created data disks have the greatest "
4969-"chance of working.\n"
4970-" 2. Try to copy a few files from the optical media to the computer."
4971-msgstr ""
4972-
4973-#. verification
4974-#: ../units/dock/jobs.pxu:1628
4975-msgid " Are the files properly copied to the computer?"
4976-msgstr ""
4977-
4978-#. summary
4979-#: ../units/dock/jobs.pxu:1636
4980-msgid "Optical media (CD-RW, DVD-RW) writing test"
4981-msgstr ""
4982-
4983-#. purpose
4984-#: ../units/dock/jobs.pxu:1637
4985-msgid ""
4986-" This test will check the dock's ability to write CD/DVD media.\n"
4987-" Depending on what the dock's optical drive support, you will need\n"
4988-" a blank CD-R, CD-RW, DVD-R and/or DVD-RW."
4989-msgstr ""
4990-
4991-#. steps
4992-#: ../units/dock/jobs.pxu:1641
4993-msgid ""
4994-" 1. Insert a blank CD-R into the dock's drive\n"
4995-" 2. Open Brasero Disc Burner and write some files on the CD-R\n"
4996-" 3. Repeat steps 1-2 for other compatible media (CD-RW, DVD-R, DVD-RW)"
4997-msgstr ""
4998-
4999-#. verification
5000-#: ../units/dock/jobs.pxu:1645
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches