2
category_id: 2013.com.canonical.plainbox::audio
4
estimated_duration: 1.0
6
device.category == 'AUDIO'
7
package.name == 'alsa-base'
8
command: cat /proc/asound/cards
9
_description: Test to detect audio devices
11
plugin: user-interact-verify
12
category_id: 2013.com.canonical.plainbox::audio
13
id: audio/playback_auto
14
estimated_duration: 5.0
15
depends: audio/list_devices
17
device.category == 'AUDIO'
18
package.name == 'alsa-base'
19
package.name == 'gir1.2-gst-plugins-base-0.10' or package.name == 'gir1.2-gst-plugins-base-1.0'
20
package.name == 'pulseaudio-utils'
22
audio_settings store --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
23
audio_settings set --device=pci --volume=50
24
gst_pipeline_test -t 2 'audiotestsrc wave=sine freq=512 ! audioconvert ! audioresample ! autoaudiosink'
26
audio_settings restore --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
30
This test will check that internal speakers work correctly
32
1. Make sure that no external speakers or headphones are connected
33
When testing a desktop, you can skip this test if there is no
34
internal speaker, we will test the external output later
35
2. Commence the test to play a brief tone on your audio device
40
template-resource: graphics_card
41
plugin: user-interact-verify
42
category_id: 2013.com.canonical.plainbox::audio
43
id: audio/{index}_playback_hdmi_{product_slug}
44
estimated_duration: 30.0
46
display.hdmi == 'supported'
47
device.category == 'AUDIO'
48
package.name == 'alsa-base'
49
package.name == 'gir1.2-gst-plugins-base-0.10' or package.name == 'gir1.2-gst-plugins-base-1.0'
50
package.name == 'pulseaudio-utils'
52
audio_settings store --verbose --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
53
audio_settings set --verbose --device=hdmi --volume=50
54
gst_pipeline_test -t 2 --device hdmi 'audiotestsrc wave=sine freq=512 ! audioconvert ! audioresample ! autoaudiosink'
56
audio_settings restore --verbose --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
59
HDMI audio interface verification
61
1. Plug an external HDMI device with sound (Use only one HDMI/DisplayPort/Thunderbolt interface at a time for this test)
64
Did you hear the sound from the HDMI device?
67
template-resource: graphics_card
68
plugin: user-interact-verify
69
category_id: 2013.com.canonical.plainbox::audio
70
id: audio/{index}_playback_displayport_{product_slug}
71
estimated_duration: 30.0
73
display.dp == 'supported'
74
device.category == 'AUDIO'
75
package.name == 'alsa-base'
76
package.name == 'gir1.2-gst-plugins-base-0.10' or package.name == 'gir1.2-gst-plugins-base-1.0'
77
package.name == 'pulseaudio-utils'
79
audio_settings store --verbose --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
80
audio_settings set --verbose --device=hdmi --volume=50
81
gst_pipeline_test -t 2 --device hdmi 'audiotestsrc wave=sine freq=512 ! audioconvert ! audioresample ! autoaudiosink'
83
audio_settings restore --verbose --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
86
DisplayPort audio interface verification
88
1. Plug an external DisplayPort device with sound (Use only one HDMI/DisplayPort/Thunderbolt interface at a time for this test)
91
Did you hear the sound from the DisplayPort device?
94
template-resource: graphics_card
95
plugin: user-interact-verify
96
category_id: 2013.com.canonical.plainbox::audio
97
id: audio/{index}_playback_thunderbolt_{product_slug}
98
imports: from 2013.com.canonical.plainbox import manifest
99
estimated_duration: 30.0
101
manifest.has_thunderbolt == 'True'
102
device.category == 'AUDIO'
103
package.name == 'alsa-base'
104
package.name == 'gir1.2-gst-plugins-base-0.10' or package.name == 'gir1.2-gst-plugins-base-1.0'
105
package.name == 'pulseaudio-utils'
107
audio_settings store --verbose --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
108
audio_settings set --verbose --device=hdmi --volume=50
109
gst_pipeline_test -t 2 --device hdmi 'audiotestsrc wave=sine freq=512 ! audioconvert ! audioresample ! autoaudiosink'
111
audio_settings restore --verbose --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
114
Thunderbolt audio interface verification
116
1. Plug an external Thunderbolt device with sound (Use only one HDMI/DisplayPort/Thunderbolt interface at a time for this test)
119
Did you hear the sound from the Thunderbolt device?
122
template-resource: graphics_card
123
plugin: user-interact-verify
124
category_id: 2013.com.canonical.plainbox::audio
125
id: audio/{index}_playback_thunderbolt3_{product_slug}
126
imports: from 2013.com.canonical.plainbox import manifest
127
estimated_duration: 30.0
129
manifest.has_thunderbolt3 == 'True'
130
device.category == 'AUDIO'
131
package.name == 'alsa-base'
132
package.name == 'gir1.2-gst-plugins-base-0.10' or package.name == 'gir1.2-gst-plugins-base-1.0'
133
package.name == 'pulseaudio-utils'
135
audio_settings store --verbose --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
136
audio_settings set --verbose --device=hdmi --volume=50
137
gst_pipeline_test -t 2 --device hdmi 'audiotestsrc wave=sine freq=512 ! audioconvert ! audioresample ! autoaudiosink'
139
audio_settings restore --verbose --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
142
Thunderbolt audio interface verification
144
1. Plug an external Thunderbolt device with sound (Use only one HDMI/DisplayPort/Thunderbolt interface at a time for this test)
147
Did you hear the sound from the Thunderbolt device?
150
template-resource: graphics_card
151
plugin: user-interact-verify
152
category_id: 2013.com.canonical.plainbox::audio
153
id: audio/{index}_playback_type-c_displayport_{product_slug}
154
imports: from 2013.com.canonical.plainbox import manifest
155
estimated_duration: 30.0
157
manifest.has_usb_type_c
158
display.dp == 'supported'
159
device.category == 'AUDIO'
160
package.name == 'alsa-base'
161
package.name == 'gir1.2-gst-plugins-base-0.10' or package.name == 'gir1.2-gst-plugins-base-1.0'
162
package.name == 'pulseaudio-utils'
164
audio_settings store --verbose --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
165
audio_settings set --verbose --device=hdmi --volume=50
166
gst_pipeline_test -t 2 --device hdmi 'audiotestsrc wave=sine freq=512 ! audioconvert ! audioresample ! autoaudiosink'
168
audio_settings restore --verbose --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
171
DisplayPort audio via USB Type-C port interface verification
173
1. Plug an external DisplayPort device with sound on a USB Type-C port using a "USB Typce-C to DisplayPort" adapter (Use only one HDMI/DisplayPort/Thunderbolt interface at a time for this test)
176
Did you hear the sound from the DisplayPort device?
178
plugin: user-interact-verify
179
category_id: 2013.com.canonical.plainbox::audio
180
id: audio/playback_headphones
181
estimated_duration: 20.0
182
depends: audio/list_devices
184
device.category == 'AUDIO'
185
package.name == 'alsa-base'
186
package.name == 'gir1.2-gst-plugins-base-0.10' or package.name == 'gir1.2-gst-plugins-base-1.0'
187
package.name == 'pulseaudio-utils'
189
audio_settings store --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
190
audio_settings set --device=pci --volume=50
191
gst_pipeline_test -t 2 'audiotestsrc wave=sine freq=512 ! audioconvert ! audioresample ! autoaudiosink'
193
audio_settings restore --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
197
This test will check that headphones connector works correctly
199
1. Connect a pair of headphones to your audio device
200
2. Commence the test to play a sound to your audio device
202
Did you hear a sound through the headphones and did the sound play without any distortion, clicks or other strange noises from your headphones?
204
plugin: user-interact-verify
205
category_id: 2013.com.canonical.plainbox::audio
206
id: audio/alsa_record_playback_internal
207
estimated_duration: 20.0
208
depends: audio/playback_auto
210
device.category == 'AUDIO'
211
package.name == 'alsa-base'
212
package.name == 'pulseaudio-utils'
213
package.name == 'gstreamer1.0-plugins-good' or package.name == 'gstreamer0.10-plugins-good'
215
audio_settings store --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
216
audio_settings set --device=pci --volume=50
219
audio_settings restore --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
223
This test will check that recording sound using the onboard microphone works correctly
225
1. Disconnect any external microphones that you have plugged in
226
2. Click "Test", then speak into your internal microphone
227
3. After a few seconds, your speech will be played back to you.
229
Did you hear your speech played back?
231
plugin: user-interact-verify
232
category_id: 2013.com.canonical.plainbox::audio
233
id: audio/alsa_record_playback_external
234
estimated_duration: 20.0
235
depends: audio/playback_headphones
237
device.category == 'AUDIO'
238
package.name == 'alsa-base'
239
package.name == 'pulseaudio-utils'
240
package.name == 'gstreamer1.0-plugins-good' or package.name == 'gstreamer0.10-plugins-good'
242
audio_settings store --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
243
audio_settings set --device=pci --volume=50
246
audio_settings restore --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
250
This test will check that recording sound using an external microphone works correctly
252
1. Connect a microphone to your microphone port
253
2. Click "Test", then speak into the external microphone
254
3. After a few seconds, your speech will be played back to you
256
Did you hear your speech played back?
258
plugin: user-interact-verify
259
category_id: 2013.com.canonical.plainbox::audio
260
id: audio/alsa_record_playback_usb
261
estimated_duration: 120.0
263
device.category == 'AUDIO'
264
package.name == 'alsa-base'
265
package.name == 'pulseaudio-utils'
266
package.name == 'gstreamer1.0-plugins-good' or package.name == 'gstreamer0.10-plugins-good'
268
audio_settings store --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
269
audio_settings set --device=usb --volume=50
272
audio_settings restore --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
276
This test will check that a USB audio device works correctly
278
1. Connect a USB audio device to your system
279
2. Click "Test", then speak into the microphone
280
3. After a few seconds, your speech will be played back to you
282
Did you hear your speech played back through the USB headphones?
285
category_id: 2013.com.canonical.plainbox::audio
286
id: audio/alsa_record_playback_automated
287
estimated_duration: 10.0
289
package.name == 'python3-gi'
290
package.name == 'gir1.2-gstreamer-1.0'
291
package.name == 'libgstreamer1.0-0'
292
package.name == 'gstreamer1.0-plugins-good'
293
package.name == 'gstreamer1.0-pulseaudio'
294
package.name == 'alsa-base'
295
device.category == 'AUDIO'
298
Play back a sound on the default output and listen for it on the
302
category_id: 2013.com.canonical.plainbox::audio
303
id: audio/alsa_info_collect
304
estimated_duration: 2.0
305
command: alsa_info --no-dialog --no-upload --output ${PLAINBOX_SESSION_SHARE}/alsa_info.log
307
Collect audio-related system information. This data can be used to
308
simulate this computer's audio subsystem and perform more detailed tests
309
under a controlled environment.
312
category_id: 2013.com.canonical.plainbox::audio
313
id: audio/alsa_info_attachment
314
depends: audio/alsa_info_collect
315
estimated_duration: 1.0
316
command: [ -e ${PLAINBOX_SESSION_SHARE}/alsa_info.log ] && cat ${PLAINBOX_SESSION_SHARE}/alsa_info.log
318
Attaches the audio hardware data collection log to the results.
320
plugin: user-interact-verify
321
category_id: 2013.com.canonical.plainbox::audio
323
estimated_duration: 20.0
324
command: speaker-test -c 2 -l 1 -t wav
327
Check that the various audio channels are working properly
331
You should clearly hear a voice from the different audio channels
334
category_id: 2013.com.canonical.plainbox::audio
335
id: audio/check_volume
336
estimated_duration: 1.0
338
package.name == 'pulseaudio-utils'
339
device.category == 'AUDIO'
340
command: volume_test --minvol 1 --maxvol 100
342
This test will verify that the volume levels are at an acceptable level on
343
your local system. The test will validate that the volume is greater than
344
or equal to minvol and less than or equal to maxvol for all sources (inputs)
345
and sinks (outputs) recognized by PulseAudio. It will also validate that the
346
active source and sink are not muted. You should not manually adjust the
347
volume or mute before running this test.
350
category_id: 2013.com.canonical.plainbox::audio
351
id: audio/external-lineout
352
estimated_duration: 30.0
355
Check that external line out connection works correctly
357
1. Insert cable to speakers (with built-in amplifiers) on the line out port
358
2. Open system sound preferences, 'Output' tab, select 'Line-out' on the connector list. Commence the test
359
3. On the system sound preferences, select 'Internal Audio' on the device list and click 'Test Speakers' to check left and right channel
361
1. Do you hear a sound in the speakers? The internal speakers should *not* be muted automatically
362
2. Do you hear the sound coming out on the corresponding channel?
364
plugin: user-interact-verify
365
category_id: 2013.com.canonical.plainbox::audio
366
id: audio/external-linein
367
estimated_duration: 120.0
369
device.category == 'AUDIO'
370
package.name == 'alsa-base'
371
package.name == 'pulseaudio-utils'
372
package.name == 'gstreamer1.0-plugins-good' or package.name == 'gstreamer0.10-plugins-good'
374
audio_settings store --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
375
audio_settings set --device=pci --volume=50
378
audio_settings restore --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
382
Check that external line in connection works correctly
384
1. Use a cable to connect the line in port to an external line out source.
385
2. Open system sound preferences, 'Input' tab, select 'Line-in' on the connector list. Commence the test
386
3. After a few seconds, your recording will be played back to you.
388
Did you hear your recording?
390
plugin: user-interact
391
category_id: 2013.com.canonical.plainbox::audio
392
id: audio/speaker-headphone-plug-detection
393
estimated_duration: 60.0
395
device.category == 'AUDIO'
396
package.name == 'pulseaudio-utils'
397
command: pulse-active-port-change sinks
400
Check that system detects speakers or headphones being plugged in
402
1. Prepare a pair of headphones or speakers with a standard 3.5mm jack
403
2. Locate the speaker / headphone jack on the device under test
404
3. Run the test (you have 30 seconds from now on)
405
4. Plug headphones or speakers into the appropriate jack
406
5. Unplug the device for subsequent tests.
408
Verification is automatic, no action is required.
409
The test times out after 30 seconds (and fails in that case).
411
plugin: user-interact
412
category_id: 2013.com.canonical.plainbox::audio
413
id: audio/microphone-plug-detection
414
estimated_duration: 60.0
416
device.category == 'AUDIO'
417
package.name == 'pulseaudio-utils'
418
command: pulse-active-port-change sources
421
Check that system detects a microphone being plugged in
423
1. Prepare a microphone with a standard 3.5mm jack
424
2. Locate the microphone jack on the device under test.
425
Keep in mind that it may be shared with the headphone jack.
426
3. Run the test (you have 30 seconds from now on)
427
4. Plug the microphone into the appropriate jack
428
5. Unplug the device for subsequent tests.
430
Verification is automatic, no action is required.
431
The test times out after 30 seconds (and fails in that case).
433
plugin: user-interact-verify
434
category_id: 2013.com.canonical.plainbox::audio
435
id: audio/balance_internal_speaker
436
estimated_duration: 20.0
437
depends: audio/playback_auto
439
device.category == 'AUDIO'
440
package.name == 'alsa-base'
441
package.name == 'gir1.2-gst-plugins-base-0.10' or package.name == 'gir1.2-gst-plugins-base-1.0'
442
package.name == 'pulseaudio-utils'
444
audio_settings store --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
445
audio_settings set --device=pci --volume=50
446
gst_pipeline_test -t 10 'audiotestsrc wave=sine freq=512 ! audioconvert ! audioresample ! autoaudiosink'
448
audio_settings restore --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
452
Check that balance control works correctly on internal speakers
454
1. Check that moving the balance slider from left to right works smoothly
455
2. Commence the test to play an audio tone for 10 seconds.
456
3. Move the balance slider from left to right and back.
457
4. Check that actual speaker audio balance follows your setting.
459
Does the slider move smoothly, as well as being followed by the setting by the actual audio output?
461
plugin: user-interact-verify
462
category_id: 2013.com.canonical.plainbox::audio
463
id: audio/balance_headphones
464
depends: audio/playback_headphones
465
estimated_duration: 30.0
467
device.category == 'AUDIO'
468
package.name == 'alsa-base'
469
package.name == 'gir1.2-gst-plugins-base-0.10' or package.name == 'gir1.2-gst-plugins-base-1.0'
470
package.name == 'pulseaudio-utils'
472
audio_settings store --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
473
audio_settings set --device=pci --volume=50
474
gst_pipeline_test -t 10 'audiotestsrc wave=sine freq=512 ! audioconvert ! audioresample ! autoaudiosink'
476
audio_settings restore --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
480
Check that balance control works correctly on external headphone
482
1. Check that moving the balance slider from left to right works smoothly
483
2. Commence the test to play an audio tone for 10 seconds.
484
3. Move the balance slider from left to right and back.
485
4. Check that actual headphone audio balance follows your setting.
487
Does the slider move smoothly, as well as being followed by the setting by the actual audio output?
490
category_id: 2013.com.canonical.plainbox::audio
491
id: audio/list_devices_after_suspend_30_cycles
492
estimated_duration: 1.0
493
depends: power-management/suspend_30_cycles
495
device.category == 'AUDIO'
496
package.name == 'alsa-base'
497
command: cat /proc/asound/cards
498
_description: Test to detect audio devices after suspending 30 times.
500
plugin: user-interact-verify
501
category_id: 2013.com.canonical.plainbox::audio
502
id: audio/playback_auto_after_suspend_30_cycles
503
estimated_duration: 5.0
504
depends: audio/list_devices power-management/suspend_30_cycles
506
device.category == 'AUDIO'
507
package.name == 'alsa-base'
508
package.name == 'gir1.2-gst-plugins-base-0.10' or package.name == 'gir1.2-gst-plugins-base-1.0'
509
package.name == 'pulseaudio-utils'
511
audio_settings store --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
512
audio_settings set --device=pci --volume=50
513
gst_pipeline_test -t 2 'audiotestsrc wave=sine freq=512 ! audioconvert ! audioresample ! autoaudiosink'
515
audio_settings restore --file=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
519
This test will check that internal speakers work correctly after suspending 30 times.
521
1. Make sure that no external speakers or headphones are connected
522
When testing a desktop, you can skip this test if there is no
523
internal speaker, we will test the external output later
524
2. Commence the test to play a brief tone on your audio device
529
category_id: 2013.com.canonical.plainbox::audio
530
id: audio/alsa_record_playback_automated_after_suspend_30_cycles
531
estimated_duration: 10.0
532
depends: power-management/suspend_30_cycles
534
package.name == 'python3-gi'
535
package.name == 'gir1.2-gstreamer-1.0'
536
package.name == 'libgstreamer1.0-0'
537
package.name == 'gstreamer1.0-plugins-good'
538
package.name == 'gstreamer1.0-pulseaudio'
539
package.name == 'alsa-base'
540
device.category == 'AUDIO'
543
Play back a sound on the default output and listen for it on the
544
default input, after suspending 30 times.
547
category_id: 2013.com.canonical.plainbox::audio
548
id: audio/check_volume_after_suspend_30_cycles
549
estimated_duration: 1.0
550
depends: power-management/suspend_30_cycles
552
package.name == 'pulseaudio-utils'
553
device.category == 'AUDIO'
554
command: volume_test --minvol 1 --maxvol 100
556
This test will verify that the volume levels are at an acceptable level on
557
your local system. The test will validate that the volume is greater than
558
or equal to minvol and less than or equal to maxvol for all sources (inputs)
559
and sinks (outputs) recognized by PulseAudio. It will also validate that the
560
active source and sink are not muted. You should not manually adjust the
561
volume or mute before running this test.
564
category_id: 2013.com.canonical.plainbox::audio
565
id: audio/audio_after_suspend_30_cycles
566
estimated_duration: 1.0
567
depends: power-management/suspend_30_cycles
569
device.category == 'AUDIO'
570
package.name == 'alsa-base'
571
_description: Record mixer settings after suspending 30 times.
573
audio_settings store --file=$PLAINBOX_SESSION_SHARE/audio_settings_after_suspend_30_cycles
574
diff $PLAINBOX_SESSION_SHARE/audio_settings_before_suspend $PLAINBOX_SESSION_SHARE/audio_settings_after_suspend_30_cycles