summaryrefslogtreecommitdiff
path: root/jobs
diff options
authorZygmunt Krynicki <zygmunt.krynicki@canonical.com>2014-04-07 18:29:32 +0200
committerZygmunt Krynicki <zygmunt.krynicki@canonical.com>2014-04-07 18:29:32 +0200
commit2aa4e8301ee0f7038476365be79357d211fa7816 (patch)
treee8e7aeffbe8d889a4f0497b1d5c6338b0fd42a31 /jobs
parent071f7927e5a2aff9ad655a6eadaf964191aa1032 (diff)
providers:checkbox: normalize provider directories
In addition to dropping the provider_ prefix from bin, data, whitelists and jobs two of the source files moved from bin/ to the new src/ directory. They are accompanied by a new, trivial Makefile. Signed-off-by: Zygmunt Krynicki <zygmunt.krynicki@canonical.com>
Diffstat (limited to 'jobs')
-rw-r--r--jobs/audio.txt.in394
-rw-r--r--jobs/benchmarks.txt.in297
-rw-r--r--jobs/bluetooth.txt.in116
-rw-r--r--jobs/camera.txt.in52
-rw-r--r--jobs/codecs.txt.in31
-rw-r--r--jobs/cpu.txt.in67
-rw-r--r--jobs/daemons.txt.in66
-rw-r--r--jobs/disk.txt.in100
-rw-r--r--jobs/esata.txt.in37
-rw-r--r--jobs/ethernet.txt.in115
-rw-r--r--jobs/expresscard.txt.in10
-rw-r--r--jobs/fingerprint.txt.in29
-rw-r--r--jobs/firewire.txt.in38
-rw-r--r--jobs/firmware.txt.in29
-rw-r--r--jobs/floppy.txt.in13
-rw-r--r--jobs/graphics.txt.in291
-rw-r--r--jobs/hibernate.txt.in38
-rw-r--r--jobs/info.txt.in225
-rw-r--r--jobs/input.txt.in67
-rw-r--r--jobs/install.txt.in9
-rw-r--r--jobs/keys.txt.in222
-rw-r--r--jobs/led.txt.in197
-rw-r--r--jobs/local.txt.in328
-rw-r--r--jobs/mediacard.txt.in476
-rw-r--r--jobs/memory.txt.in16
-rw-r--r--jobs/mir.txt.in27
-rw-r--r--jobs/miscellanea.txt.in141
-rw-r--r--jobs/mobilebroadband.txt.in23
-rw-r--r--jobs/monitor.txt.in113
-rw-r--r--jobs/networking.txt.in73
-rw-r--r--jobs/optical.txt.in230
-rw-r--r--jobs/panel_clock_test.txt.in29
-rw-r--r--jobs/panel_reboot.txt.in11
-rw-r--r--jobs/peripheral.txt.in38
-rw-r--r--jobs/piglit.txt.in80
-rw-r--r--jobs/power-management.txt.in236
-rw-r--r--jobs/rendercheck.txt.in13
-rw-r--r--jobs/server-services.txt.in47
-rw-r--r--jobs/smoke.txt.in50
-rw-r--r--jobs/sniff.txt.in74
-rw-r--r--jobs/stress.txt.in257
-rw-r--r--jobs/suspend.txt.in2024
-rw-r--r--jobs/touchpad.txt.in154
-rw-r--r--jobs/touchscreen.txt.in92
-rw-r--r--jobs/usb.txt.in224
-rw-r--r--jobs/user_apps.txt.in491
-rw-r--r--jobs/virtualization.txt.in27
-rw-r--r--jobs/wireless.txt.in415
48 files changed, 8132 insertions, 0 deletions
diff --git a/jobs/audio.txt.in b/jobs/audio.txt.in
new file mode 100644
index 0000000..4b54c18
--- /dev/null
+++ b/jobs/audio.txt.in
@@ -0,0 +1,394 @@
+plugin: shell
+name: audio/list_devices
+estimated_duration: 1.0
+requires:
+ device.category == 'AUDIO'
+ package.name == 'alsa-base'
+command: cat /proc/asound/cards
+_description: Test to detect audio devices
+
+plugin: user-interact-verify
+name: audio/playback_auto
+estimated_duration: 5.0
+depends: audio/list_devices
+requires:
+ device.category == 'AUDIO'
+ package.name == 'alsa-base'
+ package.name == 'gir1.2-gst-plugins-base-0.10' or package.name == 'gir1.2-gst-plugins-base-1.0'
+ package.name == 'pulseaudio-utils'
+command: audio_settings store --file=$CHECKBOX_DATA/pulseaudio_settings; audio_settings set --device=pci --volume=50; gst_pipeline_test -t 2 'audiotestsrc wave=sine freq=512 ! audioconvert ! audioresample ! autoaudiosink'; EXIT_CODE=$?; audio_settings restore --file=$CHECKBOX_DATA/pulseaudio_settings; exit $EXIT_CODE
+_description:
+ PURPOSE:
+ This test will check that internal speakers work correctly
+ STEPS:
+ 1. Make sure that no external speakers or headphones are connected
+ If testing a desktop, external speakers are allowed
+ 2. Click the Test button to play a brief tone on your audio device
+ VERIFICATION:
+ Did you hear a tone?
+
+plugin: user-interact-verify
+name: audio/playback_hdmi
+estimated_duration: 30.0
+requires:
+ device.category == 'AUDIO'
+ package.name == 'alsa-base'
+ package.name == 'gir1.2-gst-plugins-base-0.10' or package.name == 'gir1.2-gst-plugins-base-1.0'
+ package.name == 'pulseaudio-utils'
+command:
+ audio_settings store --verbose --file=$CHECKBOX_DATA/pulseaudio_settings; audio_settings set --verbose --device=hdmi --volume=50; gst_pipeline_test -t 2 --device hdmi 'audiotestsrc wave=sine freq=512 ! audioconvert ! audioresample ! autoaudiosink'; EXIT_CODE=$?; audio_settings restore --verbose --file=$CHECKBOX_DATA/pulseaudio_settings; exit $EXIT_CODE
+_description:
+ PURPOSE:
+ HDMI audio interface verification
+ STEPS:
+ 1. Plug an external HDMI device with sound (Use only one HDMI/DisplayPort interface at a time for this test)
+ 2. Click the Test button
+ VERIFICATION:
+ Did you hear the sound from the HDMI device?
+
+plugin: user-interact-verify
+name: audio/playback_displayport
+estimated_duration: 30.0
+requires:
+ device.category == 'AUDIO'
+ package.name == 'alsa-base'
+ package.name == 'gir1.2-gst-plugins-base-0.10' or package.name == 'gir1.2-gst-plugins-base-1.0'
+ package.name == 'pulseaudio-utils'
+command:
+ audio_settings store --verbose --file=$CHECKBOX_DATA/pulseaudio_settings; audio_settings set --verbose --device=hdmi --volume=50; gst_pipeline_test -t 2 --device hdmi 'audiotestsrc wave=sine freq=512 ! audioconvert ! audioresample ! autoaudiosink'; EXIT_CODE=$?; audio_settings restore --verbose --file=$CHECKBOX_DATA/pulseaudio_settings; exit $EXIT_CODE
+_description:
+ PURPOSE:
+ DisplayPort audio interface verification
+ STEPS:
+ 1. Plug an external DisplayPort device with sound (Use only one HDMI/DisplayPort interface at a time for this test)
+ 2. Click the Test button
+ VERIFICATION:
+ Did you hear the sound from the DisplayPort device?
+
+plugin: user-interact-verify
+name: audio/playback_headphones
+estimated_duration: 20.0
+depends: audio/list_devices
+requires:
+ device.category == 'AUDIO'
+ package.name == 'alsa-base'
+ package.name == 'gir1.2-gst-plugins-base-0.10' or package.name == 'gir1.2-gst-plugins-base-1.0'
+ package.name == 'pulseaudio-utils'
+command: audio_settings store --file=$CHECKBOX_DATA/pulseaudio_settings; audio_settings set --device=pci --volume=50; gst_pipeline_test -t 2 'audiotestsrc wave=sine freq=512 ! audioconvert ! audioresample ! autoaudiosink'; EXIT_CODE=$?; audio_settings restore --file=$CHECKBOX_DATA/pulseaudio_settings; exit $EXIT_CODE
+_description:
+ PURPOSE:
+ This test will check that headphones connector works correctly
+ STEPS:
+ 1. Connect a pair of headphones to your audio device
+ 2. Click the Test button to play a sound to your audio device
+ VERIFICATION:
+ Did you hear a sound through the headphones and did the sound play without any distortion, clicks or other strange noises from your headphones?
+
+plugin: user-interact-verify
+name: audio/alsa_record_playback_internal
+estimated_duration: 20.0
+depends: audio/playback_auto
+requires:
+ device.category == 'AUDIO'
+ package.name == 'alsa-base'
+ package.name == 'pulseaudio-utils'
+ package.name == 'gstreamer1.0-plugins-good' or package.name == 'gstreamer0.10-plugins-good'
+command: audio_settings store --file=$CHECKBOX_DATA/pulseaudio_settings; audio_settings set --device=pci --volume=50; alsa_record_playback; EXIT_CODE=$?; audio_settings restore --file=$CHECKBOX_DATA/pulseaudio_settings; exit $EXIT_CODE
+_description:
+ PURPOSE:
+ This test will check that recording sound using the onboard microphone works correctly
+ STEPS:
+ 1. Disconnect any external microphones that you have plugged in
+ 2. Click "Test", then speak into your internal microphone
+ 3. After a few seconds, your speech will be played back to you.
+ VERIFICATION:
+ Did you hear your speech played back?
+
+plugin: user-interact-verify
+name: audio/alsa_record_playback_external
+estimated_duration: 20.0
+depends: audio/playback_headphones
+requires:
+ device.category == 'AUDIO'
+ package.name == 'alsa-base'
+ package.name == 'pulseaudio-utils'
+ package.name == 'gstreamer1.0-plugins-good' or package.name == 'gstreamer0.10-plugins-good'
+command: audio_settings store --file=$CHECKBOX_DATA/pulseaudio_settings; audio_settings set --device=pci --volume=50; alsa_record_playback; EXIT_CODE=$?; audio_settings restore --file=$CHECKBOX_DATA/pulseaudio_settings; exit $EXIT_CODE
+_description:
+ PURPOSE:
+ This test will check that recording sound using an external microphone works correctly
+ STEPS:
+ 1. Connect a microphone to your microphone port
+ 2. Click "Test", then speak into the external microphone
+ 3. After a few seconds, your speech will be played back to you
+ VERIFICATION:
+ Did you hear your speech played back?
+
+plugin: user-interact-verify
+name: audio/alsa_record_playback_usb
+estimated_duration: 120.0
+requires:
+ device.category == 'AUDIO'
+ package.name == 'alsa-base'
+ package.name == 'pulseaudio-utils'
+ package.name == 'gstreamer1.0-plugins-good' or package.name == 'gstreamer0.10-plugins-good'
+command: audio_settings store --file=$CHECKBOX_DATA/pulseaudio_settings; audio_settings set --device=usb --volume=50; alsa_record_playback; EXIT_CODE=$?; audio_settings restore --file=$CHECKBOX_DATA/pulseaudio_settings; exit $EXIT_CODE
+_description:
+ PURPOSE:
+ This test will check that a USB audio device works correctly
+ STEPS:
+ 1. Connect a USB audio device to your system
+ 2. Click "Test", then speak into the microphone
+ 3. After a few seconds, your speech will be played back to you
+ VERIFICATION:
+ Did you hear your speech played back through the USB headphones?
+
+plugin: shell
+name: audio/alsa_record_playback_automated
+estimated_duration: 10.0
+requires:
+ package.name == 'python3-gi'
+ package.name == 'gir1.2-gstreamer-1.0'
+ package.name == 'libgstreamer1.0-0'
+ package.name == 'gstreamer1.0-plugins-good'
+ package.name == 'gstreamer1.0-pulseaudio'
+ package.name == 'alsa-base'
+ device.category == 'AUDIO'
+command: audio_test
+_description:
+ Play back a sound on the default output and listen for it on the
+ default input.
+
+plugin: shell
+name: audio/alsa_info_collect
+estimated_duration: 2.0
+command: alsa_info --no-dialog --no-upload --output ${CHECKBOX_DATA}/alsa_info.log
+_description:
+ Collect audio-related system information. This data can be used to
+ simulate this computer's audio subsystem and perform more detailed tests
+ under a controlled environment.
+
+plugin: attachment
+name: audio/alsa_info_attachment
+depends: audio/alsa_info_collect
+estimated_duration: 1.0
+command: [ -e ${CHECKBOX_DATA}/alsa_info.log ] && cat ${CHECKBOX_DATA}/alsa_info.log
+_description:
+ Attaches the audio hardware data collection log to the results.
+
+plugin: user-interact-verify
+name: audio/channels
+estimated_duration: 20.0
+command: speaker-test -c 2 -l 1 -t wav
+_description:
+ PURPOSE:
+ Check that the various audio channels are working properly
+ STEPS:
+ 1. Click the Test button
+ VERIFICATION:
+ You should clearly hear a voice from the different audio channels
+
+plugin: shell
+name: audio/check_volume
+estimated_duration: 1.0
+requires:
+ package.name == 'pulseaudio-utils'
+ device.category == 'AUDIO'
+command: volume_test --minvol 1 --maxvol 100
+_description:
+ This test will verify that the volume levels are at an acceptable level on
+ your local system. The test will validate that the volume is greater than
+ or equal to minvol and less than or equal to maxvol for all sources (inputs)
+ and sinks (outputs) recognized by PulseAudio. It will also validate that the
+ active source and sink are not muted. You should not manually adjust the
+ volume or mute before running this test.
+
+plugin: manual
+name: audio/external-lineout
+estimated_duration: 30.0
+_description:
+ PURPOSE:
+ Check that external line out connection works correctly
+ STEPS:
+ 1. Insert cable to speakers (with built-in amplifiers) on the line out port
+ 2. Open system sound preferences, 'Output' tab, select 'Line-out' on the connector list. Click the Test button
+ 3. On the system sound preferences, select 'Internal Audio' on the device list and click 'Test Speakers' to check left and right channel
+ VERIFICATION:
+ 1. Do you hear a sound in the speakers? The internal speakers should *not* be muted automatically
+ 2. Do you hear the sound coming out on the corresponding channel?
+
+plugin: user-interact-verify
+name: audio/external-linein
+estimated_duration: 120.0
+requires:
+ device.category == 'AUDIO'
+ package.name == 'alsa-base'
+ package.name == 'pulseaudio-utils'
+ package.name == 'gstreamer1.0-plugins-good' or package.name == 'gstreamer0.10-plugins-good'
+command: audio_settings store --file=$CHECKBOX_DATA/pulseaudio_settings; audio_settings set --device=pci --volume=50; alsa_record_playback; EXIT_CODE=$?; audio_settings restore --file=$CHECKBOX_DATA/pulseaudio_settings; exit $EXIT_CODE
+_description:
+ PURPOSE:
+ Check that external line in connection works correctly
+ STEPS:
+ 1. Use a cable to connect the line in port to an external line out source.
+ 2. Open system sound preferences, 'Input' tab, select 'Line-in' on the connector list. Click the Test button
+ 3. After a few seconds, your recording will be played back to you.
+ VERIFICATION:
+ Did you hear your recording?
+
+plugin: user-interact
+name: audio/speaker-headphone-plug-detection
+estimated_duration: 60.0
+requires:
+ device.category == 'AUDIO'
+ package.name == 'pulseaudio-utils'
+command: pulse-active-port-change sinks
+_description:
+ PURPOSE:
+ Check that system detects speakers or headphones being plugged in
+ STEPS:
+ 1. Prepare a pair of headphones or speakers with a standard 3.5mm jack
+ 2. Locate the speaker / headphone jack on the device under test
+ 3. Run the test (you have 30 seconds from now on)
+ 4. Plug headphones or speakers into the appropriate jack
+ 5. Unplug the device for subsequent tests.
+ VERIFICATION:
+ Verification is automatic, no action is required.
+ The test times out after 30 seconds (and fails in that case).
+
+plugin: user-interact
+name: audio/microphone-plug-detection
+estimated_duration: 60.0
+requires:
+ device.category == 'AUDIO'
+ package.name == 'pulseaudio-utils'
+command: pulse-active-port-change sources
+_description:
+ PURPOSE:
+ Check that system detects a microphone being plugged in
+ STEPS:
+ 1. Prepare a microphone with a standard 3.5mm jack
+ 2. Locate the microphone jack on the device under test.
+ Keep in mind that it may be shared with the headphone jack.
+ 3. Run the test (you have 30 seconds from now on)
+ 4. Plug the microphone into the appropriate jack
+ 5. Unplug the device for subsequent tests.
+ VERIFICATION:
+ Verification is automatic, no action is required.
+ The test times out after 30 seconds (and fails in that case).
+
+plugin: user-interact-verify
+name: audio/balance_internal_speaker
+estimated_duration: 20.0
+depends: audio/playback_auto
+requires:
+ device.category == 'AUDIO'
+ package.name == 'alsa-base'
+ package.name == 'gir1.2-gst-plugins-base-0.10' or package.name == 'gir1.2-gst-plugins-base-1.0'
+ package.name == 'pulseaudio-utils'
+command: audio_settings store --file=$CHECKBOX_DATA/pulseaudio_settings; audio_settings set --device=pci --volume=50; gst_pipeline_test -t 10 'audiotestsrc wave=sine freq=512 ! audioconvert ! audioresample ! autoaudiosink'; EXIT_CODE=$?; audio_settings restore --file=$CHECKBOX_DATA/pulseaudio_settings; exit $EXIT_CODE
+_description:
+ PURPOSE:
+ Check that balance control works correctly on internal speakers
+ STEPS:
+ 1. Check that moving the balance slider from left to right works smoothly
+ 2. Click the Test button to play an audio tone for 10 seconds.
+ 3. Move the balance slider from left to right and back.
+ 4. Check that actual speaker audio balance follows your setting.
+ VERIFICATION:
+ Does the slider move smoothly, as well as being followed by the setting by the actual audio output?
+
+plugin: user-interact-verify
+name: audio/balance_headphones
+depends: audio/playback_headphones
+estimated_duration: 30.0
+requires:
+ device.category == 'AUDIO'
+ package.name == 'alsa-base'
+ package.name == 'gir1.2-gst-plugins-base-0.10' or package.name == 'gir1.2-gst-plugins-base-1.0'
+ package.name == 'pulseaudio-utils'
+command: audio_settings store --file=$CHECKBOX_DATA/pulseaudio_settings; audio_settings set --device=pci --volume=50; gst_pipeline_test -t 10 'audiotestsrc wave=sine freq=512 ! audioconvert ! audioresample ! autoaudiosink'; EXIT_CODE=$?; audio_settings restore --file=$CHECKBOX_DATA/pulseaudio_settings; exit $EXIT_CODE
+_description:
+ PURPOSE:
+ Check that balance control works correctly on external headphone
+ STEPS:
+ 1. Check that moving the balance slider from left to right works smoothly
+ 2. Click the Test button to play an audio tone for 10 seconds.
+ 3. Move the balance slider from left to right and back.
+ 4. Check that actual headphone audio balance follows your setting.
+ VERIFICATION:
+ Does the slider move smoothly, as well as being followed by the setting by the actual audio output?
+
+plugin: shell
+name: audio/list_devices_after_suspend_30_cycles
+estimated_duration: 1.0
+depends: power-management/suspend_30_cycles
+requires:
+ device.category == 'AUDIO'
+ package.name == 'alsa-base'
+command: cat /proc/asound/cards
+_description: Test to detect audio devices after suspending 30 times.
+
+plugin: user-interact-verify
+name: audio/playback_auto_after_suspend_30_cycles
+estimated_duration: 5.0
+depends: audio/list_devices power-management/suspend_30_cycles
+requires:
+ device.category == 'AUDIO'
+ package.name == 'alsa-base'
+ package.name == 'gir1.2-gst-plugins-base-0.10' or package.name == 'gir1.2-gst-plugins-base-1.0'
+ package.name == 'pulseaudio-utils'
+command: audio_settings store --file=$CHECKBOX_DATA/pulseaudio_settings; audio_settings set --device=pci --volume=50; gst_pipeline_test -t 2 'audiotestsrc wave=sine freq=512 ! audioconvert ! audioresample ! autoaudiosink'; EXIT_CODE=$?; audio_settings restore --file=$CHECKBOX_DATA/pulseaudio_settings; exit $EXIT_CODE
+_description:
+ PURPOSE:
+ This test will check that internal speakers work correctly after suspending 30 times.
+ STEPS:
+ 1. Make sure that no external speakers or headphones are connected
+ If testing a desktop, external speakers are allowed
+ 2. Click the Test button to play a brief tone on your audio device
+ VERIFICATION:
+ Did you hear a tone?
+
+plugin: shell
+name: audio/alsa_record_playback_automated_after_suspend_30_cycles
+estimated_duration: 10.0
+depends: power-management/suspend_30_cycles
+requires:
+ package.name == 'python3-gi'
+ package.name == 'gir1.2-gstreamer-1.0'
+ package.name == 'libgstreamer1.0-0'
+ package.name == 'gstreamer1.0-plugins-good'
+ package.name == 'gstreamer1.0-pulseaudio'
+ package.name == 'alsa-base'
+ device.category == 'AUDIO'
+command: audio_test
+_description:
+ Play back a sound on the default output and listen for it on the
+ default input, after suspending 30 times.
+
+plugin: shell
+name: audio/check_volume_after_suspend_30_cycles
+estimated_duration: 1.0
+depends: power-management/suspend_30_cycles
+requires:
+ package.name == 'pulseaudio-utils'
+ device.category == 'AUDIO'
+command: volume_test --minvol 1 --maxvol 100
+_description:
+ This test will verify that the volume levels are at an acceptable level on
+ your local system. The test will validate that the volume is greater than
+ or equal to minvol and less than or equal to maxvol for all sources (inputs)
+ and sinks (outputs) recognized by PulseAudio. It will also validate that the
+ active source and sink are not muted. You should not manually adjust the
+ volume or mute before running this test.
+
+plugin: shell
+name: audio/audio_after_suspend_30_cycles
+estimated_duration: 1.0
+depends: power-management/suspend_30_cycles
+requires:
+ device.category == 'AUDIO'
+ package.name == 'alsa-base'
+_description: Record mixer settings after suspending 30 times.
+command:
+ audio_settings store --file=$CHECKBOX_DATA/audio_settings_after_suspend_30_cycles; diff $CHECKBOX_DATA/audio_settings_before_suspend $CHECKBOX_DATA/audio_settings_after_suspend_30_cycles
diff --git a/jobs/benchmarks.txt.in b/jobs/benchmarks.txt.in
new file mode 100644
index 0000000..7a46724
--- /dev/null
+++ b/jobs/benchmarks.txt.in
@@ -0,0 +1,297 @@
+plugin: local
+name: benchmarks/disk/hdparm-read
+requires: device.category == 'DISK'
+_description: Benchmark for each disk
+command:
+ cat <<'EOF' | run_templates -t -s 'udev_resource | filter_templates -w "category=DISK"'
+ plugin: shell
+ name: benchmarks/disk/hdparm-read_`ls /sys$path/block`
+ requires: device.path == "$path"
+ user: root
+ command: hdparm -t /dev/`ls /sys$path/block | sed 's|!|/|'` | sed -e :a -e '$!N;s/\n/ /;ta' | sed 's/.*= *//'
+ description: This test runs hdparm timing of device reads as a benchmark for $path
+ EOF
+
+plugin: local
+name: benchmarks/disk/hdparm-cache-read
+requires: device.category == 'DISK'
+_description: Benchmark for each disk
+command:
+ cat <<'EOF' | run_templates -t -s 'udev_resource | filter_templates -w "category=DISK"'
+ plugin: shell
+ name: benchmarks/disk/hdparm-cache-read_`ls /sys$path/block`
+ requires: device.path == "$path"
+ user: root
+ command: hdparm -T /dev/`ls /sys$path/block | sed 's|!|/|'` | sed -e :a -e '$!N;s/\n/ /;ta' | sed 's/.*= *//'
+ description: This test runs hdparm timing of cache reads as a benchmark for $path
+ EOF
+
+plugin: shell
+name: benchmarks/graphics/gtkperf
+depends: graphics/xorg-version
+requires: package.name == 'gtkperf'
+command: python3 -c 'import re,sys,subprocess; (s, o) = subprocess.getstatusoutput("gtkperf -a"); [sys.exit(1) for i in [s] if s]; m = re.search("Total time:\s+(.*)\n", o); [print(i.group(1)+" Seconds") for i in [m] if m]'
+estimated_duration: 30.000
+_description:
+ Run gtkperf to make sure that GTK based test cases work
+
+plugin: shell
+name: benchmarks/graphics/render-bench
+requires: package.name == 'render-bench'
+command: /usr/bin/time -f "%e Seconds" render_bench 2>&1 >/dev/null
+estimated_duration: 52.000
+_description: Run Render-Bench XRender/Imlib2 benchmark
+
+plugin: shell
+name: benchmarks/graphics/qgears2-Xrender-gearsfancy
+requires: package.name == 'phoronix-test-suite'
+command: PRESET_OPTIONS="qgears2.render-backend=1; qgears2.test-mode=0" pts_run qgears2
+estimated_duration: 180.000
+_description: Run Qgears2 XRender Extension gearsfancy benchmark
+
+plugin: shell
+name: benchmarks/graphics/qgears2-Xrender-compo
+requires: package.name == 'phoronix-test-suite'
+command: PRESET_OPTIONS="qgears2.render-backend=1; qgears2.test-mode=2" pts_run qgears2
+estimated_duration: 31.500
+_description: Run Qgears2 XRender Extension image scaling benchmark
+
+plugin: shell
+name: benchmarks/graphics/qgears2-gl-gearsfancy
+requires: package.name == 'phoronix-test-suite'
+command: PRESET_OPTIONS="qgears2.render-backend=2; qgears2.test-mode=0" pts_run qgears2
+estimated_duration: 52.000
+_description: Run Qgears2 OpenGL gearsfancy benchmark
+
+plugin: shell
+name: benchmarks/graphics/qgears2-gl-compo
+requires: package.name == 'phoronix-test-suite'
+command: PRESET_OPTIONS="qgears2.render-backend=2; qgears2.test-mode=2" pts_run qgears2
+estimated_duration: 23.000
+_description: Run Qgears2 OpenGL image scaling benchmark
+
+plugin: shell
+name: benchmarks/graphics/glmark2-es2
+requires:
+ package.name == 'glmark2-es2'
+ 'arm' in cpuinfo.type
+command:
+ glmark2-es2 2>&1 | sed -e :a -e '$!N;s/\n/ /;ta' | sed -E 's/.*(Score:\s+[0-9]+).*/\1/'
+_description: Run GLmark2-ES2 benchmark
+
+plugin: shell
+name: benchmarks/graphics/glmark2
+requires:
+ package.name == 'glmark2'
+ cpuinfo.platform in ("i386", "x86_64")
+command:
+ glmark2 2>&1 | sed -e :a -e '$!N;s/\n/ /;ta' | sed -E 's/.*(Score:\s+[0-9]+).*/\1/'
+estimated_duration: 306.000
+_description: Run GLmark2 benchmark
+
+plugin: shell
+name: benchmarks/graphics/globs
+requires:
+ package.name == 'globs'
+ cpuinfo.platform in ("i386", "x86_64")
+command: glob_test --min-fps=26 --ignore-problems
+estimated_duration: 53.500
+_description: Run globs benchmark
+
+plugin: shell
+name: benchmarks/graphics/unigine-sanctuary
+requires: package.name == 'phoronix-test-suite'
+command: pts_run unigine-sanctuary
+_description: Run Unigine Santuary benchmark
+
+plugin: shell
+name: benchmarks/graphics/unigine-tropics
+requires: package.name == 'phoronix-test-suite'
+command: pts_run unigine-tropics
+_description: Run Unigine Tropics benchmark
+
+plugin: shell
+name: benchmarks/graphics/unigine-heaven
+requires: package.name == 'phoronix-test-suite'
+command: pts_run unigine-heaven
+_description: Run Unigine Heaven benchmark
+
+plugin: shell
+name: benchmarks/graphics/lightsmark
+requires: package.name == 'phoronix-test-suite'
+command: pts_run lightsmark
+_description: Run Lightsmark benchmark
+
+plugin: shell
+name: benchmarks/memory/cachebench-read
+requires: package.name == 'phoronix-test-suite'
+command: PRESET_OPTIONS="cachebench.test=0" pts_run cachebench
+_description: Run Cachebench Read benchmark
+
+plugin: shell
+name: benchmarks/memory/cachebench-write
+requires: package.name == 'phoronix-test-suite'
+command: PRESET_OPTIONS="cachebench.test=1" pts_run cachebench
+_description: Run Cachebench Write benchmark
+
+plugin: shell
+name: benchmarks/memory/cachebench-read-modify-write
+requires: package.name == 'phoronix-test-suite'
+command: PRESET_OPTIONS="cachebench.test=2" pts_run cachebench
+_description: Run Cachebench Read / Modify / Write benchmark
+
+plugin: shell
+name: benchmarks/memory/stream-copy
+requires: package.name == 'phoronix-test-suite'
+command: PRESET_OPTIONS="stream.run-type=0" pts_run stream
+_description: Run Stream Copy benchmark
+
+plugin: shell
+name: benchmarks/memory/stream-scale
+requires: package.name == 'phoronix-test-suite'
+command: PRESET_OPTIONS="stream.run-type=1" pts_run stream
+_description: Run Stream Scale benchmark
+
+plugin: shell
+name: benchmarks/memory/stream-add
+requires: package.name == 'phoronix-test-suite'
+command: PRESET_OPTIONS="stream.run-type=2" pts_run stream
+_description: Run Stream Add benchmark
+
+plugin: shell
+name: benchmarks/memory/stream-triad
+requires: package.name == 'phoronix-test-suite'
+command: PRESET_OPTIONS="stream.run-type=3" pts_run stream
+_description: Run Stream Triad benchmark
+
+plugin: shell
+name: benchmarks/network/network-loopback
+requires: package.name == 'phoronix-test-suite'
+command: pts_run network-loopback
+estimated_duration: 85.0
+_description: Run Network Loopback benchmark
+
+plugin: shell
+name: benchmarks/network/wifi_time_to_reconnect
+requires: device.category == 'WIRELESS'
+command: wifi_time2reconnect
+_description: Check the time needed to reconnect to a WIFI access point
+
+plugin: shell
+name: benchmarks/processor/encode-mp3
+requires: package.name == 'phoronix-test-suite'
+command: pts_run encode-mp3
+_description: Run Encode MP3 benchmark
+
+plugin: shell
+name: benchmarks/processor/x264
+requires: package.name == 'phoronix-test-suite'
+command: pts_run x264
+_description: Run x264 H.264/AVC encoder benchmark
+
+plugin: shell
+name: benchmarks/processor/gnupg
+requires: package.name == 'phoronix-test-suite'
+command: pts_run gnupg
+_description: Run GnuPG benchmark
+
+plugin: shell
+name: benchmarks/processor/compress-pbzip2
+requires: package.name == 'phoronix-test-suite'
+command: pts_run compress-pbzip2
+_description: Run Compress PBZIP2 benchmark
+
+plugin: shell
+name: benchmarks/processor/compress-7zip
+requires: package.name == 'phoronix-test-suite'
+command: pts_run compress-7zip
+_description: Run Compress 7ZIP benchmark
+
+plugin: shell
+name: benchmarks/processor/n-queens
+requires: package.name == 'phoronix-test-suite'
+command: pts_run n-queens
+_description: Run N-Queens benchmark
+
+plugin: shell
+name: benchmarks/processor/himeno
+requires: package.name == 'phoronix-test-suite'
+command: pts_run himeno
+_description: Run Himeno benchmark
+
+plugin: shell
+name: benchmarks/system/cpu_on_idle
+requires: package.name == 'sysstat'
+command: iostat -x -m 1 10 | python3 -c 'import sys, re; lines="".join(sys.stdin.readlines()); l=[float(n) for n in (re.findall("idle\n.*?(\S+)\n", lines))]; print(sum(l)/len(l),"%")'
+_description: CPU utilization on an idle system.
+
+plugin: shell
+name: benchmarks/system/disk_on_idle
+requires: package.name == 'sysstat'
+command: iostat -x -m 1 10 | python3 -c 'import sys, re; lines="".join(sys.stdin.readlines()); l=[float(n) for n in (re.findall("util\n.*?(\S+)\n", lines))]; print(sum(l)/len(l),"%")'
+_description: Disk utilization on an idle system.
+
+plugin: shell
+name: benchmarks/graphics/gputest_furmark_fullscreen_1920x1080
+requires:
+ package.name == 'gputest'
+ cpuinfo.platform == 'x86_64'
+command: gputest_benchmark fur --width 1920 --height 1080 -f
+estimated_duration: 75.000
+_description:
+ Run a stress test based on FurMark (OpenGL 2.1 or 3.2)
+ Fullscreen 1920x1080 no antialiasing
+
+plugin: shell
+name: benchmarks/graphics/gputest_furmark_windowed_1024x640
+requires:
+ package.name == 'gputest'
+ cpuinfo.platform == 'x86_64'
+command: gputest_benchmark fur
+estimated_duration: 75.000
+_description:
+ Run a stress test based on FurMark (OpenGL 2.1 or 3.2)
+ Windowed 1024x640 no antialiasing
+
+plugin: shell
+name: benchmarks/graphics/gputest_gimark_fullscreen_1920x1080
+requires:
+ package.name == 'gputest'
+ cpuinfo.platform == 'x86_64'
+command: gputest_benchmark gi --width 1920 --height 1080 -f
+estimated_duration: 75.00
+_description:
+ Run GiMark, a geometry instancing test (OpenGL 3.3)
+ Fullscreen 1920x1080 no antialiasing
+
+plugin: shell
+name: benchmarks/graphics/gputest_gimark_windowed_1024x640
+requires:
+ package.name == 'gputest'
+ cpuinfo.platform == 'x86_64'
+command: gputest_benchmark gi
+estimated_duration: 75.500
+_description:
+ Run GiMark, a geometry instancing test (OpenGL 3.3)
+ Windowed 1024x640 no antialiasing
+
+plugin: shell
+name: benchmarks/graphics/gputest_tessmark_fullscreen_1920x1080
+requires:
+ package.name == 'gputest'
+ cpuinfo.platform == 'x86_64'
+command: gputest_benchmark tess --width 1920 --height 1080 -f
+estimated_duration: 75.000
+_description:
+ Run a tessellation test based on TessMark (OpenGL 4.0)
+ Fullscreen 1920x1080 no antialiasing
+
+plugin: shell
+name: benchmarks/graphics/gputest_tessmark_windowed_1024x640
+requires:
+ package.name == 'gputest'
+ cpuinfo.platform == 'x86_64'
+command: gputest_benchmark tess
+_description:
+ Run a tessellation test based on TessMark (OpenGL 4.0)
+ Windowed 1024x640 no antialiasing
diff --git a/jobs/bluetooth.txt.in b/jobs/bluetooth.txt.in
new file mode 100644
index 0000000..6244c4b
--- /dev/null
+++ b/jobs/bluetooth.txt.in
@@ -0,0 +1,116 @@
+
+plugin: shell
+name: bluetooth/detect-output
+estimated_duration: 1.2
+requires:
+ package.name == 'bluez'
+ device.category == 'BLUETOOTH'
+command:
+ if rfkill list bluetooth | grep -q 'Hard blocked: yes'; then
+ echo "rfkill shows BT is hard blocked"
+ fi
+ if rfkill list bluetooth | grep -q 'Soft blocked: yes'; then
+ echo "rfkill shows BT is soft blocked, removing before testing"
+ rfkill unblock bluetooth
+ sleep 3
+ fi
+ output=$(hcitool dev | tail -n+2 | awk '{print $2}' | tee $CHECKBOX_DATA/bluetooth_address)
+ echo "$output"
+ if [ -z "$output" ]; then
+ "BT hardware not available"
+ exit 1
+ fi
+_description:
+ Automated test to store bluetooth device information in checkbox report
+
+plugin: manual
+name: bluetooth/browse-files
+depends: bluetooth/detect-output
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ This test will check that bluetooth connection works correctly
+ STEPS:
+ 1. Enable bluetooth on any mobile device (PDA, smartphone, etc.)
+ 2. Click on the bluetooth icon in the menu bar
+ 3. Select 'Setup new device'
+ 4. Look for the device in the list and select it
+ 5. In the device write the PIN code automatically chosen by the wizard
+ 6. The device should pair with the computer
+ 7. Right-click on the bluetooth icon and select browse files
+ 8. Authorize the computer to browse the files in the device if needed
+ 9. You should be able to browse the files
+ VERIFICATION:
+ Did all the steps work?
+
+plugin: manual
+name: bluetooth/file-transfer
+depends: bluetooth/browse-files bluetooth/detect-output
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ This test will check that you can transfer information through a bluetooth connection
+ STEPS:
+ 1. Make sure that you're able to browse the files in your mobile device
+ 2. Copy a file from the computer to the mobile device
+ 3. Copy a file from the mobile device to the computer
+ VERIFICATION:
+ Were all files copied correctly?
+
+plugin: user-interact-verify
+name: bluetooth/audio-a2dp
+depends: bluetooth/detect-output
+estimated_duration: 120.0
+command: audio_settings store --file=$CHECKBOX_DATA/pulseaudio_settings; audio_settings set --device=pci --volume=50; gst_pipeline_test -t 2 'audiotestsrc wave=sine freq=512 ! audioconvert ! audioresample ! autoaudiosink'; EXIT_CODE=$?; audio_settings restore --file=$CHECKBOX_DATA/pulseaudio_settings; exit $EXIT_CODE
+_description:
+ PURPOSE:
+ This test will check that you can record and hear audio using a bluetooth audio device
+ STEPS:
+ 1. Enable the bluetooth headset
+ 2. Click on the sound icon
+ 3. Click "Sound Settings"
+ 4. Look for the device in the list and select it
+ 5. Set Quality to A2DP
+ 6. Click "Test" to record for five seconds and reproduce in the bluetooth device
+ VERIFICATION:
+ Did you hear the sound?
+
+plugin: user-interact-verify
+name: bluetooth/audio
+depends: bluetooth/detect-output
+estimated_duration: 120.0
+command: arecord -d 5 -D bluetooth -f S16_LE | aplay -D bluetooth -f S16_LE
+_description:
+ PURPOSE:
+ This test will check that you can record and hear audio using a bluetooth audio device
+ STEPS:
+ 1. Enable the bluetooth headset
+ 2. Click on the bluetooth icon in the menu bar
+ 3. Select 'Setup new device'
+ 4. Look for the device in the list and select it
+ 5. In the device write the PIN code automatically chosen by the wizard
+ 6. The device should pair with the computer
+ 7. Click the sound icon
+ 8. Click "Sound Settings"
+ 9. Select device and ensure Quality is set to "HSP/HFP"
+ 10. Click "Test" to record for five seconds and reproduce in the bluetooth device
+ VERIFICATION:
+ Did you hear the sound you recorded in the bluetooth
+
+plugin: user-interact-verify
+name: bluetooth/HID
+depends: bluetooth/detect-output
+estimated_duration: 120.0
+command: keyboard_test
+_description:
+ PURPOSE:
+ This test will check that you can use a BlueTooth HID device
+ STEPS:
+ 1. Enable either a BT mouse or keyboard
+ 2. Click on the bluetooth icon in the menu bar
+ 3. Select 'Setup new device'
+ 4. Look for the device in the list and select it
+ 5. For mice, perform actions such as moving the pointer, right and left button clicks and double clicks
+ 6. For keyboards, click the Test button to lauch a small tool. Enter some text into the tool and close it.
+ VERIFICATION:
+ Did the device work as expected?
diff --git a/jobs/camera.txt.in b/jobs/camera.txt.in
new file mode 100644
index 0000000..68a69e9
--- /dev/null
+++ b/jobs/camera.txt.in
@@ -0,0 +1,52 @@
+plugin: shell
+name: camera/detect
+estimated_duration: 1.2
+requires:
+ device.category == 'CAPTURE'
+command: camera_test detect
+_description: This Automated test attempts to detect a camera.
+
+plugin: user-verify
+name: camera/display
+estimated_duration: 120.0
+depends: camera/detect
+requires:
+ device.category == 'CAPTURE'
+command: camera_test display
+_description:
+ PURPOSE:
+ This test will check that the built-in camera works
+ STEPS:
+ 1. Click on Test to display a video capture from the camera for ten seconds.
+ VERIFICATION:
+ Did you see the video capture?
+
+plugin: user-verify
+name: camera/still
+estimated_duration: 120.0
+depends: camera/detect
+requires:
+ package.name == 'gir1.2-gst-plugins-base-0.10' or package.name == 'gir1.2-gst-plugins-base-1.0'
+ package.name == 'eog'
+ package.name == 'fswebcam' or package.name == 'gir1.2-gst-plugins-base-0.10' or package.name == 'gir1.2-gst-plugins-base-1.0'
+ device.category == 'CAPTURE'
+command: camera_test still
+_description:
+ PURPOSE:
+ This test will check that the built-in camera works
+ STEPS:
+ 1. Click on Test to display a still image from the camera for ten seconds.
+ VERIFICATION:
+ Did you see the image?
+
+plugin: shell
+name: camera/multiple-resolution-images
+estimated_duration: 1.2
+depends: camera/detect
+requires:
+ package.name == 'fswebcam' or package.name == 'gir1.2-gst-plugins-base-0.10' or package.name == 'gir1.2-gst-plugins-base-1.0'
+ device.category == 'CAPTURE'
+command: camera_test resolutions
+_description:
+ Takes multiple pictures based on the resolutions supported by the camera and
+ validates their size and that they are of a valid format.
diff --git a/jobs/codecs.txt.in b/jobs/codecs.txt.in
new file mode 100644
index 0000000..b44a379
--- /dev/null
+++ b/jobs/codecs.txt.in
@@ -0,0 +1,31 @@
+plugin: user-interact-verify
+name: codecs/ogg-vorbis
+requires:
+ package.name == 'gstreamer0.10-plugins-base' or package.name == 'gstreamer1.0-plugins-base'
+ package.name == 'totem'
+ package.name == 'ubuntu-sounds'
+command: totem /usr/share/sounds/ubuntu/stereo/system-ready.ogg
+_description:
+ PURPOSE:
+ This test will verify your system's ability to play Ogg Vorbis audio files.
+ STEPS:
+ 1. Click Test to play an Ogg Vorbis file (.ogg)
+ 2. Please close the player to proceed.
+ VERIFICATION:
+ Did the sample play correctly?
+
+plugin: user-interact-verify
+name: codecs/wav
+requires:
+ package.name == 'gstreamer0.10-plugins-good' or package.name == 'gstreamer1.0-plugins-good'
+ package.name == 'totem'
+ package.name == 'alsa-utils'
+command: totem /usr/share/sounds/alsa/Noise.wav
+_description:
+ PURPOSE:
+ This test will verify your system's ability to play Wave Audio files.
+ STEPS:
+ 1. Select Test to play a Wave Audio format file (.wav)
+ 2. Please close the player to proceed.
+ VERIFICATION:
+ Did the sample play correctly?
diff --git a/jobs/cpu.txt.in b/jobs/cpu.txt.in
new file mode 100644
index 0000000..ea2d5cc
--- /dev/null
+++ b/jobs/cpu.txt.in
@@ -0,0 +1,67 @@
+plugin: shell
+name: cpu/scaling_test
+requires:
+ package.name == 'fwts'
+user: root
+environ: CHECKBOX_DATA
+command: fwts_test -t cpufreq -l ${CHECKBOX_DATA}/scaling_test.log
+_description:
+ Test the CPU scaling capabilities using Firmware Test Suite (fwts cpufreq).
+
+plugin: attachment
+name: cpu/scaling_test-log-attach
+depends: cpu/scaling_test
+command: [[ -e ${CHECKBOX_DATA}/scaling_test.log ]] && cat ${CHECKBOX_DATA}/scaling_test.log
+_description:
+ Attaches the log generated by cpu/scaling_test to the results
+
+plugin: shell
+name: cpu/maxfreq_test
+requires:
+ package.name == 'fwts'
+user: root
+environ: CHECKBOX_DATA
+command: fwts_test -t maxfreq -l ${CHECKBOX_DATA}/maxfreq_test.log
+_description:
+ Test that the CPU can run at its max frequency using Firmware Test Suite (fwts cpufreq).
+
+plugin: attachment
+name: cpu/maxfreq_test-log-attach
+depends: cpu/maxfreq_test
+command: [[ -e ${CHECKBOX_DATA}/maxfreq_test.log ]] && cat ${CHECKBOX_DATA}/maxfreq_test.log
+_description:
+ Attaches the log generated by cpu/maxfreq_test to the results
+
+plugin: shell
+name: cpu/clocktest
+command: clocktest
+_description:
+ Test for clock jitter.
+
+plugin: shell
+name: cpu/offlining_test
+user: root
+command: cpu_offlining
+_description:
+ Test offlining CPUs in a multicore system.
+
+plugin: shell
+name: cpu/topology
+requires: int(cpuinfo.count) > 1 and (cpuinfo.platform == 'i386' or cpuinfo.platform == 'x86_64')
+command: cpu_topology
+_description:
+ This test checks cpu topology for accuracy
+
+plugin: shell
+name: cpu/frequency_governors
+user: root
+command: nice -n -20 frequency_governors_test --debug
+_description:
+ This test checks that CPU frequency governors are obeyed when set.
+
+plugin: shell
+name: cpu/arm_vfp_support
+requires: 'arm' in cpuinfo.type
+command: grep VFP /var/log/syslog
+_description:
+ Validate that the Vector Floating Point Unit is running on ARM device
diff --git a/jobs/daemons.txt.in b/jobs/daemons.txt.in
new file mode 100644
index 0000000..ad0abf3
--- /dev/null
+++ b/jobs/daemons.txt.in
@@ -0,0 +1,66 @@
+plugin: shell
+name: daemons/atd
+requires: package.name == 'at'
+command: pgrep -f '/usr/sbin/atd' >/dev/null
+_description: Test if the atd daemon is running when the package is installed.
+
+plugin: shell
+name: daemons/cron
+requires: package.name == 'cron'
+command: pgrep -f '/usr/sbin/cron' >/dev/null
+_description: Test if the cron daemon is running when the package is installed.
+
+plugin: shell
+name: daemons/cupsd
+requires: package.name == 'cupsys'
+command: pgrep -f '/usr/sbin/cupsd' >/dev/null
+_description: Test if the cupsd daemon is running when the package is installed.
+
+plugin: shell
+name: daemons/getty
+requires: package.name == 'util-linux'
+command: pgrep -f '/sbin/getty' >/dev/null
+_description: Test if the getty daemon is running when the package is installed.
+
+plugin: shell
+name: daemons/init
+requires: package.name == 'upstart'
+command: pgrep -f '/sbin/init' >/dev/null
+_description: Test if the init daemon is running when the package is installed.
+
+plugin: shell
+name: daemons/klogd
+requires: package.name == 'klogd'
+command: pgrep -f '/sbin/klogd' >/dev/null
+_description: Test if the klogd daemon is running when the package is installed.
+
+plugin: shell
+name: daemons/nmbd
+requires: package.name == 'samba'
+command: pgrep -f '/usr/sbin/nmbd' >/dev/null
+_description: Test if the nmbd daemon is running when the package is installed.
+
+plugin: shell
+name: daemons/smbd
+requires: package.name == 'samba'
+command: pgrep -f '/usr/sbin/smbd' >/dev/null
+_description: Test if the smbd daemon is running when the package is installed.
+
+plugin: shell
+name: daemons/syslogd
+requires: package.name == 'syslogd'
+command: pgrep -f '/sbin/syslogd' >/dev/null
+_description: Test if the syslogd daemon is running when the package is installed.
+
+plugin: shell
+name: daemons/udevd
+requires:
+ package.name == 'udevd'
+command: pgrep -f '/sbin/udevd' >/dev/null
+_description: Test if the udevd daemon is running when the package is installed.
+
+plugin: shell
+name: daemons/winbindd
+requires: package.name == 'winbind'
+command: pgrep -f '/usr/sbin/winbindd' >/dev/null
+_description: Test if the winbindd daemon is running when the package is installed.
diff --git a/jobs/disk.txt.in b/jobs/disk.txt.in
new file mode 100644
index 0000000..8932b1f
--- /dev/null
+++ b/jobs/disk.txt.in
@@ -0,0 +1,100 @@
+plugin: shell
+name: disk/detect
+command: udev_resource | filter_templates -w "category=DISK" | awk -F': ' '$1 == "product" { print $2 }'
+_description: Detects and displays disks attached to the system.
+
+plugin: local
+name: disk/stats
+requires: device.category == 'DISK'
+_description: Check stats changes for each disk
+command:
+ cat <<'EOF' | run_templates -t -s 'udev_resource | filter_templates -w "category=DISK"'
+ plugin: shell
+ name: disk/stats_`ls /sys$path/block`
+ requires:
+ device.path == "$path"
+ block_device.`ls /sys$path/block`_state != 'removable'
+ user: root
+ command: disk_stats_test `ls /sys$path/block | sed 's|!|/|'`
+ description: This test checks disk stats, generates some activity and rechecks stats to verify they've changed. It also verifies that disks appear in the various files they're supposed to.
+ EOF
+
+plugin: local
+name: disk/smart
+requires:
+ package.name == 'smartmontools'
+ device.category == 'DISK'
+_description: SMART test
+command:
+ cat <<'EOF' | run_templates -t -s 'udev_resource | filter_templates -w "category=DISK"'
+ plugin: shell
+ name: disk/smart_`ls /sys$path/block`
+ requires:
+ device.path == "$path"
+ block_device.`ls /sys$path/block`_state != 'removable'
+ description:
+ This tests the SMART capabilities for $product (Note that this test will not work against hardware RAID)
+ user: root
+ command: disk_smart -b /dev/`ls /sys$path/block | sed 's|!|/|'` -s 130 -t 270
+ EOF
+
+plugin: local
+name: disk/read_performance
+requires:
+ device.category == 'DISK'
+_description: Verify system storage performs at or above baseline performance
+command:
+ cat <<'EOF' | run_templates -t -s 'udev_resource | filter_templates -w "category=DISK"'
+ plugin: shell
+ name: disk/read_performance_`ls /sys$path/block`
+ requires:
+ device.path == "$path"
+ block_device.`ls /sys$path/block`_state != 'removable'
+ description: Disk performance test for $product
+ user: root
+ command: disk_read_performance_test `ls /sys$path/block | sed 's|!|/|'`
+ EOF
+
+plugin: local
+name: disk/storage_devices
+requires:
+ device.category == 'DISK'
+_description: Verify that storage devices, such as Fibre Channel and RAID can be detected and perform under stress.
+command:
+ cat <<'EOF' | run_templates -t -s 'udev_resource | filter_templates -w "category=DISK"'
+ plugin: shell
+ name: disk/storage_device_`ls /sys$path/block`
+ user: root
+ requires:
+ device.path == "$path"
+ block_device.`ls /sys$path/block`_state != 'removable'
+ description: Disk I/O stress test for $product
+ command: storage_test `ls /sys$path/block | sed 's|!|/|'`
+ EOF
+
+plugin: shell
+name: disk/spindown
+requires:
+ device.category == 'DISK'
+ package.name == 'smartmontools'
+user: root
+command: spindown
+_description:
+ Some new hard drives include a feature that parks the drive heads after a short period of inactivity. This is a power-saving feature, but it can have a bad interaction with the operating system that results in the drive constantly parked then activated. This produces excess wear on the drive, potentially leading to early failures.
+
+plugin: user-interact
+name: disk/hdd-parking
+requires: device.category == 'DISK'
+depends: input/accelerometer
+user: root
+command: hdd_parking
+_description:
+ PURPOSE:
+ This test checks that a systems drive protection mechanism works properly.
+ STEPS:
+ 1. Click on Test
+ 2. Move the system under test around, ensuring it is raised and lowered at some point.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
diff --git a/jobs/esata.txt.in b/jobs/esata.txt.in
new file mode 100644
index 0000000..cc6a62b
--- /dev/null
+++ b/jobs/esata.txt.in
@@ -0,0 +1,37 @@
+plugin: user-interact
+name: esata/insert
+command: removable_storage_watcher insert ata_serial_esata
+_description:
+ PURPOSE:
+ This test will check the system can detect the insertion of an eSATA HDD
+ STEPS:
+ 1. Click 'Test' to begin the test. This test will
+ timeout and fail if the insertion has not been detected within 20 seconds.
+ 2. Plug an eSATA HDD into an available eSATA port.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the automatically
+ selected result
+
+plugin: shell
+name: esata/storage-test
+user: root
+depends: esata/insert
+command: removable_storage_test -s 268400000 ata_serial_esata
+_description:
+ This is an automated test which performs read/write operations on an attached
+ eSATA HDD
+
+plugin: user-interact
+name: esata/remove
+depends: esata/storage-test
+command: removable_storage_watcher remove ata_serial_esata
+_description:
+ PURPOSE:
+ This test will check the system can detect the removal of an eSATA HDD
+ STEPS:
+ 1. Click 'Test' to begin the test. This test will timeout and fail if
+ the removal has not been detected within 20 seconds.
+ 2. Remove the previously attached eSATA HDD from the eSATA port.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the automatically
+ selected result
diff --git a/jobs/ethernet.txt.in b/jobs/ethernet.txt.in
new file mode 100644
index 0000000..76b128b
--- /dev/null
+++ b/jobs/ethernet.txt.in
@@ -0,0 +1,115 @@
+plugin: shell
+name: ethernet/detect
+requires:
+ device.category == 'NETWORK' or device.category == 'WIRELESS'
+ package.name == 'module-init-tools'
+ package.name == 'pciutils'
+command: network_device_info
+estimated_duration: 1.2
+_description: Test to detect the available network controllers
+
+plugin: shell
+name: ethernet/info_automated
+requires:
+ package.name == 'network-manager'
+ device.category == 'NETWORK'
+command: udev_resource | filter_templates -w "category=NETWORK"| awk "/path: / { print \$2 }"| xargs -n 1 sh -c "for i in \`ls /sys\$0/net 2>/dev/null\`; do network_info \$i; done"
+estimated_duration: 30.0
+_description:
+ This is an automated test to gather some info on the current state of your network devices. If no devices are found, the test will exit with an error.
+
+plugin: user-interact-verify
+name: ethernet/wired_connection
+command: network_check
+estimated_duration: 1.2
+_description:
+ PURPOSE:
+ This test will check your wired connection
+ STEPS:
+ 1. Click on the Network icon in the top panel
+ 2. Select a network below the "Wired network" section
+ 3. Click "Test" to verify that it's possible to establish a HTTP connection
+ VERIFICATION:
+ Did a notification show and was the connection correctly established?
+
+plugin: local
+name: ethernet/multi_nic
+requires: device.category == 'NETWORK'
+_description: Automated test to walk multiple network cards and test each one in sequence.
+command:
+ cat <<'EOF' | run_templates -s 'udev_resource | filter_templates -w "category=NETWORK" | awk "/path: / { print \$2 }" | xargs -n 1 sh -c "for i in \`ls /sys\$0/net 2>/dev/null\`; do echo \$0 \$i; done"'
+ plugin: shell
+ name: ethernet/multi_nic_$2
+ requires:
+ package.name == 'ethtool'
+ package.name == 'nmap'
+ device.path == "$1"
+ user: root
+ environ: TEST_TARGET_FTP TEST_TARGET_IPERF TEST_USER TEST_PASS
+ command: network test -i $2 -t iperf --fail-threshold 80
+ estimated_duration: 330.0
+ description:
+ Testing for NIC $2
+ EOF
+
+plugin: local
+name: ethernet/ethtool_info
+requires:
+ device.category == 'NETWORK'
+command:
+ cat <<'EOF' | run_templates -s 'udev_resource | filter_templates -w "category=NETWORK" | awk "/path: / { print \$2 }" | xargs -n 1 sh -c "for i in \`ls /sys\$0/net 2>/dev/null\`; do echo \$0 \$i; done"'
+ plugin: shell
+ name: ethernet/ethertool_check_$2
+ requires: device.path == "$1"
+ command: ethtool $2
+ estimated_duration: 330.0
+ _description:
+ This test executes ethtool requests against all the ethernet devices found on the system.
+ EOF
+_description:
+ This is an automated test to gather some info on the current state of your network devices. If no devices are found, the test will exit with an error.
+
+plugin: local
+name: ethernet/maximum_bandwidth
+requires:
+ device.category == 'NETWORK'
+ package.name == 'zenity'
+ package.name == 'iperf'
+command:
+ cat <<'EOF' | run_templates -s 'udev_resource | filter_templates -w "category=NETWORK" | awk "/path: / { print \$2 }" | xargs -n 1 sh -c "for i in \`ls /sys\$0/net 2>/dev/null\`; do echo \$0 \$i; done"'
+ plugin: user-verify
+ user: root
+ name: ethernet/maximum_bandwidth_$2
+ requires: device.path == "$1"
+ command: network test -i $2 -t iperf 2>&1 | cat - <(echo; echo "Verify the result and click OK to decide on the outcome") | zenity --text-info --title 'ethernet max bw $2'
+ estimated_duration: 330.0
+ _description:
+ PURPOSE:
+ User verification of whether the observed transfer throughput is acceptable
+ for the type and maximum speed of each ethernet interface.
+ STEPS:
+ 1. Read the network test summary and confirm that the throughput is acceptable.
+ 2. If needed, click "Test" again to repeat the transfer test.
+ VERIFICATION:
+ Was the reported throughput acceptable for the type and maximum speed of this interface?
+ EOF
+_description:
+ This test executes a maximum throughput test against all the ethernet devices found on the system.
+
+plugin: local
+name: ethernet/stress_performance
+requires:
+ device.category == 'NETWORK'
+_description: Automated test that tests performance of each wired network device under stress.
+command:
+ cat <<'EOF' | run_templates -s 'udev_resource | filter_templates -w "category=NETWORK" | awk "/path: / { print \$2 }" | xargs -n 1 sh -c "for i in \`ls /sys\$0/net 2>/dev/null\`; do echo \$0 \$i; done"'
+ plugin: shell
+ name: ethernet/stress_performance_$2
+ requires: device.path == "$1"
+ user: root
+ command: network test -i $2 -t stress
+ estimated_duration: 330.0
+ _description:
+ This test executes iperf to generate a load on the network device and then performs a ping test to watch for dropped packets and very large latency periods.
+ EOF
+
diff --git a/jobs/expresscard.txt.in b/jobs/expresscard.txt.in
new file mode 100644
index 0000000..de0da64
--- /dev/null
+++ b/jobs/expresscard.txt.in
@@ -0,0 +1,10 @@
+plugin: manual
+name: expresscard/verification
+_description:
+ PURPOSE:
+ This will verify that an ExpressCard slot can detect inserted devices.
+ STEPS:
+ Skip this test if you do not have an ExpressCard slot.
+ 1. Plug an ExpressCard device into the ExpressCard slot
+ VERIFICATION:
+ Was the device correctly detected?
diff --git a/jobs/fingerprint.txt.in b/jobs/fingerprint.txt.in
new file mode 100644
index 0000000..7bf12e6
--- /dev/null
+++ b/jobs/fingerprint.txt.in
@@ -0,0 +1,29 @@
+plugin: manual
+name: fingerprint/login
+_description:
+ PURPOSE:
+ This test will verify that a fingerprint reader will work properly for logging into your system. This test case assumes that there's a testing account from which test cases are run and a personal account that the tester uses to verify the fingerprint reader
+ STEPS:
+ 1. Click on the User indicator on the left side of the panel (your user name).
+ 2. Select "Switch User Account"
+ 3. On the LightDM screen select your username.
+ 4. Use the fingerprint reader to login.
+ 5. Click on the user switcher applet.
+ 6. Select the testing account to continue running tests.
+ VERIFICATION:
+ Did the authentication procedure work correctly?
+
+plugin: manual
+name: fingerprint/unlock
+_description:
+ PURPOSE:
+ This test will verify that a fingerprint reader can be used to unlock a locked system.
+ STEPS:
+ 1. Click on the Session indicator (Cog icon on the Left side of the panel) .
+ 2. Select 'Lock screen'.
+ 3. Press any key or move the mouse.
+ 4. A window should appear that provides the ability to unlock either typing your password or using fingerprint authentication.
+ 5. Use the fingerprint reader to unlock.
+ 6. Your screen should be unlocked.
+ VERIFICATION:
+ Did the authentication procedure work correctly?
diff --git a/jobs/firewire.txt.in b/jobs/firewire.txt.in
new file mode 100644
index 0000000..343ff6a
--- /dev/null
+++ b/jobs/firewire.txt.in
@@ -0,0 +1,38 @@
+plugin: user-interact
+name: firewire/insert
+command: removable_storage_watcher insert firewire
+_description:
+ PURPOSE:
+ This test will check the system can detect the insertion of a FireWire HDD
+ STEPS:
+ 1. Click 'Test' to begin the test. This test will
+ timeout and fail if the insertion has not been detected within 20 seconds.
+ 2. Plug a FireWire HDD into an available FireWire port.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the automatically
+ selected result
+
+plugin: shell
+name: firewire/storage-test
+user: root
+depends: firewire/insert
+command: removable_storage_test -s 268400000 firewire
+_description:
+ This is an automated test which performs read/write operations on an attached
+ FireWire HDD
+
+plugin: user-interact
+name: firewire/remove
+depends: firewire/storage-test
+command: removable_storage_watcher remove firewire
+_description:
+ PURPOSE:
+ This test will check the system can detect the removal of a FireWire HDD
+ STEPS:
+ 1. Click 'Test' to begin the test. This test will timeout and fail if
+ the removal has not been detected within 20 seconds.
+ 2. Remove the previously attached FireWire HDD from the FireWire port.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the automatically
+ selected result
+
diff --git a/jobs/firmware.txt.in b/jobs/firmware.txt.in
new file mode 100644
index 0000000..555a229
--- /dev/null
+++ b/jobs/firmware.txt.in
@@ -0,0 +1,29 @@
+plugin: local
+name: firmware/fwts
+requires: package.name == 'fwts'
+_description: Automated tests for firmware using Firmware Test Suite.
+command:
+ cat << 'EOF' | run_templates -s 'fwts_test --list'
+ estimated_duration: 1.2
+ plugin: shell
+ name: firmware/fwts_$1
+ requires: package.name == 'fwts'
+ user: root
+ command: fwts_test -t $1 -l $CHECKBOX_DATA/fwts_$1.log
+ _description: Run $1 test from Firmware Test Suite.
+ EOF
+
+plugin: local
+name: firmware/fwts_logs
+requires: package.name == 'fwts'
+_description: Automated tests for firmware using Firmware Test Suite.
+command:
+ cat << 'EOF' | run_templates -s 'fwts_test --list'
+ estimated_duration: 1.2
+ plugin: attachment
+ name: firmware/fwts_$1.log
+ requires: package.name == 'fwts'
+ user: root
+ command: [[ -e ${CHECKBOX_DATA}/fwts_$1.log ]] && cat ${CHECKBOX_DATA}/fwts_$1.log
+ _description: Attach log for FWTS $1 test.
+ EOF
diff --git a/jobs/floppy.txt.in b/jobs/floppy.txt.in
new file mode 100644
index 0000000..d2fc577
--- /dev/null
+++ b/jobs/floppy.txt.in
@@ -0,0 +1,13 @@
+plugin: local
+name: floppy/check
+requires: device.driver == 'floppy'
+_description: Floppy test
+command:
+ cat <<'EOF' | run_templates -t -s 'udev_resource | filter_templates -w "driver=floppy"'
+ plugin: shell
+ name: floppy/check_`ls /sys$path/driver/*/*/*/block`
+ requires: device.path == "$path"
+ description: Floppy test for $product
+ user: root
+ command: floppy_test /dev/`ls /sys$path/driver/*/*/*/block`
+ EOF
diff --git a/jobs/graphics.txt.in b/jobs/graphics.txt.in
new file mode 100644
index 0000000..3aab560
--- /dev/null
+++ b/jobs/graphics.txt.in
@@ -0,0 +1,291 @@
+plugin: shell
+name: graphics/driver_version
+command: graphics_driver
+estimated_duration: 0.500
+_description: Parses Xorg.0.Log and discovers the running X driver and version
+
+plugin: shell
+name: graphics/xorg-version
+requires: package.name == "x11-utils"
+command: xdpyinfo | grep "^X.Org version" | cut -d ':' -f 2 | tr -d ' '
+estimated_duration: 0.018
+_description: Test to output the Xorg version
+
+plugin: manual
+name: graphics/resolution-change
+depends: graphics/xorg-version
+_description:
+ PURPOSE:
+ This test will verify that the GUI is usable after manually changing resolution
+ STEPS:
+ 1. Open the Displays application
+ 2. Select a new resolution from the dropdown list
+ 3. Click on Apply
+ 4. Select the original resolution from the dropdown list
+ 5. Click on Apply
+ VERIFICATION:
+ Did the resolution change as expected?
+
+plugin: shell
+name: graphics/xorg-process
+requires:
+ package.name == 'xorg'
+ package.name == 'procps'
+command: pgrep -f '/usr/bin/X' >/dev/null
+estimated_duration: 0.100
+_description: Test that the X process is running.
+
+plugin: shell
+name: graphics/xorg-failsafe
+requires: package.name == 'xorg'
+command: ! test -e /var/log/Xorg.failsafe.log
+estimated_duration: 0.030
+_description: Test that the X is not running in failsafe mode.
+
+plugin: user-verify
+name: graphics/resolution
+requires:
+ device.category == 'VIDEO'
+command: resolution_test
+estimated_duration: 0.750
+_description:
+ PURPOSE:
+ This test will verify the default display resolution
+ STEPS:
+ 1. This display is using the following resolution:
+ INFO:
+ $output
+ VERIFICATION:
+ Is this acceptable for your display?
+
+plugin: user-verify
+name: graphics/screen-resolution
+requires:
+ device.category == 'VIDEO'
+ package.name == 'qmlscene'
+command: timeout 5 qmlscene --transparent --fullscreen $CHECKBOX_SHARE/scripts/resolution_test.qml
+estimated_duration: 10
+_description:
+ PURPOSE:
+ This test will verify the default display resolution
+ STEPS:
+ 1. Click on Test to display the screen resolution overlay for 5 seconds.
+ VERIFICATION:
+ Is this acceptable for your display?
+
+plugin: shell
+name: graphics/minimum_resolution
+requires:
+ device.category == 'VIDEO'
+command: resolution_test --horizontal 800 --vertical 600
+estimated_duration: 0.331
+_description:
+ Ensure the current resolution meets or exceeds the recommended minimum
+ resolution (800x600). See here for details:
+ .
+ https://help.ubuntu.com/community/Installation/SystemRequirements
+
+plugin: user-verify
+name: graphics/maximum_resolution
+requires:
+ device.category == 'VIDEO'
+ package.name == 'zenity'
+command: zenity --info --text "Maximum resolution: $(xrandr -q |grep -A 1 "connected\( primary\)* [0-9]" |tail -1 |awk '{print $1}')"
+estimated_duration: 10
+_description:
+ PURPOSE:
+ This test will verify the display is operating at its maximum supported resolution
+ STEPS:
+ 1. Consult the system's specifications and locate the screen's maximum supported resolution.
+ 2. Click on Test to display the maximum resolution that can be used by Ubuntu on the current display.
+ VERIFICATION:
+ Is this the display's maximum resolution?
+
+name: graphics/modes
+plugin: shell
+command: graphics_modes_info
+estimated_duration: 0.250
+_description: Collect info on graphics modes (screen resolution and refresh rate)
+
+name: graphics/color_depth
+plugin: shell
+command: color_depth_info
+estimated_duration: 0.150
+_description: Collect info on color depth and pixel format.
+
+name: graphics/fresh_rate
+plugin: shell
+command: fresh_rate_info
+_description: Collect info on fresh rate.
+
+name: graphics/graphic_memory
+plugin: shell
+command: graphic_memory_info
+_description: Collect info on graphic memory.
+
+plugin: user-verify
+name: graphics/display
+requires:
+ package.name == 'xorg'
+ package.name == 'gir1.2-gst-plugins-base-0.10' or package.name == 'gir1.2-gst-plugins-base-1.0'
+command: gst_pipeline_test -t 2 'videotestsrc ! videoconvert ! autovideosink' || gst_pipeline_test -t 2 'videotestsrc ! ffmpegcolorspace ! autovideosink'
+_description:
+ PURPOSE:
+ This test will test the default display
+ STEPS:
+ 1. Click "Test" to display a video test.
+ VERIFICATION:
+ Do you see color bars and static?
+
+plugin: shell
+name: graphics/VESA_drivers_not_in_use
+command: cat /var/log/Xorg.0.log | perl -e '$a=0;while(<>){$a++ if /Loading.*vesa_drv\.so/;$a-- if /Unloading.*vesa/&&$a}exit 1 if $a'
+estimated_duration: 0.011
+_description: Check that VESA drivers are not in use
+
+plugin: user-verify
+name: graphics/cycle_resolution
+requires: package.name == 'xorg'
+depends: graphics/VESA_drivers_not_in_use
+command: xrandr_cycle --screenshot-dir $CHECKBOX_DATA
+estimated_duration: 250.000
+_description:
+ PURPOSE:
+ This test cycles through the detected video modes
+ STEPS:
+ 1. Click "Test" to start cycling through the video modes
+ VERIFICATION:
+ Did the screen appear to be working for each mode?
+
+plugin: user-verify
+name: graphics/rotation
+depends: graphics/xorg-version
+command: rotation_test
+estimated_duration: 20.000
+_description:
+ PURPOSE:
+ This test will test display rotation
+ STEPS:
+ 1. Click "Test" to test display rotation. The display will be rotated every 4 seconds.
+ 2. Check if all rotations (normal right inverted left) took place without permanent screen corruption
+ VERIFICATION:
+ Did the display rotation take place without without permanent screen corruption?
+
+plugin: shell
+name: graphics/compiz_check
+requires: package.name == 'nux-tools'
+command: ! /usr/lib/nux/unity_support_test -c -p | ansi_parser | grep ":\(\s\+\)no$"
+estimated_duration: 0.130
+_description: Check that hardware is able to run compiz
+
+plugin: shell
+name: graphics/unity-support
+requires: package.name == 'nux-tools'
+command: ! /usr/lib/nux/unity_support_test -p | ansi_parser | grep ":\(\s\+\)no"
+estimated_duration: 0.131
+_description: Check that hardware is able to run Unity 3D
+
+plugin: user-verify
+name: graphics/glxgears
+requires: package.name == 'mesa-utils'
+command: glxgears; true
+_description:
+ PURPOSE:
+ This test tests the basic 3D capabilities of your video card
+ STEPS:
+ 1. Click "Test" to execute an OpenGL demo. Press ESC at any time to close.
+ 2. Verify that the animation is not jerky or slow.
+ VERIFICATION:
+ 1. Did the 3d animation appear?
+ 2. Was the animation free from slowness/jerkiness?
+
+plugin: shell
+name: graphics/3d_window_open_close
+requires: package.name == 'mesa-utils'
+command: window_test -t open-close -i 10
+estimated_duration: 60.525
+_description: Open and close a 3D window multiple times
+
+plugin: shell
+name: graphics/3d_window_suspend_resume
+requires: package.name == 'mesa-utils'
+command: window_test -t suspend-resume -i 10
+estimated_duration: 121.00
+_description: Open, suspend resume and close a 3D window multiple times
+
+plugin: shell
+name: graphics/multi_3d_windows_open_close
+requires: package.name == 'mesa-utils'
+command: window_test -t open-close-multi -i 10 -w 4
+estimated_duration: 60.000
+_description: Open and close 4 3D windows multiple times
+
+plugin: shell
+name: graphics/3d_window_move
+requires: package.name == 'mesa-utils'
+command: window_test -t move
+estimated_duration: 50.000
+_description: Move a 3D window around the screen
+
+plugin: shell
+name: graphics/screenshot
+requires: package.name == 'fswebcam'
+command: set -o pipefail; camera_test still --device=/dev/external_webcam -f ${CHECKBOX_DATA}/screenshot.jpg -q 2>&1 | ansi_parser
+_description:
+ PURPOSE:
+ Take a screengrab of the current screen (logged on Unity desktop)
+ STEPS:
+ 1. Take picture using USB webcam
+ VERIFICATION:
+ Review attachment manually later
+
+plugin: attachment
+name: screenshot.jpg
+depends: graphics/screenshot
+command: base64 ${CHECKBOX_DATA}/screenshot.jpg
+_description: Attaches the screenshot captured in graphics/screenshot.
+
+plugin: shell
+name: graphics/screenshot_fullscreen_video
+requires: package.name == 'fswebcam'
+command:
+ [ -f ${CHECKBOX_SHARE}/data/video/Ogg_Theora_Video.ogv ] || { echo "Video file not found"; exit 1; }
+ dbus-launch gsettings set org.gnome.totem repeat true
+ totem --fullscreen ${CHECKBOX_SHARE}/data/video/Ogg_Theora_Video.ogv 2>/dev/null &
+ set -o pipefail
+ sleep 15 && camera_test still --device=/dev/external_webcam -f ${CHECKBOX_DATA}/screenshot_fullscreen_video.jpg -q 2>&1 | ansi_parser
+ sleep 5 && totem --quit 2>/dev/null
+ dbus-launch gsettings set org.gnome.totem repeat false
+_description:
+ PURPOSE:
+ Take a screengrab of the current screen during fullscreen video playback
+ STEPS:
+ 1. Start a fullscreen video playback
+ 2. Take picture using USB webcam after a few seconds
+ VERIFICATION:
+ Review attachment manually later
+
+plugin: attachment
+name: screenshot_fullscreen_video.jpg
+depends: graphics/screenshot_fullscreen_video
+command: base64 ${CHECKBOX_DATA}/screenshot_fullscreen_video.jpg
+_description: Attaches the screenshot captured in graphics/screenshot_fullscreen_video.
+
+plugin: shell
+name: graphics/screenshot_opencv_validation
+requires: package.name == 'python-opencv'
+environ: EXTERNAL_WEBCAM_DEVICE
+command:
+ screenshot_validation \
+ ${CHECKBOX_SHARE}/data/images/logo_Ubuntu_stacked_black.png \
+ --device=${EXTERNAL_WEBCAM_DEVICE:-/dev/external_webcam} \
+ -o ${CHECKBOX_DATA}/screenshot_opencv_validation.jpg
+_description:
+ Take a screengrab of the screen displaying a black and white Ubuntu logo.
+ Check that the screenshot matches the original file using OpenCV ORB detection.
+
+plugin: attachment
+name: screenshot_opencv_validation.jpg
+depends: graphics/screenshot_opencv_validation
+command: base64 ${CHECKBOX_DATA}/screenshot_opencv_validation.jpg
+_description: Attaches the screenshot captured in graphics/screenshot_opencv_validation.
diff --git a/jobs/hibernate.txt.in b/jobs/hibernate.txt.in
new file mode 100644
index 0000000..9d7749e
--- /dev/null
+++ b/jobs/hibernate.txt.in
@@ -0,0 +1,38 @@
+plugin: user-interact-verify
+name: power-management/hibernate_advanced
+requires:
+ sleep.disk == 'supported'
+ rtc.state == 'supported'
+environ: CHECKBOX_DATA
+user: root
+command:
+ if type -P fwts >/dev/null; then
+ echo "Calling fwts"
+ fwts_test -l $CHECKBOX_DATA/hibernate-single -f none -s s4 --s4-device-check --s4-device-check-delay=45 --s4-sleep-delay=120
+ else
+ echo "Calling sleep_test"
+ sleep_test -s disk -w 120
+ fi
+estimated_duration: 300.00
+_description:
+ PURPOSE:
+ This test will check to make sure your system can successfully hibernate (if supported)
+ STEPS:
+ 1. Click on Test
+ 2. The system will hibernate and should wake itself within 5 minutes
+ 3. If your system does not wake itself after 5 minutes, please press the power button to wake the system manually
+ 4. If the system fails to resume from hibernate, please restart System Testing and mark this test as Failed
+ VERIFICATION:
+ Did the system successfully hibernate and did it work properly after waking up?
+
+plugin: shell
+name: power-management/hibernate-single-log-check
+command: [ -e $CHECKBOX_DATA/hibernate-single.log ] && sleep_test_log_check -v s4 $CHECKBOX_DATA/hibernate-single.log
+_description:
+ Automated check of the hibernate log for errors discovered by fwts
+
+plugin: attachment
+name: power-management/hibernate-single-log-attach
+command: [ -e $CHECKBOX_DATA/hibernate-single.log ] && cat $CHECKBOX_DATA/hibernate-single.log
+estimated_duration: 0.5
+description: attaches log from single hibernate/resume test to results
diff --git a/jobs/info.txt.in b/jobs/info.txt.in
new file mode 100644
index 0000000..f3a7ae0
--- /dev/null
+++ b/jobs/info.txt.in
@@ -0,0 +1,225 @@
+name: codecs_attachment
+plugin: attachment
+requires: device.driver == 'snd_hda_intel'
+command: cat /proc/asound/card*/codec#*
+estimated_duration: 0.023
+_description: Attaches a report of installed codecs for Intel HDA
+
+name: cpuinfo_attachment
+plugin: attachment
+command: cat /proc/cpuinfo
+estimated_duration: 0.006
+_description: Attaches a report of CPU information
+
+name: dmesg_attachment
+plugin: attachment
+command: cat /var/log/dmesg | ansi_parser
+estimated_duration: 0.640
+_description: Attaches a copy of /var/log/dmesg to the test results
+
+name: dmi_attachment
+plugin: attachment
+command: [ -d /sys/class/dmi/id/ ] && (grep -r . /sys/class/dmi/id/ 2>/dev/null || true) || false
+estimated_duration: 0.044
+_description: Attaches info on DMI
+
+name: dmidecode_attachment
+plugin: attachment
+requires: package.name == 'dmidecode'
+user: root
+command: dmidecode | iconv -t 'utf-8' -c
+estimated_duration: 0.030
+_description: Attaches dmidecode output
+
+name: lshw_attachment
+plugin: attachment
+requires: package.name == 'lshw'
+user: root
+command: lshw | iconv -t 'utf-8' -c
+_description: Attaches lshw output
+
+name: efi_attachment
+plugin: attachment
+user: root
+command: [ -d /sys/firmware/efi ] && grep -m 1 -o --color=never 'EFI v.*' /var/log/kern.log* || true
+estimated_duration: 0.5
+_description: Attaches the firmware version
+
+name: lspci_attachment
+plugin: attachment
+command: lspci -vvnn | iconv -t 'utf-8' -c
+estimated_duration: 0.042
+_description: Attaches very verbose lspci output.
+
+name: lspci_network_attachment
+plugin: attachment
+command: lspci -vvnnQ | iconv -t 'utf-8' -c
+estimated_duration: 1.322
+_description: Attaches very verbose lspci output (with central database Query).
+
+name: lsusb_attachment
+plugin: attachment
+requires: package.name == 'usbutils'
+user: root
+command: lsusb -vv | iconv -t 'utf-8' -c
+estimated_duration: 0.700
+_description: List USB devices
+
+name: meminfo_attachment
+plugin: attachment
+command: cat /proc/meminfo
+estimated_duration: 0.043
+
+name: modprobe_attachment
+plugin: attachment
+command: find /etc/modprobe.* -name \*.conf | xargs cat
+estimated_duration: 0.015
+_description: Attaches the contents of the various modprobe conf files.
+
+name: modules_attachment
+plugin: attachment
+command: cat /etc/modules
+estimated_duration: 0.004
+_description: Attaches the contents of the /etc/modules file.
+
+name: sysctl_attachment
+plugin: attachment
+command: find /etc/sysctl.* -name \*.conf | xargs cat
+estimated_duration: 0.014
+_description: attaches the contents of various sysctl config files.
+
+name: sysfs_attachment
+plugin: attachment
+_description: Attaches a report of sysfs attributes.
+command:
+ for i in `udevadm info --export-db | sed -n 's/^P: //p'`; do
+ echo "P: $i"
+ udevadm info --attribute-walk --path=/sys$i 2>/dev/null | sed -n 's/ ATTR{\(.*\)}=="\(.*\)"/A: \1=\2/p'
+ echo
+ done
+estimated_duration: 6.344
+
+name: udev_attachment
+plugin: attachment
+command: udevadm info --export-db | xml_sanitize
+estimated_duration: 1.465
+_description: Attaches a dump of the udev database showing system hardware information.
+
+name: udev_resource_attachment
+plugin: attachment
+command: udev_resource
+estimated_duration: 0.432
+_description: Attaches the output of udev_resource, for debugging purposes
+
+name: gcov_attachment
+plugin: attachment
+requires: package.name == 'lcov'
+user: root
+command: gcov_tarball
+_description: Attaches a tarball of gcov data if present.
+
+name: lsmod_attachment
+plugin: attachment
+command: lsmod_info
+estimated_duration: 0.5
+_description: Attaches a list of the currently running kernel modules.
+
+plugin: attachment
+name: acpi_sleep_attachment
+command: [ -e /proc/acpi/sleep ] && cat /proc/acpi/sleep
+estimated_duration: 0.5
+_description: Attaches the contents of /proc/acpi/sleep if it exists.
+
+plugin: shell
+name: info/bootchart
+_description: Bootchart information.
+requires: package.name == 'bootchart' or package.name == 'pybootchartgui'
+user: root
+command:
+ process_wait -u root bootchart collector ureadahead; \
+ [ `ls /var/log/bootchart/*.tgz 2>/dev/null | wc -l` -lt 2 ] && reboot && sleep 100
+
+plugin: local
+name: info/hdparm
+_description: SATA/IDE device information.
+requires:
+ package.name == 'hdparm'
+ device.category == 'DISK'
+command:
+ cat <<'EOF' | run_templates -t -s 'udev_resource | filter_templates -w "category=DISK"'
+ plugin: attachment
+ name: info/hdparm_`ls /sys$path/block`.txt
+ requires:
+ device.path == "$path"
+ block_device.`ls /sys$path/block`_state != 'removable'
+ user: root
+ command: hdparm -I /dev/`ls /sys$path/block`
+ EOF
+
+plugin: attachment
+name: bootchart.png
+depends: info/bootchart
+requires: package.name == 'pybootchartgui'
+_description: Attaches the bootchart png file for bootchart runs
+command:
+ file=`ls /var/log/bootchart/*.png 2>/dev/null | tail -1`; \
+ [ -e "$file" ] && cat "$file"
+
+plugin: attachment
+name: bootchart.tgz
+depends: info/bootchart
+_description: Attaches the bootchart log for bootchart test runs.
+command:
+ file=`ls /var/log/bootchart/*.tgz 2>/dev/null | tail -1`; \
+ [ -e "$file" ] && cat "$file"
+
+plugin: attachment
+name: installer_bootchart.tgz
+command: [ -e /var/log/installer/bootchart.tgz ] && cat /var/log/installer/bootchart.tgz
+_description: installs the installer bootchart tarball if it exists.
+
+plugin: attachment
+name: installer_debug.gz
+command: [ -e /var/log/installer/debug ] && gzip -9 -c /var/log/installer/debug
+estimated_duration: 0.1
+_description: Attaches the installer debug log if it exists.
+
+plugin: attachment
+name: info/touchpad_driver
+requires: device.category == 'TOUCHPAD'
+command: touchpad_driver_info
+estimated_duration: 0.384
+_description:
+ Returns the name, driver name and driver version of any touchpad discovered on
+ the system.
+
+plugin: attachment
+name: info/audio_device_driver
+requires:
+ package.name == 'pulseaudio-utils'
+ package.name == 'module-init-tools'
+ device.category == 'AUDIO'
+command: audio_driver_info
+estimated_duration: 0.177
+_description: Lists the device driver and version for all audio devices.
+
+plugin: attachment
+name: info/network_devices
+requires:
+ device.category == 'NETWORK' or device.category == 'WIRELESS'
+ package.name == 'module-init-tools'
+ package.name == 'pciutils'
+command: network_device_info
+estimated_duration: 0.550
+_description: Provides information about network devices
+
+plugin: attachment
+name: info/xrandr
+command: xrandr -q --verbose
+_description: Provides information about displays attached to the system
+
+plugin: attachment
+name: info/disk_partitions
+user: root
+command: parted -l
+_description: Attaches information about disk partitions
diff --git a/jobs/input.txt.in b/jobs/input.txt.in
new file mode 100644
index 0000000..b6972c2
--- /dev/null
+++ b/jobs/input.txt.in
@@ -0,0 +1,67 @@
+plugin: local
+name: input/pointing
+requires:
+ device.category == 'MOUSE' or device.category == 'TOUCHPAD' or device.category == 'TOUCHSCREEN'
+_description: Pointing device tests.
+command:
+ cat <<'EOF' | run_templates -t -s 'udev_resource | filter_templates -w "category=MOUSE" -w "category=TOUCHPAD" -w "category=TOUCHSCREEN"'
+ plugin: manual
+ name: input/pointing_`echo "${product}_${category}" | sed 's/ /_/g;s/[^_a-zA-Z0-9-]//g'`_`basename $path`
+ requires: device.path == "$path"
+ description:
+ PURPOSE:
+ This will test your $product device
+ STEPS:
+ 1. Move the cursor with your $product.
+ VERIFICATION:
+ Did the cursor move?
+ EOF
+
+plugin: manual
+name: input/mouse
+_description:
+ PURPOSE:
+ This test will test your pointing device
+ STEPS:
+ 1. Move the cursor using the pointing device or touch the screen.
+ 2. Perform some single/double/right click operations.
+ VERIFICATION:
+ Did the pointing device work as expected?
+
+plugin: user-interact-verify
+name: input/keyboard
+command: keyboard_test
+requires: device.category == 'KEYBOARD'
+_description:
+ PURPOSE:
+ This test will test your keyboard
+ STEPS:
+ 1. Click on Test
+ 2. On the open text area, use your keyboard to type something
+ VERIFICATION:
+ Is your keyboard working properly?
+
+plugin: manual
+name: input/accelerometer_verify
+_description:
+ PURPOSE:
+ Manual detection of accelerometer.
+ STEPS:
+ 1. Look at the specifications for your system.
+ VERIFICATION:
+ Is this system supposed to have an accelerometer?
+
+plugin: user-interact
+name: input/accelerometer
+user: root
+depends: input/accelerometer_verify
+command: accelerometer_test -m
+_description:
+ PURPOSE:
+ This test will test your accelerometer to see if it is detected
+ and operational as a joystick device.
+ STEPS:
+ 1. Click on Test
+ 2. Tilt your hardware in the directions onscreen until the axis threshold is met.
+ VERIFICATION:
+ Is your accelerometer properly detected? Can you use the device?
diff --git a/jobs/install.txt.in b/jobs/install.txt.in
new file mode 100644
index 0000000..01fa0f8
--- /dev/null
+++ b/jobs/install.txt.in
@@ -0,0 +1,9 @@
+plugin: shell
+name: install/apt-get-gets-updates
+requires: package.name == 'apt'
+user: root
+command: apt-get -d -y --force-yes dist-upgrade
+_description:
+ Tests to see that apt can access repositories and get updates (does
+ not install updates). This is done to confirm that you could recover
+ from an incomplete or broken update.
diff --git a/jobs/keys.txt.in b/jobs/keys.txt.in
new file mode 100644
index 0000000..e8585c1
--- /dev/null
+++ b/jobs/keys.txt.in
@@ -0,0 +1,222 @@
+plugin: user-interact
+name: keys/lock-screen
+requires:
+ device.category == 'KEYBOARD'
+command: lock_screen_watcher
+_description:
+ PURPOSE:
+ This test will test the screen lock key
+ STEPS:
+ 1. Press the Test button to begin this test. If there is no such key, please skip this test.
+ 2. Press the lock screen button on the keyboard in 30 seconds.
+ 3. If the screen is locked, move the mouse or press any key to activate the prompt.
+ 4. Input the password to unlock the screen.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: manual
+name: keys/brightness
+requires: dmi.product in ['Notebook','Laptop','Portable']
+_description:
+ PURPOSE:
+ This test will test the brightness key
+ STEPS:
+ 1. Press the brightness buttons on the keyboard
+ VERIFICATION:
+ Did the brightness change following to your key presses?
+
+plugin: user-interact-verify
+name: keys/volume
+requires:
+ device.category == 'KEYBOARD'
+user: root
+command: key_test -s '0xe02e,0xe0ae:Volume Down' '0xe030,0xe0b0:Volume Up'
+_description:
+ PURPOSE:
+ This test will test the volume keys of your keyboard
+ STEPS:
+ Skip this test if your computer has no volume keys.
+ 1. Click test to open a window on which to test the volume keys.
+ 2. If all the keys work, the test will be marked as passed.
+ VERIFICATION:
+ Do the keys work as expected?
+
+plugin: user-interact-verify
+name: keys/mute
+requires:
+ device.category == 'KEYBOARD'
+user: root
+command: key_test -s '0xe020,0xe0a0:Mute'
+_description:
+ PURPOSE:
+ This test will test the mute key of your keyboard
+ STEPS:
+ 1. Click test to open a window on which to test the mute key.
+ 2. If the key works, the test will pass and the window will close.
+ VERIFICATION:
+ Does the mute key work as expected?
+
+plugin: manual
+name: keys/sleep
+requires:
+ device.category == 'KEYBOARD'
+depends: suspend/suspend_advanced
+_description:
+ PURPOSE:
+ This test will test the sleep key
+ STEPS:
+ 1. Press the sleep key on the keyboard
+ 2. Wake your system up by pressing the power button
+ VERIFICATION:
+ Did the system go to sleep after pressing the sleep key?
+
+plugin: user-interact-verify
+name: keys/battery-info
+requires: dmi.product in ['Notebook','Laptop','Portable']
+user: root
+command: key_test -s '0xe071,0xef1:Battery Info'
+_description:
+ PURPOSE:
+ This test will test the battery information key
+ STEPS:
+ Skip this test if you do not have a Battery Button.
+ 1. Click Test to begin
+ 2. Press the Battery Info button (or combo like Fn+F3)
+ 3: Close the Power Statistics tool if it opens
+ VERIFICATION:
+ Did the Battery Info key work as expected?
+
+plugin: manual
+name: keys/wireless
+requires: dmi.product in ['Notebook','Laptop','Portable']
+_description:
+ PURPOSE:
+ This test will test the wireless key
+ STEPS:
+ 1. Press the wireless key on the keyboard
+ 2. Check that the wifi LED turns off or changes color
+ 3. Check that wireless is disabled
+ 4. Press the same key again
+ 5. Check that the wifi LED turns on or changes color
+ 6. Check that wireless is enabled
+ VERIFICATION:
+ Did the wireless turn off on the first press and on again on the second?
+ (NOTE: the LED functionality will be reviewed in a following test. Please
+ only consider the functionality of the wifi itself here.)
+
+plugin: user-interact
+name: keys/media-control
+requires:
+ device.category == 'KEYBOARD'
+user: root
+command: key_test -s 0xe010,0xe090:Previous 0xe024,0xe0a4:Stop 0xe019,0xe099:Next 0xe022,0xe0a2:Play
+_description:
+ PURPOSE:
+ This test will test the media keys of your keyboard
+ STEPS:
+ Skip this test if your computer has no media keys.
+ 1. Click test to open a window on which to test the media keys.
+ 2. If all the keys work, the test will be marked as passed.
+ VERIFICATION:
+ Do the keys work as expected?
+
+plugin: user-interact
+name: keys/super
+requires:
+ device.category == 'KEYBOARD'
+user: root
+command: key_test -s '0xe05b,0xe0db:Left Super Key'
+_description:
+ PURPOSE:
+ This test will test the super key of your keyboard
+ STEPS:
+ 1. Click test to open a window on which to test the super key.
+ 2. If the key works, the test will pass and the window will close.
+ VERIFICATION:
+ Does the super key work as expected?
+
+plugin: manual
+name: keys/video-out
+requires: dmi.product in ['Notebook','Laptop','Portable']
+_description:
+ PURPOSE:
+ Validate that the External Video hot key is working as expected
+ STEPS:
+ 1. Plug in an external monitor
+ 2. Press the display hot key to change the monitors configuration
+ VERIFICATION:
+ Check that the video signal can be mirrored, extended, displayed on external or onboard only.
+
+plugin: manual
+name: keys/touchpad
+requires: dmi.product in ['Notebook','Laptop','Portable']
+_description:
+ PURPOSE:
+ Verify touchpad hotkey toggles touchpad functionality on and off
+ STEPS:
+ 1. Verify the touchpad is functional
+ 2. Tap the touchpad toggle hotkey
+ 3. Tap the touchpad toggle hotkey again
+ VERIFICATION:
+ Verify the touchpad has been disabled and re-enabled.
+
+plugin: manual
+name: keys/keyboard-backlight
+requires: dmi.product in ['Notebook','Laptop','Portable']
+_description:
+ PURPOSE:
+ Verify that the keyboard backlight toggle key works properly
+ STEPS:
+ 1. Tap the keyboard backlight key
+ 2. Confirm that the keyboard backlight was toggled to the opposite state
+ 3. Tap the keyboard backlight key again
+ 4. Confirm that the keyboard backlight was toggled to the opposite state
+ VERIFICATION:
+ Did the keyboard backlight state change on each press?
+
+plugin: user-interact-verify
+name: keys/microphone-mute
+requires:
+ device.category == 'AUDIO'
+ device.category == 'KEYBOARD'
+ package.name == 'alsa-base'
+ package.name == 'pulseaudio-utils'
+ package.name == 'gstreamer1.0-plugins-good' or package.name == 'gstreamer0.10-plugins-good'
+command: audio_settings store --file=$CHECKBOX_DATA/pulseaudio_settings; audio_settings set --device=pci --volume=50; alsa_record_playback; EXIT_CODE=$?; audio_settings restore --file=$CHECKBOX_DATA/pulseaudio_settings; exit $EXIT_CODE
+_description:
+ PURPOSE:
+ This test will test the mute key for your microphone
+ STEPS:
+ 1. Click "Test" then speak: "Imagination is more important than knowledge" (or anything else) into your microphone.
+ 2. While you are speaking, please press the mute key for the microphone to mute it and press it again to unmute.
+ 3. After a few seconds, your speech will be played back to you. If the key works, your speech should be interrupted for a few seconds.
+ VERIFICATION:
+ Does the microphone mute key work as expected?
+
+plugin: manual
+name: keys/hibernate
+requires: dmi.product in ['Notebook','Laptop','Portable']
+depends: power-management/hibernate_advanced
+_description:
+ PURPOSE:
+ This test will test the hibernate key
+ STEPS:
+ 1. Press the hibernate key on the keyboard
+ 2. Check that the system hibernated correctly
+ 3. Wake your system after hibernating by pressing the power button
+ VERIFICATION:
+ Did the system go to hibernate after pressing the hibernate key?
+
+plugin: manual
+name: keys/keyboard-overhead-light
+requires: dmi.product in ['Notebook','Laptop','Portable']
+_description:
+ PURPOSE:
+ This test will test the keyboard overhead light key or switch
+ STEPS:
+ 1. Press the keyboard overhead light key or swtich on the light
+ 2. Check the the keyboard overhead light turn on correctly
+ 3. Press the key or switch again to toggle off the light
+ VERIFICATION:
+ Did the keyboard overhead light key or switch turns on and off the light?
diff --git a/jobs/led.txt.in b/jobs/led.txt.in
new file mode 100644
index 0000000..1fb0d84
--- /dev/null
+++ b/jobs/led.txt.in
@@ -0,0 +1,197 @@
+plugin: manual
+name: led/power
+_description:
+ PURPOSE:
+ Power LED verification
+ STEPS:
+ 1. Power LED should be on while device is switched on
+ VERIFICATION:
+ Does the power LED light as expected?
+
+plugin: manual
+name: led/power-blink-suspend
+depends: suspend/suspend_advanced
+_description:
+ PURPOSE:
+ Power LED verification
+ STEPS:
+ 1. The Power LED should blink or change color while the system is suspended
+ VERIFICATION:
+ Did the Power LED blink or change color while the system was suspended for the previous suspend test?
+
+plugin: manual
+name: led/suspend
+_description:
+ PURPOSE:
+ Suspend LED verification.
+ STEPS:
+ Skip this test if your system does not have a dedicated Suspend LED.
+ 1. The Suspend LED should blink or change color while the system is
+ suspended
+ VERIFICATION
+ Did the Suspend LED blink or change color while the system was suspended?
+
+plugin: manual
+name: led/battery-charging
+_description:
+ PURPOSE:
+ Validate that the battery light shows charging status
+ STEPS:
+ 1. Let system run on battery for a while
+ 2. Plug in AC plug
+ VERIFICATION:
+ Did the battery indicator LED turn orange?
+
+plugin: manual
+name: led/battery-charged
+_description:
+ PURPOSE:
+ Validate that the battery LED properly displays charged status
+ STEPS:
+ 1. Let system run on battery for a short time
+ 2. Plug in AC
+ 3. Let system run on AC
+ VERIFICATION:
+ Does the orange battery LED shut off when system is fully charged?
+
+plugin: manual
+name: led/battery-low
+_description:
+ PURPOSE:
+ Validate that the battery LED indicated low power
+ STEPS:
+ 1. Let system run on battery for several hours
+ 2. Monitor battery LED carefully
+ VERIFICATION:
+ Does the LED light orange when battery is low?
+
+plugin: user-interact-verify
+name: led/hdd
+command: led_hdd_test
+_description:
+ PURPOSE:
+ HDD LED verification
+ STEPS:
+ 1. Select "Test" to write and read a temporary file for a few seconds
+ 2. HDD LED should light when writing to/reading from HDD
+ VERIFICATION:
+ Did the HDD LED light?
+
+plugin: user-interact-verify
+name: led/numeric-keypad
+command: keyboard_test
+_description:
+ PURPOSE:
+ Numeric keypad LED verification
+ STEPS:
+ 1. Press "Block Num" key to toggle numeric keypad LED
+ 2. Click on the "Test" button to open a window to verify your typing
+ 3. Type using the numeric keypad both when the LED is on and off
+ VERIFICATION:
+ 1. Numeric keypad LED status should toggle everytime the "Block Num" key is pressed
+ 2. Numbers should only be entered in the keyboard verification window when the LED is on
+
+plugin: manual
+name: led/caps-lock
+_description:
+ PURPOSE:
+ Block cap keys LED verification
+ STEPS:
+ 1. Press "Block Cap Keys" to activate/deactivate cap keys blocking
+ 2. Cap Keys LED should be switched on/off every time the key is pressed
+ VERIFICATION:
+ Did the Cap Keys LED light as expected?
+
+plugin: manual
+name: led/wlan
+depends: keys/wireless
+_description:
+ PURPOSE:
+ WLAN LED verification
+ STEPS:
+ 1. During the keys/wireless test you should have observed the
+ wireless LED while turning wireless back on.
+ 2. WLAN LED should light or change color when wireless is turned on
+ VERIFICATION:
+ Did the WLAN LED turn on or change color as expected?
+
+plugin: manual
+name: led/wlan-disabled
+depends: keys/wireless
+_description:
+ PURPOSE:
+ Validate that WLAN LED shuts off when disabled
+ STEPS:
+ 1. During the keys/wireless test you should have observed the WLAN LED
+ while performing that test after turning wireless off.
+ 2. WLAN LED should turn off or change color when wireless is turned off
+ VERIFICATION:
+ Did the WLAN LED turn off or change color as expected?
+
+plugin: manual
+name: led/bluetooth
+depends: bluetooth/detect-output
+_description:
+ PURPOSE:
+ Validate that the Bluetooth LED turns on and off when BT is enabled/disabled
+ STEPS:
+ 1. Switch bluetooth off from a hardware switch (if present)
+ 2. Switch bluetooth back on
+ 3. Switch bluetooth off from the panel applet
+ 4. Switch bluetooth back on
+ VERIFICATION:
+ Did the bluetooth LED turn off and on twice?
+
+plugin: user-interact-verify
+name: led/camera
+depends: camera/detect
+command: camera_test led
+_description:
+ PURPOSE:
+ Camera LED verification
+ STEPS:
+ 1. Select Test to activate camera
+ 2. Camera LED should light for a few seconds
+ VERIFICATION:
+ Did the camera LED light?
+
+plugin: manual
+name: led/touchpad
+_description:
+ PURPOSE:
+ Touchpad LED verification
+ STEPS:
+ 1. Click on the touchpad button or press key combination to enable/disable touchpad button
+ 2. Slide your finger on the touchpad
+ VERIFICATION:
+ 1. Touchpad LED status should toggle everytime the button is clicked or the key combination is pressed
+ 2. When the LED is on, the mouse pointer should move on touchpad usage
+ 3. When the LED is off, the mouse pointer should not move on touchpad usage
+
+plugin: manual
+name: led/wireless
+_description:
+ PURPOSE:
+ Wireless (WLAN + Bluetooth) LED verification
+ STEPS:
+ 1. Make sure WLAN connection is established and Bluetooth is enabled.
+ 2. WLAN/Bluetooth LED should light
+ 3. Switch WLAN and Bluetooth off from a hardware switch (if present)
+ 4. Switch them back on
+ 5. Switch WLAN and Bluetooth off from the panel applet
+ 6. Switch them back on
+ VERIFICATION:
+ Did the WLAN/Bluetooth LED light as expected?
+
+plugin: manual
+name: led/mute
+depends: keys/mute
+_description:
+ PURPOSE:
+ Audio Mute LED verification.
+ STEPS:
+ Skip this test if your system does not have a special Audio Mute LED.
+ 1. Press the Mute key twice and observe the Audio LED to determine if it
+ either turned off and on or changed colors.
+ VERIFICATION:
+ Did the Audio LED turn on and off change color as expected?
diff --git a/jobs/local.txt.in b/jobs/local.txt.in
new file mode 100644
index 0000000..960b5f8
--- /dev/null
+++ b/jobs/local.txt.in
@@ -0,0 +1,328 @@
+name: __audio__
+plugin: local
+_description: Audio tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/audio.txt?(.in)
+
+name: __benchmarks__
+plugin: local
+_description: Benchmarks tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/benchmarks.txt?(.in)
+
+name: __bluetooth__
+plugin: local
+_description: Bluetooth tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/bluetooth.txt?(.in)
+
+name: __camera__
+plugin: local
+_description: Camera tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/camera.txt?(.in)
+
+name: __codecs__
+plugin: local
+_description: Codec tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/codecs.txt?(.in)
+
+name: __cpu__
+plugin: local
+_description: CPU tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/cpu.txt?(.in)
+
+name: __daemons__
+plugin: local
+_description: System Daemon tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/daemons.txt?(.in)
+
+name: __disk__
+plugin: local
+_description: Disk tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/disk.txt?(.in)
+
+name: __ethernet__
+plugin: local
+_description: Ethernet Device tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/ethernet.txt?(.in)
+
+name: __esata__
+plugin: local
+_description: eSATA disk tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/esata.txt?(.in)
+
+name: __fingerprint__
+plugin: local
+_description: Fingerprint reader tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/fingerprint.txt?(.in)
+
+name: __firewire__
+plugin: local
+_description: Firewire disk tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/firewire.txt?(.in)
+
+name: __firmware__
+plugin: local
+_description: Firmware tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/firmware.txt?(.in)
+
+name: __floppy__
+plugin: local
+_description: Floppy disk tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/floppy.txt?(.in)
+
+name: __graphics__
+plugin: local
+_description: Graphics tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/graphics.txt?(.in)
+
+name: __hibernate__
+plugin: local
+_description: Hibernation tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/hibernate.txt?(.in)
+
+name: __info__
+plugin: local
+_description: Informational tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/info.txt?(.in)
+
+name: __input__
+plugin: local
+_description: Input Devices tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/input.txt?(.in)
+
+name: __install__
+plugin: local
+_description: Software Installation tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/install.txt?(.in)
+
+name: __keys__
+plugin: local
+_description: Hotkey tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/keys.txt?(.in)
+
+name: __led__
+plugin: local
+_description: LED tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/led.txt?(.in)
+
+name: __mediacard__
+plugin: local
+_description: Media Card tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/mediacard.txt?(.in)
+
+name: __memory__
+plugin: local
+_description: Memory tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/memory.txt?(.in)
+
+name: __rendercheck__
+plugin: local
+_description: Rendercheck tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/rendercheck.txt?(.in)
+
+name: __mir__
+plugin: local
+_description: MIR tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/mir.txt?(.in)
+
+name: __miscellanea__
+plugin: local
+_description: Miscellaneous tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/miscellanea.txt?(.in)
+
+name: __monitor__
+plugin: local
+_description: Monitor tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/monitor.txt?(.in)
+
+name: __networking__
+plugin: local
+_description: Non-device specific networking tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/networking.txt?(.in)
+
+name: __optical__
+plugin: local
+_description: Optical Drive tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/optical.txt?(.in)
+
+name: __panel_clock__
+plugin: local
+_description: Panel Clock Verification tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/panel_clock_test.txt?(.in)
+
+name: __panel_reboot__
+plugin: local
+_description: Panel Reboot Verification tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/panel_reboot.txt?(.in)
+
+name: __expresscard__
+plugin: local
+_description: ExpressCard tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/expresscard.txt?(.in)
+
+name: __peripheral__
+plugin: local
+_description: Peripheral tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/peripheral.txt?(.in)
+
+name: __piglit__
+plugin: local
+_description: Piglit tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/piglit.txt?(.in)
+
+name: __power-management__
+plugin: local
+_description: Power Management tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/power-management.txt?(.in)
+
+name: __server-services__
+plugin: local
+_description: Server Services checks
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/server-services.txt?(.in)
+
+name: __suspend__
+plugin: local
+_description: Suspend tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/suspend.txt?(.in)
+
+name: __touchpad__
+plugin: local
+_description: Touchpad tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/touchpad.txt?(.in)
+
+name: __touchscreen__
+plugin: local
+_description: Touchscreen tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/touchscreen.txt?(.in)
+
+name: __usb__
+plugin: local
+_description: USB tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/usb.txt?(.in)
+
+name: __user_apps__
+plugin: local
+_description: User Applications
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/user_apps.txt?(.in)
+
+name: __virtualization__
+plugin: local
+_description: Virtualization tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/virtualization.txt?(.in)
+
+name: __wireless__
+plugin: local
+_description: Wireless networking tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/wireless.txt?(.in)
+
+name: __mobilebroadband__
+plugin: local
+_description: Mobile broadband tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/mobilebroadband.txt?(.in)
+
+name: __stress__
+plugin: local
+_description: Stress tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/stress.txt?(.in)
+
+name: __smoke__
+plugin: local
+_description: Smoke tests
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/smoke.txt?(.in)
+
+name: __sniff__
+plugin: local
+_description: Sniff Sniffers
+command:
+ shopt -s extglob
+ cat $CHECKBOX_SHARE/jobs/sniff.txt?(.in)
diff --git a/jobs/mediacard.txt.in b/jobs/mediacard.txt.in
new file mode 100644
index 0000000..160af1e
--- /dev/null
+++ b/jobs/mediacard.txt.in
@@ -0,0 +1,476 @@
+plugin: user-interact
+name: mediacard/mmc-insert
+estimated_duration: 30.0
+command: removable_storage_watcher --memorycard insert sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the systems media card reader can
+ detect the insertion of a Multimedia Card (MMC) media
+ STEPS:
+ 1. Click "Test" and then insert an MMC card into the reader.
+ If a file browser opens up, you can safely close it.
+ (Note: this test will time-out after 20 seconds.)
+ 2. Do not remove the device after this test.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: shell
+name: mediacard/mmc-storage
+estimated_duration: 30.0
+depends: mediacard/mmc-insert
+user: root
+command: removable_storage_test -s 67120000 --memorycard sdio usb scsi
+_description:
+ This test is automated and executes after the mediacard/mmc-insert
+ test is run. It tests reading and writing to the MMC card.
+
+plugin: user-interact
+name: mediacard/mmc-remove
+estimated_duration: 30.0
+depends: mediacard/mmc-insert
+command: removable_storage_watcher --memorycard remove sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the system correctly detects
+ the removal of the MMC card from the systems card reader.
+ STEPS:
+ 1. Click "Test" and then remove the MMC card from the reader.
+ (Note: this test will time-out after 20 seconds.)
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: user-interact
+name: mediacard/sd-insert
+estimated_duration: 30.0
+command: removable_storage_watcher --memorycard insert sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the systems media card reader can
+ detect the insertion of an UNLOCKED Secure Digital (SD) media card
+ STEPS:
+ 1. Click "Test" and then insert an UNLOCKED SD card into the reader.
+ If a file browser opens up, you can safely close it.
+ (Note: this test will time-out after 20 seconds.)
+ 2. Do not remove the device after this test.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: shell
+name: mediacard/sd-storage
+estimated_duration: 30.0
+depends: mediacard/sd-insert
+user: root
+command: removable_storage_test -s 268400000 --memorycard sdio usb scsi
+_description:
+ This test is automated and executes after the mediacard/sd-insert
+ test is run. It tests reading and writing to the SD card.
+
+plugin: user-interact
+name: mediacard/sd-remove
+estimated_duration: 30.0
+depends: mediacard/sd-insert
+command: removable_storage_watcher --memorycard remove sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the system correctly detects
+ the removal of an SD card from the systems card reader.
+ STEPS:
+ 1. Click "Test" and then remove the SD card from the reader.
+ (Note: this test will time-out after 20 seconds.)
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: shell
+name: mediacard/sd-preinserted
+estimated_duration: 30.0
+user: root
+requires: device.category == 'CARDREADER'
+command: removable_storage_test -s 268400000 --memorycard -l sdio usb scsi && removable_storage_test --memorycard sdio usb scsi
+_description:
+ This is a fully automated version of mediacard/sd-automated and assumes that the
+ system under test has a memory card device plugged in prior to checkbox execution.
+ It is intended for SRU automated testing.
+
+plugin: user-interact
+name: mediacard/sdhc-insert
+estimated_duration: 30.0
+command: removable_storage_watcher --memorycard insert sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the systems media card reader can
+ detect the insertion of a UNLOCKED Secure Digital High-Capacity
+ (SDHC) media card
+ STEPS:
+ 1. Click "Test" and then insert an UNLOCKED SDHC card into the reader.
+ If a file browser opens up, you can safely close it.
+ (Note: this test will time-out after 20 seconds.)
+ 2. Do not remove the device after this test.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: shell
+name: mediacard/sdhc-storage
+estimated_duration: 30.0
+depends: mediacard/sdhc-insert
+user: root
+command: removable_storage_test -s 268400000 --memorycard sdio usb scsi
+_description:
+ This test is automated and executes after the mediacard/sdhc-insert
+ test is run. It tests reading and writing to the SDHC card.
+
+plugin: user-interact
+name: mediacard/sdhc-remove
+estimated_duration: 30.0
+depends: mediacard/sdhc-insert
+command: removable_storage_watcher --memorycard remove sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the system correctly detects
+ the removal of an SDHC card from the systems card reader.
+ STEPS:
+ 1. Click "Test" and then remove the SDHC card from the reader.
+ (Note: this test will time-out after 20 seconds.)
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: user-interact
+name: mediacard/cf-insert
+estimated_duration: 30.0
+command: removable_storage_watcher --memorycard insert sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the systems media card reader can
+ detect the insertion of a Compact Flash (CF) media card
+ STEPS:
+ 1. Click "Test" and then insert a CF card into the reader.
+ If a file browser opens up, you can safely close it.
+ (Note: this test will time-out after 20 seconds.)
+ 2. Do not remove the device after this test.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: shell
+name: mediacard/cf-storage
+estimated_duration: 30.0
+depends: mediacard/cf-insert
+user: root
+command: removable_storage_test -s 268400000 --memorycard sdio usb scsi
+_description:
+ This test is automated and executes after the mediacard/cf-insert
+ test is run. It tests reading and writing to the CF card.
+
+plugin: user-interact
+name: mediacard/cf-remove
+depends: mediacard/cf-storage
+estimated_duration: 30.0
+command: removable_storage_watcher --memorycard remove sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the system correctly detects
+ the removal of a CF card from the systems card reader.
+ STEPS:
+ 1. Click "Test" and then remove the CF card from the reader.
+ (Note: this test will time-out after 20 seconds.)
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: user-interact
+name: mediacard/sdxc-insert
+estimated_duration: 30.0
+command: removable_storage_watcher --memorycard insert sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the systems media card reader can
+ detect the insertion of a Secure Digital Extended Capacity (SDXC) media card
+ STEPS:
+ 1. Click "Test" and then insert an UNLOCKED SDXC card into the reader.
+ If a file browser opens up, you can safely close it.
+ (Note: this test will time-out after 20 seconds.)
+ 2. Do not remove the device after this test.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: shell
+name: mediacard/sdxc-storage
+estimated_duration: 30.0
+depends: mediacard/sdxc-insert
+user: root
+command: removable_storage_test -s 268400000 --memorycard sdio usb scsi
+_description:
+ This test is automated and executes after the mediacard/sdxc-insert
+ test is run. It tests reading and writing to the SDXC card.
+
+plugin: user-interact
+name: mediacard/sdxc-remove
+estimated_duration: 30.0
+depends: mediacard/sdxc-insert
+command: removable_storage_watcher --memorycard remove sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the system correctly detects
+ the removal of a SDXC card from the systems card reader.
+ STEPS:
+ 1. Click "Test" and then remove the SDXC card from the reader.
+ (Note: this test will time-out after 20 seconds.)
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: user-interact
+name: mediacard/ms-insert
+estimated_duration: 30.0
+command: removable_storage_watcher --memorycard insert sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the systems media card reader can
+ detect the insertion of a Memory Stick (MS) media card
+ STEPS:
+ 1. Click "Test" and then insert a MS card into the reader.
+ If a file browser opens up, you can safely close it.
+ (Note: this test will time-out after 20 seconds.)
+ 2. Do not remove the device after this test.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: shell
+name: mediacard/ms-storage
+estimated_duration: 30.0
+depends: mediacard/ms-insert
+user: root
+command: removable_storage_test -s 268400000 --memorycard sdio usb scsi
+_description:
+ This test is automated and executes after the mediacard/ms-insert
+ test is run. It tests reading and writing to the MS card.
+
+plugin: user-interact
+name: mediacard/ms-remove
+estimated_duration: 30.0
+depends: mediacard/ms-insert
+command: removable_storage_watcher --memorycard remove sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the system correctly detects
+ the removal of a MS card from the systems card reader.
+ STEPS:
+ 1. Click "Test" and then remove the MS card from the reader.
+ (Note: this test will time-out after 20 seconds.)
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: user-interact
+name: mediacard/msp-insert
+estimated_duration: 30.0
+command: removable_storage_watcher --memorycard insert sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the systems media card reader can
+ detect the insertion of a Memory Stick Pro (MSP) media card
+ STEPS:
+ 1. Click "Test" and then insert a MSP card into the reader.
+ If a file browser opens up, you can safely close it.
+ (Note: this test will time-out after 20 seconds.)
+ 2. Do not remove the device after this test.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: shell
+name: mediacard/msp-storage
+estimated_duration: 30.0
+depends: mediacard/msp-insert
+user: root
+command: removable_storage_test -s 268400000 --memorycard sdio usb scsi
+_description:
+ This test is automated and executes after the mediacard/msp-insert
+ test is run. It tests reading and writing to the MSP card.
+
+plugin: user-interact
+name: mediacard/msp-remove
+estimated_duration: 30.0
+depends: mediacard/msp-insert
+command: removable_storage_watcher --memorycard remove sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the system correctly detects
+ the removal of a MSP card from the systems card reader.
+ STEPS:
+ 1. Click "Test" and remove the MSP card from the reader.
+ (Note: this test will time-out after 20 seconds.)
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: user-interact
+name: mediacard/xd-insert
+estimated_duration: 30.0
+command: removable_storage_watcher --memorycard insert sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the systems media card reader can
+ detect the insertion of a Extreme Digital (xD) media card
+ STEPS:
+ 1. Click "Test" and then insert a xD card into the reader.
+ If a file browser opens up, you can safely close it.
+ (Note: this test will time-out after 20 seconds.)
+ 2. Do not remove the device after this test.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: shell
+name: mediacard/xd-storage
+estimated_duration: 30.0
+depends: mediacard/xd-insert
+user: root
+command: removable_storage_test -s 268400000 --memorycard sdio usb scsi
+_description:
+ This test is automated and executes after the mediacard/xd-insert
+ test is run. It tests reading and writing to the xD card.
+
+plugin: user-interact
+name: mediacard/xd-remove
+estimated_duration: 30.0
+depends: mediacard/xd-insert
+command: removable_storage_watcher --memorycard remove sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the system correctly detects
+ the removal of a xD card from the systems card reader.
+ STEPS:
+ 1. Click "Test" and then remove the xD card from the reader.
+ (Note: this test will time-out after 20 seconds.)
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: user-interact-verify
+name: mediacard/sd-performance-manual
+depends: mediacard/sd-insert
+estimated_duration: 120.0
+user: root
+command: removable_storage_test -s 268400000 --memorycard sdio usb | cat <(echo "Working...") - <(echo; echo "Verify the result and click OK to decide on the outcome") | zenity --text-info --title 'SD Card Performance'
+_description:
+ PURPOSE:
+ This test will check your Media Card data transfer performance.
+ STEPS:
+ 1. Insert SD card into the reader slot on this computer.
+ 2. Click the test button to perform the test.
+ VERIFICATION:
+ Did the results of the test match the expected performance of the inserted device?
+
+plugin: user-interact-verify
+name: mediacard/sdhc-performance-manual
+depends: mediacard/sdhc-insert
+estimated_duration: 120.0
+user: root
+command: removable_storage_test -s 268400000 --memorycard sdio usb | cat <(echo "Working...") - <(echo; echo "Verify the result and click OK to decide on the outcome") | zenity --text-info --title 'SDHC Card Performance'
+_description:
+ PURPOSE:
+ This test will check your Media Card data transfer performance.
+ STEPS:
+ 1. Insert SDHC card into the reader slot on this computer.
+ 2. Click the test button to perform the test.
+ VERIFICATION:
+ Did the results of the test match the expected performance of the inserted device?
+
+plugin: user-interact-verify
+name: mediacard/mmc-performance-manual
+depends: mediacard/mmc-insert
+estimated_duration: 120.0
+user: root
+command: removable_storage_test -s 268400000 --memorycard sdio usb | cat <(echo "Working...") - <(echo; echo "Verify the result and click OK to decide on the outcome") | zenity --text-info --title 'MMC Card Performance'
+_description:
+ PURPOSE:
+ This test will check your Media Card data transfer performance.
+ STEPS:
+ 1. Insert MMC card into the reader slot on this computer.
+ 2. Click the test button to perform the test.
+ VERIFICATION:
+ Did the results of the test match the expected performance of the inserted device?
+
+plugin: user-interact-verify
+name: mediacard/cf-performance-manual
+depends: mediacard/cf-insert
+estimated_duration: 120.0
+user: root
+command: removable_storage_test -s 268400000 --memorycard sdio usb | cat <(echo "Working...") - <(echo; echo "Verify the result and click OK to decide on the outcome") | zenity --text-info --title 'CF Card Performance'
+_description:
+ PURPOSE:
+ This test will check your Media Card data transfer performance.
+ STEPS:
+ 1. Insert CF card into the reader slot on this computer.
+ 2. Click the test button to perform the test.
+ VERIFICATION:
+ Did the results of the test match the expected performance of the inserted device?
+
+plugin: user-interact-verify
+name: mediacard/sdxc-performance-manual
+depends: mediacard/sdxc-insert
+estimated_duration: 120.0
+user: root
+command: removable_storage_test -s 268400000 --memorycard sdio usb | cat <(echo "Working...") - <(echo; echo "Verify the result and click OK to decide on the outcome") | zenity --text-info --title 'SDXC Card Performance'
+_description:
+ PURPOSE:
+ This test will check your Media Card data transfer performance.
+ STEPS:
+ 1. Insert SDXC card into the reader slot on this computer.
+ 2. Click the test button to perform the test.
+ VERIFICATION:
+ Did the results of the test match the expected performance of the inserted device?
+
+plugin: user-interact-verify
+name: mediacard/ms-performance-manual
+depends: mediacard/ms-insert
+estimated_duration: 120.0
+user: root
+command: removable_storage_test -s 268400000 --memorycard sdio usb | cat <(echo "Working...") - <(echo; echo "Verify the result and click OK to decide on the outcome") | zenity --text-info --title 'MS Card Performance'
+_description:
+ PURPOSE:
+ This test will check your Media Card data transfer performance.
+ STEPS:
+ 1. Insert MS card into the reader slot on this computer.
+ 2. Click the test button to perform the test.
+ VERIFICATION:
+ Did the results of the test match the expected performance of the inserted device?
+
+plugin: user-interact-verify
+name: mediacard/msp-performance-manual
+depends: mediacard/msp-insert
+estimated_duration: 120.0
+user: root
+command: removable_storage_test -s 268400000 --memorycard sdio usb | cat <(echo "Working...") - <(echo; echo "Verify the result and click OK to decide on the outcome") | zenity --text-info --title 'MSP Card Performance'
+_description:
+ PURPOSE:
+ This test will check your Media Card data transfer performance.
+ STEPS:
+ 1. Insert MSP card into the reader slot on this computer.
+ 2. Click the test button to perform the test.
+ VERIFICATION:
+ Did the results of the test match the expected performance of the inserted device?
+
+plugin: user-interact-verify
+name: mediacard/xd-performance-manual
+depends: mediacard/xd-insert
+estimated_duration: 120.0
+user: root
+command: removable_storage_test -s 268400000 --memorycard sdio usb | cat <(echo "Working...") - <(echo; echo "Verify the result and click OK to decide on the outcome") | zenity --text-info --title 'XD Card Performance'
+_description:
+ PURPOSE:
+ This test will check your Media Card data transfer performance.
+ STEPS:
+ 1. Insert XD card into the reader slot on this computer.
+ 2. Click the test button to perform the test.
+ VERIFICATION:
+ Did the results of the test match the expected performance of the inserted device?
+
diff --git a/jobs/memory.txt.in b/jobs/memory.txt.in
new file mode 100644
index 0000000..df1ab48
--- /dev/null
+++ b/jobs/memory.txt.in
@@ -0,0 +1,16 @@
+plugin: shell
+name: memory/info
+user: root
+command: memory_compare
+_description:
+ This test checks the amount of memory which is reporting in meminfo against
+ the size of the memory modules detected by DMI.
+
+plugin: shell
+name: memory/check
+user: root
+requires:
+ uname.name == 'Linux'
+command: memory_test
+_description:
+ Test and exercise memory.
diff --git a/jobs/mir.txt.in b/jobs/mir.txt.in
new file mode 100644
index 0000000..ad34785
--- /dev/null
+++ b/jobs/mir.txt.in
@@ -0,0 +1,27 @@
+plugin: local
+name: mir/integration
+requires: package.name == 'mir-test-tools'
+_description: MIR Integration tests
+command:
+ cat << 'EOF' | run_templates -s "mir_integration_tests --gtest_list_tests | sed -n '/\.$/s/\.$//p'"
+ estimated_duration: 0.5
+ plugin: shell
+ name: mir/integration/$1
+ requires: package.name == 'mir-test-tools'
+ command: mir_integration_tests --gtest_filter=$1*
+ _description: Run $1 test from MIR Integration tests.
+ EOF
+
+plugin: local
+name: mir/acceptance
+requires: package.name == 'mir-test-tools'
+_description: MIR Acceptance tests
+command:
+ cat << 'EOF' | run_templates -s "mir_acceptance_tests --gtest_list_tests | sed -n '/\.$/s/\.$//p'"
+ estimated_duration: 0.5
+ plugin: shell
+ name: mir/acceptance/$1
+ requires: package.name == 'mir-test-tools'
+ command: mir_acceptance_tests --gtest_filter=$1*
+ _description: Run $1 test from MIR Acceptance tests.
+ EOF
diff --git a/jobs/miscellanea.txt.in b/jobs/miscellanea.txt.in
new file mode 100644
index 0000000..4a8b4eb
--- /dev/null
+++ b/jobs/miscellanea.txt.in
@@ -0,0 +1,141 @@
+plugin: shell
+name: miscellanea/submission-resources
+depends:
+ cpuinfo
+ dmi
+ dpkg
+ lsb
+ package
+ requirements
+ uname
+ dmi_attachment
+ sysfs_attachment
+ udev_attachment
+estimated_duration: 1.0
+command: true
+_description:
+ A meta-job depending on the resources needed for a valid submission.
+
+plugin: manual
+name: miscellanea/tester-info
+_description:
+ PURPOSE:
+ Keep tester related information in the report
+ STEPS:
+ 1. Tester Information
+ 2. Please enter the following information in the comments field:
+ a. Name
+ b. Email Address
+ c. Reason for this test run
+ VERIFICATION:
+ Nothing to verify for this test
+
+plugin: user-interact-verify
+name: miscellanea/chvt
+requires:
+ package.name == 'kbd'
+user: root
+command: cycle_vts
+_description:
+ PURPOSE:
+ This test will check that the system can switch to a virtual terminal and back to X
+ STEPS:
+ 1. Click "Test" to switch to another virtual terminal and then back to X
+ VERIFICATION:
+ Did your screen change temporarily to a text console and then switch back to your current session?
+
+plugin: shell
+name: miscellanea/fwts_test
+estimated_duration: 1.2
+requires:
+ package.name == 'fwts'
+user: root
+_description:
+ Run Firmware Test Suite (fwts) automated tests.
+environ: CHECKBOX_DATA
+command:
+ fwts_test -l $CHECKBOX_DATA/fwts_results.log
+
+plugin: attachment
+name: miscellanea/fwts_results.log
+command:
+ [[ -e ${CHECKBOX_DATA}/fwts_results.log ]] && cat ${CHECKBOX_DATA}/fwts_results.log
+_description: Attaches the FWTS results log to the submission
+
+plugin: shell
+name: miscellanea/ipmi_test
+requires: package.name == 'ipmitool'
+user: root
+command: ipmi_test
+_description:
+ This will run some basic connectivity tests against a BMC, verifying that IPMI works.
+
+plugin: shell
+name: miscellanea/is_laptop
+user: root
+_description:
+ Determine if we need to run tests specific to portable computers that may not apply to desktops.
+command: check_is_laptop
+
+plugin: shell
+name: miscellanea/apport-directory
+requires: package.name == 'apport'
+command: if [ -d /var/crash ]; then if [ $(find /var/crash -type f | grep -v .lock | wc -l) -eq 0 ]; then echo "/var/crash is empty"; else echo `ls /var/crash`; false; fi; else echo "/var/crash does not exist"; fi
+_description:
+ Test that the /var/crash directory doesn't contain anything. Lists the files contained within if it does, or echoes the status of the directory (doesn't exist/is empty)
+
+plugin: shell
+name: miscellanea/sources-list
+command: sources_test $SOURCES_LIST "$REPOSITORIES"
+_description: Checks that a specified sources list file contains the requested repositories
+
+plugin: local
+name: miscellanea/pxe_boot
+requires: device.category == 'NETWORK'
+_description: Automated job to generate the PXE verification test for each NIC.
+command:
+ cat <<'EOF' | run_templates -s 'udev_resource | filter_templates -w "category=NETWORK" | awk "/path: / { print \$2 }" | xargs -n 1 sh -c "for i in \`ls /sys\$0/net 2>/dev/null\`; do echo \$0 \$i; done"'
+ plugin: manual
+ name: miscellanea/pxe_boot_$2
+ description:
+ PURPOSE:
+ This test will verify that you have attempted to PXE boot this machine from
+ the network device $2.
+ STEPS:
+ 1. Prior to running this test, you should have attempted to boot this system via PXE on every Network Port available.
+ VERIFICATION:
+ 1. Select Yes if you successfully used PXE boot this system using the NIC $2
+ 2. Select No if you did not attempt to PXE boot this system using the NIC $2
+ 3. Select No if you attempted to PXE boot via $2 and it failed for some reason.
+ EOF
+
+plugin: local
+name: miscellanea/remote_shared_ipmi
+requires: device.category == 'NETWORK'
+_description: Automated job to generate the Remote Shared IPMI verification test for each NIC.
+command:
+ cat <<'EOF' | run_templates -s 'udev_resource | filter_templates -w "category=NETWORK" | awk "/path: / { print \$2 }" | xargs -n 1 sh -c "for i in \`ls /sys\$0/net 2>/dev/null\`; do echo \$0 \$i; done"'
+ plugin: manual
+ name: miscellanea/remote_shared_ipmi_$2
+ description:
+ PURPOSE:
+ This test will verify that you have attempted IPMI control of this machine from the network device $2.
+ STEPS:
+ 1. Prior to running this test, you should have configured and used IPMI to power this machine off and on using every Network Port available.
+ VERIFICATION:
+ 1. Select Yes if you successfully used IPMI to remotely power this system off and on using the NIC $2
+ 2. Select No if you did not attempt to use IPMI to remotely power this sytem off and on via the NIC $2
+ 3. Select No if you attempted to use IPMI to remotely power off/on this system via $2 and it failed for some reason.
+ EOF
+
+plugin: manual
+name: miscellanea/remote_dedicated_ipmi
+_description:
+ PURPOSE:
+ Some systems do not share IPMI over all NICs but instead have a dedicated management port directly connected to the BMC. This test verifies that you have used that port for remote IPMI connections and actions.
+ STEPS:
+ 1. Prior to running the test, you should have configured and used the Dedicated Management Port to remotely power off/on this sytem.
+ VERIFICATION:
+ Skip this test if this system ONLY uses shared management/ethernet ports OR if this system does not have a BMC (Management Console)
+ 1. Select Yes if you successfully used IPMI to remotely power this system off and on using the dedicated management port.
+ 2. Select No if you attempted to use the dedicated management port to remotely power this system off/on and it failed for some reason.
diff --git a/jobs/mobilebroadband.txt.in b/jobs/mobilebroadband.txt.in
new file mode 100644
index 0000000..27c1282
--- /dev/null
+++ b/jobs/mobilebroadband.txt.in
@@ -0,0 +1,23 @@
+plugin: shell
+name: mobilebroadband/gsm_connection
+estimated_duration: 20.0
+requires:
+ package.name == 'network-manager'
+ package.name == 'modemmanager'
+ mobilebroadband.gsm == 'supported'
+user: root
+environ: GSM_CONN_NAME GSM_APN GSM_USERNAME GSM_PASSWORD
+command: trap "nmcli con delete id $GSM_CONN_NAME" EXIT; create_connection mobilebroadband gsm `if [ ${GSM_APN} ]; then echo "--apn=$GSM_APN"; fi` `if [ ${GSM_CONN_NAME} ]; then echo "--name=$GSM_CONN_NAME"; fi` `if [ ${GSM_USERNAME} ]; then echo "--username=$GSM_USERNAME"; fi` `if [ ${GSM_PASSWORD} ]; then echo "--password=$GSM_PASSWORD"; fi` && curl http://start.ubuntu.com/connectivity-check.html --interface `nmcli dev status | awk '/gsm/ {print $1}'`; if [ "`nmcli dev status | awk '/gsm/ {print $3}'`" == "connected" ]; then nmcli con down id `[ ${GSM_CONN_NAME} ] && echo "$GSM_CONN_NAME" || echo "MobileBB"`; fi
+_description: Creates a mobile broadband connection for a GSM based modem and checks the connection to ensure it's working.
+
+plugin: shell
+name: mobilebroadband/cdma_connection
+estimated_duration: 20.0
+requires:
+ package.name == 'network-manager'
+ package.name == 'modemmanager'
+ mobilebroadband.cdma == 'supported'
+user: root
+environ: CDMA_CONN_NAME CDMA_USERNAME CDMA_PASSWORD
+command: trap "nmcli con delete id $CDMA_CONN_NAME" EXIT; create_connection mobilebroadband cdma `if [ ${CDMA_CONN_NAME} ]; then echo "--name=$CDMA_CONN_NAME"; fi` `if [ ${CDMA_USERNAME} ]; then echo "--username=$CDMA_USERNAME"; fi` `if [ ${CDMA_PASSWORD} ]; then echo "--password=$CDMA_PASSWORD"; fi` && curl http://start.ubuntu.com/connectivity-check.html --interface `nmcli dev status | awk '/gsm/ {print $1}'`; if [ "`nmcli dev status | awk '/gsm/ {print $3}'`" == "connected" ]; then nmcli con down id `[ ${CDMA_CONN_NAME} ] && echo "$CDMA_CONN_NAME" || echo "MobileBB"`; fi
+_description: Creates a mobile broadband connection for a CDMA based modem and checks the connection to ensure it's working.
diff --git a/jobs/monitor.txt.in b/jobs/monitor.txt.in
new file mode 100644
index 0000000..62ef29a
--- /dev/null
+++ b/jobs/monitor.txt.in
@@ -0,0 +1,113 @@
+plugin: manual
+name: monitor/vga
+requires: display.vga == 'supported'
+_description:
+ PURPOSE:
+ This test will check your VGA port.
+ STEPS:
+ Skip this test if your system does not have a VGA port.
+ 1. Connect a display (if not already connected) to the VGA port on your system
+ VERIFICATION:
+ Was the desktop displayed correctly on both screens?
+
+plugin: manual
+name: monitor/dvi
+requires: display.dvi == 'supported'
+_description:
+ PURPOSE:
+ This test will check your DVI port.
+ STEPS:
+ Skip this test if your system does not have a DVI port.
+ 1. Connect a display (if not already connected) to the DVI port on your system
+ VERIFICATION:
+ Was the desktop displayed correctly on both screens?
+
+plugin: manual
+name: monitor/displayport
+requires: display.dp == 'supported'
+_description:
+ PURPOSE:
+ This test will check your DisplayPort port.
+ STEPS:
+ Skip this test if your system does not have a DisplayPort port.
+ 1. Connect a display (if not already connected) to the DisplayPort port on your system
+ VERIFICATION:
+ Was the desktop displayed correctly on both screens?
+
+plugin: manual
+name: monitor/hdmi
+requires: display.hdmi == 'supported'
+_description:
+ PURPOSE:
+ This test will check your HDMI port.
+ STEPS:
+ Skip this test if your system does not have a HDMI port.
+ 1. Connect a display (if not already connected) to the HDMI port on your system
+ VERIFICATION:
+ Was the desktop displayed correctly on both screens?
+
+plugin: manual
+name: monitor/svideo
+requires: display.svideo == 'supported'
+_description:
+ PURPOSE:
+ This test will check your S-VIDEO port.
+ STEPS:
+ Skip this test if your system does not have a S-VIDEO port.
+ 1. Connect a display (if not already connected) to the S-VIDEO port on your system
+ VERIFICATION:
+ Was the desktop displayed correctly on both screens?
+
+plugin: manual
+name: monitor/rca
+requires: display.rca == 'supported'
+_description:
+ PURPOSE:
+ This test will check your RCA port.
+ STEPS:
+ Skip this test if your system does not have a RCA port.
+ 1. Connect a display (if not already connected) to the RCA port on your system
+ VERIFICATION:
+ Was the desktop displayed correctly on both screens?
+
+plugin: manual
+name: monitor/multi-head
+requires: dmi.product in ['Desktop','Low Profile Desktop','Tower','Mini Tower']
+_description:
+ PURPOSE:
+ This test verifies that multi-monitor output works on your desktop system. This is NOT the same test as the external monitor tests you would run on your laptop. You will need two monitors to perform this test.
+ STEPS:
+ Skip this test if your video card does not support multiple monitors.
+ 1. If your second monitor is not already connected, connect it now
+ 2. Open the "Displays" tool (open the dash and search for "Displays")
+ 3. Configure your output to provide one desktop across both monitors
+ 4. Open any application and drag it from one monitor to the next.
+ VERIFICATION:
+ Was the stretched desktop displayed correctly across both screens?
+
+plugin: user-interact-verify
+name: monitor/powersaving
+command: xset dpms force off
+_description:
+ PURPOSE:
+ This test will check your monitor power saving capabilities
+ STEPS:
+ 1. Click "Test" to try the power saving capabilities of your monitor
+ 2. Press any key or move the mouse to recover
+ VERIFICATION:
+ Did the monitor go blank and turn on again?
+
+plugin: user-interact-verify
+name: monitor/dim_brightness
+requires: dmi.product in ['Notebook','Laptop','Portable']
+user: root
+command: brightness_test
+_description:
+ PURPOSE:
+ This test will test changes to screen brightness
+ STEPS:
+ 1. Click "Test" to try to dim the screen.
+ 2. Check if the screen was dimmed approximately to half of the maximum brightness.
+ 3. The screen will go back to the original brightness in 2 seconds.
+ VERIFICATION:
+ Was your screen dimmed approximately to half of the maximum brightness?
diff --git a/jobs/networking.txt.in b/jobs/networking.txt.in
new file mode 100644
index 0000000..43075ac
--- /dev/null
+++ b/jobs/networking.txt.in
@@ -0,0 +1,73 @@
+plugin: shell
+name: networking/gateway_ping
+depends: ethernet/detect
+command: gateway_ping_test
+estimated_duration: 2.000
+_description: Tests whether the system has a working Internet connection.
+
+plugin: local
+name: networking/info
+requires: device.category == 'NETWORK'
+_description: Network Information
+command:
+ cat <<'EOF' | run_templates -s 'udev_resource | filter_templates -w "category=NETWORK" | awk "/path: / { print \$2 }" | xargs -n 1 sh -c "for i in \`ls /sys\$0/net 2>/dev/null\`; do echo \$0 \$i; done"'
+ plugin: user-interact-verify
+ name: networking/info_$2
+ requires: device.path == "$1"
+ command: network_info $2 | zenity --text-info --title="$2"
+ _description:
+ PURPOSE:
+ This test will check the $2 network interface
+ STEPS:
+ 1. Click "Test" to verify the information for $2
+ VERIFICATION:
+ Is this correct?
+ EOF
+
+plugin: user-interact-verify
+name: networking/modem_connection
+command: network_check
+_description:
+ PURPOSE:
+ This test will check that a DSL modem can be configured and connected.
+ STEPS:
+ 1. Connect the telephone line to the computer
+ 2. Click on the Network icon on the top panel.
+ 3. Select "Edit Connections"
+ 4. Select the "DSL" tab
+ 5. Click on "Add" button
+ 6. Configure the connection parameters properly
+ 7. Click "Test" to verify that it's possible to establish an HTTP connection
+ VERIFICATION:
+ Did a notification show and was the connection correctly established?
+
+plugin: shell
+name: networking/ping
+command: gateway_ping_test $CHECKBOX_SERVER
+_description:
+ Automated test case to verify availability of some system on the network using ICMP ECHO packets.
+
+plugin: shell
+name: networking/http
+command: wget -SO /dev/null http://$TRANSFER_SERVER
+_description:
+ Automated test case to make sure that it's possible to download files through HTTP
+
+plugin: shell
+name: networking/ntp
+requires: package.name == 'ntpdate'
+user: root
+command: network_ntp_test
+_description: Test to see if we can sync local clock to an NTP server
+
+plugin: shell
+name: networking/ssh
+requires: package.name == 'openssh-client'
+command: if [ $CHECKBOX_SERVER ]; then ssh -q -o 'StrictHostKeyChecking=no' -o "UserKnownHostsFile=/tmp/ssh_test_$$" -l ubuntu $CHECKBOX_SERVER "uname -a" && rm /tmp/ssh_test_$$; fi
+_description: Verify that an installation of checkbox-server on the network can be reached over SSH.
+
+plugin: shell
+name: networking/printer
+requires: package.name == 'cups-client'
+command: network_printer_test -s $CHECKBOX_SERVER
+_description: Try to enable a remote printer on the network and print a test page.
diff --git a/jobs/optical.txt.in b/jobs/optical.txt.in
new file mode 100644
index 0000000..43c5baa
--- /dev/null
+++ b/jobs/optical.txt.in
@@ -0,0 +1,230 @@
+plugin: shell
+name: optical/detect
+requires: device.category == 'CDROM'
+estimated_duration: 1.2
+_description: Test to detect the optical drives
+command:
+ cat <<'EOF' | run_templates -t -s 'udev_resource | filter_templates -w "category=CDROM"' | sed '/^$/d'
+ $vendor $product
+ EOF
+
+plugin: local
+name: optical/read
+requires:
+ device.category == 'CDROM'
+_description: Optical read test.
+command:
+ cat <<'EOF' | run_templates -t -s 'udev_resource | filter_templates -w "category=CDROM"'
+ plugin: user-interact-verify
+ name: optical/read_`ls /sys$path/block`
+ requires: device.path == "$path"
+ estimated_duration: 120.0
+ user: root
+ command: optical_read_test /dev/`ls /sys$path/block`
+ description:
+ PURPOSE:
+ This test will check your $product device's ability to read CD media
+ STEPS:
+ 1. Insert appropriate non-blank media into your optical drive(s). Movie and Audio Disks may not work. Self-created data disks have the greatest chance of working.
+ 2. If a file browser window opens, you can safely close or ignore that window.
+ 3. Click "Test" to begin the test.
+ VERIFICATION:
+ This test should automatically select "Yes" if it passes, "No" if it fails.
+ EOF
+
+plugin: local
+name: optical/read-automated
+requires:
+ device.category == 'CDROM'
+_description: Automated optical read test.
+command:
+ cat <<'EOF' | run_templates -t -s 'udev_resource | filter_templates -w "category=CDROM"'
+ plugin: shell
+ name: optical/read-automated_`ls /sys$path/block`
+ estimated_duration: 120.0
+ requires: device.path == "$path"
+ user: root
+ command: optical_read_test /dev/`ls /sys$path/block`
+ description:
+ This is an automated version of optical/read. It assumes you have already inserted a data CD into your optical drive prior to running Checkbox.
+ EOF
+
+plugin: local
+name: optical/cdrom-write
+requires:
+ device.category == 'CDROM'
+_description: CD write test.
+command:
+ cat <<'EOF' | run_templates -t -s 'udev_resource | filter_templates -w "category=CDROM"'
+ plugin: user-interact-verify
+ name: optical/cdrom-write_`ls /sys$path/block`
+ estimated_duration: 120.0
+ requires:
+ device.path == "$path"
+ optical_drive_`ls /sys$path/block`.cd_write == 'supported'
+ user: root
+ command: set -o pipefail; optical_write_test /dev/`ls /sys$path/block` cd | ansi_parser
+ description:
+ PURPOSE:
+ This test will check your system's $product CD writing capabilities. This test requires a blank CD-R or CD+R.
+ STEPS:
+ Skip this test if you do not have a blank CD disk.
+ 1. Insert a blank CD-R or CD+R into your drive
+ 2. Click "Test" to begin.
+ 3. When the CD tray ejects the media after burning, close it (DO NOT remove the disk, it is needed for the second portion of the test). Note, you must close the drive within 5 minutes or the test will time out.
+ VERIFICATION:
+ This test should automatically select "Yes" if it passes, "No" if it fails.
+ EOF
+
+plugin: local
+name: optical/cdrom-write-automated
+requires:
+ device.category == 'CDROM'
+_description: Automated CD write test
+command:
+ cat <<'EOF' | run_templates -t -s 'udev_resource | filter_templates -w "category=CDROM"'
+ plugin: shell
+ name: optical/cdrom-write-automated_`ls /sys$path/block`
+ estimated_duration: 120.0
+ requires:
+ device.path == "$path"
+ optical_drive_`ls /sys$path/block`.cd_write == 'supported'
+ user: root
+ command: set -o pipefail; optical_write_test /dev/`ls /sys$path/block` cd | ansi_parser
+ description:
+ This is an automated version of optical/cdrom-write. It assumes you have already inserted a data CD into your optical drive prior to running Checkbox.
+ EOF
+
+plugin: manual
+name: optical/cdrom-audio-playback
+depends: optical/read
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ This test will check your CD audio playback capabilities
+ STEPS:
+ 1. Insert an audio CD in your optical drive
+ 2. When prompted, launch the Music Player
+ 3. Locate the CD in the display of the Music Player
+ 4. Select the CD in the Music Player
+ 5. Click the Play button to listen to the music on the CD
+ 6. Stop playing after some time
+ 7. Right click on the CD icon and select "Eject Disc"
+ 8. The CD should be ejected
+ 9. Close the Music Player
+ VERIFICATION:
+ Did all the steps work?
+
+plugin: local
+name: optical/dvd-write
+requires:
+ device.category == 'CDROM'
+_description: DVD write test.
+command:
+ cat <<'EOF' | run_templates -t -s 'udev_resource | filter_templates -w "category=CDROM"'
+ plugin: user-interact-verify
+ name: optical/dvd-write_`ls /sys$path/block`
+ requires:
+ device.path == "$path"
+ optical_drive_`ls /sys$path/block`.dvd_write == 'supported'
+ estimated_duration: 120.0
+ user: root
+ command: set -o pipefail; optical_write_test /dev/`ls /sys$path/block` dvd | ansi_parser
+ description:
+ PURPOSE:
+ This test will check your system's $product writing capabilities. This test requires a blank DVD-R or DVD+R.
+ STEPS:
+ Skip this test if you do not have a blank DVD disk.
+ 1. Enter a blank DVD-R or DVD+R into your drive
+ 2. Click "Test" to begin.
+ 3. When the CD tray ejects the media after burning, close it (DO NOT remove the disk, it is needed for the second portion of the test). Note, you must close the drive within 5 minutes or the test will time out.
+ VERIFICATION:
+ This test should automatically select "Yes" if it passes, "No" if it fails.
+ EOF
+
+plugin: local
+name: optical/dvd-write-automated
+requires:
+ device.category == 'CDROM'
+_description: Automated DVD write test.
+command:
+ cat <<'EOF' | run_templates -t -s 'udev_resource | filter_templates -w "category=CDROM"'
+ plugin: shell
+ name: optical/dvd-write-automated_`ls /sys$path/block`
+ estimated_duration: 120.0
+ requires:
+ device.path == "$path"
+ optical_drive_`ls /sys$path/block`.dvd_write == 'supported'
+ user: root
+ command: set -o pipefail; optical_write_test /dev/`ls /sys$path/block` dvd | ansi_parser
+ description:
+ This is an automated version of optical/dvd-write. It assumes you have already inserted a data DVD into your optical drive prior to running Checkbox.
+ EOF
+
+plugin: user-interact-verify
+name: optical/dvd_playback
+command: totem /media/cdrom
+estimated_duration: 120.0
+requires:
+ device.category == 'CDROM'
+ package.name == 'totem'
+_description:
+ PURPOSE:
+ This test will check your DVD playback capabilities
+ STEPS:
+ 1. Insert a DVD that contains any movie in your optical drive
+ 2. Click "Test" to play the DVD in Totem
+ VERIFICATION:
+ Did the file play?
+
+plugin: local
+name: optical/bluray-read
+requires: device.category == 'CDROM'
+_description: Automated Blu-Ray read test.
+command:
+ cat <<'EOF' | run_templates -t -s 'udev_resource | filter_templates -w "category=CDROM"'
+ plugin: user-interact
+ name: optical/bluray-read_`ls /sys$path/block`
+ estimated_duration: 120.0
+ requires:
+ device.path == "$path"
+ optical_drive_`ls /sys$path/block`.bd_read == "supported"
+ user: root
+ command: optical_read_test /dev/`ls /sys$path/block`
+ estimated_duration: 10.00
+ description:
+ PURPOSE:
+ This test will check your $product device's ability to read Blu-Ray (BD) media
+ STEPS:
+ 1. Insert appropriate non-blank media into your Blu-Ray drive. Movie and Audio Disks may not work. Self-created data disks have the greatest chance of working.
+ 2. If a file browser window opens, you can safely close or ignore that window.
+ 3. Click "Test" to begin the test.
+ VERIFICATION:
+ This test should automatically select "Yes" if it passes, "No" if it fails.
+ EOF
+
+plugin: local
+name: optical/bluray-write
+requires: device.category == 'CDROM'
+_description: Automated Blu-Ray write test.
+command:
+ cat <<'EOF' | run_templates -t -s 'udev_resource | filter_templates -w "category=CDROM"'
+ plugin: user-interact
+ name: optical/bluray-write_`ls /sys$path/block`
+ requires:
+ device.path == "$path"
+ optical_drive_`ls /sys$path/block`.bd_write == "supported"
+ package.name == "growisofs"
+ user: root
+ command: set -o pipefail; optical_write_test /dev/`ls /sys$path/block` bd | ansi_parser
+ estimated_duration: 120.00
+ description:
+ PURPOSE:
+ This test will check your $product device's ability to write Blu-Ray (BD) media
+ STEPS:
+ Skip this test if you do not have a blank BD-R disc
+ 1. Insert appropriate writable media into your Blu-Ray drive.
+ 2. Click "Test" to begin the test.
+ VERIFICATION:
+ This test should automatically select "Yes" if it passes, "No" if it fails.
+ EOF
diff --git a/jobs/panel_clock_test.txt.in b/jobs/panel_clock_test.txt.in
new file mode 100644
index 0000000..2b41da8
--- /dev/null
+++ b/jobs/panel_clock_test.txt.in
@@ -0,0 +1,29 @@
+name: panel_clock/verify
+plugin: manual
+requires: package.name == 'gnome-system-tools'
+_description:
+ PURPOSE:
+ This test will verify that the desktop clock displays the correct date and time
+ STEPS:
+ 1. Check the clock in the upper right corner of your desktop.
+ VERIFICATION:
+ Is the clock displaying the correct date and time for your timezone?
+
+name: panel_clock/test
+plugin: user-interact-verify
+depends: panel_clock/verify
+requires: package.name == 'gnome-system-tools'
+user: root
+command: date -s "`date -d '1 hour'`"
+_description:
+ PURPOSE:
+ This test will verify that the desktop clock synchronizes with the system clock.
+ STEPS:
+ 1. Click the "Test" button and verify the clock moves ahead by 1 hour.
+ Note: It may take a minute or so for the clock to refresh
+ 2. Right click on the clock, then click on "Time & Date Settings..."
+ 3. Ensure that your clock application is set to manual.
+ 4. Change the time 1 hour back
+ 5. Close the window and reboot
+ VERIFICATION:
+ Is your system clock displaying the correct date and time for your timezone?
diff --git a/jobs/panel_reboot.txt.in b/jobs/panel_reboot.txt.in
new file mode 100644
index 0000000..8dada11
--- /dev/null
+++ b/jobs/panel_reboot.txt.in
@@ -0,0 +1,11 @@
+plugin: manual
+name: panel_reboot_test
+_description:
+ PURPOSE:
+ This test will verify that you can reboot your system from the desktop menu
+ STEPS:
+ 1. Click the Gear icon in the upper right corner of the desktop and click on "Shut Down"
+ 2. Click the "Restart" button on the left side of the Shut Down dialog
+ 3. After logging back in, restart System Testing and it should resume here
+ VERIFICATION:
+ Did your system restart and bring up the GUI login cleanly?
diff --git a/jobs/peripheral.txt.in b/jobs/peripheral.txt.in
new file mode 100644
index 0000000..6f7bbe1
--- /dev/null
+++ b/jobs/peripheral.txt.in
@@ -0,0 +1,38 @@
+plugin: manual
+name: peripheral/printer
+_description:
+ PURPOSE:
+ This test will verify that a network printer is usable
+ STEPS:
+ 1. Make sure that a printer is available in your network
+ 2. Click on the Gear icon in the upper right corner and then click on Printers
+ 3. If the printer isn't already listed, click on Add
+ 4. The printer should be detected and proper configuration values should be displayed
+ 5. Print a test page
+ VERIFICATION:
+ Were you able to print a test page to the network printer?
+
+plugin: user-interact-verify
+name: peripheral/external-usb-modem
+command: network_check
+_description:
+ PURPOSE:
+ This test will verify that a USB DSL or Mobile Broadband modem works
+ STEPS:
+ 1. Connect the USB cable to the computer
+ 2. Right click on the Network icon in the panel
+ 3. Select 'Edit Connections'
+ 4. Select the 'DSL' (for ADSL modem) or 'Mobile Broadband' (for 3G modem) tab
+ 5. Click on 'Add' button
+ 6. Configure the connection parameters properly
+ 7. Notify OSD should confirm that the connection has been established
+ 8. Select Test to verify that it's possible to establish an HTTP connection
+ VERIFICATION:
+ Was the connection correctly established?
+
+plugin: shell
+name: peripheral/external-usb-modem-http
+depends: peripheral/external-usb-modem
+command: wget -SO /dev/null http://$TRANSFER_SERVER
+_description:
+ Automated test case to make sure that it's possible to download files through HTTP
diff --git a/jobs/piglit.txt.in b/jobs/piglit.txt.in
new file mode 100644
index 0000000..5f5bfd9
--- /dev/null
+++ b/jobs/piglit.txt.in
@@ -0,0 +1,80 @@
+plugin: shell
+name: piglit/fbo
+requires:
+ package.name == 'piglit'
+command: piglit_test -t ^spec/EXT_framebuffer_object -n fbo
+estimated_duration: 28.000
+_description:
+ Runs piglit tests for checking support for framebuffer object operations, depth buffer and stencil buffer
+
+plugin: shell
+name: piglit/gl-2.1
+requires:
+ package.name == 'piglit'
+command: piglit_test -t spec/'!OpenGL 2.1'/ -n gl-2.1
+estimated_duration: 2.500
+_description:
+ Runs piglit tests for checking OpenGL 2.1 support
+
+plugin: shell
+name: piglit/vbo
+requires:
+ package.name == 'piglit'
+command: piglit_test -t spec/ARB_vertex_buffer_object/ -n vbo
+estimated_duration: 0.430
+_description:
+ Runs piglit tests for checking support for vertex buffer object operations
+
+plugin: shell
+name: piglit/glsl-fragment-shader
+requires:
+ package.name == 'piglit'
+command: piglit_test -t ^shaders/glsl-arb-fragment -n glsl-fragment-shader
+estimated_duration: 2.700
+_description:
+ Runs piglit tests for checking support for GLSL fragment shader operations
+
+plugin: shell
+name: piglit/glsl-vertex-shader
+requires:
+ package.name == 'piglit'
+command: piglit_test -t ^shaders/glsl-clamp-vertex-color -t ^shaders/glsl-max-vertex-attrib -t ^shaders/glsl-novertexdata -n glsl-vertex-shader
+estimated_duration: 3.200
+_description:
+ Runs piglit tests for checking support for GLSL vertex shader operations
+
+plugin: shell
+name: piglit/glx-tfp
+requires:
+ package.name == 'piglit'
+command: piglit_test -t glx-tfp -n glx-tfp
+estimated_duration: 2.600
+_description:
+ Runs piglit tests for checking support for texture from pixmap
+
+plugin: shell
+name: piglit/stencil_buffer
+requires:
+ package.name == 'piglit'
+command: piglit_test -t glx-visuals-stencil -t readpixels-24_8 -n stencil_buffer
+estimated_duration: 30.000
+_description:
+ Runs piglit_tests for checking support for stencil buffer operations
+
+plugin: shell
+name: piglit/summarize_results
+requires:
+ package.name == 'piglit'
+command: [ -e $CHECKBOX_DATA/piglit-results ] && piglit-summary-html.py $CHECKBOX_DATA/piglit-summary/ `find $CHECKBOX_DATA/piglit-results/ -name main` && echo "Successfully summarized piglit results. They are available in $CHECKBOX_DATA/piglit-sumary/"
+estimated_duration: 1.380
+_description:
+ Runs the piglit results summarizing tool
+
+plugin: shell
+name: piglit/tarball
+requires:
+ package.name == 'piglit'
+depends: piglit/summarize_results
+command: [ -e $CHECKBOX_DATA/piglit-summary ] && tar cvfz $CHECKBOX_DATA/piglit-results.tar.gz $CHECKBOX_DATA/piglit-summary/
+_description:
+ Archives the piglit-summary directory into the piglit-results.tar.gz.
diff --git a/jobs/power-management.txt.in b/jobs/power-management.txt.in
new file mode 100644
index 0000000..99aef0f
--- /dev/null
+++ b/jobs/power-management.txt.in
@@ -0,0 +1,236 @@
+plugin: manual
+name: power-management/shutdown-boot
+_description:
+ PURPOSE:
+ This test will check your system shutdown/booting cycle.
+ STEPS:
+ 1. Shutdown your machine.
+ 2. Boot your machine.
+ 3. Repeat steps 1 and 2 at least 5 times.
+ VERIFICATION:
+ Did the system shutdown and rebooted correctly?
+
+plugin: shell
+name: power-management/fwts_wakealarm
+environ: CHECKBOX_DATA
+user: root
+_description: Test ACPI Wakealarm (fwts wakealarm)
+requires:
+ package.name == 'fwts'
+command: fwts_test -f aborted -t wakealarm -l $CHECKBOX_DATA/fwts-wakealarm.log
+
+plugin: attachment
+name: power-management/fwts_wakealarm-log-attach
+depends: power-management/fwts_wakealarm
+_description: Attach log from fwts wakealarm test
+requires:
+ package.name == 'fwts'
+command: [ -e ${CHECKBOX_DATA}/fwts-wakealarm.log ] && cat ${CHECKBOX_DATA}/fwts-wakealarm.log
+
+plugin: user-interact-verify
+name: power-management/poweroff
+depends: power-management/fwts_wakealarm
+user: root
+environ: CHECKBOX_DATA
+requires:
+ package.name == 'upstart'
+ package.name == 'fwts'
+command: pm_test poweroff --log-level=debug --log-dir=$CHECKBOX_DATA
+_description:
+ PURPOSE:
+ This test will check the system's ability to power-off and boot.
+ STEPS:
+ 1. Select "Test" to begin.
+ 2. The machine will shut down.
+ 3. Power the machine back on.
+ 4. After rebooting, wait for the test prompts to inform you that the test is complete.
+ 5. Once the test has completed, restart checkbox and select 'Re-run' when prompted.
+ VERIFICATION:
+ If the machine successfully shuts down and boots, select 'Yes', otherwise,
+ select 'No'.
+
+plugin: attachment
+name: power-management/poweroff-log-attach
+command: tar cvfz power-management_poweroff.tgz $CHECKBOX_DATA/*poweroff.1.log && cat $CHECKBOX_DATA/power-management_poweroff.tgz
+_description:
+ This will attach any logs from the power-management/poweroff test to the results.
+
+plugin: user-interact-verify
+name: power-management/reboot
+user: root
+environ: CHECKBOX_DATA
+requires:
+ package.name == 'upstart'
+ package.name == 'fwts'
+command: pm_test reboot --log-level=debug --log-dir=$CHECKBOX_DATA
+_description:
+ PURPOSE:
+ This test will check the system's ability to reboot cleanly.
+ STEPS:
+ 1. Select "Test" to begin.
+ 2. The machine will reboot.
+ 3. After rebooting, wait for the test prompts to inform you that the test is complete.
+ 4. Once the test has completed, restart checkbox and select Re-Run when prompted.
+ VERIFICATION:
+ If the machine successfully reboots, select Yes then select Next.
+
+plugin: attachment
+name: power-management/reboot-log-attach
+command: tar cvfz power-management_reboot.tgz $CHECKBOX_DATA/*reboot.1.log && cat $CHECKBOX_DATA/power-management_reboot.tgz
+_description:
+ This will attach any logs from the power-management/reboot test to the results.
+
+plugin: manual
+name: power-management/lid
+requires: dmi.product in ['Notebook','Laptop','Portable']
+_description:
+ PURPOSE:
+ This test will check your lid sensors.
+ STEPS:
+ 1. Close your laptop lid.
+ VERIFICATION:
+ Does closing your laptop lid cause your system to suspend?
+
+plugin: user-interact
+name: power-management/lid_close
+requires: device.product == 'Lid Switch'
+command:
+ for i in `seq 20`; do
+ state=`cat /proc/acpi/button/lid/*/state | awk '{print $2}'`
+ [ "$state" = "closed" ] && exit 0 || sleep 0.5
+ done
+ exit 1
+_description:
+ PURPOSE:
+ This test will check your lid sensors
+ STEPS:
+ 1. Click "Test".
+ 2. Close and open the lid.
+ VERIFICATION:
+ Did the screen turn off while the lid was closed?
+
+plugin: user-interact
+name: power-management/lid_open
+requires: device.product == 'Lid Switch'
+command:
+ for i in `seq 20`; do
+ state=`cat /proc/acpi/button/lid/*/state | awk '{print $2}'`
+ [ "$state" = "open" ] && exit 0 || sleep 0.5
+ done
+ exit 1
+_description:
+ PURPOSE:
+ This test will check your lid sensors.
+ STEPS:
+ 1. Click "Test".
+ 2. Close the lid.
+ 3. Wait 5 seconds with the lid closed.
+ 4. Open the lid.
+ VERIFICATION:
+ Did the system resume when the lid was opened?
+
+plugin: shell
+name: power-management/rtc
+requires:
+ rtc.state == 'supported'
+ package.name == 'util-linux'
+user: root
+command: hwclock -r
+estimated_duration: 0.02
+_description:
+ Verify that the Real-time clock (RTC) device functions properly, if present
+
+plugin: shell
+name: power-management/tickless_idle
+_description: Check to see if CONFIG_NO_HZ is set in the kernel (this is just a simple regression check)
+command:
+ zgrep 'CONFIG_NO_HZ=y' /boot/config-`uname -r` >/dev/null 2>&1 || ( echo "WARNING: Tickless Idle is NOT set" >&2 && exit 1 )
+
+plugin: manual
+name: power-management/unplug_ac
+_description:
+ PURPOSE:
+ This test will ensure that the AC is unplugged for the battery drain tests to run.
+ STEPS:
+ 1. Unplug laptop from AC.
+ VERIFICATION:
+ Was the laptop unplugged from AC?
+
+plugin: shell
+name: power-management/battery_drain_idle
+requires: package.name == 'upower'
+depends: power-management/unplug_ac
+_description: Checks the battery drain during idle. Reports time until empty
+ and capacity as well.
+command:
+ battery_test -t 90 --idle
+
+plugin: shell
+name: power-management/battery_drain_movie
+requires:
+ package.name == 'upower'
+depends: power-management/unplug_ac
+_description: Checks the battery drain while watching a movie. Reports time
+ until empty and capacity as well. Requires MOVIE_VAR to be set.
+command:
+ battery_test -t 90 --movie $MOVIE_VAR
+
+plugin: shell
+name: power-management/battery_drain_sleep
+user: root
+requires:
+ package.name == 'upower'
+ package.name == 'fwts'
+depends: power-management/unplug_ac
+_description: Checks the battery drain during suspend. Reports time until
+ empty and capacity as well.
+command:
+ battery_test -t 120 --sleep
+
+plugin: manual
+name: power-management/plug_ac
+depends: power-management/battery_drain_idle power-management/battery_drain_movie power-management/battery_drain_sleep
+_description:
+ PURPOSE:
+ This test will ensure that the AC is plugged back in after the battery.
+ tests
+ STEPS:
+ 1. Plug laptop into AC.
+ VERIFICATION:
+ Was the laptop plugged into AC?
+
+plugin: user-interact-verify
+name: power-management/reboot_manual
+user:root
+command: shutdown -r now
+_description:
+ PURPOSE:
+ This test will verify that your system can successfully reboot.
+ STEPS:
+ 1. Select 'Test' to initiate a system reboot.
+ 2. When the grub boot menu is displayed, boot into Ubuntu (Or allow the
+ system to automatically boot on its own).
+ 3. Once the system has restarted, log in and restart checkbox-certification-server.
+ 4. Select 'Re-Run' to return to this test.
+ 5. Select 'Yes' to indicate the test has passed if the system rebooted
+ successfully, otherwise, select 'No' to indicate there was a problem.
+ VERIFICATION:
+ Did the system reboot correctly?
+
+plugin: user-interact-verify
+name: power-management/shutdown_manual
+user: root
+command: shutdown -h now
+_description:
+ PURPOSE:
+ This test will check your system shutdown/booting cycle
+ STEPS:
+ 1. Select 'Test' to initiate a system shutdown.
+ 2. Power the system back on.
+ 3. From the grub menu, boot into the Xen Hypervisor.
+ 4. When the system has restarted, log in and restart checkbox-certification-server.
+ 5. Select 'Re-Run' to return to this test.
+ 6. Select 'Yes' to indicate the test has passed if the machine shut down
+ successfully otherwise, Select 'No' to indicate there was a problem.
+ VERIFICATION:
+ Did the system shutdown and boot correctly?
diff --git a/jobs/rendercheck.txt.in b/jobs/rendercheck.txt.in
new file mode 100644
index 0000000..4204c52
--- /dev/null
+++ b/jobs/rendercheck.txt.in
@@ -0,0 +1,13 @@
+plugin: shell
+name: rendercheck/tests
+requires:
+ package.name == 'x11-apps'
+command: ( rendercheck_test -b repeat -b gradients -d -o $CHECKBOX_DATA/rendercheck-results && echo "Rendercheck tests completed successfully" ) || ( echo "Error running rendercheck. Please see the log $CHECKBOX_DATA/rendercheck-results for details" >&2 && false )
+_description:
+ Runs all of the rendercheck test suites. This test can take a few minutes.
+
+plugin: attachment
+name: rendercheck/tarball
+depends: rendercheck/tests
+command: [ -e $CHECKBOX_DATA/rendercheck-results ] && tar cvfz $CHECKBOX_DATA/rendercheck-results.tar.gz $CHECKBOX_DATA/rendercheck-results && cat $CHECKBOX_DATA/rendercheck-results.tar.gz
+_description: Attach log from rendercheck tests
diff --git a/jobs/server-services.txt.in b/jobs/server-services.txt.in
new file mode 100644
index 0000000..f667557
--- /dev/null
+++ b/jobs/server-services.txt.in
@@ -0,0 +1,47 @@
+plugin: shell
+name: services/open_ssh_test
+requires: package.name == 'ssh'
+command: pgrep sshd >/dev/null || (echo 'FAIL: sshd is not running.' 2>&1 && false)
+_description: Verifies that sshd is running.
+
+plugin: shell
+name: services/print_server_test
+requires: package.name == 'cups'
+command: pgrep cupsd >/dev/null || (echo 'FAIL: cupsd is not running.' 2>&1 && false)
+_description: Verifies that Print/CUPs server is running.
+
+plugin: shell
+name: services/dns_server_test
+requires:
+ package.name == 'bind9'
+ package.name == 'dnsutils'
+user: root
+command: dns_server_test
+_description: Verifies that DNS server is running and working.
+
+plugin: shell
+name: services/samba_test
+requires:
+ package.name == 'samba'
+ package.name == 'winbind'
+user: root
+command: samba_test
+_description: Verifies that Samba server is running.
+
+plugin: shell
+name: services/lamp_test
+requires:
+ package.name == 'apache2'
+ package.name == 'php5-mysql'
+ package.name == 'libapache2-mod-php5'
+ package.name == 'mysql-server'
+user: root
+command: lamp_test
+_description: Verifies that the LAMP stack is running (Apache, MySQL and PHP).
+
+plugin: shell
+name: services/tomcat_test
+requires: package.name == 'tomcat6'
+user: root
+command: tomcat_test
+_description: Verifies that Tomcat server is running and working.
diff --git a/jobs/smoke.txt.in b/jobs/smoke.txt.in
new file mode 100644
index 0000000..cf9298e
--- /dev/null
+++ b/jobs/smoke.txt.in
@@ -0,0 +1,50 @@
+plugin: shell
+name: smoke/true
+command: true
+_description:
+ Check success result from shell test case
+
+plugin: shell
+name: smoke/false
+command: false
+_description:
+ Check failed result from shell test case
+
+plugin: shell
+name: smoke/dependency/good
+depends: smoke/true
+command: true
+_description:
+ Check job is executed when dependency succeeds
+
+plugin: shell
+name: smoke/dependency/bad
+depends: smoke/false
+command: true
+_description:
+ Check job result is set to uninitiated when dependency fails
+
+plugin: shell
+name: smoke/requirement/good
+requires: package.name == "checkbox"
+command: true
+_description:
+ Check job is executed when requirements are met
+
+plugin: shell
+name: smoke/requirement/bad
+requires: package.name == "unknown-package"
+command: true
+_description:
+ Check job result is set to "not required on this system" when requirements are not met
+
+plugin: manual
+name: smoke/manual
+_description:
+ PURPOSE:
+ This test checks that the manual plugin works fine
+ STEPS:
+ 1. Add a comment
+ 2. Set the result as passed
+ VERIFICATION:
+ Check that in the report the result is passed and the comment is displayed
diff --git a/jobs/sniff.txt.in b/jobs/sniff.txt.in
new file mode 100644
index 0000000..7908627
--- /dev/null
+++ b/jobs/sniff.txt.in
@@ -0,0 +1,74 @@
+plugin: user-interact
+name: sniff/sniff7
+command: true
+_description:
+ PURPOSE:
+ To sniff things out
+ STEPS:
+ 1. Click Yes
+ VERIFICATION:
+ None Necessary, this is a bogus test
+
+plugin: manual
+name: sniff/sniff6
+_description:
+ PURPOSE:
+ To sniff things out
+ STEPS:
+ 1. Click Yes
+ VERIFICATION:
+ None Necessary, this is a bogus test
+
+plugin: manual
+name: sniff/sniff5
+_description:
+ PURPOSE:
+ To sniff things out
+ STEPS:
+ 1. Click Yes
+ VERIFICATION:
+ None Necessary, this is a bogus test
+
+plugin: user-interact
+name: sniff/sniff4
+command: reboot
+user: root
+_description:
+ PURPOSE:
+ Simulates a failure by rebooting the machine
+ STEPS:
+ 1. Click test to trigger a reboot
+ 2. Select "Continue" once logged back in and checkbox is restarted
+ VERIFICATION:
+ You won't see the user-verify
+
+plugin: manual
+name: sniff/sniff3
+_description:
+ PURPOSE:
+ If Recovery is successful, you will see this test on restarting checkbox, not
+ sniff4.
+ STEPS:
+ 1. Click Yes
+ VERIFICATION:
+ None Necessary, this is a bogus test
+
+plugin: manual
+name: sniff/sniff2
+_description:
+ PURPOSE:
+ To sniff things out
+ STEPS:
+ 1. Click Yes
+ VERIFICATION:
+ None Necessary, this is a bogus test
+
+plugin: manual
+name: sniff/sniff1
+_description:
+ PURPOSE:
+ To sniff things out
+ STEPS:
+ 1. Click Yes
+ VERIFICATION:
+ None Necessary, this is a bogus test
diff --git a/jobs/stress.txt.in b/jobs/stress.txt.in
new file mode 100644
index 0000000..66f76f1
--- /dev/null
+++ b/jobs/stress.txt.in
@@ -0,0 +1,257 @@
+plugin: shell
+name: stress/cpu_stress_test
+requires:
+ package.name == 'stress'
+user: root
+command: num_vm=$(awk '/MemTotal/ {x=$2/262144; print ((x == int(x)) ? x : int(x) +1)}' /proc/meminfo); vm_bytes=$(($(awk '/MemTotal/ {print int($2/1024)}' /proc/meminfo)/$num_vm/4))M; stress --cpu `cpuinfo_resource | awk '/count:/ {print $2}'` --vm $num_vm --vm-bytes $vm_bytes --timeout 7200s
+_description:
+ PURPOSE:
+ Create jobs that use the CPU as much as possible for two hours. The test is considered passed if the system does not freeze.
+
+plugin: shell
+name: power-management/hibernate_30_cycles
+depends:
+ power-management/hibernate_advanced
+requires:
+ sleep.disk == 'supported'
+ rtc.state == 'supported'
+environ: CHECKBOX_DATA
+user: root
+command:
+ if type -P fwts >/dev/null; then
+ echo "Calling fwts"
+ fwts_test -l $CHECKBOX_DATA/hibernate_30_cycles -f none -s s4 --s4-device-check --s4-device-check-delay=45 --s4-sleep-delay=120 --s4-multiple=30
+ else
+ echo "Calling sleep_test"
+ set -o pipefail; sleep_test -s disk -i 30 -w 120 | tee $CHECKBOX_DATA/hibernate_30_cycles.log
+ fi
+_description:
+ PURPOSE:
+ This is an automated stress test that will force the system to hibernate/resume for 30 cycles
+
+plugin: shell
+name: power-management/hibernate-30-cycles-log-check
+command: [ -e $CHECKBOX_DATA/hibernate_30_cycles.log ] && sleep_test_log_check -v s4 $CHECKBOX_DATA/hibernate_30_cycles.log
+_description:
+ Automated check of the 30 cycle hibernate log for errors detected by fwts.
+
+plugin: attachment
+name: power-management/hibernate-30-cycle-log-attach
+command: [ -e $CHECKBOX_DATA/hibernate_30_cycles.log ] && cat $CHECKBOX_DATA/hibernate_30_cycles.log
+_description:
+ Attaches the log from the 30 cycle Hibernate/Resume test if it exists
+
+plugin: shell
+name: power-management/suspend_30_cycles
+depends:
+ power-management/rtc
+ suspend/suspend_advanced
+environ: CHECKBOX_DATA
+user: root
+command:
+ if type -P fwts >/dev/null; then
+ echo "Calling fwts"
+ set -o pipefail; fwts_test -l $CHECKBOX_DATA/suspend_30_cycles -f none -s s3 --s3-device-check --s3-device-check-delay=45 --s3-sleep-delay=30 --s3-multiple=30 | tee $CHECKBOX_DATA/suspend_30_cycles_times.log
+ else
+ echo "Calling sleep_test"
+ set -o pipefail; sleep_test -p -s mem -i 30 | tee $CHECKBOX_DATA/suspend_30_cycles.log
+ fi
+_description:
+ PURPOSE:
+ This is an automated stress test that will force the system to suspend/resume for 30 cycles.
+
+plugin: shell
+name: power-management/suspend-30-cycles-log-check
+depends: power-management/suspend_30_cycles
+command: [ -e $CHECKBOX_DATA/suspend_30_cycles.log ] && sleep_test_log_check -v s3 $CHECKBOX_DATA/suspend_30_cycles.log
+_description:
+ Automated check of the 30 cycle hibernate log for errors detected by fwts.
+
+plugin: attachment
+name: power-management/suspend-30-cycle-log-attach
+depends: power-management/suspend_30_cycles
+command: [ -e $CHECKBOX_DATA/suspend_30_cycles.log ] && cat $CHECKBOX_DATA/suspend_30_cycles.log
+_description:
+ Attaches the log from the 30 cycle Suspend/Resume test if it exists
+
+plugin: shell
+name: power-management/suspend-30-cycles-time-check
+depends: power-management/suspend_30_cycles
+command: [ -e $CHECKBOX_DATA/suspend_30_cycles_times.log ] && sleep_time_check $CHECKBOX_DATA/suspend_30_cycles_times.log
+_description:
+ Checks the sleep times to ensure that a machine suspends and resumes within a given threshold
+
+plugin: shell
+name: stress/hibernate_250_cycles
+depends: power-management/rtc
+environ: CHECKBOX_DATA
+user: root
+command:
+ if type -P fwts >/dev/null; then
+ echo "Calling fwts"
+ fwts_test -l $CHECKBOX_DATA/hibernate_250_cycles -s s4 --s4-device-check --s4-device-check-delay=45 --s4-sleep-delay=120 --s4-multiple=250
+ else
+ echo "Calling sleep_test"
+ set -o pipefail; sleep_test -s disk -i 250 -w 120 | tee $CHECKBOX_DATA/hibernate_250_cycles.log
+ fi
+_description:
+ PURPOSE:
+ This is an automated stress test that will force the system to hibernate/resume for 250 cycles
+
+plugin: attachment
+name: stress/hibernate-250-cycle-log-attach
+command: [ -e $CHECKBOX_DATA/hibernate_250_cycles.log ] && cat $CHECKBOX_DATA/hibernate_250_cycles.log
+_description:
+ Attaches the log from the 250 cycle Hibernate/Resume test if it exists
+
+plugin: shell
+name: stress/suspend_250_cycles
+depends: power-management/rtc
+environ: CHECKBOX_DATA
+user: root
+command:
+ if type -P fwts >/dev/null; then
+ echo "Calling fwts"
+ set -o pipefail; fwts_test -l $CHECKBOX_DATA/suspend_250_cycles -s s3 --s3-device-check --s3-device-check-delay=45 --s3-sleep-delay=30 --s3-multiple=250 | tee $CHECKBOX_DATA/suspend_250_cycles_times.log
+ else
+ echo "Calling sleep_test"
+ set -o pipefail; sleep_test -p -s mem -i 250 | tee $CHECKBOX_DATA/suspend_250_cycles.log
+ fi
+_description:
+ PURPOSE:
+ This is an automated stress test that will force the system to suspend/resume for 250 cycles.
+
+plugin: attachment
+name: stress/suspend-250-cycle-log-attach
+command: [ -e $CHECKBOX_DATA/suspend_250_cycles.log ] && cat $CHECKBOX_DATA/suspend_250_cycles.log
+_description:
+ Attaches the log from the 250 cycle Suspend/Resume test if it exists
+
+plugin: shell
+name: stress/suspend-250-cycles-time-check
+command: [ -e $CHECKBOX_DATA/suspend_250_cycles_times.log ] && sleep_time_check $CHECKBOX_DATA/suspend_250_cycles_times.log
+_description:
+ Checks the sleep times to ensure that a machine suspends and resumes within a given threshold
+
+plugin: shell
+name: stress/reboot
+requires:
+ package.name == 'upstart'
+ package.name == 'fwts'
+command: pm_test -r 100 --silent --log-level=notset reboot --log-dir=$CHECKBOX_DATA
+user: root
+environ: CHECKBOX_DATA
+_description:
+ Stress reboot system (100 cycles)
+
+plugin: attachment
+name: stress/reboot_log
+depends: stress/reboot
+command: tar cvfz $CHECKBOX_DATA/stress_reboot.tgz $CHECKBOX_DATA/*reboot.100.log && cat $CHECKBOX_DATA/stress_reboot.tgz
+
+plugin: shell
+name: stress/poweroff
+requires:
+ package.name == 'upstart'
+ package.name == 'fwts'
+command: pm_test -r 100 --silent --log-level=notset poweroff --log-dir=$CHECKBOX_DATA
+user: root
+environ: CHECKBOX_DATA
+_description:
+ Stress poweroff system (100 cycles)
+
+plugin: attachment
+name: stress/poweroff_log
+depends: stress/poweroff
+command: tar cvfz $CHECKBOX_DATA/stress_poweroff.tgz $CHECKBOX_DATA/*poweroff.100.log && cat $CHECKBOX_DATA/stress_poweroff.tgz
+
+plugin: shell
+name: stress/reboot_check
+depends: stress/reboot
+command: pm_log_check --log-level=notset $CHECKBOX_DATA/pm_test.reboot.100.log $CHECKBOX_DATA/pm_log_check_reboot.100.log
+_description: Check logs for the stress reboot (100 cycles) test case
+
+plugin: attachment
+name: stress/reboot_check_log
+depends: stress/reboot_check
+command:
+ tar cvfz $CHECKBOX_DATA/stress_reboot_check.tgz $CHECKBOX_DATA/pm_log_check_reboot.100.log && cat $CHECKBOX_DATA/stress_reboot_check.tgz
+
+plugin: shell
+name: stress/poweroff_check
+depends: stress/poweroff
+command: pm_log_check --log-level=notset $CHECKBOX_DATA/pm_test.poweroff.100.log $CHECKBOX_DATA/pm_log_check_poweroff.100.log
+_description: Check logs for the stress poweroff (100 cycles) test case
+
+plugin: attachment
+name: stress/poweroff_check_log
+depends: stress/poweroff_check
+command:
+ tar cvfz $CHECKBOX_DATA/stress_poweroff_check.tgz $CHECKBOX_DATA/pm_log_check_poweroff.100.log && cat $CHECKBOX_DATA/stress_poweroff_check.tgz
+
+plugin: shell
+name: stress/graphics
+requires:
+ package.name == 'x11-apps'
+user: root
+environ: CHECKBOX_DATA
+command: graphics_stress_test -b repeat -d -o $CHECKBOX_DATA/graphics-stress-results && echo "Graphics Stress Test completed successfully" || echo "Graphics Stress Test completed, but there are errors. Please see the log $CHECKBOX_DATA/graphics-stress-results for details" && false
+_description:
+ Run the graphics stress test. This test can take a few minutes.
+
+plugin: shell
+name: stress/graphics-tarball
+requires:
+ package.name == 'x11-apps'
+depends: stress/graphics
+command: [ -e $CHECKBOX_DATA/graphics-stress-results ] && tar cvfz $CHECKBOX_DATA/graphics-stress-results.tar.gz $CHECKBOX_DATA/graphics-stress-results
+_description: Attaches the graphics stress results to the submission.
+
+plugin: shell
+name: stress/usb
+user: root
+command: removable_storage_test -s 10240000 -c 100 -i 3 usb
+_description: Runs a test that transfers 100 10MB files 3 times to usb.
+
+plugin: user-interact
+name: stress/sdhc
+user: root
+_summary: Stress test for SDHC card
+estimated_duration: 780.0
+command: removable_storage_test -s 10240000 -c 100 -i 3 sdio scsi usb --memorycard
+_description:
+ PURPOSE:
+ This test will transfers 100 10MB files 3 times to a SDHC card, to
+ check that the systems media card reader can transfer large amounts
+ of data.
+ STEPS:
+ 1. Insert a SDHC card into the reader and then Click "Test".
+ If a file browser opens up, you can safely close it.
+ 2. Do not remove the device during this test.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: shell
+name: stress/network_restart
+user: root
+environ: CHECKBOX_DATA
+command: network_restart -t 1 -o $CHECKBOX_DATA
+_description: Ping ubuntu.com and restart network interfaces 100 times
+
+plugin: attachment
+name: stress/network_restart_log
+depends: stress/network_restart
+command: file=$CHECKBOX_DATA/network_restart.log; if [ -e "$file" ]; then iconv -t 'ascii' -c "$file"; fi
+
+plugin: manual
+name: stress/wireless_hotkey
+requires: dmi.product in ['Notebook','Laptop','Portable']
+_description:
+ PURPOSE:
+ To make sure that stressing the wifi hotkey does not cause applets to disappear from the panel or the system to lock up
+ STEPS:
+ 1. Log in to desktop
+ 2. Press wifi hotkey at a rate of 1 press per second and slowly increase the speed of the tap, until you are tapping as fast as possible
+ VERIFICATION:
+ Verify the system is not frozen and the wifi and bluetooth applets are still visible and functional
diff --git a/jobs/suspend.txt.in b/jobs/suspend.txt.in
new file mode 100644
index 0000000..515d2fb
--- /dev/null
+++ b/jobs/suspend.txt.in
@@ -0,0 +1,2024 @@
+plugin: shell
+name: suspend/network_before_suspend
+depends: ethernet/detect
+estimated_duration: 1.2
+_description: Record the current network before suspending.
+command: set -o pipefail; gateway_ping_test | tee $CHECKBOX_DATA/network_before_suspend.txt
+
+plugin: shell
+name: suspend/resolution_before_suspend
+estimated_duration: 1.2
+_description: Record the current resolution before suspending.
+command: xrandr -q |grep '*'| awk '{print $1}' > $CHECKBOX_DATA/resolution_before_suspend.txt
+
+plugin: shell
+name: suspend/audio_before_suspend
+estimated_duration: 1.0
+requires:
+ device.category == 'AUDIO'
+ package.name == 'alsa-base'
+_description: Record mixer settings before suspending.
+command: audio_settings store --file=$CHECKBOX_DATA/audio_settings_before_suspend
+
+plugin: shell
+name: suspend/cpu_before_suspend
+estimated_duration: 1.2
+_description: Verify that all the CPUs are online before suspending
+command: cpuinfo_resource > $CHECKBOX_DATA/cpuinfo_before_suspend
+
+plugin: shell
+name: suspend/memory_before_suspend
+estimated_duration: 1.2
+_description:
+ Dumps memory info to a file for comparison after suspend test has been run
+command: meminfo_resource > $CHECKBOX_DATA/meminfo_before_suspend
+
+plugin: shell
+name: suspend/wireless_before_suspend
+depends: wireless/wireless_connection
+requires: device.category == 'WIRELESS'
+command: nmcli -t -f UUID con status > $CHECKBOX_DATA/connections && connect_wireless && gateway_ping_test --interface=`nmcli dev list | grep -B 1 wireless | grep GENERAL.DEVICE | awk '{print $2}'` && for con in `cat $CHECKBOX_DATA/connections`; do nmcli con up uuid "$con"; done
+estimated_duration: 20.0
+_description:
+ This test disconnects all connections and then connects to the wireless
+ interface. It then checks the connection to confirm it's working as expected.
+
+plugin: local
+name: suspend/iperf_before_suspend_ether_auto
+requires:
+ device.category == 'NETWORK'
+command:
+ cat <<'EOF' | run_templates -s 'udev_resource | filter_templates -w "category=NETWORK" | awk "/path: / { print \$2 }" | xargs -n 1 sh -c "for i in \`ls /sys\$0/net 2>/dev/null\`; do echo \$0 \$i; done"'
+ plugin: shell
+ name: suspend/iperf_before_suspend_ether_auto_$2
+ depends: ethernet/detect
+ estimated_duration: 20.0
+ requires: device.path == "$1"
+ user: root
+ command: network -i $2 -t iperf
+ _description:
+ This test executes iperf connection performance/stability against all the ethernet devices found on the system before suspend.
+ EOF
+_description:
+ This is an automated test to gather some info on the current state of your network devices. If no devices are found, the test will exit with an error.
+
+plugin: local
+name: suspend/iperf_before_suspend_wifi_auto
+requires:
+ device.category == 'WIRELESS'
+command:
+ cat <<'EOF' | run_templates -s 'udev_resource | filter_templates -w "category=WIRELESS" | awk "/path: / { print \$2 }" | xargs -n 1 sh -c "for i in \`ls /sys\$0/net 2>/dev/null\`; do echo \$0 \$i; done"'
+ plugin: shell
+ name: suspend/iperf_before_suspend_wifi_auto_$2
+ depends: wireless/wireless_connection
+ estimated_duration: 20.0
+ requires: device.path == "$1"
+ user: root
+ command: network -i $2 -t iperf
+ _description:
+ This test executes iperf connection performance/stability against all the ethernet devices found on the system before suspend.
+ EOF
+_description:
+ This is an automated test to gather some info on the current state of your network devices. If no devices are found, the test will exit with an error.
+
+plugin: shell
+name: suspend/bluetooth_obex_before_suspend
+estimated_duration: 10.0
+requires:
+ package.name == 'bluez'
+ package.name == 'obexd-client'
+ device.category == 'BLUETOOTH'
+command:
+ if [ -z "$BTDEVADDR" ]
+ then
+ echo "btdevaddr option not set to device address of Bluetooth target in checkbox.ini"
+ exit 1
+ fi
+ if rfkill list bluetooth | grep -q 'Hard blocked: yes'
+ then
+ echo "rfkill shows BT is hard blocked"
+ fi
+ if rfkill list bluetooth | grep -q 'Soft blocked: yes'
+ then
+ echo "rfkill shows BT is soft blocked, removing before testing."
+ rfkill unblock bluetooth
+ sleep 3
+ fi
+ obex_send $BTDEVADDR $CHECKBOX_SHARE/data/images/JPEG_Color_Image_Ubuntu.jpg
+_description:
+ This is an automated Bluetooth file transfer test. It sends an image to the device specified by the BTDEVADDR environment variable.
+
+plugin: shell
+name: suspend/bluetooth_obex_send_before_suspend
+estimated_duration: 10.0
+requires:
+ package.name == 'bluez'
+ package.name == 'obexftp'
+ device.category == 'BLUETOOTH'
+command:
+ if [ -z "$BTDEVADDR" ]
+ then
+ echo "btdevaddr option not set to device address of Bluetooth target in checkbox.ini"
+ exit 1
+ fi
+ if rfkill list bluetooth | grep -q 'Hard blocked: yes'
+ then
+ echo "rfkill list shows BT is hard blocked"
+ fi
+ if rfkill list bluetooth | grep -q 'Soft blocked: yes'
+ then
+ echo "rfkill list shows BT is soft blocked, removing before testing"
+ rfkill unblock bluetooth
+ sleep 3
+ fi
+ set -o pipefail; bluetooth_test $CHECKBOX_SHARE/data/images/JPEG_Color_Image_Ubuntu.jpg $BTDEVADDR send 2>&1 | ansi_parser
+_description:
+ This is an automated Bluetooth file transfer test. It sends an image to the device specified by the BTDEVADDR environment variable.
+
+plugin: shell
+name: suspend/bluetooth_obex_browse_before_suspend
+estimated_duration: 10.0
+requires:
+ package.name == 'bluez'
+ package.name == 'obexftp'
+ device.category == 'BLUETOOTH'
+command:
+ if [ -z "$BTDEVADDR" ]
+ then
+ echo "btdevaddr option not set to device address of Bluetooth target in checkbox.ini"
+ exit 1
+ fi
+ if rfkill list bluetooth | grep -q 'Hard blocked: yes'
+ then
+ echo "rfkill list shows BT is hard blocked"
+ fi
+ if rfkill list bluetooth | grep -q 'Soft blocked: yes'
+ then
+ echo "rfkill list shows BT is soft blocked, removing before testing"
+ rfkill unblock bluetooth
+ sleep 3
+ fi
+ set -o pipefail; bluetooth_test $CHECKBOX_SHARE/data/images/JPEG_Color_Image_Ubuntu.jpg $BTDEVADDR browse 2>&1 | ansi_parser
+_description:
+ This is an automated Bluetooth test. It emulates browsing on a remote device specified by the BTDEVADDR environment variable.
+
+plugin: shell
+name: suspend/bluetooth_obex_get_before_suspend
+estimated_duration: 20.0
+requires:
+ package.name == 'bluez'
+ package.name == 'obexftp'
+ device.category == 'BLUETOOTH'
+command:
+ if [ -z "$BTDEVADDR" ]
+ then
+ echo "btdevaddr option not set to device address of Bluetooth target in checkbox.ini"
+ exit 1
+ fi
+ if rfkill list bluetooth | grep -q 'Hard blocked: yes'
+ then
+ echo "rfkill list shows BT is hard blocked"
+ fi
+ if rfkill list bluetooth | grep -q 'Soft blocked: yes'
+ then
+ echo "rfkill list shows BT is soft blocked, removing before testing"
+ rfkill unblock bluetooth
+ sleep 3
+ fi
+ set -o pipefail; bluetooth_test $CHECKBOX_SHARE/data/images/JPEG_Color_Image_Ubuntu.jpg $BTDEVADDR get 2>&1 | ansi_parser
+_description:
+ This is an automated Bluetooth test. It receives the given file from a remote host specified by the BTDEVADDR environment variable
+
+plugin: user-interact-verify
+name: suspend/bluetooth_obex_before_suspend_manual
+estimated_duration: 120.0
+requires:
+ package.name == 'bluez'
+ package.name == 'obexd-client'
+ device.category == 'BLUETOOTH'
+command: rfkill unblock bluetooth; obex_send `bluetooth_scan` $CHECKBOX_SHARE/data/images/JPEG_Color_Image_Ubuntu.jpg
+_description:
+ PURPOSE:
+ This test will send the image 'JPEG_Color_Image_Ubuntu.jpg' to a specified device
+ STEPS:
+ 1. Make sure Bluetooth is enabled by checking the Bluetooth indicator applet
+ 2. Click "Test" and you will be prompted to enter the Bluetooth device name of a device that can accept file transfers (It may take a few moments after entering the name for the file to begin sending)
+ 3. Accept any prompts that appear on both devices
+ VERIFICATION:
+ Was the data correctly transferred?
+
+plugin: user-verify
+name: suspend/suspend_advanced
+requires:
+ sleep.mem == 'supported'
+ rtc.state == 'supported'
+user: root
+environ: CHECKBOX_DATA
+command:
+ if type -P fwts >/dev/null; then
+ echo "Calling fwts"
+ set -o pipefail; fwts_test -f none -l $CHECKBOX_DATA/suspend_single -s s3 --s3-sleep-delay=30 --s3-device-check --s3-device-check-delay=45 | tee $CHECKBOX_DATA/suspend_single_times.log
+ else
+ echo "Calling sleep_test"
+ set -o pipefail; sleep_test -p | tee $CHECKBOX_DATA/suspend_single_times.log
+ fi
+estimated_duration: 90.0
+_description:
+ PURPOSE:
+ This test will check suspend and resume
+ STEPS:
+ 1. Click "Test" and your system will suspend for about 30 - 60 seconds
+ 2. Observe the Power LED to see if it blinks or changes color during suspend
+ 3. If your system does not wake itself up after 60 seconds, please press the power button momentarily to wake the system manually
+ 4. If your system fails to wake at all and must be rebooted, restart System Testing after reboot and mark this test as Failed
+ VERIFICATION:
+ Did your system suspend and resume correctly?
+ (NOTE: Please only consider whether the system successfully suspended and resumed. Power/Suspend LED verification will occur after this test is completed.)
+
+plugin: shell
+name: suspend/suspend_advanced_auto
+requires:
+ sleep.mem == 'supported'
+ rtc.state == 'supported'
+_description:
+ This is the automated version of suspend/suspend_advanced.
+user: root
+environ: CHECKBOX_DATA
+command: set -o pipefail; fwts_test -f none -l $CHECKBOX_DATA/suspend_single -s s3 --s3-sleep-delay=30 --s3-device-check --s3-device-check-delay=45 | tee $CHECKBOX_DATA/suspend_single_times.log
+estimated_duration: 90.000
+
+plugin: shell
+name: suspend/suspend-single-log-check
+estimated_duration: 1.2
+command: [ -e $CHECKBOX_DATA/suspend_single.log ] && sleep_test_log_check -v s3 $CHECKBOX_DATA/suspend_single.log
+_description:
+ Automated check of the suspend log to look for errors reported by fwts
+
+plugin: attachment
+name: suspend/suspend-single-log-attach
+command: [ -e $CHECKBOX_DATA/suspend_single.log ] && cat $CHECKBOX_DATA/suspend_single.log
+_description:
+ Attaches the log from the single suspend/resume test to the results
+
+plugin: shell
+name: suspend/suspend-time-check
+estimated_duration: 1.2
+command: [ -e $CHECKBOX_DATA/suspend_single_times.log ] && sleep_time_check $CHECKBOX_DATA/suspend_single_times.log
+_description:
+ Checks the sleep times to ensure that a machine suspends and resumes within a given threshold
+
+plugin: user-interact-verify
+name: power-management/usb_wakeup_keyboard
+user: root
+depends: suspend/suspend_advanced
+estimated_duration: 120.0
+command: pm-suspend
+_description:
+ PURPOSE:
+ Wake up by USB keyboard
+ STEPS:
+ 1. Enable "Wake by USB KB/Mouse" item in BIOS
+ 2. Press "Test" to enter suspend (S3) mode
+ 3. Press any key of USB keyboard to wake system up
+ VERIFICATION:
+ Did the system wake up from suspend mode when you pressed a keyboard key?
+
+plugin: user-interact-verify
+name: power-management/usb_wakeup_mouse
+user: root
+depends: suspend/suspend_advanced
+estimated_duration: 120.0
+command: pm-suspend
+_description:
+ PURPOSE:
+ Wake up by USB mouse
+ STEPS:
+ 1. Enable "Wake by USB KB/Mouse" item in BIOS
+ 2. Press "Test" to enter suspend (S3) mode
+ 3. Press any button of USB mouse to wake system up
+ VERIFICATION:
+ Did the system wake up from suspend mode when you pressed the mouse button?
+
+plugin: shell
+name: suspend/network_after_suspend
+estimated_duration: 20.0
+depends: suspend/suspend_advanced suspend/network_before_suspend
+_description: Test the network after resuming.
+command: network_wait; gateway_ping_test | diff $CHECKBOX_DATA/network_before_suspend.txt -
+
+plugin: shell
+name: suspend/resolution_after_suspend
+depends: suspend/suspend_advanced suspend/resolution_before_suspend
+estimated_duration: 1.2
+_description: Test to see that we have the same resolution after resuming as before.
+command: xrandr -q |grep '*'| awk '{print $1}' | diff $CHECKBOX_DATA/resolution_before_suspend.txt -
+
+plugin: shell
+name: suspend/audio_after_suspend
+estimated_duration: 1.0
+requires:
+ device.category == 'AUDIO'
+ package.name == 'alsa-base'
+depends: suspend/suspend_advanced suspend/audio_before_suspend
+_description: Verify that mixer settings after suspend are the same as before suspend.
+command:
+ audio_settings store --file=$CHECKBOX_DATA/audio_settings_after_suspend; diff $CHECKBOX_DATA/audio_settings_before_suspend $CHECKBOX_DATA/audio_settings_after_suspend
+
+plugin: shell
+name: suspend/audio_after_suspend_auto
+estimated_duration: 1.2
+requires:
+ device.category == 'AUDIO'
+ package.name == 'alsa-base'
+depends: suspend/suspend_advanced_auto suspend/audio_before_suspend
+_description: Verify that mixer settings after suspend are the same as before suspend.
+command:
+ audio_settings store --file=$CHECKBOX_DATA/audio_settings_after_suspend; diff $CHECKBOX_DATA/audio_settings_before_suspend $CHECKBOX_DATA/audio_settings_after_suspend
+
+plugin: shell
+name: suspend/cpu_after_suspend
+estimated_duration: 1.2
+depends: suspend/suspend_advanced suspend/cpu_before_suspend
+_description: Verify that all CPUs are online after resuming.
+command: cpuinfo_resource | diff $CHECKBOX_DATA/cpuinfo_before_suspend -
+
+plugin: shell
+name: suspend/cpu_after_suspend_auto
+estimated_duration: 1.2
+depends: suspend/suspend_advanced_auto suspend/cpu_before_suspend
+_description: Verify that all CPUs are online after resuming.
+command: cpuinfo_resource | diff $CHECKBOX_DATA/cpuinfo_before_suspend -
+
+plugin: shell
+name: suspend/memory_after_suspend
+estimated_duration: 1.2
+depends: suspend/suspend_advanced suspend/memory_before_suspend
+_description:
+ Verify that all memory is available after resuming from suspend.
+command: meminfo_resource | diff $CHECKBOX_DATA/meminfo_before_suspend -
+
+plugin: shell
+name: suspend/memory_after_suspend_auto
+estimated_duration: 1.2
+depends: suspend/suspend_advanced_auto suspend/memory_before_suspend
+_description:
+ Verify that all memory is available after resuming from suspend.
+command: meminfo_resource | diff $CHECKBOX_DATA/meminfo_before_suspend -
+
+plugin: manual
+name: suspend/display_after_suspend
+estimated_duration: 120.0
+depends: suspend/suspend_advanced
+_description:
+ PURPOSE:
+ This test will check that the display is correct after suspend and resume
+ STEPS:
+ 1. Check that your display does not show up visual artifacts after resuming.
+ VERIFICATION:
+ Does the display work normally after resuming from suspend?
+
+plugin: shell
+name: suspend/wireless_after_suspend
+depends: suspend/suspend_advanced suspend/wireless_before_suspend
+requires:
+ device.category == 'WIRELESS'
+command: connect_wireless && gateway_ping_test --interface=`nmcli dev list | grep -B 1 wireless | grep GENERAL.DEVICE | awk '{print $2}'` && for con in `cat $CHECKBOX_DATA/connections`; do nmcli con up uuid "$con"; done
+estimated_duration: 20.0
+_description:
+ This test checks that the wireless interface is working after suspending the system. It
+ disconnects all interfaces and then connects to the wireless interface and checks that the
+ connection is working as expected.
+
+plugin: shell
+name: suspend/wireless_connection_after_suspend_wpa_bg
+depends: suspend/suspend_advanced
+estimated_duration: 20.0
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'multiple'
+user: root
+environ: WPA_BG_SSID WPA_BG_PSK
+command: trap "rm -f /etc/NetworkManager/system-connections/$WPA_BG_SSID" EXIT; create_connection wifi $WPA_BG_SSID --security=wpa --key=$WPA_BG_PSK; gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+_description:
+ Tests that the systems wireless hardware can connect to a router using WPA
+ security and the 802.11b/g protocols after the system has been suspended.
+
+plugin: shell
+name: suspend/wireless_connection_after_suspend_open_bg
+depends: suspend/suspend_advanced
+estimated_duration: 1.2
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'multiple'
+user: root
+environ: OPEN_BG_SSID
+command: trap "rm -f /etc/NetworkManager/system-connections/$OPEN_BG_SSID" EXIT; create_connection wifi $OPEN_BG_SSID; gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+_description:
+ Tests that the systems wireless hardware can connect to a router using no
+ security and the 802.11b/g protocols after the system has been suspended.
+
+plugin: shell
+name: suspend/wireless_connection_after_suspend_wpa_n
+depends: suspend/suspend_advanced
+estimated_duration: 1.2
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'multiple'
+ IEEE_80211.n == 'supported'
+user: root
+environ: WPA_N_SSID WPA_N_PSK
+command: trap "rm -f /etc/NetworkManager/system-connections/$WPA_N_SSID" EXIT; create_connection wifi $WPA_N_SSID --security=wpa --key=$WPA_N_PSK; gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+_description:
+ Tests that the systems wireless hardware can connect to a router using WPA
+ security and the 802.11n protocol after the system has been suspended.
+
+plugin: shell
+name: suspend/wireless_connection_after_suspend_open_n
+depends: suspend/suspend_advanced
+estimated_duration: 1.2
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'multiple'
+ IEEE_80211.n == 'supported'
+user: root
+environ: OPEN_N_SSID
+command: trap "rm -f /etc/NetworkManager/system-connections/$OPEN_N_SSID" EXIT; create_connection wifi $OPEN_N_SSID; gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+_description:
+ Tests that the systems wireless hardware can connect to a router using no
+ security and the 802.11n protocol after the system has been suspended.
+
+plugin: shell
+name: suspend/wireless_connection_after_suspend_wpa_ac
+depends: suspend/suspend_advanced
+estimated_duration: 1.2
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'multiple'
+ IEEE_80211.ac == 'supported'
+user: root
+environ: WPA_AC_SSID WPA_AC_PSK
+command: trap "rm -f /etc/NetworkManager/system-connections/$WPA_AC_SSID" EXIT; create_connection wifi $WPA_AC_SSID --security=wpa --key=$WPA_AC_PSK; gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+_description:
+ Tests that the systems wireless hardware can connect to a router using WPA
+ security and the 802.11ac protocol after the system has been suspended.
+
+plugin: shell
+name: suspend/wireless_connection_after_suspend_open_ac
+depends: suspend/suspend_advanced
+estimated_duration: 1.2
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'multiple'
+ IEEE_80211.ac == 'supported'
+user: root
+environ: OPEN_AC_SSID
+command: trap "rm -f /etc/NetworkManager/system-connections/$OPEN_AC_SSID" EXIT; create_connection wifi $OPEN_AC_SSID; gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+_description:
+ Tests that the systems wireless hardware can connect to a router using no
+ security and the 802.11ac protocol after the system has been suspended.
+
+plugin: shell
+name: suspend/wireless_connection_after_suspend_wpa_bg_auto
+depends: suspend/suspend_advanced_auto
+estimated_duration: 1.2
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'multiple'
+user: root
+environ: WPA_BG_SSID WPA_BG_PSK
+command: trap "rm -f /etc/NetworkManager/system-connections/$WPA_BG_SSID" EXIT; create_connection wifi $WPA_BG_SSID --security=wpa --key=$WPA_BG_PSK; gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+_description:
+ Tests that the systems wireless hardware can connect to a router using WPA
+ security and the 802.11b/g protocols after the system has been suspended.
+
+plugin: shell
+name: suspend/wireless_connection_after_suspend_open_bg_auto
+depends: suspend/suspend_advanced_auto
+estimated_duration: 1.2
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'multiple'
+user: root
+environ: OPEN_BG_SSID
+command: trap "rm -f /etc/NetworkManager/system-connections/$OPEN_BG_SSID" EXIT; create_connection wifi $OPEN_BG_SSID; gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+_description:
+ Tests that the systems wireless hardware can connect to a router using no
+ security and the 802.11b/g protocols after the system has been suspended.
+
+plugin: shell
+name: suspend/wireless_connection_after_suspend_wpa_n_auto
+depends: suspend/suspend_advanced_auto
+estimated_duration: 1.2
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'multiple'
+user: root
+environ: WPA_N_SSID WPA_N_PSK
+command: trap "rm -f /etc/NetworkManager/system-connections/$WPA_N_SSID" EXIT; create_connection wifi $WPA_N_SSID --security=wpa --key=$WPA_N_PSK; gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+_description:
+ Tests that the systems wireless hardware can connect to a router using WPA
+ security and the 802.11n protocol after the system has been suspended.
+
+plugin: shell
+name: suspend/wireless_connection_after_suspend_open_n_auto
+depends: suspend/suspend_advanced_auto
+estimated_duration: 1.2
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'multiple'
+user: root
+environ: OPEN_N_SSID
+command: trap "rm -f /etc/NetworkManager/system-connections/$OPEN_N_SSID" EXIT; create_connection wifi $OPEN_N_SSID; gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+_description:
+ Tests that the systems wireless hardware can connect to a router using no
+ security and the 802.11n protocol after the system has been suspended.
+
+plugin: shell
+name: suspend/wireless_connection_after_suspend_wpa_ac_auto
+depends: suspend/suspend_advanced_auto
+estimated_duration: 1.2
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'multiple'
+user: root
+environ: WPA_AC_SSID WPA_AC_PSK
+command: trap "rm -f /etc/NetworkManager/system-connections/$WPA_AC_SSID" EXIT; create_connection wifi $WPA_AC_SSID --security=wpa --key=$WPA_AC_PSK; gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+_description:
+ Tests that the systems wireless hardware can connect to a router using WPA
+ security and the 802.11ac protocol after the system has been suspended.
+
+plugin: shell
+name: suspend/wireless_connection_after_suspend_open_ac_auto
+depends: suspend/suspend_advanced_auto
+estimated_duration: 1.2
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'multiple'
+user: root
+environ: OPEN_AC_SSID
+command: trap "rm -f /etc/NetworkManager/system-connections/$OPEN_AC_SSID" EXIT; create_connection wifi $OPEN_AC_SSID; gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+_description:
+ Tests that the systems wireless hardware can connect to a router using no
+ security and the 802.11ac protocol after the system has been suspended.
+
+plugin: local
+name: suspend/iperf_after_suspend_ether_auto
+estimated_duration: 30.0
+requires:
+ device.category == 'NETWORK'
+command:
+ cat <<'EOF' | run_templates -s 'udev_resource | filter_templates -w "category=NETWORK" | awk "/path: / { print \$2 }" | xargs -n 1 sh -c "for i in \`ls /sys\$0/net 2>/dev/null\`; do echo \$0 \$i; done"'
+ plugin: shell
+ name: suspend/iperf_after_suspend_ether_auto_$2
+ depends: suspend/suspend_advanced
+ requires: device.path == "$1"
+ user: root
+ command: network -i $2 -t iperf
+ _description:
+ This test executes iperf connection performance/stability against all the ethernet devices found on the system before suspend.
+ EOF
+_description:
+ This is an automated test to gather some info on the current state of your network devices. If no devices are found, the test will exit with an error.
+
+plugin: local
+name: suspend/iperf_after_suspend_wifi_auto
+estimated_duration: 30.0
+requires:
+ device.category == 'WIRELESS'
+command:
+ cat <<'EOF' | run_templates -s 'udev_resource | filter_templates -w "category=WIRELESS" | awk "/path: / { print \$2 }" | xargs -n 1 sh -c "for i in \`ls /sys\$0/net 2>/dev/null\`; do echo \$0 \$i; done"'
+ plugin: shell
+ name: suspend/iperf_before_suspend_wifi_auto_$2
+ depends: suspend/suspend_advanced
+ requires: device.path == "$1"
+ user: root
+ command: network -i $2 -t iperf
+ _description:
+ This test executes iperf connection performance/stability against all the ethernet devices found on the system before suspend.
+ EOF
+_description:
+ This is an automated test to gather some info on the current state of your network devices. If no devices are found, the test will exit with an error.
+
+plugin: user-interact-verify
+name: suspend/wireless_connection_after_suspend_wpa_bg_manual
+depends: suspend/suspend_advanced
+estimated_duration: 120.0
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'single'
+user: root
+environ: ROUTER_SSID ROUTER_PSK
+command: trap "nmcli con delete id $ROUTER_SSID" EXIT; create_connection wifi $ROUTER_SSID --security=wpa --key=$ROUTER_PSK && gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+_description:
+ PURPOSE:
+ Tests that the systems wireless hardware can connect to a router using WPA
+ security and the 802.11b/g protocols.
+ STEPS:
+ 1. Open your routers configuration tool
+ 2. Change the settings to only accept connections on the B and G wireless bands
+ 3. Make sure the SSID is set to ROUTER_SSID
+ 4. Change the security settings to use WPA2 and ensure the PSK matches that set in ROUTER_PSK
+ 5. Click the 'Test' button to create a connection to the router and test the connection
+ VERIFICATION:
+ Verification is automated, do not change the automatically selected result.
+
+plugin: user-interact-verify
+name: suspend/wireless_connection_after_suspend_open_bg_manual
+depends: suspend/suspend_advanced
+estimated_duration: 120.0
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'single'
+user: root
+environ: ROUTER_SSID
+command: trap "nmcli con delete id $ROUTER_SSID" EXIT; create_connection wifi $ROUTER_SSID && gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+_description:
+ PURPOSE:
+ Tests that the systems wireless hardware can connect to a router using
+ no security and the 802.11b/g protocols.
+ STEPS:
+ 1. Open your routers configuration tool
+ 2. Change the settings to only accept connections on the B and G wireless bands
+ 3. Make sure the SSID is set to ROUTER_SSID
+ 4. Change the security settings to use no security
+ 5. Click the 'Test' button to create a connection to the router and test the connection
+ VERIFICATION:
+ Verification is automated, do not change the automatically selected result.
+
+plugin: user-interact-verify
+name: suspend/wireless_connection_after_suspend_wpa_n_manual
+depends: suspend/suspend_advanced
+estimated_duration: 120.0
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'single'
+user: root
+environ: ROUTER_SSID ROUTER_PSK
+command: trap "nmcli con delete id $ROUTER_SSID" EXIT; create_connection wifi $ROUTER_SSID --security=wpa --key=$ROUTER_PSK && gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+_description:
+ PURPOSE:
+ Tests that the systems wireless hardware can connect to a router using WPA
+ security and the 802.11n protocols.
+ STEPS:
+ 1. Open your routers configuration tool
+ 2. Change the settings to only accept connections on the N wireless band
+ 3. Make sure the SSID is set to ROUTER_SSID
+ 4. Change the security settings to use WPA2 and ensure the PSK matches that set in ROUTER_PSK
+ 5. Click the 'Test' button to create a connection to the router and test the connection
+ VERIFICATION:
+ Verification is automated, do not change the automatically selected result.
+
+plugin: user-interact-verify
+name: suspend/wireless_connection_after_suspend_open_n_manual
+depends: suspend/suspend_advanced
+estimated_duration: 120.0
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'single'
+user: root
+environ: ROUTER_SSID
+command: trap "nmcli con delete id $ROUTER_SSID" EXIT; create_connection wifi $ROUTER_SSID && gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+_description:
+ PURPOSE:
+ Tests that the systems wireless hardware can connect to a router using
+ no security and the 802.11n protocol.
+ STEPS:
+ 1. Open your routers configuration tool
+ 2. Change the settings to only accept connections on the N wireless band
+ 3. Make sure the SSID is set to ROUTER_SSID
+ 4. Change the security settings to use no security
+ 5. Click the 'Test' button to create a connection to the router and test the connection
+ VERIFICATION:
+ Verification is automated, do not change the automatically selected result.
+
+plugin: user-interact-verify
+name: suspend/wireless_connection_after_suspend_wpa_ac_manual
+depends: suspend/suspend_advanced
+estimated_duration: 120.0
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'single'
+user: root
+environ: ROUTER_SSID ROUTER_PSK
+command: trap "nmcli con delete id $ROUTER_SSID" EXIT; create_connection wifi $ROUTER_SSID --security=wpa --key=$ROUTER_PSK && gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+_description:
+ PURPOSE:
+ Tests that the systems wireless hardware can connect to a router using WPA
+ security and the 802.11ac protocol.
+ STEPS:
+ 1. Open your routers configuration tool
+ 2. Change the settings to only accept connections on the 802.11ac protocol.
+ 3. Make sure the SSID is set to ROUTER_SSID
+ 4. Change the security settings to use WPA2 and ensure the PSK matches that set in ROUTER_PSK
+ 5. Click the 'Test' button to create a connection to the router and test the connection
+ VERIFICATION:
+ Verification is automated, do not change the automatically selected result.
+
+plugin: user-interact-verify
+name: suspend/wireless_connection_after_suspend_open_ac_manual
+depends: suspend/suspend_advanced
+estimated_duration: 120.0
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'single'
+user: root
+environ: ROUTER_SSID
+command: trap "nmcli con delete id $ROUTER_SSID" EXIT; create_connection wifi $ROUTER_SSID && gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+_description:
+ PURPOSE:
+ Tests that the systems wireless hardware can connect to a router using
+ no security and the 802.11ac protocol.
+ STEPS:
+ 1. Open your routers configuration tool
+ 2. Change the settings to only accept connections on the 802.11ac protocol.
+ 3. Make sure the SSID is set to ROUTER_SSID
+ 4. Change the security settings to use no security
+ 5. Click the 'Test' button to create a connection to the router and test the connection
+ VERIFICATION:
+ Verification is automated, do not change the automatically selected result.
+
+plugin: shell
+name: suspend/bluetooth_detect_after_suspend
+depends: suspend/suspend_advanced bluetooth/detect-output
+estimated_duration: 1.2
+requires:
+ package.name == 'bluez'
+ device.category == 'BLUETOOTH'
+command:
+ if rfkill list bluetooth | grep -q 'Hard blocked: yes'; then
+ echo "rfkill shows BT is hard blocked"
+ fi
+ if rfkill list bluetooth | grep -q 'Soft blocked: yes'; then
+ echo "rfkill shows BT is soft blocked, removing before testing"
+ rfkill unblock bluetooth
+ sleep 3
+ fi
+ output=$(hcitool dev | tail -n+2 | awk '{print $2}')
+ echo $output | diff $CHECKBOX_DATA/bluetooth_address -
+ if [ -z "$output" ]; then
+ echo "BT hardware not available"
+ exit 1
+ fi
+_description:
+ This test grabs the hardware address of the bluetooth adapter after suspend and compares it to the address grabbed before suspend.
+
+plugin: shell
+name: suspend/bluetooth_obex_after_suspend
+depends: suspend/suspend_advanced suspend/bluetooth_obex_before_suspend
+estimated_duration: 10.0
+requires:
+ package.name == 'bluez'
+ package.name == 'obexd-client'
+ device.category == 'BLUETOOTH'
+command:
+ if [ -z "$BTDEVADDR" ]
+ then
+ echo "btdevaddr option not set to device address of Bluetooth target in checkbox.ini"
+ exit 1
+ fi
+ if rfkill list bluetooth | grep -q 'Hard blocked: yes'
+ then
+ echo "rfkill shows BT is hard blocked"
+ fi
+ if rfkill list bluetooth | grep -q 'Soft blocked: yes'
+ then
+ echo "rfkill shows BT is soft blocked, removing before testing."
+ rfkill unblock bluetooth
+ sleep 3
+ fi
+ obex_send $BTDEVADDR $CHECKBOX_SHARE/data/images/JPEG_Color_Image_Ubuntu.jpg
+_description:
+ This is an automated Bluetooth file transfer test. It sends an image to the device specified by the BTDEVADDR environment variable.
+
+plugin: shell
+name: suspend/bluetooth_obex_after_suspend_auto
+depends: suspend/suspend_advanced_auto suspend/bluetooth_obex_before_suspend
+estimated_duration: 10.0
+requires:
+ package.name == 'bluez'
+ package.name == 'obexd-client'
+ device.category == 'BLUETOOTH'
+command:
+ if [ -z "$BTDEVADDR" ]
+ then
+ echo "btdevaddr option not set to device address of Bluetooth target in checkbox.ini"
+ exit 1
+ fi
+ if rfkill list bluetooth | grep -q 'Hard blocked: yes'
+ then
+ echo "rfkill shows BT is hard blocked"
+ fi
+ if rfkill list bluetooth | grep -q 'Soft blocked: yes'
+ then
+ echo "rfkill shows BT is soft blocked, removing before testing."
+ rfkill unblock bluetooth
+ sleep 3
+ fi
+ obex_send $BTDEVADDR $CHECKBOX_SHARE/data/images/JPEG_Color_Image_Ubuntu.jpg
+_description:
+ This is an automated Bluetooth file transfer test. It sends an image to the device specified by the BTDEVADDR environment variable.
+
+plugin: shell
+name: suspend/bluetooth_obex_send_after_suspend
+depends: suspend/suspend_advanced
+estimated_duration: 10.0
+requires:
+ package.name == 'bluez'
+ package.name == 'obexftp'
+ device.category == 'BLUETOOTH'
+command:
+ if [ -z "$BTDEVADDR" ]
+ then
+ echo "btdevaddr option not set to device address of Bluetooth target in checkbox.ini"
+ exit 1
+ fi
+ if rfkill list bluetooth | grep -q 'Hard blocked: yes'
+ then
+ echo "rfkill list shows BT is hard blocked"
+ fi
+ if rfkill list bluetooth | grep -q 'Soft blocked: yes'
+ then
+ echo "rfkill list shows BT is soft blocked, removing before testing"
+ rfkill unblock bluetooth
+ sleep 3
+ fi
+ set -o pipefail; bluetooth_test $CHECKBOX_SHARE/data/images/JPEG_Color_Image_Ubuntu.jpg $BTDEVADDR send 2>&1 | ansi_parser
+_description:
+ This is an automated Bluetooth file transfer test. It sends an image to the device specified by the BTDEVADDR environment variable.
+
+plugin: shell
+name: suspend/bluetooth_obex_send_after_suspend_auto
+depends: suspend/suspend_advanced_auto
+estimated_duration: 10.0
+requires:
+ package.name == 'bluez'
+ package.name == 'obexftp'
+ device.category == 'BLUETOOTH'
+command:
+ if [ -z "$BTDEVADDR" ]
+ then
+ echo "btdevaddr option not set to device address of Bluetooth target in checkbox.ini"
+ exit 1
+ fi
+ if rfkill list bluetooth | grep -q 'Hard blocked: yes'
+ then
+ echo "rfkill list shows BT is hard blocked"
+ fi
+ if rfkill list bluetooth | grep -q 'Soft blocked: yes'
+ then
+ echo "rfkill list shows BT is soft blocked, removing before testing"
+ rfkill unblock bluetooth
+ sleep 3
+ fi
+ set -o pipefail; bluetooth_test $CHECKBOX_SHARE/data/images/JPEG_Color_Image_Ubuntu.jpg $BTDEVADDR send 2>&1 | ansi_parser
+_description:
+ This is an automated Bluetooth file transfer test. It sends an image to the device specified by the BTDEVADDR environment variable.
+
+plugin: shell
+name: suspend/bluetooth_obex_browse_after_suspend
+depends: suspend/suspend_advanced
+estimated_duration: 10.0
+requires:
+ package.name == 'bluez'
+ package.name == 'obexftp'
+ device.category == 'BLUETOOTH'
+command:
+ if [ -z "$BTDEVADDR" ]
+ then
+ echo "btdevaddr option not set to device address of Bluetooth target in checkbox.ini"
+ exit 1
+ fi
+ if rfkill list bluetooth | grep -q 'Hard blocked: yes'
+ then
+ echo "rfkill list shows BT is hard blocked"
+ fi
+ if rfkill list bluetooth | grep -q 'Soft blocked: yes'
+ then
+ echo "rfkill list shows BT is soft blocked, removing before testing"
+ rfkill unblock bluetooth
+ sleep 3
+ fi
+ set -o pipefail; bluetooth_test $CHECKBOX_SHARE/data/images/JPEG_Color_Image_Ubuntu.jpg $BTDEVADDR browse 2>&1 | ansi_parser
+_description:
+ This is an automated Bluetooth test. It emulates browsing on a remote device specified by the BTDEVADDR environment variable.
+
+plugin: shell
+name: suspend/bluetooth_obex_browse_after_suspend_auto
+depends: suspend/suspend_advanced_auto
+estimated_duration: 20.0
+requires:
+ package.name == 'bluez'
+ package.name == 'obexftp'
+ device.category == 'BLUETOOTH'
+command:
+ if [ -z "$BTDEVADDR" ]
+ then
+ echo "btdevaddr option not set to device address of Bluetooth target in checkbox.ini"
+ exit 1
+ fi
+ if rfkill list bluetooth | grep -q 'Hard blocked: yes'
+ then
+ echo "rfkill list shows BT is hard blocked"
+ fi
+ if rfkill list bluetooth | grep -q 'Soft blocked: yes'
+ then
+ echo "rfkill list shows BT is soft blocked, removing before testing"
+ rfkill unblock bluetooth
+ sleep 3
+ fi
+ set -o pipefail; bluetooth_test $CHECKBOX_SHARE/data/images/JPEG_Color_Image_Ubuntu.jpg $BTDEVADDR browse 2>&1 | ansi_parser
+_description:
+ This is an automated Bluetooth test. It emulates browsing on a remote device specified by the BTDEVADDR environment variable.
+
+plugin: shell
+name: suspend/bluetooth_obex_get_after_suspend
+estimated_duration: 20.0
+depends: suspend/suspend_advanced
+requires:
+ package.name == 'bluez'
+ package.name == 'obexftp'
+ device.category == 'BLUETOOTH'
+command:
+ if [ -z "$BTDEVADDR" ]
+ then
+ echo "btdevaddr option not set to device address of Bluetooth target in checkbox.ini"
+ exit 1
+ fi
+ if rfkill list bluetooth | grep -q 'Hard blocked: yes'
+ then
+ echo "rfkill list shows BT is hard blocked"
+ fi
+ if rfkill list bluetooth | grep -q 'Soft blocked: yes'
+ then
+ echo "rfkill list shows BT is soft blocked, removing before testing"
+ rfkill unblock bluetooth
+ sleep 3
+ fi
+ set -o pipefail; bluetooth_test $CHECKBOX_SHARE/data/images/JPEG_Color_Image_Ubuntu.jpg $BTDEVADDR get 2>&1 | ansi_parser
+_description:
+ This is an automated Bluetooth test. It receives the given file from a remote host specified by the BTDEVADDR environment variable
+
+plugin: shell
+name: suspend/bluetooth_obex_get_after_suspend_auto
+depends: suspend/suspend_advanced_auto
+estimated_duration: 20.0
+requires:
+ package.name == 'bluez'
+ package.name == 'obexftp'
+ device.category == 'BLUETOOTH'
+command:
+ if [ -z "$BTDEVADDR" ]
+ then
+ echo "btdevaddr option not set to device address of Bluetooth target in checkbox.ini"
+ exit 1
+ fi
+ if rfkill list bluetooth | grep -q 'Hard blocked: yes'
+ then
+ echo "rfkill list shows BT is hard blocked"
+ fi
+ if rfkill list bluetooth | grep -q 'Soft blocked: yes'
+ then
+ echo "rfkill list shows BT is soft blocked, removing before testing"
+ rfkill unblock bluetooth
+ sleep 3
+ fi
+ set -o pipefail; bluetooth_test $CHECKBOX_SHARE/data/images/JPEG_Color_Image_Ubuntu.jpg $BTDEVADDR get 2>&1 | ansi_parser
+_description:
+ This is an automated Bluetooth test. It receives the given file from a remote host specified by the BTDEVADDR environment variable
+
+plugin: user-interact-verify
+name: suspend/bluetooth_obex_after_suspend_manual
+depends: suspend/suspend_advanced suspend/bluetooth_obex_before_suspend_manual
+estimated_duration: 120.0
+requires:
+ package.name == 'bluez'
+ package.name == 'obexd-client'
+ device.category == 'BLUETOOTH'
+command: rfkill unblock bluetooth; obex_send `bluetooth_scan` $CHECKBOX_SHARE/data/images/JPEG_Color_Image_Ubuntu.jpg
+_description:
+ PURPOSE:
+ This test will send the image 'JPEG_Color_Image_Ubuntu.jpg' to a specified device
+ STEPS:
+ 1. Click "Test" and you will be prompted to enter the Bluetooth device name of a device that can accept file transfers (It may take a few moments after entering the name for the file to begin sending)
+ 2. Accept any prompts that appear on both devices
+ VERIFICATION:
+ Was the data correctly transferred?
+
+plugin: user-interact-verify
+name: suspend/cycle_resolutions_after_suspend
+estimated_duration: 120.0
+requires: package.name == 'xorg'
+depends: suspend/suspend_advanced graphics/cycle_resolution
+command: xrandr_cycle --keyword=after_suspend --screenshot-dir $CHECKBOX_DATA
+_description:
+ PURPOSE:
+ This test will cycle through the detected display modes
+ STEPS:
+ 1. Click "Test" and the display will cycle trough the display modes
+ VERIFICATION:
+ Did your display look fine in the detected mode?
+
+plugin: shell
+name: suspend/cycle_resolutions_after_suspend_auto
+estimated_duration: 1.2
+requires: package.name == 'xorg'
+depends: suspend/suspend_advanced_auto graphics/cycle_resolution
+_description:
+ This test will check to make sure supported video modes work after a suspend and resume.
+ This is done automatically by taking screenshots and uploading them as an attachment.
+command: xrandr_cycle --keyword=after_suspend --screenshot-dir $CHECKBOX_DATA
+
+plugin: attachment
+name: suspend/xrandr_screens_after_suspend.tar.gz
+depends: suspend/cycle_resolutions_after_suspend_auto
+command: [ -e $CHECKBOX_DATA/xrandr_screens_after_suspend.tgz ] && cat $CHECKBOX_DATA/xrandr_screens_after_suspend.tgz
+_description: This attaches screenshots from the suspend/cycle_resolutions_after_suspend_auto test to the results submission.
+
+plugin: shell
+name: suspend/record_playback_after_suspend
+estimated_duration: 10.0
+depends: suspend/suspend_advanced
+requires:
+ package.name == 'python3-gi'
+ package.name == 'gir1.2-gstreamer-1.0'
+ package.name == 'libgstreamer1.0-0'
+ package.name == 'gstreamer1.0-plugins-good'
+ package.name == 'gstreamer1.0-pulseaudio'
+ package.name == 'alsa-base'
+ device.category == 'AUDIO'
+command: audio_test
+_description:
+ This will check to make sure that your audio device works properly after a suspend and resume. This may work fine with speakers and onboard microphone, however, it works best if used with a cable connecting the audio-out jack to the audio-in jack.
+
+plugin: shell
+name: suspend/record_playback_after_suspend_auto
+estimated_duration: 10.0
+depends: suspend/suspend_advanced_auto
+requires:
+ package.name == 'python3-gi'
+ package.name == 'gir1.2-gstreamer-1.0'
+ package.name == 'libgstreamer1.0-0'
+ package.name == 'gstreamer1.0-plugins-good'
+ package.name == 'gstreamer1.0-pulseaudio'
+ package.name == 'alsa-base'
+ device.category == 'AUDIO'
+command: audio_test
+_description:
+ This will check to make sure that your audio device works properly after a suspend and resume. This may work fine with speakers and onboard microphone, however, it works best if used with a cable connecting the audio-out jack to the audio-in jack.
+
+plugin: attachment
+name: suspend/suspend-auto-single-log-attach
+command: [ -e $CHECKBOX_DATA/suspend_auto_single_log ] && cat $CHECKBOX_DATA/suspend_auto_single_log
+_description:
+ Attaches the log from the single suspend/resume test to the results
+
+plugin: shell
+name: suspend/screenshot_after_suspend
+estimated_duration: 10.0
+depends: suspend/suspend_advanced_auto
+requires: package.name == 'fswebcam'
+command: set -o pipefail; camera_test still --device=/dev/external_webcam -f ${CHECKBOX_DATA}/screenshot_after_suspend.jpg -q 2>&1 | ansi_parser
+_description:
+ PURPOSE:
+ Take a screengrab of the current screen after suspend (logged on Unity desktop)
+ STEPS:
+ 1. Take picture using USB webcam
+ VERIFICATION:
+ Review attachment manually later
+
+plugin: attachment
+name: screenshot_after_suspend.jpg
+depends: suspend/screenshot_after_suspend
+command: base64 ${CHECKBOX_DATA}/screenshot_after_suspend.jpg
+_description: Attaches the screenshot captured in graphics/screenshot.
+
+plugin: shell
+name: suspend/gpu_lockup_after_suspend
+estimated_duration: 10.0
+requires:
+ package.name == 'wmctrl'
+ package.name == 'mesa-utils'
+ package.name == 'firefox'
+depends: suspend/suspend_advanced_auto
+command: gpu_test
+_description:
+ PURPOSE:
+ Do some challenging operations then check for lockup on the GPU
+ STEPS:
+ 1. Create 2 glxgears windows and move them quickly
+ 2. Switch workspaces with wmctrl
+ 3. Launch an HTML5 video playback in firefox
+ VERIFICATION:
+ After a 60s workload, check kern.log for reported GPU errors
+
+plugin: shell
+name: suspend/wifi_resume_time
+depends: suspend/suspend_advanced
+requires:
+ device.category == 'WIRELESS'
+command: network_reconnect_resume_test -t 90 -d wifi
+estimated_duration: 0.530
+_description:
+ Checks the length of time it takes to reconnect an existing wifi connection
+ after a suspend/resume cycle.
+
+plugin: shell
+name: suspend/wifi_resume_time_auto
+estimated_duration: 1.2
+depends: suspend/suspend_advanced_auto
+requires:
+ device.category == 'WIRELESS'
+command: network_reconnect_resume_test -t 90 -d wifi
+_description:
+ Checks the length of time it takes to reconnect an existing wifi connection
+ after a suspend/resume cycle.
+
+plugin: shell
+name: suspend/network_resume_time
+depends: suspend/suspend_advanced
+estimated_duration: 1.2
+requires:
+ device.category == 'NETWORK'
+command: network_reconnect_resume_test -t 10 -d wired
+_description:
+ Checks the length of time it takes to reconnect an existing wired connection
+ after a suspend/resume cycle.
+
+plugin: shell
+name: suspend/network_resume_time_auto
+depends: suspend/suspend_advanced_auto
+estimated_duration: 1.2
+requires:
+ device.category == 'NETWORK'
+command: network_reconnect_resume_test -t 10 -d wired
+_description:
+ Checks the length of time it takes to reconnect an existing wired connection
+ after a suspend/resume cycle.
+
+plugin: manual
+name: suspend/led_after_suspend/power
+depends: suspend/suspend_advanced
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Validate that the power LED operated the same after resuming from suspend
+ STEPS:
+ 1. Power LED should be on while device is switched on
+ VERIFICATION:
+ Does the power LED remain on after resuming from suspend?
+
+plugin: manual
+name: suspend/led_after_suspend/battery-charging
+estimated_duration: 120.0
+depends: suspend/suspend_advanced
+_description:
+ PURPOSE:
+ Validate that the battery light shows charging status after resuming from suspend
+ STEPS:
+ 1. Let system run on battery for a while
+ 2. Plug in AC plug
+ VERIFICATION:
+ Did the battery indicator LED still turn orange after resuming from suspend?
+
+plugin: manual
+name: suspend/led_after_suspend/battery-charged
+depends: suspend/suspend_advanced
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Validate that the battery LED properly displays charged status after resuming from suspend
+ STEPS:
+ 1. Let system run on battery for a short time
+ 2. Plug in AC
+ 3. Let system run on AC
+ VERIFICATION:
+ Does the orange battery LED still shut off when system is fully charged after resuming from suspend?
+
+plugin: manual
+name: suspend/led_after_suspend/battery-low
+depends: suspend/suspend_advanced
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Validate that the battery LED indicated low power after resuming from suspend
+ STEPS:
+ 1. Let system run on battery for several hours
+ 2. Monitor battery LED carefully
+ VERIFICATION:
+ Does the LED light orange when battery is low after resuming from suspend?
+
+plugin: user-interact-verify
+name: suspend/led_after_suspend/hdd
+depends: suspend/suspend_advanced
+estimated_duration: 120.0
+command: led_hdd_test
+_description:
+ PURPOSE:
+ Validate that the HDD LED still operates as expected after resuming from suspend
+ STEPS:
+ 1. Select "Test" to write and read a temporary file for a few seconds
+ 2. HDD LED should blink when writing to/reading from HDD
+ VERIFICATION:
+ Did the HDD LED still blink with HDD activity after resuming from suspend?
+
+plugin: user-interact-verify
+name: suspend/led_after_suspend/numeric-keypad
+estimated_duration: 120.0
+depends: suspend/suspend_advanced
+command: keyboard_test
+_description:
+ PURPOSE:
+ Validate that the numeric keypad LED operates the same before and after resuming from suspend
+ STEPS:
+ 1. Press "Block Num" key to toggle numeric keypad LED
+ 2. Click on the "Test" button to open a window to verify your typing
+ 3. Type using the numeric keypad both when the LED is on and off
+ VERIFICATION:
+ 1. Numeric keypad LED status should toggle everytime the "Block Num" key is pressed
+ 2. Numbers should only be entered in the keyboard verification window when the LED is on
+
+plugin: manual
+name: suspend/led_after_suspend/caps-lock
+depends: suspend/suspend_advanced
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Validate that the Caps Lock key operates the same before and after resuming from suspend
+ STEPS:
+ 1. Press "Block Cap Keys" to activate/deactivate cap keys blocking
+ 2. Cap Keys LED should be switched on/off every time the key is pressed
+ VERIFICATION:
+ Did the Cap Keys LED light as expected after resuming from suspend?
+
+plugin: manual
+name: suspend/led_after_suspend/wlan
+depends: suspend/suspend_advanced
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ WLAN LED verification after resuming from suspend
+ STEPS:
+ 1. Make sure WLAN connection is established
+ 2. WLAN LED should light
+ VERIFICATION:
+ Did the WLAN LED light as expected after resuming from suspend?
+
+plugin: manual
+name: suspend/led_after_suspend/wlan-disabled
+depends: suspend/suspend_advanced
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Validate that WLAN LED shuts off when disabled after resuming from suspend
+ STEPS:
+ 1. Connect to AP
+ 2. Use Physical switch to disable WLAN
+ 3. Re-enable
+ 4. Use Network-Manager to disable WLAN
+ VERIFICATION:
+ Did the LED turn off then WLAN is disabled after resuming from suspend?
+
+plugin: manual
+name: suspend/led_after_suspend/bluetooth
+depends: suspend/suspend_advanced
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Validate that the Bluetooth LED turns on and off when BT is enabled/disabled after resuming from suspend
+ STEPS:
+ 1. Switch bluetooth off from a hardware switch (if present)
+ 2. Switch bluetooth back on
+ 3. Switch bluetooth off from the panel applet
+ 4. Switch bluetooth back on
+ VERIFICATION:
+ Did the bluetooth LED turn off and on twice after resuming from suspend?
+
+plugin: user-interact-verify
+name: suspend/led_after_suspend/camera
+estimated_duration: 120.0
+depends:
+ camera/detect
+ suspend/suspend_advanced
+command: camera_test led
+_description:
+ PURPOSE:
+ Validate that the camera LED still works as expected after resuming from suspend
+ STEPS:
+ 1. Select Test to activate camera
+ 2. Camera LED should light for a few seconds
+ VERIFICATION:
+ Did the camera LED still turn on and off after resuming from suspend?
+
+plugin: manual
+name: suspend/led_after_suspend/touchpad
+depends: suspend/suspend_advanced
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Touchpad LED verification after resuming from suspend
+ STEPS:
+ 1. Click on the touchpad button or press key combination to enable/disable touchpad button
+ 2. Slide your finger on the touchpad
+ VERIFICATION:
+ 1. Touchpad LED status should toggle everytime the button is clicked or the key combination is pressed
+ 2. When the LED is on, the mouse pointer should move on touchpad usage
+ 3. When the LED is off, the mouse pointer should not move on touchpad usage
+
+plugin: manual
+name: suspend/led_after_suspend/wireless
+depends: suspend/suspend_advanced
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Validate Wireless (WLAN + Bluetooth) LED operated the same after resuming from suspend
+ STEPS:
+ 1. Make sure WLAN connection is established and Bluetooth is enabled.
+ 2. WLAN/Bluetooth LED should light
+ 3. Switch WLAN and Bluetooth off from a hardware switch (if present)
+ 4. Switch them back on
+ 5. Switch WLAN and Bluetooth off from the panel applet
+ 6. Switch them back on
+ VERIFICATION:
+ Did the WLAN/Bluetooth LED light as expected after resuming from suspend?
+
+plugin: manual
+name: suspend/keys_after_suspend/brightness
+depends: suspend/suspend_advanced
+estimated_duration: 120.0
+requires: dmi.product in ['Notebook','Laptop','Portable']
+_description:
+ PURPOSE:
+ This test will test the brightness key after resuming from suspend
+ STEPS:
+ 1. Press the brightness buttons on the keyboard
+ VERIFICATION:
+ Did the brightness change following to your key presses after resuming from suspend?
+
+plugin: user-interact-verify
+name: suspend/keys_after_suspend/volume
+depends: suspend/suspend_advanced
+estimated_duration: 120.0
+requires:
+ device.category == 'KEYBOARD'
+user: root
+command: key_test -s '0xe02e,0xe0ae:Volume Up' '0xe030,0xe0b0:Volume Down'
+_description:
+ PURPOSE:
+ This test will test the volume keys of your keyboard after resuming from suspend
+ STEPS:
+ Skip this test if your computer has no volume keys.
+ 1. Click test to open a window on which to test the volume keys.
+ 2. If all the keys work, the test will be marked as passed.
+ VERIFICATION:
+ Did the volume change following to your key presses?
+
+plugin: user-interact-verify
+name: suspend/keys_after_suspend/mute
+depends: suspend/suspend_advanced
+estimated_duration: 120.0
+requires:
+ device.category == 'KEYBOARD'
+user: root
+command: key_test -s '0xe020,0xe0a0:Mute'
+_description:
+ PURPOSE:
+ This test will test the mute key of your keyboard after resuming from suspend
+ STEPS:
+ 1. Click test to open a window on which to test the mute key.
+ 2. If the key works, the test will pass and the window will close.
+ VERIFICATION:
+ Did the volume mute following your key presses?
+
+plugin: manual
+name: suspend/keys_after_suspend/sleep
+depends: suspend/suspend_advanced
+estimated_duration: 120.0
+requires:
+ device.category == 'KEYBOARD'
+_description:
+ PURPOSE:
+ This test will test the sleep key after resuming from suspend
+ STEPS:
+ 1. Press the sleep key on the keyboard
+ 2. Wake your system up by pressing the power button
+ VERIFICATION:
+ Did the system go to sleep after pressing the sleep key after resuming from suspend?
+
+plugin: user-interact-verify
+name: suspend/keys_after_suspend/battery-info
+depends: suspend/suspend_advanced
+estimated_duration: 120.0
+requires: dmi.product in ['Notebook','Laptop','Portable']
+user: root
+command: key_test -s '0xe071,0xef1:Battery Info'
+_description:
+ PURPOSE:
+ This test will test the battery information key after resuming from suspend
+ STEPS:
+ Skip this test if you do not have a Battery Button.
+ 1. Click Test to begin
+ 2. Press the Battery Info button (or combo like Fn+F3)
+ 3: Close the Power Statistics tool if it opens
+ VERIFICATION:
+ Did the Battery Info key work as expected after resuming from suspend?
+
+plugin: manual
+name: suspend/keys_after_suspend/wireless
+depends: suspend/suspend_advanced
+estimated_duration: 120.0
+requires: dmi.product in ['Notebook','Laptop','Portable']
+_description:
+ PURPOSE:
+ This test will test the wireless key after resuming from suspend
+ STEPS:
+ 1. Press the wireless key on the keyboard
+ 2. Press the same key again
+ VERIFICATION:
+ Did the wireless go off on the first press and on again on the second after resuming from suspend?
+
+plugin: user-interact-verify
+name: suspend/keys_after_suspend/media-control
+estimated_duration: 120.0
+depends: suspend/suspend_advanced
+requires:
+ device.category == 'KEYBOARD'
+user: root
+command: key_test -s 0xe010,0xe090:Previous 0xe024,0xe0a4:Stop 0xe019,0xe099:Next 0xe022,0xe0a2:Play
+_description:
+ PURPOSE:
+ This test will test the media keys of your keyboard after resuming from suspend
+ STEPS:
+ Skip this test if your computer has no media keys.
+ 1. Click test to open a window on which to test the media keys.
+ 2. If all the keys work, the test will be marked as passed.
+ VERIFICATION:
+ Do the keys work as expected after resuming from suspend?
+
+plugin: user-interact-verify
+name: suspend/keys_after_suspend/super
+depends: suspend/suspend_advanced
+estimated_duration: 120.0
+requires:
+ device.category == 'KEYBOARD'
+user: root
+command: key_test -s '0xe05b,0xe0db:Left Super Key'
+_description:
+ PURPOSE:
+ This test will test the super key of your keyboard after resuming from suspend
+ STEPS:
+ 1. Click test to open a window on which to test the super key.
+ 2. If the key works, the test will pass and the window will close.
+ VERIFICATION:
+ Does the super key work as expected after resuming from suspend?
+
+plugin: manual
+name: suspend/keys_after_suspend/video-out
+depends: suspend/suspend_advanced
+estimated_duration: 120.0
+requires: dmi.product in ['Notebook','Laptop','Portable']
+_description:
+ PURPOSE:
+ Validate that the External Video hot key is working as expected after resuming from suspend
+ STEPS:
+ 1. Plug in an external monitor
+ 2. Press the display hot key to change the monitors configuration
+ VERIFICATION:
+ Check that the video signal can be mirrored, extended, displayed on external or onboard only, after resuming from suspend.
+
+plugin: manual
+name: suspend/keys_after_suspend/touchpad
+depends: suspend/suspend_advanced
+estimated_duration: 120.0
+requires: dmi.product in ['Notebook','Laptop','Portable']
+_description:
+ PURPOSE:
+ Verify touchpad hotkey toggles touchpad functionality on and off after resuming from suspend
+ STEPS:
+ 1. Verify the touchpad is functional
+ 2. Tap the touchpad toggle hotkey
+ 3. Tap the touchpad toggle hotkey again
+ VERIFICATION:
+ Verify the touchpad has been disabled and re-enabled.
+
+plugin: user-interact
+name: suspend/usb_insert_after_suspend
+estimated_duration: 30.0
+depends:
+ suspend/suspend_advanced
+command: removable_storage_watcher insert usb
+_description:
+ PURPOSE:
+ This test will check that the system correctly detects the insertion of
+ a USB storage device after suspend and resume.
+ STEPS:
+ 1. Click "Test" and insert a USB storage device (pen-drive/HDD).
+ (Note: this test will time-out after 20 seconds.)
+ 2. Do not unplug the device after the test.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: user-interact
+name: suspend/usb3_insert_after_suspend
+estimated_duration: 30.0
+requires:
+ usb.usb3 == 'supported'
+depends:
+ suspend/suspend_advanced
+command: removable_storage_watcher -m 500000000 insert usb
+_description:
+ PURPOSE:
+ This test will check that the system correctly detects the insertion of
+ a USB 3.0 storage device after suspend and resume.
+ STEPS:
+ 1. Click "Test" and insert a USB 3.0 storage device (pen-drive/HDD) in
+ a USB 3.0 port. (Note: this test will time-out after 20 seconds.)
+ 2. Do not unplug the device after the test.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: user-interact
+name: suspend/usb_remove_after_suspend
+estimated_duration: 30.0
+depends:
+ suspend/usb_insert_after_suspend
+command: removable_storage_watcher remove usb
+_description:
+ PURPOSE:
+ This test will check that the system correctly detects the removal of
+ a USB storage device after suspend.
+ STEPS:
+ 1. Click "Test" and remove the USB device.
+ (Note: this test will time-out after 20 seconds.)
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: user-interact
+name: suspend/usb3_remove_after_suspend
+estimated_duration: 30.0
+depends:
+ suspend/usb3_insert_after_suspend
+requires:
+ usb.usb3 == 'supported'
+command: removable_storage_watcher -m 500000000 remove usb
+_description:
+ PURPOSE:
+ This test will check that the system correctly detects the removal of
+ a USB 3.0 storage device after suspend
+ STEPS:
+ 1. Click "Test" and remove the USB 3.0 device.
+ (Note: this test will time-out after 20 seconds.)
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: shell
+name: suspend/usb_storage_automated_after_suspend
+estimated_duration: 1.2
+depends: suspend/usb_insert_after_suspend
+user: root
+command: removable_storage_test -s 268400000 usb
+_description:
+ This test is automated and executes after the suspend/usb_insert_after_suspend
+ test is run.
+
+plugin: shell
+name: suspend/usb3_storage_automated_after_suspend
+estimated_duration: 1.2
+requires:
+ usb.usb3 == 'supported'
+depends: suspend/usb3_insert_after_suspend
+user: root
+command: removable_storage_test -s 268400000 -m 500000000 -p 7 usb
+_description:
+ This test is automated and executes after the suspend/usb3_insert_after_suspend
+ test is run.
+
+plugin: shell
+name: suspend/usb_storage_preinserted_after_suspend
+estimated_duration: 1.2
+user: root
+depends: suspend/suspend_advanced_auto
+command: removable_storage_test -l usb && removable_storage_test -s 268400000 usb
+_description:
+ This is an automated version of usb/storage-automated and assumes that the
+ server has usb storage devices plugged in prior to checkbox execution. It
+ is intended for servers and SRU automated testing.
+
+plugin: shell
+name: suspend/usb3_storage_preinserted_after_suspend
+estimated_duration: 1.2
+user: root
+requires:
+ usb.usb3 == 'supported'
+depends: suspend/suspend_advanced_auto
+command: removable_storage_test -l usb && removable_storage_test -s 268400000 -m 500000000 -p 7 usb
+_description:
+ This is an automated version of usb3/storage-automated and assumes that the
+ server has usb 3.0 storage devices plugged in prior to checkbox execution. It
+ is intended for servers and SRU automated testing.
+
+plugin: shell
+name: suspend/usb_performance_after_suspend
+depends: suspend/usb_insert_after_suspend
+user: root
+estimated_duration: 45.00
+command: removable_storage_test -s 268400000 -p 15 usb
+_description:
+ This test will check that your USB 2.0 port transfers data at a
+ minimum expected speed.
+
+plugin: shell
+name: suspend/usb3_superspeed_performance_after_suspend
+requires:
+ usb.usb3 == 'supported'
+depends: suspend/usb3_insert_after_suspend
+user: root
+estimated_duration: 45.00
+command: removable_storage_test -s 268400000 -m 500000000 -p 60 usb
+_description:
+ This test will check that your USB 3.0 port transfers data at a
+ minimum expected speed in accordance with the specification of
+ USB 3.0 SuperSpeed mode.
+
+plugin: user-interact
+name: suspend/mmc-insert-after-suspend
+estimated_duration: 30.0
+depends: suspend/suspend_advanced
+command: removable_storage_watcher --memorycard insert sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the systems media card reader can
+ detect the insertion of an MMC card after the system has been suspended
+ STEPS:
+ 1. Click "Test" and insert an MMC card into the reader.
+ If a file browser opens up, you can safely close it.
+ (Note: this test will time-out after 20 seconds.)
+ 2. Do not remove the device after this test.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: shell
+name: suspend/mmc-storage-after-suspend
+depends: suspend/mmc-insert-after-suspend
+estimated_duration: 10.0
+user: root
+command: removable_storage_test -s 67120000 --memorycard sdio usb scsi
+_description:
+ This test is automated and executes after the mediacard/mmc-insert-after-suspend test
+ is run. It tests reading and writing to the MMC card after the system has been suspended.
+
+plugin: user-interact
+name: suspend/mmc-remove-after-suspend
+depends: suspend/mmc-insert-after-suspend
+estimated_duration: 30.0
+command: removable_storage_watcher --memorycard remove sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the system correctly detects the removal
+ of an MMC card from the systems card reader after the system has been suspended.
+ STEPS:
+ 1. Click "Test" and remove the MMC card from the reader.
+ (Note: this test will time-out after 20 seconds.)
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: user-interact
+name: suspend/sd-insert-after-suspend
+estimated_duration: 30.0
+depends: suspend/suspend_advanced
+command: removable_storage_watcher --memorycard insert sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the systems media card reader can
+ detect the insertion of an UNLOCKED SD card after the system
+ has been suspended
+ STEPS:
+ 1. Click "Test" and insert an UNLOCKED SD card into the reader.
+ If a file browser opens up, you can safely close it.
+ (Note: this test will time-out after 20 seconds.)
+ 2. Do not remove the device after this test.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: shell
+name: suspend/sd-storage-after-suspend
+estimated_duration: 10.0
+depends: suspend/sd-insert-after-suspend
+user: root
+command: removable_storage_test -s 268400000 --memorycard sdio usb scsi
+_description:
+ This test is automated and executes after the mediacard/sd-insert-after-suspend test
+ is run. It tests reading and writing to the SD card after the system has been suspended.
+
+plugin: user-interact
+name: suspend/sd-remove-after-suspend
+estimated_duration: 30.0
+depends: suspend/sd-insert-after-suspend
+command: removable_storage_watcher --memorycard remove sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the system correctly detects
+ the removal of an SD card from the systems card reader
+ after the system has been suspended.
+ STEPS:
+ 1. Click "Test" and remove the SD card from the reader.
+ (Note: this test will time-out after 20 seconds.)
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: user-interact
+name: suspend/sdhc-insert-after-suspend
+estimated_duration: 30.0
+depends: suspend/suspend_advanced
+command: removable_storage_watcher --memorycard insert sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the systems media card reader can
+ detect the insertion of an UNLOCKED SDHC media card after the
+ system has been suspended
+ STEPS:
+ 1. Click "Test" and insert an UNLOCKED SDHC card into the reader.
+ If a file browser opens up, you can safely close it.
+ (Note: this test will time-out after 20 seconds.)
+ 2. Do not remove the device after this test.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: shell
+name: suspend/sdhc-storage-after-suspend
+estimated_duration: 10.0
+depends: suspend/sdhc-insert-after-suspend
+user: root
+command: removable_storage_test -s 268400000 --memorycard sdio usb scsi
+_description:
+ This test is automated and executes after the mediacard/sdhc-insert-after-suspend test
+ is run. It tests reading and writing to the SDHC card after the system has been suspended.
+
+plugin: user-interact
+name: suspend/sdhc-remove-after-suspend
+estimated_duration: 30.0
+depends: suspend/sdhc-insert-after-suspend
+command: removable_storage_watcher --memorycard remove sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the system correctly detects the removal
+ of an SDHC card from the systems card reader after the system has been suspended.
+ STEPS:
+ 1. Click "Test" and remove the SDHC card from the reader.
+ (Note: this test will time-out after 20 seconds.)
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: user-interact
+name: mediacard/cf-insert-after-suspend
+estimated_duration: 30.0
+depends: suspend/suspend_advanced
+command: removable_storage_watcher --memorycard insert sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the systems media card reader can
+ detect the insertion of a CF card after the system has been suspended
+ STEPS:
+ 1. Click "Test" and insert a CF card into the reader.
+ If a file browser opens up, you can safely close it.
+ (Note: this test will time-out after 20 seconds.)
+ 2. Do not remove the device after this test.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: shell
+name: mediacard/cf-storage-after-suspend
+estimated_duration: 10.0
+depends: mediacard/cf-insert-after-suspend
+user: root
+command: removable_storage_test -s 268400000 --memorycard sdio usb scsi
+_description:
+ This test is automated and executes after the mediacard/cf-insert-after-suspend test
+ is run. It tests reading and writing to the CF card after the system has been suspended.
+
+plugin: user-interact
+name: mediacard/cf-remove-after-suspend
+estimated_duration: 30.0
+depends: mediacard/cf-insert-after-suspend
+command: removable_storage_watcher --memorycard remove sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the system correctly detects the removal
+ of a CF card from the systems card reader after the system has been suspended.
+ STEPS:
+ 1. Click "Test" and remove the CF card from the reader.
+ (Note: this test will time-out after 20 seconds.)
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+
+plugin: user-interact
+name: mediacard/sdxc-insert-after-suspend
+estimated_duration: 30.0
+depends: suspend/suspend_advanced
+command: removable_storage_watcher --memorycard insert sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the systems media card reader can
+ detect the insertion of a SDXC card after the system has been suspended
+ STEPS:
+ 1. Click "Test" and insert a SDXC card into the reader.
+ If a file browser opens up, you can safely close it.
+ (Note: this test will time-out after 20 seconds.)
+ 2. Do not remove the device after this test.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: shell
+name: mediacard/sdxc-storage-after-suspend
+estimated_duration: 10.0
+depends: mediacard/sdxc-insert-after-suspend
+user: root
+command: removable_storage_test -s 268400000 --memorycard sdio usb scsi
+_description:
+ This test is automated and executes after the mediacard/sdxc-insert-after-suspend test
+ is run. It tests reading and writing to the SDXC card after the system has been suspended.
+
+plugin: user-interact
+name: mediacard/sdxc-remove-after-suspend
+depends: mediacard/sdxc-insert-after-suspend
+estimated_duration: 30.0
+command: removable_storage_watcher --memorycard remove sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the system correctly detects the removal
+ of a SDXC card from the systems card reader after the system has been suspended.
+ STEPS:
+ 1. Click "Test" and remove the SDXC card from the reader.
+ If a file browser opens up, you can safely close it.
+ (Note: this test will time-out after 20 seconds.)
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: user-interact
+name: mediacard/ms-insert-after-suspend
+estimated_duration: 30.0
+depends: suspend/suspend_advanced
+command: removable_storage_watcher --memorycard insert sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the systems media card reader can
+ detect the insertion of a MS card after the system has been suspended
+ STEPS:
+ 1. Click "Test" and insert a MS card into the reader.
+ If a file browser opens up, you can safely close it.
+ (Note: this test will time-out after 20 seconds.)
+ 2. Do not remove the device after this test.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: shell
+name: mediacard/ms-storage-after-suspend
+estimated_duration: 10.0
+depends: mediacard/ms-insert-after-suspend
+user: root
+command: removable_storage_test -s 268400000 --memorycard sdio usb scsi
+_description:
+ This test is automated and executes after the mediacard/ms-insert-after-suspend test
+ is run. It tests reading and writing to the MS card after the system has been suspended.
+
+plugin: user-interact
+name: mediacard/ms-remove-after-suspend
+estimated_duration: 30.0
+depends: mediacard/ms-insert-after-suspend
+command: removable_storage_watcher --memorycard remove sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the system correctly detects the removal
+ of a MS card from the systems card reader after the system has been suspended.
+ STEPS:
+ 1. Click "Test" and remove the MS card from the reader.
+ (Note: this test will time-out after 20 seconds.)
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: user-interact
+name: mediacard/msp-insert-after-suspend
+estimated_duration: 30.0
+depends: suspend/suspend_advanced
+command: removable_storage_watcher --memorycard insert sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the systems media card reader can
+ detect the insertion of a MSP card after the system has been suspended
+ STEPS:
+ 1. Click "Test" and insert a MSP card into the reader.
+ If a file browser opens up, you can safely close it.
+ (Note: this test will time-out after 20 seconds.)
+ 2. Do not remove the device after this test.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: shell
+name: mediacard/msp-storage-after-suspend
+estimated_duration: 10.0
+depends: mediacard/msp-insert-after-suspend
+user: root
+command: removable_storage_test -s 268400000 --memorycard sdio usb scsi
+_description:
+ This test is automated and executes after the mediacard/msp-insert-after-suspend test
+ is run. It tests reading and writing to the MSP card after the system has been suspended.
+
+plugin: user-interact
+name: mediacard/msp-remove-after-suspend
+estimated_duration: 30.0
+depends: mediacard/msp-insert-after-suspend
+command: removable_storage_watcher --memorycard remove sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the system correctly detects the removal
+ of a MSP card from the systems card reader after the system has been suspended.
+ STEPS:
+ 1. Click "Test" and remove the MSP card from the reader.
+ (Note: this test will time-out after 20 seconds.)
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: user-interact
+name: mediacard/xd-insert-after-suspend
+estimated_duration: 30.0
+depends: suspend/suspend_advanced
+command: removable_storage_watcher --memorycard insert sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the systems media card reader can
+ detect the insertion of a xD card after the system has been suspended
+ STEPS:
+ 1. Click "Test" and insert a xD card into the reader.
+ If a file browser opens up, you can safely close it.
+ (Note: this test will time-out after 20 seconds.)
+ 2. Do not remove the device after this test.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: shell
+name: mediacard/xd-storage-after-suspend
+estimated_duration: 10.0
+depends: mediacard/xd-insert-after-suspend
+user: root
+command: removable_storage_test -s 268400000 --memorycard sdio usb scsi
+_description:
+ This test is automated and executes after the mediacard/xd-insert-after-suspend test
+ is run. It tests reading and writing to the xD card after the system has been suspended.
+
+plugin: user-interact
+name: mediacard/xd-remove-after-suspend
+estimated_duration: 30.0
+depends: mediacard/xd-insert-after-suspend
+command: removable_storage_watcher --memorycard remove sdio usb scsi
+_description:
+ PURPOSE:
+ This test will check that the system correctly detects the removal
+ of a xD card from the systems card reader after the system has been suspended.
+ STEPS:
+ 1. Click "Test" and remove the xD card from the reader.
+ (Note: this test will time-out after 20 seconds.)
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: shell
+name: touchpad/touchpad_after_suspend
+depends: suspend/suspend_advanced_auto
+requires:
+ dmi.product in ['Notebook','Laptop','Portable']
+ xinput.device_class == 'XITouchClass' and xinput.touch_mode != 'dependent'
+command: true
+estimated_duration: 1.2
+_description:
+ Determine if the touchpad is still functioning after suspend/resume.
+
+plugin: manual
+name: touchscreen/touchscreen_after_suspend
+depends: suspend/suspend_advanced_auto
+estimated_duration: 30.0
+_description:
+ PURPOSE:
+ Check touchscreen tap recognition
+ STEPS:
+ 1. Tap an object on the screen with finger. The cursor should jump to location tapped and object should highlight
+ VERIFICATION:
+ Does tap recognition work?
diff --git a/jobs/touchpad.txt.in b/jobs/touchpad.txt.in
new file mode 100644
index 0000000..388d400
--- /dev/null
+++ b/jobs/touchpad.txt.in
@@ -0,0 +1,154 @@
+plugin: manual
+name: touchpad/basic
+requires: dmi.product in ['Notebook','Laptop','Portable']
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Touchpad user-verify
+ STEPS:
+ 1. Make sure that touchpad is enabled.
+ 2. Move cursor using the touchpad.
+ VERIFICATION:
+ Did the cursor move?
+
+plugin: user-interact
+name: touchpad/horizontal
+requires:
+ dmi.product in ['Notebook','Laptop','Portable']
+ 'Button Horiz Wheel Left' in xinput.button_labels and 'Button Horiz Wheel Right' in xinput.button_labels
+command: touchpad_test right left --edge-scroll
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Touchpad horizontal scroll verification
+ STEPS:
+ 1. Select "Test" when ready and place your cursor within the borders of the displayed test window.
+ 2. Verify that you can move the horizontal slider by moving your finger right and left in the lower part of the touchpad.
+ VERIFICATION:
+ Could you scroll right and left?
+
+plugin: user-interact
+name: touchpad/vertical
+requires:
+ dmi.product in ['Notebook','Laptop','Portable']
+ 'Button Wheel Up' in xinput.button_labels and 'Button Wheel Down' in xinput.button_labels
+command: touchpad_test up down --edge-scroll
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Touchpad vertical scroll verification
+ STEPS:
+ 1. Select "Test" when ready and place your cursor within the borders of the displayed test window.
+ 2. Verify that you can move the vertical slider by moving your finger up and down in the right part of the touchpad.
+ VERIFICATION:
+ Could you scroll up and down?
+
+plugin: shell
+name: touchpad/singletouch-automated
+requires:
+ dmi.product in ['Notebook','Laptop','Portable']
+ xinput.device_class == 'XITouchClass' and xinput.touch_mode != 'dependent'
+command: true
+estimated_duration: 1.2
+_description:
+ Determine whether the touchpad is detected as a singletouch device automatically.
+
+plugin: shell
+name: touchpad/multitouch-automated
+estimated_duration: 1.2
+requires:
+ dmi.product in ['Notebook','Laptop','Portable']
+ xinput.device_class == 'XITouchClass' and xinput.touch_mode == 'dependent'
+command: true
+_description:
+ Determine whether the touchpad is detected as a multitouch device automatically.
+
+plugin: manual
+name: touchpad/multitouch-manual
+depends: touchpad/singletouch-automated
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Touchpad manual detection of multitouch.
+ STEPS:
+ 1. Look at the specifications for your system.
+ VERIFICATION:
+ Is the touchpad supposed to be multitouch?
+
+plugin: manual
+name: touchpad/singletouch-corner
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Determine that the hot corner feature is working as expected
+ STEPS:
+ 1. Launch a browser.
+ 2. Go to a website, and hover the cursor over a link.
+ 3. Tap the upper right corner if the touchpad.
+ VERIFICATION:
+ Did the tap trigger a new tab to be opended?
+
+plugin: manual
+name: touchpad/singletouch-selection
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Determine that the selection window function is working as expected.
+ STEPS:
+ 1. Open a file folder
+ 2. Double tap and drag the cursor across several file.
+ VERIFICATION:
+ Did a selection window open and were several files selected?
+
+plugin: manual
+name: touchpad/multitouch-rightclick
+depends: touchpad/multitouch-automated
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Determine that the right click function is working as expected.
+ STEPS:
+ 1. Open a file folder
+ 2. Hover cursor over file in folder
+ 3. 2-touch tap.
+ VERIFICATION:
+ Did the right click pop up menu appear?
+
+plugin: user-interact
+name: touchpad/multitouch-horizontal
+command: touchpad_test right left
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Touchpad 2-touch horizontal scroll verification
+ STEPS:
+ 1. Select "Test" when ready and place your cursor within the borders of the displayed test window.
+ 2. Verify that you can move the horizontal slider by moving 2 fingers right and left along the touchpad.
+ VERIFICATION:
+ Could you scroll right and left?
+
+plugin: user-interact
+name: touchpad/multitouch-vertical
+command: touchpad_test up down
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Touchpad 2-touch vertical scroll verification
+ STEPS:
+ 1. Select "Test" when ready and place your cursor within the borders of the displayed test window.
+ 2. Verify that you can move the vertical slider by moving 2 fingers up and down along the touchpad.
+ VERIFICATION:
+ Could you scroll up and down?
+
+plugin: manual
+name: touchpad/drag-and-drop
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Determine that the drag and drop function is working as expected.
+ STEPS:
+ 1. Browse to the examples folder in the current user's home directory
+ 2. Double tap and hold to select the "Ubuntu_Free_Culture_Showcase" folder
+ 2. Drag the selected folder to the desktop and remove finger from touchpad.
+ VERIFICATION:
+ Did a selected folder move to the desktop?
diff --git a/jobs/touchscreen.txt.in b/jobs/touchscreen.txt.in
new file mode 100644
index 0000000..0feb6d4
--- /dev/null
+++ b/jobs/touchscreen.txt.in
@@ -0,0 +1,92 @@
+plugin: shell
+name: touchscreen/nontouch-automated
+requires:
+ xinput.device_class == 'XITouchClass' and xinput.touch_mode != 'direct'
+command: true
+estimated_duration: 1.2
+_description:
+ Determine whether the screen is detected as a non-touch device automatically.
+
+plugin: shell
+name: touchscreen/multitouch-automated
+requires:
+ xinput.device_class == 'XITouchClass' and xinput.touch_mode == 'direct'
+command: true
+estimated_duration: 1.2
+_description:
+ Determine whether the screen is detected as a multitouch device automatically.
+
+plugin: manual
+name: touchscreen/multitouch-manual
+depends: touchscreen/nontouch-automated
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Touchscreen manual detection of multitouch.
+ STEPS:
+ 1. Look at the specifications for your system.
+ VERIFICATION:
+ Is the screen supposed to be multitouch?
+
+plugin: manual
+name: touchscreen/tap-detect
+depends: touchscreen/multitouch-automated
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Check touchscreen tap recognition
+ STEPS:
+ 1. Tap an object on the screen with finger. The cursor should jump to location tapped and object should highlight
+ VERIFICATION:
+ Does tap recognition work?
+
+plugin: manual
+name: touchscreen/drag-n-drop
+depends: touchscreen/multitouch-automated
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Check touchscreen drag & drop
+ STEPS:
+ 1. Double tap, hold, and drag an object on the desktop
+ 2. Drop the object in a different location
+ VERIFICATION:
+ Does the object select and drag and drop?
+
+plugin: manual
+name: touchscreen/multitouch-zoom
+depends: touchscreen/multitouch-automated
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Check touchscreen pinch gesture for zoom
+ STEPS:
+ 1. Place two fingers on the screen and pinch them together
+ 2. Place two fingers on the screen and move then apart
+ VERIFICATION:
+ Does the screen zoom in and out?
+
+plugin: manual
+name: touchscreen/multitouch-window-move
+depends: touchscreen/multitouch-automated
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Validate that 3-touch drag is operating as expected
+ STEPS:
+ 1. Open a windows and bring it to the foreground
+ 2. 3-touch the window and drag
+ VERIFICATION:
+ Did the window move along with the drag?
+
+plugin: manual
+name: touchscreen/multitouch-dash
+depends: touchscreen/multitouch-automated
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Validate that 4-touch tap is operating as expected
+ STEPS:
+ 1. 4-touch tap anywhere on the touchscreen
+ VERIFICATION:
+ Did the tap open the Dash?
diff --git a/jobs/usb.txt.in b/jobs/usb.txt.in
new file mode 100644
index 0000000..0c08d7f
--- /dev/null
+++ b/jobs/usb.txt.in
@@ -0,0 +1,224 @@
+plugin: shell
+name: usb/detect
+estimated_duration: 1.0
+command: lsusb | sed 's/.*\(ID .*\)/\1/' | head -n 4 || echo "No USB devices were detected" >&2
+_description: Detects and shows USB devices attached to this system.
+
+plugin: user-interact-verify
+name: usb/disk_detect
+depends: usb/detect
+estimated_duration: 1.0
+command: removable_storage_test -l usb
+_description:
+ PURPOSE:
+ This test will check that your system detects USB storage devices.
+ STEPS:
+ 1. Plug in one or more USB keys or hard drives.
+ 2. Click on "Test".
+ INFO:
+ $output
+ VERIFICATION:
+ Were the drives detected?
+
+plugin: user-interact-verify
+name: usb/HID
+depends: usb/detect
+estimated_duration: 1.0
+command: keyboard_test
+_description:
+ PURPOSE:
+ This test will check that you can use a USB HID device
+ STEPS:
+ 1. Enable either a USB mouse or keyboard
+ 2. For mice, perform actions such as moving the pointer, right and left button clicks and double clicks
+ 3. For keyboards, click the Test button to lauch a small tool. Type some text and close the tool.
+ VERIFICATION:
+ Did the device work as expected?
+
+plugin: user-interact
+name: usb/insert
+depends: usb/detect
+estimated_duration: 10.0
+command: removable_storage_watcher insert usb
+_description:
+ PURPOSE:
+ This test will check that the system correctly detects the insertion of
+ a USB storage device
+ STEPS:
+ 1. Click "Test" and insert a USB storage device, preferably a HDD.
+ Although a USB pen drive may be used it might cause performance
+ related tests to fail. (Note: this test will time-out after 20
+ seconds.)
+ 2. Do not unplug the device after the test.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: user-interact
+name: usb3/insert
+requires:
+ usb.usb3 == 'supported'
+estimated_duration: 10.0
+command: removable_storage_watcher -m 500000000 insert usb
+_description:
+ PURPOSE:
+ This test will check that the system correctly detects the insertion of
+ a USB 3.0 storage device
+ STEPS:
+ 1. Click "Test" and insert a USB 3.0 storage device, preferably a HDD,
+ in a USB 3.0 port. Although a USB 3.0 pen drive may be used it might
+ cause performance related tests to fail. (Note: this test will
+ time-out after 20 seconds.)
+ 2. Do not unplug the device after the test.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: user-interact
+name: usb/remove
+depends: usb/insert
+estimated_duration: 10.0
+command: removable_storage_watcher remove usb
+_description:
+ PURPOSE:
+ This test will check that the system correctly detects the removal of
+ a USB storage device
+ STEPS:
+ 1. Click "Test" and remove the USB device.
+ (Note: this test will time-out after 20 seconds.)
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: user-interact
+name: usb3/remove
+depends: usb3/insert
+requires:
+ usb.usb3 == 'supported'
+estimated_duration: 10.0
+command: removable_storage_watcher -m 500000000 remove usb
+_description:
+ PURPOSE:
+ This test will check that the system correctly detects the removal of
+ a USB 3.0 storage device
+ STEPS:
+ 1. Click "Test" and remove the USB 3.0 device.
+ (Note: this test will time-out after 20 seconds.)
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: user-interact-verify
+name: usb/storage-transfer
+depends: usb/insert
+user: root
+estimated_duration: 45.0
+command: removable_storage_test -s 268400000 usb
+_description:
+ PURPOSE:
+ This test will check your USB connection.
+ STEPS:
+ 1. Plug a USB HDD or thumbdrive into the computer.
+ 2. An icon should appear on the Launcher.
+ 3. Click "Test" to begin the test.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: user-interact-verify
+name: usb3/storage-transfer
+requires:
+ usb.usb3 == 'supported'
+depends: usb3/insert
+user: root
+estimated_duration: 45.0
+command: removable_storage_test -s 268400000 -m 500000000 usb
+_description:
+ PURPOSE:
+ This test will check your USB 3.0 connection.
+ STEPS:
+ 1. Plug a USB 3.0 HDD or thumbdrive into a USB 3.0 port in the computer.
+ 2. An icon should appear on the Launcher.
+ 3. Click "Test" to begin the test.
+ VERIFICATION:
+ The verification of this test is automated. Do not change the
+ automatically selected result.
+
+plugin: shell
+name: usb/storage-automated
+depends: usb/insert
+user: root
+estimated_duration: 45.0
+command: removable_storage_test -s 268400000 usb
+_description:
+ This test is automated and executes after the usb/insert test is run.
+
+plugin: shell
+name: usb3/storage-automated
+requires:
+ usb.usb3 == 'supported'
+depends: usb3/insert
+user: root
+estimated_duration: 45.0
+command: removable_storage_test -s 268400000 -m 500000000 -p 7 usb
+_description:
+ This test is automated and executes after the usb3/insert test is run.
+
+plugin: shell
+name: usb/storage-preinserted
+user: root
+estimated_duration: 45.0
+command: removable_storage_test -l usb && removable_storage_test -s 268400000 usb
+_description:
+ This is an automated version of usb/storage-automated and assumes that the
+ server has usb storage devices plugged in prior to checkbox execution. It
+ is intended for servers and SRU automated testing.
+
+plugin: shell
+name: usb3/storage-preinserted
+user: root
+requires:
+ usb.usb3 == 'supported'
+estimated_duration: 45.0
+command: removable_storage_test -l usb && removable_storage_test -s 268400000 -m 500000000 -p 7 usb
+_description:
+ This is an automated version of usb3/storage-automated and assumes that the
+ server has usb 3.0 storage devices plugged in prior to checkbox execution. It
+ is intended for servers and SRU automated testing.
+
+plugin: manual
+name: usb/panels
+_description:
+ PURPOSE:
+ This test will check your USB connection.
+ STEPS:
+ 1. Connect a USB storage device to an external USB slot on this computer.
+ 2. An icon should appear on the Launcher.
+ 3. Confirm that the icon appears.
+ 4. Eject the device.
+ 5. Repeat with each external USB slot.
+ VERIFICATION:
+ Do all USB slots work with the device?
+
+plugin: shell
+name: usb/performance
+depends: usb/insert
+user: root
+estimated_duration: 45.00
+command: removable_storage_test -s 268400000 -p 15 usb
+_description:
+ This test will check that your USB 2.0 port transfers data at a
+ minimum expected speed.
+
+plugin: shell
+name: usb3/superspeed_performance
+requires:
+ usb.usb3 == 'supported'
+depends: usb3/insert
+user: root
+estimated_duration: 45.00
+command: removable_storage_test -s 268400000 -m 500000000 -p 60 usb
+_description:
+ This test will check that your USB 3.0 port transfers data at a
+ minimum expected speed in accordance with the specification of
+ USB 3.0 SuperSpeed mode.
diff --git a/jobs/user_apps.txt.in b/jobs/user_apps.txt.in
new file mode 100644
index 0000000..2b16562
--- /dev/null
+++ b/jobs/user_apps.txt.in
@@ -0,0 +1,491 @@
+plugin: user-interact-verify
+name: software/update_manager_finds_updates
+depends: ethernet/detect
+user: root
+requires: package.name == 'update-manager'
+_description:
+ PURPOSE:
+ This test will check that the update manager can find updates.
+ STEPS:
+ 1. Click Test to launch update-manager.
+ 2. Follow the prompts and if updates are found, install them.
+ 3. When Update Manager has finished, please close the app by clicking the Close button in the lower right corner.
+ VERIFICATION:
+ Did Update manager find and install updates (Pass if no updates are found,
+ but Fail if updates are found but not installed)
+command: update-manager --check-dist-upgrades
+
+plugin: user-interact-verify
+name: software/nautilus_folder_create
+requires: package.name == 'nautilus'
+command: nautilus
+_description:
+ PURPOSE:
+ This test will check that the file browser can create a new folder.
+ STEPS:
+ 1. Click Test to open the File Browser.
+ 2. On the menu bar, click File -> Create Folder.
+ 3. In the name box for the new folder, enter the name Test Folder and hit Enter.
+ 4. Close the File browser.
+ VERIFICATION:
+ Do you now have a new folder called Test Folder?
+
+plugin: user-interact-verify
+name: software/nautilus_folder_copy
+depends: software/nautilus_folder_create
+command: nautilus
+_description:
+ PURPOSE:
+ This test will check that the file browser can copy a folder
+ STEPS:
+ 1. Click Test to open the File Browser.
+ 2. Right click on the folder called Test Folder and click on Copy.
+ 3. Right Click on any white area in the window and click on Paste.
+ 4. Right click on the folder called Test Folder(copy) and click Rename.
+ 5. Enter the name Test Data in the name box and hit Enter.
+ 6. Close the File browser.
+ VERIFICATION:
+ Do you now have a folder called Test Data?
+
+plugin: user-interact-verify
+name: software/nautilus_folder_move
+depends: software/nautilus_folder_copy
+command: nautilus
+_description:
+ PURPOSE:
+ This test will verify that the file browser can move a folder.
+ STEPS:
+ 1. Click Test to open the File Browser.
+ 2. Click and drag the folder called Test Data onto the icon called Test Folder.
+ 3. Release the button.
+ 4. Double click the folder called Test Folder to open it up.
+ 5. Close the File Browser.
+ VERIFICATION:
+ Was the folder called Test Data successfully moved into the folder called Test Folder?
+
+plugin: user-interact-verify
+name: software/nautilus_file_create
+depends: software/nautilus_folder_create
+command: nautilus $HOME/"Test Folder"
+_description:
+ PURPOSE:
+ This test will check that the file browser can create a new file.
+ STEPS:
+ 1. Click Select Test to open the File Browser.
+ 2. Right click in the white space and click Create Document -> Empty Document.
+ 3. Enter the name Test File 1 in the name box and hit Enter.
+ 4. Close the File browser.
+ VERIFICATION:
+ Do you now have a file called Test File 1?
+
+plugin: user-interact-verify
+name: software/nautilus_file_copy
+depends: software/nautilus_file_create
+command: nautilus $HOME/"Test Folder"
+_description:
+ PURPOSE:
+ This test will check that the file browser can copy a file.
+ STEPS:
+ 1. Click Test to open the File Browser.
+ 2. Right click on the file called Test File 1 and click Copy.
+ 3. Right click in the white space and click Paste.
+ 4. Right click on the file called Test File 1(copy) and click Rename.
+ 5. Enter the name Test File 2 in the name box and hit Enter.
+ 6. Close the File Browser.
+ VERIFICATION:
+ Do you now have a file called Test File 2?
+
+plugin: user-interact-verify
+name: software/nautilus_file_move
+depends: software/nautilus_file_copy
+command: nautilus $HOME/"Test Folder"
+_description:
+ PURPOSE:
+ This test will check that the file browser can move a file.
+ STEPS:
+ 1. Click Test to open the File Browser.
+ 2. Click and drag the file called Test File 2 onto the icon for the folder called Test Data.
+ 3. Release the button.
+ 4. Double click the icon for Test Data to open that folder up.
+ 5. Close the File Browser.
+ VERIFICATION:
+ Was the file Test File 2 successfully moved into the Test Data folder?
+
+plugin: user-interact-verify
+name: software/nautilus_file_delete
+depends: software/nautilus_file_create
+command: nautilus $HOME/"Test Folder"
+_description:
+ PURPOSE:
+ This test will check that the file browser can delete a file.
+ STEPS:
+ 1. Click Test to open the File Browser.
+ 2. Right click on the file called Test File 1 and click on Move To Trash.
+ 3. Verify that Test File 1 has been removed.
+ 4. Close the File Browser.
+ VERIFICATION:
+ Is Test File 1 now gone?
+
+plugin: user-interact-verify
+name: software/nautilus_folder_delete
+depends: software/nautilus_folder_create
+command: nautilus
+_description:
+ PURPOSE:
+ This test will check that the file browser can delete a folder.
+ STEPS:
+ 1. Click Test to open the File Browser.
+ 2. Right click on the folder called Test Folder and click on Move To Trash.
+ 3. Verify that the folder was deleted.
+ 4. Close the file browser.
+ VERIFICATION:
+ Has Test Folder been successfully deleted?
+
+plugin: local
+name: software/view_office_document
+requires: package.name == "ubuntu-desktop"
+_description: Common Document Types Test
+command:
+ cat <<'EOF' | run_templates -s "find $CHECKBOX_SHARE/data/documents -type f"
+ name: `basename $0`_test
+ plugin: user-interact-verify
+ description:
+ PURPOSE:
+ This test will check that common office document types can be opened in the default application.
+ STEPS:
+ 1. Click Test to open the file '$0' with its default viewer.
+ 2. After the viewer opens, check out the file that was opened.
+ 3. Close the application (LibreOffice, Doc Viewer, etc.)
+ VERIFICATION:
+ Did the application open the document properly? (e.g was it displayed and did it function properly?)
+ command: xdg-open $0
+ EOF
+
+plugin: local
+name: software/audio_file_play
+requires: package.name == "ubuntu-desktop"
+_description: Common Document Types Test
+command:
+ cat <<'EOF' | run_templates -s "find $CHECKBOX_SHARE/data/audio -type f"
+ name: `basename $0`_test
+ plugin: user-interact-verify
+ description:
+ PURPOSE:
+ This test will check that common audio files can be opened in the default player.
+ STEPS:
+ 1. Click Test to open the audio file '$0' with its default player.
+ 2. After the player opens listen to the sound.
+ 3. Close the application.
+ VERIFICATION:
+ Did the application play the audio file properly? (no skips, crackles, etc)
+ command: xdg-open $0
+ EOF
+
+plugin: local
+name: software/video_file_play
+requires: package.name == "ubuntu-desktop"
+_description: Common Document Types Test
+command:
+ cat <<'EOF' | run_templates -s "find $CHECKBOX_SHARE/data/video -type f"
+ name: `basename $0`_test
+ plugin: user-interact-verify
+ description:
+ PURPOSE:
+ This test will check that common video files can be played in the default player.
+ STEPS:
+ 1. Click Test to play the video '$0' with its default player.
+ 2. Watch the video.
+ 3. Close the application.
+ VERIFICATION:
+ Did the application play '$0' proplerly (no video or audio issues with playback?)
+ command: xdg-open $0
+ EOF
+
+plugin: local
+name: software/view_image_file
+requires: package.name == "ubuntu-desktop"
+_description: Common Document Types Test
+command:
+ cat <<'EOF' | run_templates -s "find $CHECKBOX_SHARE/data/images -type f"
+ name: `basename $0`_test
+ plugin: user-interact-verify
+ description:
+ PURPOSE:
+ This test will check that common image formats can be opened in the default viewer.
+ STEPS:
+ 1. Click Test to attempt to open the image '$0' with its default viewer.
+ 2. Check out the file that was opened.
+ 3. Close the application.
+ VERIFICATION:
+ Did the image display properly?
+ command: xdg-open $0
+ EOF
+
+plugin: user-interact-verify
+name: software/firefox
+requires: package.name == 'firefox'
+command: firefox $CHECKBOX_SHARE/data/websites/testindex.html
+_description:
+ PURPOSE:
+ This test will check that Firefox can render a basic web page.
+ STEPS:
+ 1. Select Test to launch Firefox and view the test web page.
+ VERIFICATION:
+ Did the Ubuntu Test page load correctly?
+
+plugin: user-interact-verify
+name: software/firefox-flash
+depends: software/firefox
+requires: package.name == 'firefox'
+command: firefox $CHECKBOX_SHARE/data/websites/flashtest.html
+_description:
+ PURPOSE:
+ This test will check that Firefox can run flash applications. Note: this may
+ require installing additional software to successfully complete.
+ STEPS:
+ 1. Select Test to launch Firefox and view a sample Flash test.
+ VERIFICATION:
+ Did you see the text?
+
+plugin: user-interact-verify
+name: software/firefox-flash-video
+depends: software/firefox-flash
+requires: package.name == 'firefox'
+command: firefox $CHECKBOX_SHARE/data/websites/flashvideo.html
+_description:
+ PURPOSE:
+ This test will check that Firefox can play a Flash video. Note: this may
+ require installing additional software to successfully complete.
+ STEPS:
+ 1. Select Test to launch Firefox and view a short flash video.
+ VERIFICATION:
+ Did the video play correctly?
+
+plugin: user-interact-verify
+name: software/firefox-totem
+depends: software/firefox
+requires:
+ package.name == 'firefox'
+ package.name == 'gstreamer0.10-ffmpeg'
+command: firefox $CHECKBOX_SHARE/data/video/Quicktime_Video.mov
+_description:
+ PURPOSE:
+ This test will check that Firefox can play a Quicktime (.mov) video file.
+ Note: this may require installing additional software to successfully
+ complete.
+ STEPS:
+ 1. Select Test to launch Firefox with a sample video.
+ VERIFICATION:
+ Did the video play using a plugin?
+
+plugin: user-interact-verify
+name: software/empathy-facebook_chat
+requires: package.name == "empathy"
+command: empathy
+_description:
+ PURPOSE:
+ This test will check that Empathy messaging client works.
+ STEPS:
+ 1. Select Test to launch Empathy.
+ 2. Configure it to connect to the Facebook Chat service.
+ 3. Once you have completed the test, please quit Empathy to continue here.
+ VERIFICATION:
+ Were you able to connect correctly and send/receive messages?
+
+plugin: user-interact-verify
+name: software/empathy-google_talk
+requires: package.name == "empathy"
+command: empathy
+_description:
+ PURPOSE:
+ This test will check that Empathy messaging client works.
+ STEPS:
+ 1. Select Test to launch Empathy.
+ 2. Configure it to connect to the Google Talk (gtalk) service.
+ 3. Once you have completed the test, please quit Empathy to continue here.
+ VERIFICATION:
+ Were you able to connect correctly and send/receive messages?
+
+plugin: user-interact-verify
+name: software/empathy-jabber
+requires: package.name == "empathy"
+command: empathy
+_description:
+ PURPOSE:
+ This test will check that Empathy messaging client works.
+ STEPS:
+ 1. Select Test to launch Empathy.
+ 2. Configure it to connect to the Jabber service.
+ 3. Once you have completed the test, please quit Empathy to continue here.
+ VERIFICATION:
+ Were you able to connect correctly and send/receive messages?
+
+plugin: user-interact-verify
+name: software/empathy-aim
+requires: package.name == "empathy"
+command: empathy
+_description:
+ PURPOSE:
+ This test will check that Empathy messaging client works.
+ STEPS:
+ 1. Select Test to launch Empathy.
+ 2. Configure it to connect to the AOL Instant Messaging (AIM) service.
+ 3. Once you have completed the test, please quit Empathy to continue here.
+ VERIFICATION:
+ Were you able to connect correctly and send/receive messages?
+
+plugin: user-interact-verify
+name: software/empathy-msn
+requires: package.name == "empathy"
+command: empathy
+_description:
+ PURPOSE:
+ This test will check that Empathy messaging client works.
+ STEPS:
+ 1. Select Test to launch Empathy.
+ 2. Configure it to connect to the Microsoft Network (MSN) service.
+ 3. Once you have completed the test, please quit Empathy to continue here.
+ VERIFICATION:
+ Were you able to connect correctly and send/receive messages?
+
+plugin: user-interact-verify
+name: software/evolution-pop3
+requires: package.name == "evolution"
+command: evolution
+_description:
+ PURPOSE:
+ This test will check that Evolution works.
+ STEPS:
+ 1. Click the "Test" button to launch Evolution.
+ 2. Configure it to connect to a POP3 account.
+ VERIFICATION:
+ Were you able to receive and read e-mail correctly?
+
+plugin: user-interact-verify
+name: software/evolution-imap
+requires: package.name == "evolution"
+command: evolution
+_description:
+ PURPOSE:
+ This test will check that Evolution works.
+ STEPS:
+ 1. Click the "Test" button to launch Evolution.
+ 2. Configure it to connect to a IMAP account.
+ VERIFICATION:
+ Were you able to receive and read e-mail correctly?
+
+plugin: user-interact-verify
+name: software/evolution-smtp
+requires: package.name == "evolution"
+command: evolution
+_description:
+ PURPOSE:
+ This test will check that Evolution works.
+ STEPS:
+ 1. Click the "Test" button to launch Evolution.
+ 2. Configure it to connect to a SMTP account.
+ VERIFICATION:
+ Were you able to send e-mail without errors?
+
+plugin: user-interact-verify
+name: software/gcalctool
+requires: package.name == "gcalctool"
+command: gcalctool
+_description:
+ PURPOSE:
+ This test checks that gcalctool (Calculator) works.
+ STEPS:
+ Click the "Test" button to open the calculator.
+ VERIFICATION:
+ Did it launch correctly?
+
+plugin: user-interact-verify
+name: software/gcalctool-functions
+depends: software/gcalctool
+requires: package.name == "gcalctool"
+command: gcalctool
+_description:
+ PURPOSE:
+ This test checks that gcalctool (Calculator) works.
+ STEPS:
+ Click the "Test" button to open the calculator and perform:
+ 1. Simple math functions (+,-,/,*)
+ 2. Nested math functions ((,))
+ 3. Fractional math
+ 4. Decimal math
+ VERIFICATION:
+ Did the functions perform as expected?
+
+plugin: user-interact-verify
+name: software/gcalctool-memory
+depends: software/gcalctool
+requires: package.name == "gcalctool"
+command: gcalctool
+_description:
+ PURPOSE:
+ This test checks that gcalctool (Calculator) works.
+ STEPS:
+ Click the "Test" button to open the calculator and perform:
+ 1. Memory set
+ 2. Memory reset
+ 3. Memory last clear
+ 4. Memory clear
+ VERIFICATION:
+ Did the functions perform as expected?
+
+plugin: user-interact-verify
+name: software/gcalctool-clipboard
+depends: software/gcalctool
+requires: package.name == "gcalctool"
+command: gcalctool
+_description:
+ PURPOSE:
+ This test checks that gcalctool (Calculator) works.
+ STEPS:
+ Click the "Test" button to open the calculator and perform:
+ 1. Cut
+ 2. Copy
+ 3. Paste
+ VERIFICATION:
+ Did the functions perform as expected?
+
+plugin: user-interact-verify
+name: software/gedit
+requires: package.name == "gedit"
+command: gedit
+_description:
+ PURPOSE:
+ This test checks that gedit works.
+ STEPS:
+ 1. Click the "Test" button to open gedit.
+ 2. Enter some text and save the file (make a note of the file name you use), then close gedit.
+ VERIFICATION:
+ Did this perform as expected?
+
+plugin: user-interact-verify
+name: software/gedit-read
+depends: software/gedit
+requires: package.name == "gedit"
+command: gedit
+_description:
+ PURPOSE:
+ This test checks that gedit works.
+ STEPS:
+ 1. Click the "Test" button to open gedit, and re-open the file you created previously.
+ 2. Edit then save the file, then close gedit.
+ VERIFICATION:
+ Did this perform as expected?
+
+plugin: user-interact-verify
+name: software/gnome-terminal
+requires: package.name == "gnome-terminal"
+command: gnome-terminal
+_description:
+ PURPOSE:
+ This test will check that Gnome Terminal works.
+ STEPS:
+ 1. Click the "Test" button to open Terminal.
+ 2. Type 'ls' and press enter. You should see a list of files and folder in your home directory.
+ 3. Close the terminal window.
+ VERIFICATION:
+ Did this perform as expected?
diff --git a/jobs/virtualization.txt.in b/jobs/virtualization.txt.in
new file mode 100644
index 0000000..9e19ab1
--- /dev/null
+++ b/jobs/virtualization.txt.in
@@ -0,0 +1,27 @@
+plugin: shell
+name: virtualization/kvm_check_vm
+user: root
+environ: http_proxy https_proxy
+requires:
+ package.name == 'qemu-kvm'
+ package.name == 'qemu-utils'
+ virtualization.kvm == 'supported'
+command: virtualization kvm --debug
+_description:
+ Test to check that a cloud image boots and works properly with KVM
+
+plugin: shell
+name: virtualization/xen_ok
+requires: package.name == 'libvirt-bin'
+user: root
+command: virsh -c xen:/// domstate Domain-0
+_description:
+ Test to verify that the Xen Hypervisor is running.
+
+plugin: shell
+name: virtualization/xen_check_vm
+depends: virtualization/xen_ok
+user: root
+command: xen_test /images/xentest.img /images/xentest.xml
+_description:
+ Test to check that a Xen domU image can boot and run on Xen on Ubuntu
diff --git a/jobs/wireless.txt.in b/jobs/wireless.txt.in
new file mode 100644
index 0000000..f307f8f
--- /dev/null
+++ b/jobs/wireless.txt.in
@@ -0,0 +1,415 @@
+plugin: shell
+name: wireless/wireless_scanning
+requires:
+ package.name == 'network-manager'
+ device.category == 'WIRELESS'
+command:
+ rfkill unblock wlan wifi
+ if rfkill list wlan wifi | grep -q 'Hard blocked: yes'; then
+ echo "Hard block is applied to WiFi device. Please remove and retest."
+ exit 1
+ fi
+ wireless_networks=`nmcli -f SSID dev wifi list`
+ if [ `echo "$wireless_networks" | wc -l` -gt 1 ]; then
+ echo "Wireless networks discovered: "
+ echo "$wireless_networks"
+ exit 0
+ fi
+ echo "No wireless networks discovered."
+ exit 1
+estimated_duration: 0.645
+_description: Wireless scanning test. It scans and reports on discovered APs.
+
+plugin: shell
+name: wireless/info_automated
+requires:
+ package.name == 'network-manager'
+ device.category == 'WIRELESS'
+command: udev_resource | filter_templates -w "category=WIRELESS"| awk "/path: / { print \$2 }"| xargs -n 1 sh -c "for i in \`ls /sys\$0/net 2>/dev/null\`; do network_info \$i; done"
+estimated_duration: 1.2
+_description:
+ This is an automated test to gather some info on the current state of your wireless devices. If no devices are found, the test will exit with an error.
+
+plugin: user-interact-verify
+name: wireless/wireless_connection
+command: network_check
+estimated_duration: 120.0
+requires: device.category == 'WIRELESS'
+_description:
+ PURPOSE:
+ This test will check your wireless connection.
+ STEPS:
+ 1. Click on the Network icon in the panel.
+ 2. Select a network below the 'Wireless networks' section.
+ 3. Click "Test" to verify that it's possible to establish an HTTP connection.
+ VERIFICATION:
+ Did a notification show and was the connection correctly established?
+
+plugin: shell
+name: wireless/wireless_connection_wpa_bg
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'multiple'
+user: root
+environ: WPA_BG_SSID WPA_BG_PSK
+command: trap "nmcli con delete id $WPA_BG_SSID" EXIT; create_connection wifi $WPA_BG_SSID --security=wpa --key=$WPA_BG_PSK && gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+estimated_duration: 30.0
+_description:
+ Tests that the systems wireless hardware can connect to a router using WPA
+ security and the 802.11b/g protocols.
+
+plugin: shell
+name: wireless/wireless_connection_open_bg
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'multiple'
+user: root
+environ: OPEN_BG_SSID
+command: trap "nmcli con delete id $OPEN_BG_SSID" EXIT; create_connection wifi $OPEN_BG_SSID && gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+estimated_duration: 30.0
+_description:
+ Tests that the systems wireless hardware can connect to a router using no
+ security and the 802.11b/g protocols.
+
+plugin: shell
+name: wireless/wireless_connection_wpa_n
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'multiple'
+ IEEE_80211.n == 'supported'
+user: root
+environ: WPA_N_SSID WPA_N_PSK
+command: trap "nmcli con delete id $WPA_N_SSID" EXIT; create_connection wifi $WPA_N_SSID --security=wpa --key=$WPA_N_PSK && gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+estimated_duration: 30.0
+_description:
+ Tests that the systems wireless hardware can connect to a router using WPA
+ security and the 802.11n protocol.
+
+plugin: shell
+name: wireless/wireless_connection_open_n
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'multiple'
+ IEEE_80211.n == 'supported'
+user: root
+environ: OPEN_N_SSID
+command: trap "nmcli con delete id $OPEN_N_SSID" EXIT; create_connection wifi $OPEN_N_SSID && gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+estimated_duration: 30.0
+_description:
+ Tests that the systems wireless hardware can connect to a router using no
+ security and the 802.11n protocol.
+
+plugin: shell
+name: wireless/wireless_connection_wpa_ac
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'multiple'
+ IEEE_80211.ac == 'supported'
+user: root
+environ: WPA_AC_SSID WPA_AC_PSK
+command: trap "nmcli con delete id $WPA_AC_SSID" EXIT; create_connection wifi $WPA_AC_SSID --security=wpa --key=$WPA_AC_PSK && gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+estimated_duration: 30.0
+_description:
+ Tests that the systems wireless hardware can connect to a router using WPA
+ security and the 802.11ac protocol.
+
+plugin: shell
+name: wireless/wireless_connection_open_ac
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'multiple'
+ IEEE_80211.ac == 'supported'
+user: root
+environ: OPEN_AC_SSID
+command: trap "nmcli con delete id $OPEN_AC_SSID" EXIT; create_connection wifi $OPEN_AC_SSID && gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+estimated_duration: 30.0
+_description:
+ Tests that the systems wireless hardware can connect to a router using no
+ security and the 802.11ac protocol.
+
+plugin: user-interact-verify
+name: wireless/wireless_connection_wpa_bg_manual
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'single'
+user: root
+environ: ROUTER_SSID ROUTER_PSK
+command: trap "nmcli con delete id $ROUTER_SSID" EXIT; create_connection wifi $ROUTER_SSID --security=wpa --key=$ROUTER_PSK && gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Tests that the systems wireless hardware can connect to a router using WPA
+ security and the 802.11b/g protocols.
+ STEPS:
+ 1. Open your routers configuration tool
+ 2. Change the settings to only accept connections on the B and G wireless bands
+ 3. Make sure the SSID is set to ROUTER_SSID
+ 4. Change the security settings to use WPA2 and ensure the PSK matches that set in ROUTER_PSK
+ 5. Click the 'Test' button to create a connection to the router and test the connection
+ VERIFICATION:
+ Verification is automated, do not change the automatically selected result.
+
+plugin: user-interact-verify
+name: wireless/wireless_connection_open_bg_manual
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'single'
+user: root
+environ: ROUTER_SSID
+command: trap "nmcli con delete id $ROUTER_SSID" EXIT; create_connection wifi $ROUTER_SSID && gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Tests that the systems wireless hardware can connect to a router using
+ no security and the 802.11b/g protocols.
+ STEPS:
+ 1. Open your routers configuration tool
+ 2. Change the settings to only accept connections on the B and G wireless bands
+ 3. Make sure the SSID is set to ROUTER_SSID
+ 4. Change the security settings to use no security
+ 5. Click the 'Test' button to create a connection to the router and test the connection
+ VERIFICATION:
+ Verification is automated, do not change the automatically selected result.
+
+plugin: user-interact-verify
+name: wireless/wireless_connection_wpa_n_manual
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'single'
+ IEEE_80211.n == 'supported'
+ IEEE_80211.band_5GHz == 'supported'
+user: root
+environ: ROUTER_SSID ROUTER_PSK
+command: trap "nmcli con delete id $ROUTER_SSID" EXIT; create_connection wifi $ROUTER_SSID --security=wpa --key=$ROUTER_PSK && gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Tests that the systems wireless hardware can connect to a router using WPA
+ security and the 802.11n protocols.
+ STEPS:
+ 1. Open your routers configuration tool
+ 2. Change the settings to only accept connections on the N wireless band
+ 3. Make sure the SSID is set to ROUTER_SSID
+ 4. Change the security settings to use WPA2 and ensure the PSK matches that set in ROUTER_PSK
+ 5. Click the 'Test' button to create a connection to the router and test the connection
+ VERIFICATION:
+ Verification is automated, do not change the automatically selected result.
+
+plugin: user-interact-verify
+name: wireless/wireless_connection_open_n_manual
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'single'
+ IEEE_80211.n == 'supported'
+ IEEE_80211.band_5GHz == 'supported'
+user: root
+environ: ROUTER_SSID
+command: trap "nmcli con delete id $ROUTER_SSID" EXIT; create_connection wifi $ROUTER_SSID && gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Tests that the systems wireless hardware can connect to a router using
+ no security and the 802.11n protocol.
+ STEPS:
+ 1. Open your routers configuration tool
+ 2. Change the settings to only accept connections on the N wireless band
+ 3. Make sure the SSID is set to ROUTER_SSID
+ 4. Change the security settings to use no security
+ 5. Click the 'Test' button to create a connection to the router and test the connection
+ VERIFICATION:
+ Verification is automated, do not change the automatically selected result.
+
+plugin: user-interact-verify
+name: wireless/wireless_connection_wpa_ac_manual
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'single'
+ IEEE_80211.ac == 'supported'
+user: root
+environ: ROUTER_SSID ROUTER_PSK
+command: trap "nmcli con delete id $ROUTER_SSID" EXIT; create_connection wifi $ROUTER_SSID --security=wpa --key=$ROUTER_PSK && gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Tests that the systems wireless hardware can connect to a router using WPA
+ security and the 802.11ac protocol.
+ STEPS:
+ 1. Open your router's configuration tool
+ 2. Change the settings to only accept connections with the 802.11ac protocol.
+ 3. Make sure the SSID is set to ROUTER_SSID
+ 4. Change the security settings to use WPA2 and ensure the PSK matches that set in ROUTER_PSK
+ 5. Click the 'Test' button to create a connection to the router and test the connection
+ VERIFICATION:
+ Verification is automated, do not change the automatically selected result.
+
+plugin: user-interact-verify
+name: wireless/wireless_connection_open_ac_manual
+requires:
+ device.category == 'WIRELESS'
+ environment.ROUTERS == 'single'
+ IEEE_80211.ac == 'supported'
+user: root
+environ: ROUTER_SSID
+command: trap "nmcli con delete id $ROUTER_SSID" EXIT; create_connection wifi $ROUTER_SSID && gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+estimated_duration: 120.0
+_description:
+ PURPOSE:
+ Tests that the systems wireless hardware can connect to a router using
+ no security and the 802.11ac protocol.
+ STEPS:
+ 1. Open your routers configuration tool
+ 2. Change the settings to only accept connections with the 802.11ac protocol.
+ 3. Make sure the SSID is set to ROUTER_SSID
+ 4. Change the security settings to use no security
+ 5. Click the 'Test' button to create a connection to the router and test the connection
+ VERIFICATION:
+ Verification is automated, do not change the automatically selected result.
+
+plugin: shell
+name: wireless/monitor_wireless_connection
+requires:
+ package.name == 'iperf'
+ device.category == 'WIRELESS'
+user: root
+environ: WPA_BG_SSID WPA_BG_PSK SERVER_IPERF
+command: trap "nmcli con delete id $WPA_BG_SSID" EXIT; create_connection wifi $WPA_BG_SSID --security=wpa --key=$WPA_BG_PSK && iperf -c $SERVER_IPERF -t 300 -i 30
+estimated_duration: 330.0
+_description:
+ Tests the performance of a systems wireless connection through the iperf tool.
+
+plugin: shell
+name: wireless/monitor_wireless_connection_udp
+requires:
+ package.name == 'iperf'
+ device.category == 'WIRELESS'
+user: root
+environ: WPA_BG_SSID WPA_BG_PSK SERVER_IPERF
+command: trap "nmcli con delete id $WPA_BG_SSID" EXIT; create_connection wifi $WPA_BG_SSID --security=wpa --key=$WPA_BG_PSK && iperf -c $SERVER_IPERF -t 300 -i 30 -u -b 100m -p 5050
+estimated_duration: 330.0
+_description:
+ Tests the performance of a systems wireless connection through the iperf tool, using UDP packets.
+
+plugin: shell
+name: wireless/wireless_connection_open_a
+requires:
+ device.category == 'WIRELESS'
+ IEEE_80211.band_5GHz == 'supported'
+user: root
+environ: OPEN_A_SSID
+command: trap "nmcli con delete id $OPEN_A_SSID" EXIT; create_connection wifi $OPEN_A_SSID && gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+estimated_duration: 30.0
+_description:
+ Test that the system's wireless hardware can connect to a router using the
+ 802.11a protocol. This requires that you have a router pre-configured to only
+ respond to requests on the 802.11a protocol.
+
+plugin: shell
+name: wireless/wireless_connection_open_b
+requires:
+ device.category == 'WIRELESS'
+user: root
+environ: OPEN_B_SSID
+command: trap "nmcli con delete id $OPEN_B_SSID" EXIT; create_connection wifi $OPEN_B_SSID && gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+estimated_duration: 30.0
+_description:
+ Test that the system's wireless hardware can connect to a router using the
+ 802.11b protocol. This requires that you have a router pre-configured to only
+ respond to requests on the 802.11b protocol.
+
+plugin: local
+name: wireless/stress_performance
+requires:
+ device.category == 'NETWORK'
+_description: Automated test that tests performance of each wireless network device under stress.
+command:
+ cat <<'EOF' | run_templates -s 'udev_resource | filter_templates -w "category=WIRELESS" | awk "/path: / { print \$2 }" | xargs -n 1 sh -c "for i in \`ls /sys\$0/net 2>/dev/null\`; do echo \$0 \$i; done"'
+ plugin: shell
+ name: wireless/stress_performance_$2
+ requires: device.path == "$1"
+ user: root
+ command: network test -i $2 -t stress
+ estimated_duration: 330.0
+ _description:
+ This test executes iperf to generate a load on the network device and then performs a ping test to watch for dropped packets and very large latency periods.
+ EOF
+
+plugin: shell
+name: wireless/wireless_connection_open_g
+requires:
+ device.category == 'WIRELESS'
+user: root
+environ: OPEN_G_SSID
+command: trap "nmcli con delete id $OPEN_G_SSID" EXIT; create_connection wifi $OPEN_G_SSID && gateway_ping_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`
+estimated_duration: 30.0
+_description:
+ Test that the system's wireless hardware can connect to a router using the
+ 802.11g protocol. This requires that you have a router pre-configured to only
+ respond to requests on the 802.11g protocol.
+
+plugin: shell
+name: wireless/wireless_extension
+requires: device.category == 'WIRELESS'
+command: wireless_ext
+estimated_duration: 1.2
+_description:
+ Test that the MAC80211 modules are loaded and wireless extensions are working.
+
+plugin: local
+name: wireless/iwconfig_info
+requires:
+ device.category == 'WIRELESS'
+command:
+ cat <<'EOF' | run_templates -s 'udev_resource | filter_templates -w "category=WIRELESS" | awk "/path: / { print \$2 }" | xargs -n 1 sh -c "for i in \`ls /sys\$0/net 2>/dev/null\`; do echo \$0 \$i; done"'
+ plugin: shell
+ name: wireless/iwconfig_check_$2
+ requires: device.path == "$1"
+ command: iwconfig $2
+ estimated_duration: 1.2
+ _description:
+ This test executes iwconfig requests against all the ethernet devices found on the system.
+ EOF
+_description:
+ This is an automated test to gather some info on the current state of your network devices. If no devices are found, the test will exit with an error.
+
+plugin: user-interact-verify
+name: wireless/wireless_rfkill
+command: rfkill list | zenity --text-info --title rfkill-Info
+estimated_duration: 120.0
+requires: device.category == 'WIRELESS'
+_description:
+ PURPOSE:
+ This test will check whether or not your driver responds to rfkill commands.
+ STEPS:
+ 1. Use the hardware switch on the side of your device to switch off wireless.
+ 2. If you do not have a hardware switch disable wireless from the network manager icon in the panel
+ 3. Click "Test" to verify that the hard or soft blocks are in place.
+ VERIFICATION:
+ Did the hard or soft blocks show on in the dialog?
+
+plugin: local
+name: wireless/maximum_bandwidth
+requires:
+ device.category == 'WIRELESS'
+ package.name == 'zenity'
+ package.name == 'iperf'
+command:
+ cat <<'EOF' | run_templates -s 'udev_resource | filter_templates -w "category=WIRELESS" | awk "/path: / { print \$2 }" | xargs -n 1 sh -c "for i in \`ls /sys\$0/net 2>/dev/null\`; do echo \$0 \$i; done"'
+ plugin: user-verify
+ user: root
+ name: wireless/maximum_bandwidth_$2
+ requires: device.path == "$1"
+ command: network test -i $2 -t iperf 2>&1 | cat - <(echo; echo "Verify the result and click OK to decide on the outcome") | zenity --text-info --title 'wireless max bw $2'
+ estimated_duration: 120.0
+ _description:
+ PURPOSE:
+ User verification of whether the observed transfer throughput is acceptable
+ for the type and maximum speed of each wireless interface.
+ STEPS:
+ 1. Read the network test summary and confirm that the throughput is acceptable.
+ 2. If needed, click "Test" again to repeat the transfer test.
+ VERIFICATION:
+ Was the reported throughput acceptable for the type and maximum speed of this interface?
+ EOF
+_description:
+ This test executes a maximum throughput test against all the wireless devices found on the system.
+