summaryrefslogtreecommitdiff
path: root/units
diff options
authorSylvain Pineau <sylvain.pineau@canonical.com>2019-08-20 15:35:58 +0200
committerSylvain Pineau <sylvain.pineau@canonical.com>2019-08-20 15:35:58 +0200
commitf70fc8e73824ddcefd3f5de171e87a5a6e1b6b50 (patch)
treebc59f2f813741aeba4ce041375ee63f238b4ae26 /units
parent19561feae49044a9de817684b1d2dadea557675e (diff)
Import plainbox-provider-checkbox_0.49.0~rc1.orig.tar.gzupstream-0.49.0_rc1patched-0.49.0_rc1-1
Diffstat (limited to 'units')
-rw-r--r--units/audio/jobs.pxu34
-rw-r--r--units/bluetooth/jobs.pxu12
-rw-r--r--units/bluetooth/test-plan.pxu3
-rw-r--r--units/camera/jobs.pxu2
-rw-r--r--units/disk/jobs.pxu2
-rw-r--r--units/ethernet/jobs.pxu19
-rw-r--r--units/ethernet/test-plan.pxu6
-rw-r--r--units/graphics/test-plan.pxu113
-rw-r--r--units/info/jobs.pxu11
-rw-r--r--units/info/test-plan.pxu1
-rw-r--r--units/keys/test-plan.pxu4
-rw-r--r--units/mediacard/jobs.pxu14
-rw-r--r--units/mediacard/test-plan.pxu12
-rw-r--r--units/miscellanea/jobs.pxu18
-rw-r--r--units/miscellanea/test-plan.pxu2
-rw-r--r--units/monitor/jobs.pxu86
-rw-r--r--units/monitor/test-plan.pxu168
-rw-r--r--units/networking/jobs.pxu3
-rw-r--r--units/networking/test-plan.pxu1
-rw-r--r--units/optical/jobs.pxu2
-rw-r--r--units/optical/test-plan.pxu23
-rw-r--r--units/suspend/suspend-graphics.pxu37
-rw-r--r--units/thunderbolt/jobs.pxu30
-rw-r--r--units/thunderbolt/test-plan.pxu51
-rw-r--r--units/touchpad/test-plan.pxu14
-rw-r--r--units/touchscreen/jobs.pxu5
-rw-r--r--units/touchscreen/test-plan.pxu43
-rw-r--r--units/usb/test-plan.pxu1
-rw-r--r--units/usb/usb-c.pxu1
-rw-r--r--units/usb/usb.pxu2
-rw-r--r--units/wireless/jobs.pxu19
-rw-r--r--units/wireless/manifest.pxu4
-rw-r--r--units/wireless/wireless-connection-netplan.pxu139
33 files changed, 697 insertions, 185 deletions
diff --git a/units/audio/jobs.pxu b/units/audio/jobs.pxu
index 120a9bd..a661833 100644
--- a/units/audio/jobs.pxu
+++ b/units/audio/jobs.pxu
@@ -185,6 +185,37 @@ _steps:
_verification:
Did you hear the sound from the DisplayPort device?
+unit: template
+template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
+plugin: user-interact-verify
+category_id: com.canonical.plainbox::audio
+id: audio/{index}_playback_type-c_hdmi_{product_slug}
+imports: from com.canonical.plainbox import manifest
+estimated_duration: 30.0
+requires:
+ manifest.has_usb_type_c == 'True'
+ display.dp == 'supported'
+ 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'
+flags: also-after-suspend-manual
+command:
+ audio_settings store --verbose --file=$PLAINBOX_SESSION_SHARE/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=$PLAINBOX_SESSION_SHARE/pulseaudio_settings
+ exit $EXIT_CODE
+_purpose:
+ HDMI audio via USB Type-C port interface verification
+_steps:
+ 1. Plug an external HDMI device with sound on a USB Type-C port using a "USB Typce-C to HDMI" adapter (Use only one HDMI/DisplayPort/Thunderbolt interface at a time for this test)
+ 2. Commence the test
+_verification:
+ Did you hear the sound from the HDMI device?
+
plugin: user-interact-verify
category_id: com.canonical.plainbox::audio
id: audio/playback_headphones
@@ -360,6 +391,8 @@ plugin: manual
category_id: com.canonical.plainbox::audio
id: audio/external-lineout
estimated_duration: 30.0
+requires:
+ dmi.product in ['Desktop','Low Profile Desktop','Tower','Mini Tower','Space-saving','All In One','All-In-One','AIO']
_description:
PURPOSE:
Check that external line out connection works correctly
@@ -376,6 +409,7 @@ category_id: com.canonical.plainbox::audio
id: audio/external-linein
estimated_duration: 120.0
requires:
+ dmi.product in ['Desktop','Low Profile Desktop','Tower','Mini Tower','Space-saving','All In One','All-In-One','AIO']
device.category == 'AUDIO'
package.name == 'alsa-base'
package.name == 'pulseaudio-utils'
diff --git a/units/bluetooth/jobs.pxu b/units/bluetooth/jobs.pxu
index f40a6e0..6160e76 100644
--- a/units/bluetooth/jobs.pxu
+++ b/units/bluetooth/jobs.pxu
@@ -82,11 +82,15 @@ _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
+ 1. Enable bluetooth on a target device (e.g. another laptop) and DUT (device under test)
+ 2. Launch bluetooth settings from menu bar
+ 3. Select target device from Device options for connection establishing
+ 4. Confirm PIN code on both DUT and target device
+ 5. Target device is connected
+ 7. Click target device in device list
+ 8. Click 'Send Files...' and choose a file to send in DUT
VERIFICATION:
- Were all files copied correctly?
+ Were file sent to target device ~/Downloads folder correctly?
plugin: user-interact-verify
category_id: com.canonical.plainbox::bluetooth
diff --git a/units/bluetooth/test-plan.pxu b/units/bluetooth/test-plan.pxu
index 1aca5be..2b1819b 100644
--- a/units/bluetooth/test-plan.pxu
+++ b/units/bluetooth/test-plan.pxu
@@ -15,10 +15,9 @@ _description:
Bluetooth tests (Manual)
include:
bluetooth/audio-a2dp certification-status=blocker
- bluetooth/HID
bluetooth4/HOGP-mouse certification-status=blocker
bluetooth4/HOGP-keyboard certification-status=blocker
-
+ bluetooth/file-transfer certification-status=non-blocker
id: bluetooth-cert-automated
unit: test plan
diff --git a/units/camera/jobs.pxu b/units/camera/jobs.pxu
index b1e4b9c..0605d18 100644
--- a/units/camera/jobs.pxu
+++ b/units/camera/jobs.pxu
@@ -15,6 +15,7 @@ template-unit: job
plugin: user-interact-verify
category_id: com.canonical.plainbox::camera
id: camera/display_{name}
+flags: also-after-suspend-manual
_summary: Webcam video display test for {product_slug}
estimated_duration: 120.0
depends: camera/detect
@@ -57,6 +58,7 @@ plugin: user-interact-verify
template-engine: jinja2
category_id: com.canonical.plainbox::camera
id: camera/still_{{ name }}
+flags: also-after-suspend-manual
_summary: Webcam still image capture test for {{ product_slug }}
estimated_duration: 120.0
depends: camera/detect
diff --git a/units/disk/jobs.pxu b/units/disk/jobs.pxu
index 3de5532..b2e4301 100644
--- a/units/disk/jobs.pxu
+++ b/units/disk/jobs.pxu
@@ -75,7 +75,7 @@ user: root
requires:
_summary: Disk I/O stress test for {product_slug}
_description: Take the path of the storage device and test is it a block device
-command: storage_test {name}
+command: storage_test.py {name}
unit: template
template-resource: device
diff --git a/units/ethernet/jobs.pxu b/units/ethernet/jobs.pxu
index b5f068a..103a7b3 100644
--- a/units/ethernet/jobs.pxu
+++ b/units/ethernet/jobs.pxu
@@ -2,7 +2,7 @@ plugin: shell
category_id: com.canonical.plainbox::ethernet
id: ethernet/detect
flags: also-after-suspend
-command: network_device_info.py detect
+command: network_device_info.py detect NETWORK
estimated_duration: 2.0
_summary:
Detect if at least one ethernet device is detected
@@ -18,14 +18,27 @@ id: ethernet/info_automated
requires:
executable.name == 'ip'
device.category == 'NETWORK'
-command: udev_resource -f NETWORK | awk "/interface: / { print \$2 }" | xargs -n 1 network_info
-estimated_duration: 30.0
+command: network_device_info.py detect NETWORK
+estimated_duration: 2.0
_summary:
Gather info on current state of network devices
_description:
Gathers some info on the current state of your network devices. If no devices
are found, the test will exit with an error.
+plugin: shell
+category_id: com.canonical.plainbox::ethernet
+id: ethernet/info_automated_server
+requires:
+ device.category == 'NETWORK'
+user: root
+command: network_device_info.py info NETWORK --no-nm
+estimated_duration: 2.0
+_summary:
+ Provide information about detected ethernet devices
+_description:
+ This job provides detailed information about detected ethernet devices.
+
plugin: user-interact-verify
category_id: com.canonical.plainbox::ethernet
id: ethernet/wired_connection
diff --git a/units/ethernet/test-plan.pxu b/units/ethernet/test-plan.pxu
index ec2310f..986c886 100644
--- a/units/ethernet/test-plan.pxu
+++ b/units/ethernet/test-plan.pxu
@@ -62,8 +62,7 @@ _name: Server Ethernet Tests
_description: Automated ethernet tests for server certification
estimated_duration: 4h
include:
- ethernet/detect
- ethernet/info_automated
+ ethernet/info_automated_server
ethernet/ethtool_info
ethernet/ethertool_check_.*
ethernet/multi_iperf3_nic_device.*
@@ -74,8 +73,7 @@ _name: Server Ethernet Tests (Speed Check Disabled)
_description: Automated ethernet tests for server certification without speed check
estimated_duration: 4h
include:
- ethernet/detect
- ethernet/info_automated
+ ethernet/info_automated_server
ethernet/ethtool_info
ethernet/ethertool_check_.*
ethernet/multi_iperf3_nic_underspeed_device.*
diff --git a/units/graphics/test-plan.pxu b/units/graphics/test-plan.pxu
index 9085cb8..4537dfd 100644
--- a/units/graphics/test-plan.pxu
+++ b/units/graphics/test-plan.pxu
@@ -51,8 +51,8 @@ include:
bootstrap_include:
graphics_card
nested_part:
- com.canonical.certification::graphics-discrete-gpu-cert-manual
com.canonical.certification::graphics-discrete-gpu-cert-automated
+ com.canonical.certification::graphics-discrete-gpu-cert-manual
id: graphics-discrete-gpu-cert-manual
unit: test plan
@@ -60,7 +60,6 @@ _name: Graphics tests (discrete GPU) (Manual)
_description:
Graphics tests (discrete GPU) (Manual)
include:
- graphics/2_auto_switch_card_.* certification-status=blocker
graphics/2_maximum_resolution_.* certification-status=blocker
graphics/2_glxgears_.* certification-status=blocker
graphics/2_rotation_.* certification-status=blocker
@@ -75,37 +74,58 @@ _name: Graphics tests (discrete GPU) (Automated)
_description:
Graphics tests (discrete GPU) (Automated)
include:
- graphics/2_valid_opengl_renderer_.* certification-status=blocker
- graphics/2_driver_version_.* certification-status=blocker
- graphics/2_compiz_check_.* certification-status=blocker
+ graphics/2_auto_switch_card_.* certification-status=blocker
+ graphics/2_valid_opengl_renderer_.* certification-status=blocker
+ graphics/2_driver_version_.* certification-status=blocker
+ graphics/2_compiz_check_.* certification-status=blocker
graphics/2_minimum_resolution_.*
+ suspend/2_resolution_before_suspend_.*_auto certification-status=blocker
bootstrap_include:
graphics_card
-
id: after-suspend-graphics-integrated-gpu-cert-full
unit: test plan
_name: After suspend tests (integrated GPU)
_description: After suspend tests (integrated GPU)
include:
- graphics/1_auto_switch_card_.* certification-status=blocker
- suspend/1_resolution_before_suspend_.*_auto certification-status=blocker
+nested_part:
+ com.canonical.certification::after-suspend-graphics-integrated-gpu-cert-automated
+ com.canonical.certification::after-suspend-graphics-integrated-gpu-cert-manual
+
+id: after-suspend-graphics-integrated-gpu-cert-automated
+unit: test plan
+_name: After suspend tests (integrated GPU automated)
+_description: After suspend tests (integrated GPU automated)
+include:
+ graphics/1_auto_switch_card_.* certification-status=blocker
+ suspend/1_resolution_before_suspend_.*_auto certification-status=blocker
+ suspend/1_suspend_after_switch_to_card_.*_auto certification-status=blocker
# The following after suspend jobs will automatically select the right suspend job
# depending on the amount of graphic cards available on the SUT:
# suspend/suspend_advanced (one GPU)
# or suspend/{{ index }}_suspend_after_switch_to_card_{{ product_slug }}_auto (two GPUs)
- suspend/1_suspend-time-check_.*_auto certification-status=non-blocker
- suspend/1_suspend-single-log-attach_.*_auto
- power-management/lid certification-status=blocker
- power-management/lid_close certification-status=blocker
- power-management/lid_open certification-status=blocker
- suspend/1_compiz_check_after_suspend_.*_auto certification-status=blocker
- suspend/1_driver_version_after_suspend_.*_auto certification-status=blocker
- suspend/1_resolution_after_suspend_.*_auto certification-status=blocker
- suspend/1_display_after_suspend_.*_auto certification-status=blocker
- suspend/1_glxgears_after_suspend_.*_auto certification-status=blocker
- suspend/1_video_after_suspend_.*_auto certification-status=blocker
- suspend/1_cycle_resolutions_after_suspend_.*_auto certification-status=non-blocker
+ suspend/1_suspend-time-check_.*_auto certification-status=non-blocker
+ suspend/1_suspend-single-log-attach_.*_auto certification-status=non-blocker
+ suspend/1_compiz_check_after_suspend_.*_auto certification-status=blocker
+ suspend/1_driver_version_after_suspend_.*_auto certification-status=blocker
+ suspend/1_resolution_after_suspend_.*_auto certification-status=blocker
+
+id: after-suspend-graphics-integrated-gpu-cert-manual
+unit: test plan
+_name: After suspend tests (integrated GPU manual)
+_description: After suspend tests (integrated GPU manual)
+include:
+ # The following after suspend jobs will automatically select the right suspend job
+ # depending on the amount of graphic cards available on the SUT:
+ # suspend/suspend_advanced (one GPU)
+ # or suspend/{{ index }}_suspend_after_switch_to_card_{{ product_slug }}_auto (two GPUs)
+ power-management/lid certification-status=blocker
+ power-management/lid_close certification-status=blocker
+ power-management/lid_open certification-status=blocker
+ suspend/1_display_after_suspend_.*_graphics certification-status=blocker
+ suspend/1_glxgears_after_suspend_.*_graphics certification-status=blocker
+ suspend/1_video_after_suspend_.*_graphics certification-status=blocker
+ suspend/1_cycle_resolutions_after_suspend_.*_graphics certification-status=non-blocker
suspend/1_xrandr_screens_after_suspend.tar.gz_auto
id: after-suspend-graphics-discrete-gpu-cert-full
@@ -113,19 +133,32 @@ unit: test plan
_name: After suspend tests (discrete GPU)
_description: After suspend tests (discrete GPU)
include:
- suspend/2_resolution_before_suspend_.*_auto certification-status=blocker
- suspend/2_suspend_after_switch_to_card_.*_auto certification-status=blocker
- suspend/2_suspend-time-check_.*_auto certification-status=non-blocker
- suspend/2_suspend-single-log-attach_.*_auto
- suspend/2_compiz_check_after_suspend_.*_auto certification-status=blocker
- suspend/2_driver_version_after_suspend_.*_auto certification-status=blocker
- suspend/2_resolution_after_suspend_.*_auto certification-status=blocker
- suspend/2_display_after_suspend_.*_auto certification-status=blocker
- suspend/2_glxgears_after_suspend_.*_auto certification-status=blocker
- suspend/2_video_after_suspend_.*_auto certification-status=blocker
- suspend/2_cycle_resolutions_after_suspend_.*_auto certification-status=non-blocker
+nested_part:
+ com.canonical.certification::after-suspend-graphics-discrete-gpu-cert-automated
+ com.canonical.certification::after-suspend-graphics-discrete-gpu-cert-manual
+
+id: after-suspend-graphics-discrete-gpu-cert-automated
+unit: test plan
+_name: After suspend tests (discrete GPU automated)
+_description: After suspend tests (discrete GPU automated)
+include:
+ suspend/2_suspend_after_switch_to_card_.*_auto certification-status=blocker
+ suspend/2_suspend-time-check_.*_auto certification-status=non-blocker
+ suspend/2_suspend-single-log-attach_.*_auto certification-status=non-blocker
+ suspend/2_compiz_check_after_suspend_.*_auto certification-status=blocker
+ suspend/2_driver_version_after_suspend_.*_auto certification-status=blocker
+ suspend/2_resolution_after_suspend_.*_auto certification-status=blocker
+
+id: after-suspend-graphics-discrete-gpu-cert-manual
+unit: test plan
+_name: After suspend tests (discrete GPU manual)
+_description: After suspend tests (discrete GPU manual)
+include:
+ suspend/2_display_after_suspend_.*_graphics certification-status=blocker
+ suspend/2_glxgears_after_suspend_.*_graphics certification-status=blocker
+ suspend/2_video_after_suspend_.*_graphics certification-status=blocker
+ suspend/2_cycle_resolutions_after_suspend_.*_graphics certification-status=non-blocker
suspend/2_xrandr_screens_after_suspend_.*.tar.gz_auto
- after-suspend-manual-monitor/2_dim_brightness_.* certification-status=blocker
id: graphics-integrated-gpu-cert-blockers
unit: test plan
@@ -175,10 +208,9 @@ include:
suspend/1_compiz_check_after_suspend_.*_auto certification-status=blocker
suspend/1_driver_version_after_suspend_.*_auto certification-status=blocker
suspend/1_resolution_after_suspend_.*_auto certification-status=blocker
- suspend/1_display_after_suspend_.*_auto certification-status=blocker
- suspend/1_glxgears_after_suspend_.*_auto certification-status=blocker
- suspend/1_video_after_suspend_.*_auto certification-status=blocker
- after-suspend-manual-monitor/1_dim_brightness_.* certification-status=blocker
+ suspend/1_display_after_suspend_.*_graphics certification-status=blocker
+ suspend/1_glxgears_after_suspend_.*_graphics certification-status=blocker
+ suspend/1_video_after_suspend_.*_graphics certification-status=blocker
id: after-suspend-graphics-discrete-gpu-cert-blockers
unit: test plan
@@ -186,11 +218,10 @@ _name: After suspend tests (discrete GPU, certification blockers only)
_description: After suspend tests (discrete GPU, certification blockers only)
include:
suspend/2_resolution_before_suspend_.*_auto certification-status=blocker
- suspend/2_suspend_after_switch_to_card_.*_auto certification-status=blocker
+ suspend/2_suspend_after_switch_to_card_.*_graphics certification-status=blocker
suspend/2_compiz_check_after_suspend_.*_auto certification-status=blocker
suspend/2_driver_version_after_suspend_.*_auto certification-status=blocker
suspend/2_resolution_after_suspend_.*_auto certification-status=blocker
- suspend/2_display_after_suspend_.*_auto certification-status=blocker
- suspend/2_glxgears_after_suspend_.*_auto certification-status=blocker
- suspend/2_video_after_suspend_.*_auto certification-status=blocker
- after-suspend-manual-monitor/2_dim_brightness_.* certification-status=blocker
+ suspend/2_display_after_suspend_.*_graphics certification-status=blocker
+ suspend/2_glxgears_after_suspend_.*_graphics certification-status=blocker
+ suspend/2_video_after_suspend_.*_graphics certification-status=blocker
diff --git a/units/info/jobs.pxu b/units/info/jobs.pxu
index 93ccd92..9ed5d33 100644
--- a/units/info/jobs.pxu
+++ b/units/info/jobs.pxu
@@ -103,7 +103,7 @@ category_id: com.canonical.plainbox::info
user: root
command:
if [[ -v SNAP ]]; then
- lsusb.py -f $SNAP/var/lib/usbutils/usb.ids
+ checkbox-support-lsusb -f $SNAP/checkbox-runtime/var/lib/usbutils/usb.ids
else
lsusb -vv | iconv -t 'utf-8' -c
fi
@@ -310,7 +310,7 @@ _description: Lists the device driver and version for all audio devices.
plugin: attachment
category_id: com.canonical.plainbox::info
id: info/network_devices
-command: network_device_info.py info
+command: network_device_info.py info NETWORK
estimated_duration: 0.550
_description: Provides information about network devices
@@ -452,3 +452,10 @@ command:
lstopo $PLAINBOX_SESSION_SHARE/lstopo_visual.png; \
[ -e "$PLAINBOX_SESSION_SHARE/lstopo_visual.png" ] && \
cat "$PLAINBOX_SESSION_SHARE/lstopo_visual.png"
+
+id: info/network-config
+plugin: attachment
+category_id: com.canonical.plainbox::info
+estimated_duration: 0.2
+_summary: attach network configuration
+command: network_configs
diff --git a/units/info/test-plan.pxu b/units/info/test-plan.pxu
index d293954..6e59a73 100644
--- a/units/info/test-plan.pxu
+++ b/units/info/test-plan.pxu
@@ -70,6 +70,7 @@ include:
efi_attachment
info/disk_partitions
info/hdparm_.*.txt
+ info/network-config
installer_debug.gz
kernel_cmdline_attachment
lsblk_attachment
diff --git a/units/keys/test-plan.pxu b/units/keys/test-plan.pxu
index c75a32a..38386ef 100644
--- a/units/keys/test-plan.pxu
+++ b/units/keys/test-plan.pxu
@@ -16,7 +16,6 @@ _description:
include:
keys/lock-screen certification-status=blocker
keys/super certification-status=blocker
- keys/battery-info certification-status=blocker
keys/brightness certification-status=blocker
keys/media-control certification-status=blocker
keys/mute certification-status=blocker
@@ -42,7 +41,6 @@ _description:
include:
after-suspend-manual-keys/lock-screen certification-status=blocker
after-suspend-manual-keys/super certification-status=blocker
- after-suspend-manual-keys/battery-info certification-status=blocker
after-suspend-manual-keys/brightness certification-status=blocker
after-suspend-manual-keys/media-control certification-status=blocker
after-suspend-manual-keys/mute certification-status=blocker
@@ -61,7 +59,6 @@ _description:
include:
keys/lock-screen certification-status=blocker
keys/super certification-status=blocker
- keys/battery-info certification-status=blocker
keys/brightness certification-status=blocker
keys/media-control certification-status=blocker
keys/mute certification-status=blocker
@@ -79,7 +76,6 @@ _description:
include:
after-suspend-manual-keys/lock-screen certification-status=blocker
after-suspend-manual-keys/super certification-status=blocker
- after-suspend-manual-keys/battery-info certification-status=blocker
after-suspend-manual-keys/brightness certification-status=blocker
after-suspend-manual-keys/media-control certification-status=blocker
after-suspend-manual-keys/mute certification-status=blocker
diff --git a/units/mediacard/jobs.pxu b/units/mediacard/jobs.pxu
index 01c0ad0..8ce16d6 100644
--- a/units/mediacard/jobs.pxu
+++ b/units/mediacard/jobs.pxu
@@ -156,6 +156,20 @@ _description:
system under test has a memory card device plugged in prior to checkbox execution.
It is intended for SRU automated testing.
+plugin: shell
+category_id: com.canonical.plainbox::mediacard
+id: mediacard/sd-preinserted-server
+estimated_duration: 30.0
+user: root
+flags: preserve-cwd
+command: removable_storage_test -s 268400000 --memorycard -l sdio usb scsi && removable_storage_test --memorycard sdio usb scsi
+requires:
+ package.name == 'udisks2' or snap.name == 'udisks2'
+_summary: Automated test of SD Card reading & writing (udisk2) for servers
+_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.
+
plugin: user-interact
template-engine: jinja2
category_id: com.canonical.plainbox::mediacard
diff --git a/units/mediacard/test-plan.pxu b/units/mediacard/test-plan.pxu
index 58d3f07..2ef8a01 100644
--- a/units/mediacard/test-plan.pxu
+++ b/units/mediacard/test-plan.pxu
@@ -14,9 +14,6 @@ _name: Mediacard tests (Manual)
_description:
Mediacard tests (Manual)
include:
- mediacard/sd-insert certification-status=blocker
- mediacard/sd-storage certification-status=blocker
- mediacard/sd-remove certification-status=blocker
mediacard/sdhc-insert certification-status=blocker
mediacard/sdhc-storage certification-status=blocker
mediacard/sdhc-remove certification-status=blocker
@@ -34,9 +31,6 @@ unit: test plan
_name: Mediacard tests (after suspend)
_description: Mediacard tests (after suspend)
include:
- suspend/sd-insert-after-suspend certification-status=blocker
- suspend/sd-storage-after-suspend certification-status=blocker
- suspend/sd-remove-after-suspend certification-status=blocker
suspend/sdhc-insert-after-suspend certification-status=blocker
suspend/sdhc-storage-after-suspend certification-status=blocker
suspend/sdhc-remove-after-suspend certification-status=blocker
@@ -46,9 +40,6 @@ unit: test plan
_name: Mediacard tests (certification blockers only)
_description: Mediacard tests (certification blockers only)
include:
- mediacard/sd-insert certification-status=blocker
- mediacard/sd-storage certification-status=blocker
- mediacard/sd-remove certification-status=blocker
mediacard/sdhc-insert certification-status=blocker
mediacard/sdhc-storage certification-status=blocker
mediacard/sdhc-remove certification-status=blocker
@@ -58,9 +49,6 @@ unit: test plan
_name: Mediacard tests (after suspend, certification blockers only)
_description: Mediacard tests (after suspend, certification blockers only)
include:
- suspend/sd-insert-after-suspend certification-status=blocker
- suspend/sd-storage-after-suspend certification-status=blocker
- suspend/sd-remove-after-suspend certification-status=blocker
suspend/sdhc-insert-after-suspend certification-status=blocker
suspend/sdhc-storage-after-suspend certification-status=blocker
suspend/sdhc-remove-after-suspend certification-status=blocker
diff --git a/units/miscellanea/jobs.pxu b/units/miscellanea/jobs.pxu
index cccec4c..ca726a6 100644
--- a/units/miscellanea/jobs.pxu
+++ b/units/miscellanea/jobs.pxu
@@ -434,3 +434,21 @@ user: root
command:
SOSFILE=`ls -t $PLAINBOX_SESSION_SHARE/sosreport*xz | head -1`; [ -e ${SOSFILE} ] && cat $SOSFILE
_summary: Attach the baseline sosreport file
+
+plugin: shell
+category_id: com.canonical.plainbox::miscellanea
+estimated_duration: 0.2
+id: miscellanea/cpuid
+user: root
+requires: cpuinfo.platform in ("i386", "x86_64")
+command: cpuid.py
+_summary: Attempt to identify CPU family (x86/amd64 only)
+_description: Attempts to identify the CPU family of an x86/amd64 processor
+
+plugin: shell
+category_id: com.canonical.plainbox::miscellanea
+estimated_duration: 240
+id: miscellanea/fan_stress_reaction
+command: fan_reaction_test.py
+_summary: Check if system fans react to CPU load
+_description: Check if system fans react to CPU load
diff --git a/units/miscellanea/test-plan.pxu b/units/miscellanea/test-plan.pxu
index 9c17b3a..b63d34f 100644
--- a/units/miscellanea/test-plan.pxu
+++ b/units/miscellanea/test-plan.pxu
@@ -34,6 +34,7 @@ include:
miscellanea/oops certification-status=blocker
miscellanea/oops_results.log
miscellanea/dmitest_client
+ miscellanea/fan_stress_reaction
bootstrap_include:
fwts
@@ -61,6 +62,7 @@ _description:
Miscellaneous server tests (log checks, dmi data, etc)
mandatory_include:
miscellanea/submission-resources
+ miscellanea/cpuid
miscellanea/get_make_and_model
miscellanea/get_maas_version certification-status=blocker
miscellanea/efi_boot_mode certification-status=blocker
diff --git a/units/monitor/jobs.pxu b/units/monitor/jobs.pxu
index 255d74c..54a86c9 100644
--- a/units/monitor/jobs.pxu
+++ b/units/monitor/jobs.pxu
@@ -7,12 +7,15 @@ flags: also-after-suspend-manual
plugin: manual
category_id: com.canonical.plainbox::monitor
_purpose:
- This test will check your VGA port.
+ This test will check your VGA port as a monitor interconnect for {vendor} {product}.
_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
+ 2. Switch display modes between in your Display Settings, check if it can be
+ set to mirrored, extended, displayed on external or onboard only
_verification:
- Was the desktop displayed correctly on both screens?
+ Was the desktop displayed correctly with {vendor} {product} on the VGA-connected
+ screen in every mode?
unit: template
template-resource: graphics_card
@@ -23,12 +26,15 @@ flags: also-after-suspend-manual
plugin: manual
category_id: com.canonical.plainbox::monitor
_purpose:
- This test will check your DVI port.
+ This test will check your DVI port as a monitor interconnect for {vendor} {product}.
_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
+ 2. Switch display modes between in your Display Settings, check if it can be
+ set to mirrored, extended, displayed on external or onboard only
_verification:
- Was the desktop displayed correctly on both screens?
+ Was the desktop displayed correctly with {vendor} {product} on the DVI-connected
+ screen in every mode?
unit: template
template-resource: graphics_card
@@ -39,12 +45,15 @@ flags: also-after-suspend-manual
plugin: manual
category_id: com.canonical.plainbox::monitor
_purpose:
- This test will check your DisplayPort port.
+ This test will check your DisplayPort port as a monitor interconnect for {vendor} {product}.
_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
+ 2. Switch display modes between in your Display Settings, check if it can be
+ set to mirrored, extended, displayed on external or onboard only
_verification:
- Was the desktop displayed correctly on both screens?
+ Was the desktop displayed correctly with {vendor} {product} on the DisplayPort-connected
+ screen in every mode?
unit: template
template-resource: graphics_card
@@ -55,12 +64,15 @@ flags: also-after-suspend-manual
plugin: manual
category_id: com.canonical.plainbox::monitor
_purpose:
- This test will check your HDMI port.
+ This test will check your HDMI port as a monitor interconnect for {vendor} {product}.
_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
+ 2. Switch display modes between in your Display Settings, check if it can be
+ set to mirrored, extended, displayed on external or onboard only
_verification:
- Was the desktop displayed correctly on both screens?
+ Was the desktop displayed correctly with {vendor} {product} on the HDMI-connected
+ screen in every mode?
unit: template
template-resource: graphics_card
@@ -70,12 +82,15 @@ requires: display.svideo == 'supported'
plugin: manual
category_id: com.canonical.plainbox::monitor
_purpose:
- This test will check your S-VIDEO port.
+ This test will check your S-VIDEO port as a monitor interconnect for {vendor} {product}.
_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
+ 2. Switch display modes between in your Display Settings, check if it can be
+ set to mirrored, extended, displayed on external or onboard only
_verification:
- Was the desktop displayed correctly on both screens?
+ Was the desktop displayed correctly with {vendor} {product} on the S-VIDEO-connected
+ screen in every mode?
unit: template
template-resource: graphics_card
@@ -85,12 +100,15 @@ requires: display.rca == 'supported'
plugin: manual
category_id: com.canonical.plainbox::monitor
_purpose:
- This test will check your RCA port.
+ This test will check your RCA port as a monitor interconnect for {vendor} {product}.
_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
+ 2. Switch display modes between in your Display Settings, check if it can be
+ set to mirrored, extended, displayed on external or onboard only
_verification:
- Was the desktop displayed correctly on both screens?
+ Was the desktop displayed correctly with {vendor} {product} on the RCA-connected
+ screen in every mode?
unit: template
template-resource: graphics_card
@@ -212,6 +230,50 @@ _verification:
Was the desktop displayed correctly with {vendor} {product} on the screen
connected using a "USB Type-C to DisplayPort" adapter in every mode?
+unit: template
+template-resource: graphics_card
+id: monitor/{index}_type-c_hdmi_{product_slug}
+template-filter: graphics_card.prime_gpu_offload == 'Off'
+imports: from com.canonical.plainbox import manifest
+requires: manifest.has_usb_type_c == 'True'
+flags: also-after-suspend-manual
+estimated_duration: 15.0
+plugin: manual
+category_id: com.canonical.plainbox::monitor
+_summary: Display connected via HDMI using an USB Type-C port for {vendor} {product}
+_purpose:
+ This test will check the connection of a screen using a "USB Type-C to HDMI" adapter for {vendor} {product}.
+_steps:
+ 1. Connect a display (if not already connected) to the USB Type-C port on
+ your system using a "USB Type-C to HDMI" adapter
+ 2. Switch display modes between in your Display Settings, check if it can be
+ set to mirrored, extended, displayed on external or onboard only
+_verification:
+ Was the desktop displayed correctly with {vendor} {product} on the screen
+ connected using a "USB Type-C to HDMI" adapter in every mode?
+
+unit: template
+template-resource: graphics_card
+id: monitor/{index}_type-c_vga_{product_slug}
+template-filter: graphics_card.prime_gpu_offload == 'Off'
+imports: from com.canonical.plainbox import manifest
+requires: manifest.has_usb_type_c == 'True'
+flags: also-after-suspend-manual
+estimated_duration: 15.0
+plugin: manual
+category_id: com.canonical.plainbox::monitor
+_summary: Display connected via VGA using an USB Type-C port for {vendor} {product}
+_purpose:
+ This test will check the connection of a screen using a "USB Type-C to VGA" adapter for {vendor} {product}.
+_steps:
+ 1. Connect a display (if not already connected) to the USB Type-C port on
+ your system using a "USB Type-C to VGA" adapter
+ 2. Switch display modes between in your Display Settings, check if it can be
+ set to mirrored, extended, displayed on external or onboard only
+_verification:
+ Was the desktop displayed correctly with {vendor} {product} on the screen
+ connected using a "USB Type-C to VGA" adapter in every mode?
+
id: monitor/type-c-to-hdmi
imports: from com.canonical.plainbox import manifest
requires: manifest.has_usb_type_c == 'True'
diff --git a/units/monitor/test-plan.pxu b/units/monitor/test-plan.pxu
index fbed317..2e635cf 100644
--- a/units/monitor/test-plan.pxu
+++ b/units/monitor/test-plan.pxu
@@ -27,19 +27,20 @@ include:
monitor/1_powersaving_.* certification-status=blocker
monitor/1_dim_brightness_.* certification-status=blocker
monitor/1_displayport_.* certification-status=blocker
- monitor/1_type-c_displayport_.* certification-status=blocker
- monitor/type-c-to-hdmi certification-status=blocker
- monitor/type-c-to-vga certification-status=blocker
audio/1_playback_displayport_.* certification-status=blocker
+ monitor/1_type-c_displayport_.* certification-status=blocker
audio/1_playback_type-c_displayport_.* certification-status=blocker
+ monitor/1_type-c_hdmi_.* certification-status=blocker
+ audio/1_playback_type-c_hdmi_.* certification-status=blocker
+ monitor/1_type-c_vga_.* certification-status=blocker
monitor/1_dvi_.* certification-status=blocker
monitor/1_hdmi_.* certification-status=blocker
audio/1_playback_hdmi_.* certification-status=blocker
monitor/1_thunderbolt_.* certification-status=blocker
- monitor/1_thunderbolt3_.* certification-status=non-blocker
audio/1_playback_thunderbolt_.* certification-status=blocker
- audio/1_playback_thunderbolt3_.* certification-status=non-blocker
thunderbolt/daisy-chain certification-status=blocker
+ monitor/1_thunderbolt3_.* certification-status=non-blocker
+ audio/1_playback_thunderbolt3_.* certification-status=non-blocker
thunderbolt3/daisy-chain certification-status=non-blocker
monitor/1_vga_.* certification-status=blocker
monitor/1_multi-head_.* certification-status=blocker
@@ -52,25 +53,26 @@ _name: Monitor tests (after manual suspend, integrated GPU) (Manual)
_description:
Monitor tests (after manual suspend, integrated GPU) (Manual)
include:
- (after-suspend-manual-)?monitor/1_powersaving_.* certification-status=blocker
- (after-suspend-manual-)?monitor/1_dim_brightness_.* certification-status=blocker
- (after-suspend-manual-)?monitor/1_displayport_.* certification-status=blocker
- (after-suspend-manual-)?monitor/1_type-c_displayport_.* certification-status=blocker
- (after-suspend-manual-)?monitor/type-c-to-hdmi certification-status=blocker
- (after-suspend-manual-)?monitor/type-c-to-vga certification-status=blocker
- (after-suspend-manual-)?audio/1_playback_displayport_.* certification-status=blocker
- (after-suspend-manual-)?audio/1_playback_type-c_displayport_.* certification-status=blocker
- (after-suspend-manual-)?monitor/1_dvi_.* certification-status=blocker
- (after-suspend-manual-)?monitor/1_hdmi_.* certification-status=blocker
- (after-suspend-manual-)?audio/1_playback_hdmi_.* certification-status=blocker
- (after-suspend-manual-)?monitor/1_thunderbolt_.* certification-status=blocker
- (after-suspend-manual-)?monitor/1_thunderbolt3_.* certification-status=non-blocker
- (after-suspend-manual-)?audio/1_playback_thunderbolt_.* certification-status=blocker
- (after-suspend-manual-)?audio/1_playback_thunderbolt3_.* certification-status=non-blocker
- (after-suspend-manual-)?thunderbolt/daisy-chain certification-status=blocker
- (after-suspend-manual-)?thunderbolt3/daisy-chain certification-status=non-blocker
- (after-suspend-manual-)?monitor/1_vga_.* certification-status=blocker
- (after-suspend-manual-)?monitor/1_multi-head_.* certification-status=blocker
+ after-suspend-manual-monitor/1_powersaving_.* certification-status=blocker
+ after-suspend-manual-monitor/1_dim_brightness_.* certification-status=blocker
+ after-suspend-manual-monitor/1_displayport_.* certification-status=blocker
+ after-suspend-manual-audio/1_playback_displayport_.* certification-status=blocker
+ after-suspend-manual-monitor/1_type-c_displayport_.* certification-status=blocker
+ after-suspend-manual-audio/1_playback_type-c_displayport_.* certification-status=blocker
+ after-suspend-manual-monitor/1_type-c_hdmi_.* certification-status=blocker
+ after-suspend-manual-audio/1_playback_type-c_hdmi_.* certification-status=blocker
+ after-suspend-manual-monitor/1_type-c_vga_.* certification-status=blocker
+ after-suspend-manual-monitor/1_dvi_.* certification-status=blocker
+ after-suspend-manual-monitor/1_hdmi_.* certification-status=blocker
+ after-suspend-manual-audio/1_playback_hdmi_.* certification-status=blocker
+ after-suspend-manual-monitor/1_thunderbolt_.* certification-status=blocker
+ after-suspend-manual-audio/1_playback_thunderbolt_.* certification-status=blocker
+ after-suspend-manual-thunderbolt/daisy-chain certification-status=blocker
+ after-suspend-manual-monitor/1_thunderbolt3_.* certification-status=non-blocker
+ after-suspend-manual-audio/1_playback_thunderbolt3_.* certification-status=non-blocker
+ after-suspend-manual-thunderbolt3/daisy-chain certification-status=non-blocker
+ after-suspend-manual-monitor/1_vga_.* certification-status=blocker
+ after-suspend-manual-monitor/1_multi-head_.* certification-status=blocker
bootstrap_include:
graphics_card
@@ -105,21 +107,63 @@ include:
monitor/2_powersaving_.* certification-status=blocker
monitor/2_dim_brightness_.* certification-status=blocker
monitor/2_displayport_.* certification-status=blocker
- monitor/2_type-c_displayport_.* certification-status=blocker
audio/2_playback_displayport_.* certification-status=blocker
+ monitor/2_type-c_displayport_.* certification-status=blocker
audio/2_playback_type-c_displayport_.* certification-status=blocker
+ monitor/2_type-c_hdmi_.* certification-status=blocker
+ audio/2_playback_type-c_hdmi_.* certification-status=blocker
+ monitor/2_type-c_vga_.* certification-status=blocker
monitor/2_dvi_.* certification-status=blocker
monitor/2_hdmi_.* certification-status=blocker
audio/2_playback_hdmi_.* certification-status=blocker
monitor/2_thunderbolt_.* certification-status=blocker
- monitor/2_thunderbolt3_.* certification-status=non-blocker
audio/2_playback_thunderbolt_.* certification-status=blocker
+ monitor/2_thunderbolt3_.* certification-status=non-blocker
audio/2_playback_thunderbolt3_.* certification-status=non-blocker
monitor/2_vga_.* certification-status=blocker
monitor/2_multi-head_.* certification-status=blocker
bootstrap_include:
graphics_card
+
+id: after-suspend-monitor-discrete-gpu-cert-full
+unit: test plan
+_name: Monitor tests (after suspend, integrated GPU)
+_description: Monitor tests (after suspend, integrated GPU)
+include:
+nested_part:
+ after-suspend-manual-monitor-discrete-gpu-cert-manual
+
+
+id: after-suspend-manual-monitor-discrete-gpu-cert-manual
+unit: test plan
+_name: Monitor tests (after manual suspend, discrete GPU) (Manual)
+_description:
+ Monitor tests (after manual suspend, discrete GPU) (Manual)
+include:
+ after-suspend-manual-monitor/2_powersaving_.* certification-status=blocker
+ after-suspend-manual-monitor/2_dim_brightness_.* certification-status=blocker
+ after-suspend-manual-monitor/2_displayport_.* certification-status=blocker
+ after-suspend-manual-audio/2_playback_displayport_.* certification-status=blocker
+ after-suspend-manual-monitor/2_type-c_displayport_.* certification-status=blocker
+ after-suspend-manual-audio/2_playback_type-c_displayport_.* certification-status=blocker
+ after-suspend-manual-monitor/2_type-c_hdmi_.* certification-status=blocker
+ after-suspend-manual-audio/2_playback_type-c_hdmi_.* certification-status=blocker
+ after-suspend-manual-monitor/2_type-c_vga_.* certification-status=blocker
+ after-suspend-manual-monitor/2_dvi_.* certification-status=blocker
+ after-suspend-manual-monitor/2_hdmi_.* certification-status=blocker
+ after-suspend-manual-audio/2_playback_hdmi_.* certification-status=blocker
+ after-suspend-manual-monitor/2_thunderbolt_.* certification-status=blocker
+ after-suspend-manual-audio/2_playback_thunderbolt_.* certification-status=blocker
+ after-suspend-manual-thunderbolt/daisy-chain certification-status=blocker
+ after-suspend-manual-monitor/2_thunderbolt3_.* certification-status=non-blocker
+ after-suspend-manual-audio/2_playback_thunderbolt3_.* certification-status=non-blocker
+ after-suspend-manual-thunderbolt3/daisy-chain certification-status=non-blocker
+ after-suspend-manual-monitor/2_vga_.* certification-status=blocker
+ after-suspend-manual-monitor/2_multi-head_.* certification-status=blocker
+bootstrap_include:
+ graphics_card
+
id: monitor-discrete-gpu-cert-automated
unit: test plan
_name: Monitor tests (discrete GPU) (Automated)
@@ -138,11 +182,12 @@ include:
monitor/1_powersaving_.* certification-status=blocker
monitor/1_dim_brightness_.* certification-status=blocker
monitor/1_displayport_.* certification-status=blocker
- monitor/1_type-c_displayport_.* certification-status=blocker
- monitor/type-c-to-hdmi certification-status=blocker
- monitor/type-c-to-vga certification-status=blocker
audio/1_playback_displayport_.* certification-status=blocker
+ monitor/1_type-c_displayport_.* certification-status=blocker
audio/1_playback_type-c_displayport_.* certification-status=blocker
+ monitor/1_type-c_hdmi_.* certification-status=blocker
+ audio/1_playback_type-c_hdmi_.* certification-status=blocker
+ monitor/1_type-c_vga_.* certification-status=blocker
monitor/1_dvi_.* certification-status=blocker
monitor/1_hdmi_.* certification-status=blocker
audio/1_playback_hdmi_.* certification-status=blocker
@@ -159,22 +204,23 @@ unit: test plan
_name: Monitor tests (after manual suspend, integrated GPU, certification blockers only)
_description: Monitor tests (after manual suspend, integrated GPU, certification blockers only)
include:
- (after-suspend-manual-)?monitor/1_powersaving_.* certification-status=blocker
- (after-suspend-manual-)?monitor/1_dim_brightness_.* certification-status=blocker
- (after-suspend-manual-)?monitor/1_displayport_.* certification-status=blocker
- (after-suspend-manual-)?monitor/1_type-c_displayport_.* certification-status=blocker
- (after-suspend-manual-)?monitor/type-c-to-hdmi certification-status=blocker
- (after-suspend-manual-)?monitor/type-c-to-vga certification-status=blocker
- (after-suspend-manual-)?audio/1_playback_displayport_.* certification-status=blocker
- (after-suspend-manual-)?audio/1_playback_type-c_displayport_.* certification-status=blocker
- (after-suspend-manual-)?monitor/1_dvi_.* certification-status=blocker
- (after-suspend-manual-)?monitor/1_hdmi_.* certification-status=blocker
- (after-suspend-manual-)?audio/1_playback_hdmi_.* certification-status=blocker
- (after-suspend-manual-)?monitor/1_thunderbolt_.* certification-status=blocker
- (after-suspend-manual-)?audio/1_playback_thunderbolt_.* certification-status=blocker
- (after-suspend-manual-)?thunderbolt/daisy-chain certification-status=blocker
- (after-suspend-manual-)?monitor/1_vga_.* certification-status=blocker
- (after-suspend-manual-)?monitor/1_multi-head_.* certification-status=blocker
+ after-suspend-manual-monitor/1_powersaving_.* certification-status=blocker
+ after-suspend-manual-monitor/1_dim_brightness_.* certification-status=blocker
+ after-suspend-manual-monitor/1_displayport_.* certification-status=blocker
+ after-suspend-manual-audio/1_playback_displayport_.* certification-status=blocker
+ after-suspend-manual-monitor/1_type-c_displayport_.* certification-status=blocker
+ after-suspend-manual-audio/1_playback_type-c_displayport_.* certification-status=blocker
+ after-suspend-manual-monitor/1_type-c_hdmi_.* certification-status=blocker
+ after-suspend-manual-audio/1_playback_type-c_hdmi_.* certification-status=blocker
+ after-suspend-manual-monitor/1_type-c_vga_.* certification-status=blocker
+ after-suspend-manual-monitor/1_dvi_.* certification-status=blocker
+ after-suspend-manual-monitor/1_hdmi_.* certification-status=blocker
+ after-suspend-manual-audio/1_playback_hdmi_.* certification-status=blocker
+ after-suspend-manual-monitor/1_thunderbolt_.* certification-status=blocker
+ after-suspend-manual-audio/1_playback_thunderbolt_.* certification-status=blocker
+ after-suspend-manual-thunderbolt/daisy-chain certification-status=blocker
+ after-suspend-manual-monitor/1_vga_.* certification-status=blocker
+ after-suspend-manual-monitor/1_multi-head_.* certification-status=blocker
bootstrap_include:
graphics_card
@@ -186,9 +232,12 @@ include:
monitor/2_powersaving_.* certification-status=blocker
monitor/2_dim_brightness_.* certification-status=blocker
monitor/2_displayport_.* certification-status=blocker
- monitor/2_type-c_displayport_.* certification-status=blocker
audio/2_playback_displayport_.* certification-status=blocker
+ monitor/2_type-c_displayport_.* certification-status=blocker
audio/2_playback_type-c_displayport_.* certification-status=blocker
+ monitor/2_type-c_hdmi_.* certification-status=blocker
+ audio/2_playback_type-c_hdmi_.* certification-status=blocker
+ monitor/2_type-c_vga_.* certification-status=blocker
monitor/2_dvi_.* certification-status=blocker
monitor/2_hdmi_.* certification-status=blocker
audio/2_playback_hdmi_.* certification-status=blocker
@@ -198,3 +247,30 @@ include:
monitor/2_multi-head_.* certification-status=blocker
bootstrap_include:
graphics_card
+
+id: after-suspend-manual-monitor-discrete-gpu-cert-blockers
+unit: test plan
+_name: Monitor tests (after manual suspend, discrete GPU, certification blockers only)
+_description: Monitor tests (after manual suspend, discrete GPU, certification blockers only)
+include:
+ after-suspend-manual-monitor/2_powersaving_.* certification-status=blocker
+ after-suspend-manual-monitor/2_dim_brightness_.* certification-status=blocker
+ after-suspend-manual-monitor/2_displayport_.* certification-status=blocker
+ after-suspend-manual-audio/2_playback_displayport_.* certification-status=blocker
+ after-suspend-manual-monitor/2_type-c_displayport_.* certification-status=blocker
+ after-suspend-manual-audio/2_playback_type-c_displayport_.* certification-status=blocker
+ after-suspend-manual-monitor/2_type-c_hdmi_.* certification-status=blocker
+ after-suspend-manual-audio/2_playback_type-c_hdmi_.* certification-status=blocker
+ after-suspend-manual-monitor/2_type-c_vga_.* certification-status=blocker
+ after-suspend-manual-monitor/2_dvi_.* certification-status=blocker
+ after-suspend-manual-monitor/2_hdmi_.* certification-status=blocker
+ after-suspend-manual-audio/2_playback_hdmi_.* certification-status=blocker
+ after-suspend-manual-monitor/2_thunderbolt_.* certification-status=blocker
+ after-suspend-manual-audio/2_playback_thunderbolt_.* certification-status=blocker
+ after-suspend-manual-thunderbolt/daisy-chain certification-status=blocker
+ after-suspend-manual-monitor/2_vga_.* certification-status=blocker
+ after-suspend-manual-monitor/2_multi-head_.* certification-status=blocker
+bootstrap_include:
+ graphics_card
+
+
diff --git a/units/networking/jobs.pxu b/units/networking/jobs.pxu
index 360aaf2..c5f5c9f 100644
--- a/units/networking/jobs.pxu
+++ b/units/networking/jobs.pxu
@@ -14,7 +14,8 @@ category_id: com.canonical.plainbox::networking
id: networking/info_device{__index__}_{interface}
_summary: Network Information of device {__index__} ({interface})
estimated_duration: 1.0
-command: network_info {interface} | zenity --text-info --title="{interface}"
+command:
+ network_device_info.py info NETWORK --interface {interface} | zenity --text-info --title="{interface}"
_description:
PURPOSE:
This test will check the network device {__index__} ({interface})
diff --git a/units/networking/test-plan.pxu b/units/networking/test-plan.pxu
index 5a7da04..1abee61 100644
--- a/units/networking/test-plan.pxu
+++ b/units/networking/test-plan.pxu
@@ -35,6 +35,7 @@ include:
networking/gateway_ping certification-status=blocker
networking/info_device.* certification-status=blocker
networking/ntp certification-status=blocker
+ ethernet/hotplug-.* certification-status=blocker
bootstrap_include:
device
diff --git a/units/optical/jobs.pxu b/units/optical/jobs.pxu
index 707c02d..53a2877 100644
--- a/units/optical/jobs.pxu
+++ b/units/optical/jobs.pxu
@@ -16,6 +16,7 @@ id: optical/read_{name}
estimated_duration: 120.0
user: root
command: optical_read_test /dev/{name}
+flags: also-after-suspend-manual
_description:
PURPOSE:
This test will check your {product} device's ability to read CD media
@@ -164,6 +165,7 @@ requires:
optical_drive_{name}.bd_read == "supported"
user: root
command: optical_read_test /dev/{name}
+flags: also-after-suspend-manual
_description:
PURPOSE:
This test will check your {product} device's ability to read Blu-Ray (BD) media
diff --git a/units/optical/test-plan.pxu b/units/optical/test-plan.pxu
index 2e53d79..f927f00 100644
--- a/units/optical/test-plan.pxu
+++ b/units/optical/test-plan.pxu
@@ -31,6 +31,17 @@ include:
bootstrap_include:
device
+id: after-suspend-optical-cert-full
+unit: test plan
+_name: Optical drive tests (after suspend)
+_description:
+ Optical drive tests (after suspend)
+include:
+ optical/detect certification-status=blocker
+ after-suspend-manual-optical/read_.* certification-status=blocker
+ after-suspend-manual-optical/bluray-read_.* certification-status=blocker
+bootstrap_include:
+ device
id: optical-cert-blockers
unit: test plan
@@ -42,3 +53,15 @@ include:
optical/bluray-read_.* certification-status=blocker
bootstrap_include:
device
+
+id: after-suspend-optical-cert-blockers
+unit: test plan
+_name: Optical drive tests (certification blockers only)
+_description: Optical drive tests (certification blockers only)
+include:
+ optical/detect certification-status=blocker
+ after-suspend-manual-optical/read_.* certification-status=blocker
+ after-suspend-manual-optical/bluray-read_.* certification-status=blocker
+bootstrap_include:
+ device
+
diff --git a/units/suspend/suspend-graphics.pxu b/units/suspend/suspend-graphics.pxu
index be820a7..d4fe923 100644
--- a/units/suspend/suspend-graphics.pxu
+++ b/units/suspend/suspend-graphics.pxu
@@ -14,7 +14,7 @@ command:
unit: template
template-resource: graphics_card
template-filter: graphics_card.prime_gpu_offload == 'Off'
-plugin: user-interact-verify
+plugin: shell
category_id: com.canonical.plainbox::suspend
id: suspend/{index}_suspend_after_switch_to_card_{product_slug}_auto
requires:
@@ -24,27 +24,12 @@ after: graphics/{index}_auto_switch_card_{product_slug}
user: root
environ: PLAINBOX_SESSION_SHARE
command:
- if type -P fwts >/dev/null; then
- echo "Calling fwts"
- set -o pipefail; checkbox-support-fwts_test -f none -l $PLAINBOX_SESSION_SHARE/{index}_suspend_single -s s3 --s3-sleep-delay=30 --s3-device-check --s3-device-check-delay=45 | tee $PLAINBOX_SESSION_SHARE/{index}_suspend_single_times.log
- else
- echo "Calling sleep_test"
- set -o pipefail; sleep_test -p | tee $PLAINBOX_SESSION_SHARE/{index}_suspend_single_times.log
+ if [[ -v SNAP ]]; then
+ export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$SNAP/usr/lib/fwts"
fi
-estimated_duration: 90.0
-_summary: Test suspend/resume after switching to {vendor} {product}
-_description:
- PURPOSE:
- This test will check suspend and resume after switching to {vendor} {product} graphics card.
- STEPS:
- 1. Ensure you have switched to {vendor} {product} graphics card.
- 2. Click "Test" and your system will suspend for about 30 - 60 seconds
- 3. Observe the Power LED to see if it blinks or changes color during suspend
- 4. If your system does not wake itself up after 60 seconds, please press the power button momentarily to wake the system manually
- 5. 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 after switching to {vendor} {product} graphics card?
- (NOTE: Please only consider whether the system successfully suspended and resumed. Power/Suspend LED verification will occur after this test is completed.)
+ set -o pipefail; checkbox-support-fwts_test -f none -l $PLAINBOX_SESSION_SHARE/{index}_suspend_single -s s3 --s3-sleep-delay=30 --s3-device-check --s3-device-check-delay=45 | tee $PLAINBOX_SESSION_SHARE/{index}_suspend_single_times.log
+estimated_duration: 1m30s
+_summary: Test auto suspend/resume after switching to {vendor} {product}
unit: template
template-resource: graphics_card
@@ -72,7 +57,7 @@ template-filter: graphics_card.prime_gpu_offload == 'Off'
template-engine: jinja2
plugin: manual
category_id: com.canonical.plainbox::suspend
-id: suspend/{{ index }}_display_after_suspend_{{ product_slug }}_auto
+id: suspend/{{ index }}_display_after_suspend_{{ product_slug }}_graphics
depends:
{%- if gpu_count > "1" %}
suspend/{{ index }}_suspend_after_switch_to_card_{{ product_slug }}_auto
@@ -94,7 +79,7 @@ template-filter: graphics_card.prime_gpu_offload == 'Off'
template-engine: jinja2
plugin: user-interact-verify
category_id: com.canonical.plainbox::suspend
-id: suspend/{{ index }}_cycle_resolutions_after_suspend_{{ product_slug }}_auto
+id: suspend/{{ index }}_cycle_resolutions_after_suspend_{{ product_slug }}_graphics
requires: package.name == 'xorg'
depends:
{%- if gpu_count > "1" %}
@@ -120,7 +105,7 @@ template-filter: graphics_card.prime_gpu_offload == 'Off'
plugin: attachment
category_id: com.canonical.plainbox::suspend
id: suspend/{index}_xrandr_screens_after_suspend.tar.gz_auto
-depends: suspend/{index}_cycle_resolutions_after_suspend_{product_slug}_auto
+depends: suspend/{index}_cycle_resolutions_after_suspend_{product_slug}_graphics
command: [ -f $PLAINBOX_SESSION_SHARE/{index}_xrandr_screens_after_suspend.tgz ] && cat $PLAINBOX_SESSION_SHARE/{index}_xrandr_screens_after_suspend.tgz
_description: This attaches screenshots from the suspend/cycle_resolutions_after_suspend test to the results submission.
@@ -150,7 +135,7 @@ template-resource: graphics_card
template-engine: jinja2
plugin: user-interact-verify
category_id: com.canonical.plainbox::suspend
-id: suspend/{{ index }}_glxgears_after_suspend_{{ product_slug }}_auto
+id: suspend/{{ index }}_glxgears_after_suspend_{{ product_slug }}_graphics
depends:
{%- if gpu_count > "1" %}
suspend/{{ index }}_suspend_after_switch_to_card_{{ product_slug }}_auto
@@ -176,7 +161,7 @@ _description:
unit: template
template-resource: graphics_card
template-engine: jinja2
-id: suspend/{{ index }}_video_after_suspend_{{ product_slug }}_auto
+id: suspend/{{ index }}_video_after_suspend_{{ product_slug }}_graphics
depends:
{%- if gpu_count > "1" %}
suspend/{{ index }}_suspend_after_switch_to_card_{{ product_slug }}_auto
diff --git a/units/thunderbolt/jobs.pxu b/units/thunderbolt/jobs.pxu
index 14fa3f8..74481fe 100644
--- a/units/thunderbolt/jobs.pxu
+++ b/units/thunderbolt/jobs.pxu
@@ -5,6 +5,11 @@ imports: from com.canonical.plainbox import manifest
requires: manifest.has_thunderbolt == 'True'
estimated_duration: 20.0
command: removable_storage_watcher insert --timeout 40 scsi
+_siblings: [
+ { "id": "after-suspend-manual-thunderbolt/insert",
+ "_summary": "thunderbolt/insert after suspend",
+ "depends": "suspend/suspend_advanced"}
+ ]
_summary: Storage insert detection on Thunderbolt
_description:
PURPOSE:
@@ -27,6 +32,11 @@ requires: manifest.has_thunderbolt == 'True'
depends: thunderbolt/insert
estimated_duration: 45.0
command: removable_storage_test -s 268400000 scsi
+_siblings: [
+ { "id": "after-suspend-manual-thunderbolt/storage-test",
+ "_summary": "thunderbolt/storage-test after suspend",
+ "depends": "after-suspend-manual-thunderbolt/insert"}
+ ]
_summary: Storage test on Thunderbolt
_description:
This is an automated test which performs read/write operations on an attached
@@ -41,6 +51,11 @@ depends: thunderbolt/insert
estimated_duration: 10.0
command: removable_storage_watcher remove scsi
_summary: Storage removal detection on Thunderbolt
+_siblings: [
+ { "id": "after-suspend-manual-thunderbolt/remove",
+ "_summary": "thunderbolt/remove after suspend",
+ "depends": "after-suspend-manual-thunderbolt/insert"}
+ ]
_description:
PURPOSE:
This test will check the system can detect the removal of a Thunderbolt HDD
@@ -82,6 +97,11 @@ imports: from com.canonical.plainbox import manifest
requires: manifest.has_thunderbolt3 == 'True'
estimated_duration: 20.0
command: removable_storage_watcher insert --timeout 40 scsi
+_siblings: [
+ { "id": "after-suspend-manual-thunderbolt3/insert",
+ "_summary": "thunderbolt3/insert after suspend",
+ "depends": "suspend/suspend_advanced"}
+ ]
_summary: Storage insert detection on Thunderbolt 3 port
_description:
PURPOSE:
@@ -104,6 +124,11 @@ requires: manifest.has_thunderbolt3 == 'True'
depends: thunderbolt3/insert
estimated_duration: 45.0
command: removable_storage_test -s 268400000 scsi
+_siblings: [
+ { "id": "after-suspend-manual-thunderbolt3/storage-test",
+ "_summary": "thunderbolt3/storage-test after suspend",
+ "depends": "after-suspend-manual-thunderbolt3/insert"}
+ ]
_summary: Storage test on Thunderbolt 3
_description:
This is an automated test which performs read/write operations on an attached
@@ -117,6 +142,11 @@ requires: manifest.has_thunderbolt3 == 'True'
depends: thunderbolt3/insert
estimated_duration: 10.0
command: removable_storage_watcher remove scsi
+_siblings: [
+ { "id": "after-suspend-manual-thunderbolt3/remove",
+ "_summary": "thunderbolt3/remove after suspend",
+ "depends": "after-suspend-manual-thunderbolt3/insert"}
+ ]
_summary: Storage removal detection on Thunderbolt 3 port
_description:
PURPOSE:
diff --git a/units/thunderbolt/test-plan.pxu b/units/thunderbolt/test-plan.pxu
index a0efcda..75aa0ac 100644
--- a/units/thunderbolt/test-plan.pxu
+++ b/units/thunderbolt/test-plan.pxu
@@ -8,18 +8,27 @@ nested_part:
com.canonical.certification::thunderbolt-cert-manual
com.canonical.certification::thunderbolt-cert-automated
+id: after-suspend-thunderbolt-cert-full
+unit: test plan
+_name: Thunderbolt tests
+_description:
+ Thunderbolt tests
+include:
+nested_part:
+ com.canonical.certification::after-suspend-thunderbolt-cert-manual
+
id: thunderbolt-cert-manual
unit: test plan
_name: Thunderbolt tests (Manual)
_description:
Thunderbolt tests (Manual)
include:
- thunderbolt/insert certification-status=non-blocker
- thunderbolt/storage-test certification-status=non-blocker
- thunderbolt/remove certification-status=non-blocker
- thunderbolt3/insert certification-status=blocker
- thunderbolt3/storage-test certification-status=blocker
- thunderbolt3/remove certification-status=blocker
+ thunderbolt/insert certification-status=blocker
+ thunderbolt/storage-test certification-status=blocker
+ thunderbolt/remove certification-status=blocker
+ thunderbolt3/insert certification-status=non-blocker
+ thunderbolt3/storage-test certification-status=non-blocker
+ thunderbolt3/remove certification-status=non-blocker
id: thunderbolt-cert-automated
unit: test plan
@@ -34,6 +43,30 @@ unit: test plan
_name: Thunderbolt tests (certification blockers only)
_description: Thunderbolt tests (certification blockers only)
include:
- thunderbolt3/insert certification-status=blocker
- thunderbolt3/storage-test certification-status=blocker
- thunderbolt3/remove certification-status=blocker
+ thunderbolt/insert certification-status=blocker
+ thunderbolt/storage-test certification-status=blocker
+ thunderbolt/remove certification-status=blocker
+
+id: after-suspend-thunderbolt-cert-manual
+unit: test plan
+_name: Thunderbolt tests (after suspend Manual)
+_description:
+ Thunderbolt tests (after suspend Manual)
+include:
+ after-suspend-manual-thunderbolt/insert certification-status=blocker
+ after-suspend-manual-thunderbolt/storage-test certification-status=blocker
+ after-suspend-manual-thunderbolt/remove certification-status=blocker
+ after-suspend-manual-thunderbolt3/insert certification-status=non-blocker
+ after-suspend-manual-thunderbolt3/storage-test certification-status=non-blocker
+ after-suspend-manual-thunderbolt3/remove certification-status=non-blocker
+
+id: after-suspend-thunderbolt-cert-blockers
+unit: test plan
+_name: Thunderbolt tests (after suspend - certification blockers only)
+_description: Thunderbolt tests (after suspend - certification blockers only)
+include:
+ after-suspend-manual-thunderbolt/insert certification-status=blocker
+ after-suspend-manual-thunderbolt/storage-test certification-status=blocker
+ after-suspend-manual-thunderbolt/remove certification-status=blocker
+
+
diff --git a/units/touchpad/test-plan.pxu b/units/touchpad/test-plan.pxu
index 20da6c5..188e7f2 100644
--- a/units/touchpad/test-plan.pxu
+++ b/units/touchpad/test-plan.pxu
@@ -17,15 +17,11 @@ include:
touchpad/basic certification-status=blocker
touchpad/palm-rejection certification-status=non-blocker
touchpad/continuous-move certification-status=blocker
- touchpad/horizontal certification-status=blocker
- touchpad/vertical certification-status=blocker
touchpad/singletouch-selection certification-status=blocker
touchpad/drag-and-drop certification-status=blocker
- touchpad/multitouch-manual certification-status=blocker
touchpad/multitouch-rightclick certification-status=blocker
touchpad/multitouch-horizontal certification-status=blocker
touchpad/multitouch-vertical certification-status=blocker
- touchpad/multitouch-dash certification-status=non-blocker
id: touchpad-cert-automated
unit: test plan
@@ -45,15 +41,11 @@ include:
touchpad/detected-as-mouse-after-suspend certification-status=blocker
touchpad/palm-rejection-after-suspend certification-status=non-blocker
touchpad/continuous-move-after-suspend certification-status=blocker
- touchpad/horizontal-after-suspend certification-status=blocker
- touchpad/vertical-after-suspend certification-status=blocker
touchpad/singletouch-selection-after-suspend certification-status=blocker
touchpad/drag-and-drop-after-suspend certification-status=blocker
- touchpad/multitouch-manual-after-suspend certification-status=blocker
touchpad/multitouch-rightclick-after-suspend certification-status=blocker
touchpad/multitouch-horizontal-after-suspend certification-status=blocker
touchpad/multitouch-vertical-after-suspend certification-status=blocker
- touchpad/multitouch-dash-after-suspend certification-status=non-blocker
id: touchpad-cert-blockers
unit: test plan
@@ -63,11 +55,8 @@ include:
touchpad/basic certification-status=blocker
touchpad/detected-as-mouse certification-status=blocker
touchpad/continuous-move certification-status=blocker
- touchpad/horizontal certification-status=blocker
- touchpad/vertical certification-status=blocker
touchpad/singletouch-selection certification-status=blocker
touchpad/drag-and-drop certification-status=blocker
- touchpad/multitouch-manual certification-status=blocker
touchpad/multitouch-rightclick certification-status=blocker
touchpad/multitouch-horizontal certification-status=blocker
touchpad/multitouch-vertical certification-status=blocker
@@ -80,11 +69,8 @@ include:
touchpad/basic-after-suspend certification-status=blocker
touchpad/detected-as-mouse-after-suspend certification-status=blocker
touchpad/continuous-move-after-suspend certification-status=blocker
- touchpad/horizontal-after-suspend certification-status=blocker
- touchpad/vertical-after-suspend certification-status=blocker
touchpad/singletouch-selection-after-suspend certification-status=blocker
touchpad/drag-and-drop-after-suspend certification-status=blocker
- touchpad/multitouch-manual-after-suspend certification-status=blocker
touchpad/multitouch-rightclick-after-suspend certification-status=blocker
touchpad/multitouch-horizontal-after-suspend certification-status=blocker
touchpad/multitouch-vertical-after-suspend certification-status=blocker
diff --git a/units/touchscreen/jobs.pxu b/units/touchscreen/jobs.pxu
index 225c168..de55c5d 100644
--- a/units/touchscreen/jobs.pxu
+++ b/units/touchscreen/jobs.pxu
@@ -59,6 +59,7 @@ _description:
2. Drag and drop the object in a different location
VERIFICATION:
Does drag and drop work?
+flags: also-after-suspend-manual
plugin: user-interact-verify
category_id: com.canonical.plainbox::touchscreen
@@ -76,6 +77,7 @@ _description:
2. Using 2 fingers, resize the blue square until it turns green, then release it.
VERIFICATION:
Did the blue square change size following the gesture?
+flags: also-after-suspend-manual
plugin: user-interact-verify
category_id: com.canonical.plainbox::touchscreen
@@ -93,6 +95,7 @@ _description:
2. Using 2 fingers, rotate the blue square until it turns green, then release it.
VERIFICATION:
Did the blue square rotate following the gesture?
+flags: also-after-suspend-manual
plugin: manual
category_id: com.canonical.plainbox::touchscreen
@@ -158,6 +161,7 @@ command:
EXIT=$?
{% endif %}
exit $EXIT
+flags: also-after-suspend-manual
plugin: user-interact-verify
template-engine: jinja2
@@ -192,3 +196,4 @@ command:
EXIT=$?
{% endif %}
exit $EXIT
+flags: also-after-suspend-manual
diff --git a/units/touchscreen/test-plan.pxu b/units/touchscreen/test-plan.pxu
index 1682136..cfe9907 100644
--- a/units/touchscreen/test-plan.pxu
+++ b/units/touchscreen/test-plan.pxu
@@ -5,8 +5,8 @@ _description:
Touchscreen tests
include:
nested_part:
- com.canonical.certification::touchscreen-cert-manual
- com.canonical.certification::touchscreen-cert-automated
+ touchscreen-cert-manual
+ touchscreen-cert-automated
id: touchscreen-cert-manual
unit: test plan
@@ -19,7 +19,6 @@ include:
touchscreen/multitouch-rotate
touchscreen/3-touch-tap certification-status=blocker
touchscreen/4-touch-tap certification-status=blocker
- touchscreen/multitouch-dash certification-status=non-blocker
id: touchscreen-cert-automated
unit: test plan
@@ -28,6 +27,34 @@ _description:
Touchscreen tests (Automated)
include:
+id: after-suspend-touchscreen-cert-full
+unit: test plan
+_name: Touchscreen tests
+_description:
+ Touchscreen tests
+include:
+nested_part:
+ after-suspend-touchscreen-cert-manual
+ after-suspend-touchscreen-cert-automated
+
+id: after-suspend-touchscreen-cert-manual
+unit: test plan
+_name: Touchscreen tests (Manual)
+_description:
+ Touchscreen tests (Manual)
+include:
+ after-suspend-manual-touchscreen/drag-n-drop certification-status=blocker
+ after-suspend-manual-touchscreen/multitouch-zoom certification-status=blocker
+ after-suspend-manual-touchscreen/multitouch-rotate
+ after-suspend-manual-touchscreen/3-touch-tap certification-status=blocker
+ after-suspend-manual-touchscreen/4-touch-tap certification-status=blocker
+
+id: after-suspend-touchscreen-cert-automated
+unit: test plan
+_name: Touchscreen tests (Automated)
+_description:
+ Touchscreen tests (Automated)
+include:
id: touchscreen-cert-blockers
unit: test plan
@@ -38,3 +65,13 @@ include:
touchscreen/multitouch-zoom certification-status=blocker
touchscreen/3-touch-tap certification-status=blocker
touchscreen/4-touch-tap certification-status=blocker
+
+id: after-suspend-touchscreen-cert-blockers
+unit: test plan
+_name: Touchscreen tests (after suspend, certification blockers only)
+_description: Touchscreen tests (after suspend, certification blockers only)
+include:
+ after-suspend-manual-touchscreen/drag-n-drop certification-status=blocker
+ after-suspend-manual-touchscreen/multitouch-zoom certification-status=blocker
+ after-suspend-manual-touchscreen/3-touch-tap certification-status=blocker
+ after-suspend-manual-touchscreen/4-touch-tap certification-status=blocker
diff --git a/units/usb/test-plan.pxu b/units/usb/test-plan.pxu
index 63c62b8..e6a9165 100644
--- a/units/usb/test-plan.pxu
+++ b/units/usb/test-plan.pxu
@@ -102,6 +102,7 @@ include:
after-suspend-manual-usb-c/insert certification-status=blocker
after-suspend-manual-usb-c/storage-automated certification-status=blocker
after-suspend-manual-usb-c/remove certification-status=blocker
+ after-suspend-manual-usb-c/c-to-ethernet-adapter-insert
id: usb-cert-blockers
unit: test plan
diff --git a/units/usb/usb-c.pxu b/units/usb/usb-c.pxu
index cf7c5f6..0d709e2 100644
--- a/units/usb/usb-c.pxu
+++ b/units/usb/usb-c.pxu
@@ -189,6 +189,7 @@ estimated_duration: 30
id: usb-c/c-to-ethernet-adapter-insert
plugin: user-interact
+flags: also-after-suspend-manual
category_id: com.canonical.plainbox::usb
imports: from com.canonical.plainbox import manifest
requires: manifest.has_usb_type_c == 'True'
diff --git a/units/usb/usb.pxu b/units/usb/usb.pxu
index 99623fb..75cf3c9 100644
--- a/units/usb/usb.pxu
+++ b/units/usb/usb.pxu
@@ -7,7 +7,7 @@ estimated_duration: 1.0
command:
set -o pipefail
if [[ -v SNAP ]]; then
- lsusb.py -f $SNAP/var/lib/usbutils/usb.ids 2>/dev/null | sed 's/.*\(ID .*\)/\1/' | head -n 4 || echo "No USB devices were detected" >&2
+ checkbox-support-lsusb -f $SNAP/checkbox-runtime/var/lib/usbutils/usb.ids 2>/dev/null | sed 's/.*\(ID .*\)/\1/' | head -n 4 || echo "No USB devices were detected" >&2
else
lsusb 2>/dev/null | sort || echo "No USB devices were detected" >&2
fi
diff --git a/units/wireless/jobs.pxu b/units/wireless/jobs.pxu
index b3d6604..a997285 100644
--- a/units/wireless/jobs.pxu
+++ b/units/wireless/jobs.pxu
@@ -1,3 +1,15 @@
+
+id: wireless/detect
+category_id: com.canonical.plainbox::wireless
+plugin: shell
+flags: also-after-suspend
+estimated_duration: 2.0
+_summary: Detect if at least one Wireless LAN device is detected
+imports: from com.canonical.plainbox import manifest
+requires: manifest.has_wlan_adapter == 'True'
+command:
+ network_device_info.py detect WIRELESS
+
unit: template
template-resource: device
template-filter: device.category == 'WIRELESS' and device.interface != 'UNKNOWN'
@@ -18,6 +30,7 @@ requires:
{%- if __on_ubuntucore__ %}
connections.slot == 'network-manager:service' and connections.plug == '{{ __system_env__["SNAP_NAME"] }}:network-manager'
{% endif -%}
+# net_if_management.device == '{{ interface }}' and net_if_management.managed_by == 'NetworkManager'
unit: template
template-resource: device
@@ -39,6 +52,7 @@ requires:
{%- if __on_ubuntucore__ %}
connections.slot == 'network-manager:service' and connections.plug == '{{ __system_env__["SNAP_NAME"] }}:network-manager'
{% endif -%}
+# net_if_management.device == '{{ interface }}' and net_if_management.managed_by == 'NetworkManager'
unit: template
template-resource: device
@@ -60,6 +74,7 @@ requires:
{%- if __on_ubuntucore__ %}
connections.slot == 'network-manager:service' and connections.plug == '{{ __system_env__["SNAP_NAME"] }}:network-manager'
{% endif -%}
+# net_if_management.device == '{{ interface }}' and net_if_management.managed_by == 'NetworkManager'
unit: template
template-resource: device
@@ -81,6 +96,7 @@ requires:
{%- if __on_ubuntucore__ %}
connections.slot == 'network-manager:service' and connections.plug == '{{ __system_env__["SNAP_NAME"] }}:network-manager'
{% endif -%}
+# net_if_management.device == '{{ interface }}' and net_if_management.managed_by == 'NetworkManager'
unit: template
template-resource: device
@@ -102,6 +118,7 @@ requires:
{%- if __on_ubuntucore__ %}
connections.slot == 'network-manager:service' and connections.plug == '{{ __system_env__["SNAP_NAME"] }}:network-manager'
{% endif -%}
+# net_if_management.device == '{{ interface }}' and net_if_management.managed_by == 'NetworkManager'
unit: template
template-resource: device
@@ -124,6 +141,7 @@ requires:
{%- if __on_ubuntucore__ %}
connections.slot == 'network-manager:service' and connections.plug == '{{ __system_env__["SNAP_NAME"] }}:network-manager'
{% endif -%}
+# net_if_management.device == '{{ interface }}' and net_if_management.managed_by == 'NetworkManager'
unit: template
template-resource: device
@@ -146,6 +164,7 @@ requires:
{%- if __on_ubuntucore__ %}
connections.slot == 'network-manager:service' and connections.plug == '{{ __system_env__["SNAP_NAME"] }}:network-manager'
{% endif -%}
+# net_if_management.device == '{{ interface }}' and net_if_management.managed_by == 'NetworkManager'
plugin: user-interact-verify
category_id: com.canonical.plainbox::wireless
diff --git a/units/wireless/manifest.pxu b/units/wireless/manifest.pxu
new file mode 100644
index 0000000..ed92bf6
--- /dev/null
+++ b/units/wireless/manifest.pxu
@@ -0,0 +1,4 @@
+unit: manifest entry
+id: has_wlan_adapter
+_name: A WLAN Adapter
+value-type: bool
diff --git a/units/wireless/wireless-connection-netplan.pxu b/units/wireless/wireless-connection-netplan.pxu
new file mode 100644
index 0000000..6811b43
--- /dev/null
+++ b/units/wireless/wireless-connection-netplan.pxu
@@ -0,0 +1,139 @@
+unit: template
+template-resource: device
+template-filter: device.category == 'WIRELESS'
+template-engine: jinja2
+template-unit: job
+id: wireless/wireless_connection_open_ac_np_{{ interface }}
+_summary:
+ Connect to unencrypted 802.11ac Wi-Fi network on {{ interface }} - netplan
+_purpose:
+ Check system can connect to insecure 802.11ac AP using netplan
+plugin: shell
+command:
+ net_driver_info $NET_DRIVER_INFO
+ wifi_client_test_netplan.py -i {{ interface }} -s $OPEN_AC_SSID -d
+user: root
+environ: LD_LIBRARY_PATH OPEN_AC_SSID NET_DRIVER_INFO
+category_id: com.canonical.plainbox::wireless
+estimated_duration: 15
+flags: preserve-locale also-after-suspend also-after-suspend-manual
+requires:
+ wireless_sta_protocol.{{ interface }}_ac == 'supported'
+# net_if_management.device == '{{ interface }}' and net_if_management.managed_by == 'networkd'
+
+
+
+unit: template
+template-resource: device
+template-filter: device.category == 'WIRELESS'
+template-engine: jinja2
+template-unit: job
+id: wireless/wireless_connection_open_bg_np_{{ interface }}
+_summary:
+ Connect to unencrypted 802.11b/g Wi-Fi network on {{ interface }} - netplan
+_purpose:
+ Check system can connect to insecure 802.11b/g AP using netplan
+plugin: shell
+command:
+ net_driver_info $NET_DRIVER_INFO
+ wifi_client_test_netplan.py -i {{ interface }} -s $OPEN_BG_SSID -d
+user: root
+environ: LD_LIBRARY_PATH OPEN_BG_SSID NET_DRIVER_INFO
+category_id: com.canonical.plainbox::wireless
+estimated_duration: 15
+flags: preserve-locale also-after-suspend also-after-suspend-manual
+#requires:
+# net_if_management.device == '{{ interface }}' and net_if_management.managed_by == 'networkd'
+
+
+unit: template
+template-resource: device
+template-filter: device.category == 'WIRELESS'
+template-engine: jinja2
+template-unit: job
+id: wireless/wireless_connection_open_n_np_{{ interface }}
+_summary:
+ Connect to unencrypted 802.11n Wi-Fi network on {{ interface }} - netplan
+_purpose:
+ Check system can connect to insecure 802.11n AP using netplan
+plugin: shell
+command:
+ net_driver_info $NET_DRIVER_INFO
+ wifi_client_test_netplan.py -i {{ interface }} -s $OPEN_N_SSID -d
+user: root
+environ: LD_LIBRARY_PATH OPEN_N_SSID NET_DRIVER_INFO
+category_id: com.canonical.plainbox::wireless
+estimated_duration: 15
+flags: preserve-locale also-after-suspend also-after-suspend-manual
+#requires:
+# net_if_management.device == '{{ interface }}' and net_if_management.managed_by == 'networkd'
+
+
+unit: template
+template-resource: device
+template-filter: device.category == 'WIRELESS'
+template-engine: jinja2
+template-unit: job
+id: wireless/wireless_connection_wpa_ac_np_{{ interface }}
+_summary:
+ Connect to WPA-encrypted 802.11ac Wi-Fi network on {{ interface }} - netplan
+_purpose:
+ Check system can connect to 802.11ac AP with wpa security using netplan
+plugin: shell
+command:
+ net_driver_info $NET_DRIVER_INFO
+ wifi_client_test_netplan.py -i {{ interface }} -s $WPA_AC_SSID -k $WPA_AC_PSK -d
+user: root
+environ: LD_LIBRARY_PATH WPA_AC_SSID WPA_AC_PSK NET_DRIVER_INFO
+category_id: com.canonical.plainbox::wireless
+estimated_duration: 15
+flags: preserve-locale also-after-suspend also-after-suspend-manual
+requires:
+ wireless_sta_protocol.{{ interface }}_ac == 'supported'
+# net_if_management.device == '{{ interface }}' and net_if_management.managed_by == 'networkd'
+
+
+unit: template
+template-resource: device
+template-filter: device.category == 'WIRELESS'
+template-engine: jinja2
+template-unit: job
+id: wireless/wireless_connection_wpa_bg_np_{{ interface }}
+_summary:
+ Connect to WPA-encrypted 802.11b/g Wi-Fi network on {{ interface }} - netplan
+_purpose:
+ Check system can connect to 802.11b/g AP with wpa security using netplan
+plugin: shell
+command:
+ net_driver_info $NET_DRIVER_INFO
+ wifi_client_test_netplan.py -i {{ interface }} -s $WPA_BG_SSID -k $WPA_BG_PSK -d
+user: root
+environ: LD_LIBRARY_PATH WPA_BG_SSID WPA_BG_PSK NET_DRIVER_INFO
+category_id: com.canonical.plainbox::wireless
+estimated_duration: 15
+flags: preserve-locale also-after-suspend also-after-suspend-manual
+#requires:
+# net_if_management.device == '{{ interface }}' and net_if_management.managed_by == 'networkd'
+
+
+unit: template
+template-resource: device
+template-filter: device.category == 'WIRELESS'
+template-engine: jinja2
+template-unit: job
+id: wireless/wireless_connection_wpa_n_np_{{ interface }}
+_summary:
+ Connect to WPA-encrypted 802.11n Wi-Fi network on {{ interface }} - netplan
+_purpose:
+ Check system can connect to 802.11n AP with wpa security using netplan
+plugin: shell
+command:
+ net_driver_info $NET_DRIVER_INFO
+ wifi_client_test_netplan.py -i {{ interface }} -s $WPA_N_SSID -k $WPA_N_PSK -d
+user: root
+environ: LD_LIBRARY_PATH WPA_N_SSID WPA_N_PSK NET_DRIVER_INFO
+category_id: com.canonical.plainbox::wireless
+estimated_duration: 15
+flags: preserve-locale also-after-suspend also-after-suspend-manual
+#requires:
+# net_if_management.device == '{{ interface }}' and net_if_management.managed_by == 'networkd'