summaryrefslogtreecommitdiff
path: root/units
diff options
authorJenkins <jenkins@cert-jenkins-master-201506-18558.maas>2021-11-08 12:57:51 +0000
committerJenkins <jenkins@cert-jenkins-master-201506-18558.maas>2021-11-08 12:57:51 +0000
commitcc7b00192b1d005ce6a0a857c3c63d0ed9174734 (patch)
tree8719129f76299213451c0806e50bb97cbc72509a /units
parent367bac112ba08007d31fdff293610f34a091642b (diff)
Import plainbox-provider-checkbox_0.60.0~rc1.orig.tar.gzupstream-0.60.0_rc1patched-0.60.0_rc1-1
Diffstat (limited to 'units')
-rw-r--r--units/audio/jobs.pxu7
-rw-r--r--units/bluetooth/jobs.pxu2
-rw-r--r--units/cpu/test-plan.pxu3
-rw-r--r--units/ethernet/jobs.pxu20
-rw-r--r--units/ethernet/test-plan.pxu49
-rw-r--r--units/fingerprint/test-plan.pxu11
-rw-r--r--units/gpio/test-plan.pxu1
-rw-r--r--units/gpio/vendor-aaeon.pxu16
-rw-r--r--units/graphics/jobs.pxu1
-rw-r--r--units/info/jobs.pxu6
-rw-r--r--units/input/jobs.pxu16
-rw-r--r--units/input/test-plan.pxu4
-rw-r--r--units/kernel-snap/jobs.pxu19
-rw-r--r--units/kernel-snap/test-plan.pxu1
-rw-r--r--units/led/test-plan.pxu6
-rw-r--r--units/led/vendor-aaeon.pxu39
-rw-r--r--units/miscellanea/jobs.pxu4
-rw-r--r--units/miscellanea/test-plan.pxu9
-rw-r--r--units/mobilebroadband/test-plan.pxu3
-rw-r--r--units/networking/test-plan.pxu4
-rw-r--r--units/power-management/jobs.pxu10
-rw-r--r--units/power-management/packaging.pxu4
-rw-r--r--units/power-management/test-plan.pxu18
-rw-r--r--units/stress/jobs.pxu16
-rw-r--r--units/stress/stress-ng.pxu9
-rw-r--r--units/suspend/suspend.pxu34
-rw-r--r--units/ubuntucore/jobs.pxu27
-rw-r--r--units/usb/test-plan.pxu8
-rw-r--r--units/watchdog/jobs.pxu27
-rw-r--r--units/wireless/jobs.pxu12
-rw-r--r--units/wireless/test-plan.pxu7
31 files changed, 307 insertions, 86 deletions
diff --git a/units/audio/jobs.pxu b/units/audio/jobs.pxu
index 1fad964..e6b21a6 100644
--- a/units/audio/jobs.pxu
+++ b/units/audio/jobs.pxu
@@ -15,13 +15,18 @@ requires:
device.category == 'AUDIO'
package.name == 'linux-firmware'
command:
+ fail=0
for fw in /lib/firmware/intel/sof/sof-*.ri;
do
# shellcheck disable=SC2016
if xxd "${fw}" | grep -q '$CPD'; then
- sof_ri_info.py --valid "${fw}"
+ if ! sof_ri_info.py --valid "${fw}";
+ then
+ fail=1
+ fi
fi
done
+ exit $fail
_description: Valid sof firmware signature
plugin: user-interact-verify
diff --git a/units/bluetooth/jobs.pxu b/units/bluetooth/jobs.pxu
index 3f174bf..e1573b5 100644
--- a/units/bluetooth/jobs.pxu
+++ b/units/bluetooth/jobs.pxu
@@ -4,7 +4,7 @@ category_id: com.canonical.plainbox::bluetooth
_summary: Make sure at least one bluetooth device is detected
plugin: shell
command:
- bt_list_adapters.py
+ bt_list_adapters.py && udev_resource.py -f BLUETOOTH
estimated_duration: 2s
flags: preserve-locale
requires: manifest.has_bt_adapter
diff --git a/units/cpu/test-plan.pxu b/units/cpu/test-plan.pxu
index 46e9ac4..f649267 100644
--- a/units/cpu/test-plan.pxu
+++ b/units/cpu/test-plan.pxu
@@ -14,9 +14,6 @@ _name: CPU tests (Manual)
_description:
CPU tests (Manual)
include:
-nested_part:
- cpu-cert-automated
-
id: cpu-cert-automated
unit: test plan
diff --git a/units/ethernet/jobs.pxu b/units/ethernet/jobs.pxu
index 64a0578..89565bf 100644
--- a/units/ethernet/jobs.pxu
+++ b/units/ethernet/jobs.pxu
@@ -97,6 +97,26 @@ template-resource: device
template-filter: device.category == 'NETWORK' and device.interface != 'UNKNOWN'
plugin: shell
category_id: com.canonical.plainbox::ethernet
+id: ethernet/multi_iperf3_nic_device_server_sru{__index__}_{interface}
+_summary: Multi-NIC Iperf3 SRU testing for NIC {interface}
+estimated_duration: 1200.0
+requires:
+ executable.name == 'iperf3'
+ executable.name == 'ethtool'
+ executable.name == 'nmap'
+user: root
+environ: TEST_TARGET_IPERF
+command: network.py test -i {interface} -t iperf --iperf3 --scan-timeout 3600 --fail-threshold 80 --cpu-load-fail-threshold 90 --runtime 1200
+_description:
+ This is a shorter SRU version of the standard iperf3 based network test for
+ servers. It is intended to ONLY be used for SRU and is not valid for offical
+ certification.
+
+unit: template
+template-resource: device
+template-filter: device.category == 'NETWORK' and device.interface != 'UNKNOWN'
+plugin: shell
+category_id: com.canonical.plainbox::ethernet
id: ethernet/multi_iperf3_nic_underspeed_device{__index__}_{interface}
_summary: Underspeed Enabled Multi-NIC Iperf3 stress testing for NIC {interface}
estimated_duration: 7400.0
diff --git a/units/ethernet/test-plan.pxu b/units/ethernet/test-plan.pxu
index cfc23bd..33c95b4 100644
--- a/units/ethernet/test-plan.pxu
+++ b/units/ethernet/test-plan.pxu
@@ -1,3 +1,38 @@
+id: ethernet-cert-full
+unit: test plan
+_name: Ethernet tests
+_description: Ethernet tests
+include:
+nested_part:
+ ethernet-cert-automated
+ ethernet-cert-manual
+
+id: ethernet-cert-manual
+unit: test plan
+_name: Ethernet tests (manual)
+_description: Ethernet tests (manual)
+include:
+ ethernet/hotplug-.* certification-status=blocker
+bootstrap_include:
+ device
+
+id: ethernet-cert-automated
+unit: test plan
+_name: Ethernet tests (automated)
+_description: Ethernet tests (automated)
+include:
+ ethernet/detect certification-status=blocker
+
+id: ethernet-cert-blockers
+unit: test plan
+_name: Ethernet tests (certification blockers only)
+_description: Ethernet tests (certification blockers only)
+include:
+ ethernet/detect certification-status=blocker
+ ethernet/hotplug-.* certification-status=blocker
+bootstrap_include:
+ device
+
id: ethernet-full
unit: test plan
_name: QA tests for ethernet
@@ -72,6 +107,20 @@ bootstrap_include:
device
executable
+id: server-ethernet-sru
+unit: test plan
+_name: Server Ethernet SRU Tests
+_description: Automated ethernet tests for server regression testing
+estimated_duration: 4h
+include:
+ ethernet/info_automated_server
+ ethernet/ethtool_info
+ ethernet/ethertool_check_.*
+ ethernet/multi_iperf3_nic_device_server_sru.*
+bootstrap_include:
+ device
+ executable
+
id: server-ethernet-underspeed
unit: test plan
_name: Server Ethernet Tests (Speed Check Disabled)
diff --git a/units/fingerprint/test-plan.pxu b/units/fingerprint/test-plan.pxu
index 42ebd52..ed5ee9a 100644
--- a/units/fingerprint/test-plan.pxu
+++ b/units/fingerprint/test-plan.pxu
@@ -1,15 +1,16 @@
id: fingerprint-full
unit: test plan
-_name: QA tests for fingerprint reader
+_name: QA tests for Fingerprint reader
_description: Fingerprint tests
estimated_duration: 1m
include:
nested_part:
fingerprint-manual
+ fingerprint-automated
id: fingerprint-manual
unit: test plan
-_name: Manual fingerprint tests
+_name: Fingerprint reader tests (Manual)
_description: Manual tests for fingerprint reader
include:
fingerprint/detect certification-status=non-blocker
@@ -18,3 +19,9 @@ include:
fingerprint/verify-match certification-status=non-blocker
fingerprint/unlock certification-status=non-blocker
fingerprint/delete certification-status=non-blocker
+
+id: fingerprint-automated
+unit: test plan
+_name: Fingerprint reader tests (Automated)
+_description: Autoamted tests for fingerprint reader
+include:
diff --git a/units/gpio/test-plan.pxu b/units/gpio/test-plan.pxu
index a32be08..91d83b5 100644
--- a/units/gpio/test-plan.pxu
+++ b/units/gpio/test-plan.pxu
@@ -25,6 +25,7 @@ _name: Automated GPIO tests
_description: Automated GPIO tests for Ubuntu Core devices
bootstrap_include:
model_assertion
+ dmi
include:
gpio/sysfs_loopback_pairs_.*
gpio/gpiomem_loopback_pairs_.*
diff --git a/units/gpio/vendor-aaeon.pxu b/units/gpio/vendor-aaeon.pxu
new file mode 100644
index 0000000..7f8d6bc
--- /dev/null
+++ b/units/gpio/vendor-aaeon.pxu
@@ -0,0 +1,16 @@
+
+unit: template
+template-resource: dmi
+template-filter: dmi.category == 'SYSTEM' and dmi.vendor == 'AAEON' and dmi.product in ('UPX-TGL01')
+template-unit: job
+id: gpio/sysfs_loopback_pairs_{vendor}_{product}
+_summary: Test GPIO lines exposed on headers can be controlled via sysfs
+plugin: shell
+user: root
+category_id: gpio
+estimated_duration: 30.0
+flags: preserve-locale also-after-suspend
+imports: from com.canonical.plainbox import manifest
+requires: manifest.gpio_loopback == 'True'
+command:
+ gpio_sysfs_loopback.py {product}
diff --git a/units/graphics/jobs.pxu b/units/graphics/jobs.pxu
index acf18c3..9727bc8 100644
--- a/units/graphics/jobs.pxu
+++ b/units/graphics/jobs.pxu
@@ -263,7 +263,6 @@ template-resource: graphics_card
plugin: shell
category_id: com.canonical.plainbox::graphics
id: graphics/{index}_gl_support_{product_slug}
-requires: package.name == 'nux-tools'
command: /usr/lib/nux/unity_support_test -p 2>&1
estimated_duration: 0.131
_description: Check that {vendor} {product} hardware is able to run a desktop session (OpenGL)
diff --git a/units/info/jobs.pxu b/units/info/jobs.pxu
index d2ed96b..12d7ab1 100644
--- a/units/info/jobs.pxu
+++ b/units/info/jobs.pxu
@@ -454,7 +454,11 @@ category_id: com.canonical.plainbox::info
id: info/systemd-analyze
estimated_duration: 0.2
_summary: System boot-up performance statistics
-command: systemd-analyze
+command:
+ # Wait for boot to complete
+ # https://github.com/systemd/systemd/pull/9796
+ timeout 60 systemctl is-system-running --wait > /dev/null
+ systemd-analyze
id: lstopo_verbose_attachment
plugin: attachment
diff --git a/units/input/jobs.pxu b/units/input/jobs.pxu
index 5f5cde0..7ae0667 100644
--- a/units/input/jobs.pxu
+++ b/units/input/jobs.pxu
@@ -75,3 +75,19 @@ _steps:
4. Double-click the left button with your {product}.
_verification:
Did these buttons work as expected?
+
+unit: template
+template-resource: dmi
+template-filter: dmi.category == 'CHASSIS' and dmi.product not in ('Tablet', 'Convertible', 'Detachable')
+plugin: shell
+category_id: com.canonical.plainbox::input
+estimated_duration: 2
+id: input/fixed_screen_orientation_on_{product}_{__index__}
+user: root
+requires:
+ executable.name == 'udevadm'
+ executable.name == 'dbus-send'
+command: fixed_screen_orientation.sh
+_summary: Check whether screen orientation is fixed on {product}
+_purpose:
+ This tests whether the display orientation of {product} is fixed, and cannot be altered by tilting {product}.
diff --git a/units/input/test-plan.pxu b/units/input/test-plan.pxu
index ef9cf75..1c87d1f 100644
--- a/units/input/test-plan.pxu
+++ b/units/input/test-plan.pxu
@@ -23,7 +23,9 @@ _name: Input tests (Automated)
_description:
Input tests (Automated)
include:
-
+ input/fixed_screen_orientation_on_.* certification-status=non-blocker
+bootstrap_include:
+ dmi
id: after-suspend-input-cert-full
unit: test plan
diff --git a/units/kernel-snap/jobs.pxu b/units/kernel-snap/jobs.pxu
index 950d1a6..b03d6a8 100644
--- a/units/kernel-snap/jobs.pxu
+++ b/units/kernel-snap/jobs.pxu
@@ -33,3 +33,22 @@ imports:
from com.canonical.certification import ubuntu_core_features
requires:
ubuntu_core_features.force_kernel_extraction == 'True'
+
+unit: template
+template-resource: bootloader
+template-filter: bootloader.name == 'uboot'
+id: kernel-snap/booted-dtbs-match-current-{name}
+requires:
+ lsb.description == 'Ubuntu Core 18'
+ snap.name == 'snapd' and int(snap.revision) >= 11841
+category_id: kernel-snap
+_summary: The dtbs in the bootloader match those in current kernel snap
+_description:
+ Since snapd version 2.50 DTB files can be distributed in the kernel snap and
+ the extracted in to the boot partition. This checks that if the DTBs are in
+ sync.
+plugin: shell
+user: root
+estimated_duration: 2.0
+command:
+ booted_dtb_tests.py {name}
diff --git a/units/kernel-snap/test-plan.pxu b/units/kernel-snap/test-plan.pxu
index ffaa5d1..585bd01 100644
--- a/units/kernel-snap/test-plan.pxu
+++ b/units/kernel-snap/test-plan.pxu
@@ -14,6 +14,7 @@ _name: Automated Kernel Snap tests
_description: Automated Kernel Snap tests for Ubuntu Core devices
include:
kernel-snap/booted-kernel-matches-current-.*
+ kernel-snap/booted-dtbs-match-current-.*
bootstrap_include:
bootloader
diff --git a/units/led/test-plan.pxu b/units/led/test-plan.pxu
index fc83aa2..b0d0129 100644
--- a/units/led/test-plan.pxu
+++ b/units/led/test-plan.pxu
@@ -115,5 +115,7 @@ include:
led/bluetooth
led/serial
led/fn
-
-
+ led/sysfs_led_brightness_on_.*
+ led/sysfs_led_brightness_off_.*
+bootstrap_include:
+ dmi
diff --git a/units/led/vendor-aaeon.pxu b/units/led/vendor-aaeon.pxu
new file mode 100644
index 0000000..d4ed7cd
--- /dev/null
+++ b/units/led/vendor-aaeon.pxu
@@ -0,0 +1,39 @@
+
+unit: template
+template-resource: dmi
+template-filter: dmi.category == 'SYSTEM' and dmi.vendor == 'AAEON' and dmi.product in ('UPX-TGL01')
+template-unit: job
+id: led/sysfs_led_brightness_on_{vendor}_{product}
+plugin: user-interact-verify
+category_id: led
+estimated_duration: 30.0
+flags: preserve-locale also-after-suspend
+command:
+ led_sysfs_brightness.py {product} on
+_purpose:
+ Verify that the leds_aaeon driver is working by setting all LEDs to maximum
+ brightness
+_steps:
+ Press ENTER to start the test while watching external LEDs on the SUT
+_verification:
+ The external LEDs should now be on at maximum brightness
+
+unit: template
+template-resource: dmi
+template-filter: dmi.category == 'SYSTEM' and dmi.vendor == 'AAEON' and dmi.product in ('UPX-TGL01')
+template-unit: job
+id: led/sysfs_led_brightness_off_{vendor}_{product}
+plugin: user-interact-verify
+category_id: led
+estimated_duration: 30.0
+flags: preserve-locale also-after-suspend
+depends: led/sysfs_led_brightness_on_{vendor}_{product}
+command:
+ led_sysfs_brightness.py {product} off
+_purpose:
+ Verify that the leds_aaeon driver is working by setting all LEDs to off /
+ minimum brightness
+_steps:
+ Press ENTER to start the test while watching external LEDs on the SUT
+_verification:
+ The external LEDs should now be off or at minimum brightness
diff --git a/units/miscellanea/jobs.pxu b/units/miscellanea/jobs.pxu
index a1eab66..ac0c9ae 100644
--- a/units/miscellanea/jobs.pxu
+++ b/units/miscellanea/jobs.pxu
@@ -183,7 +183,7 @@ _summary: Test that system is not a pre-release version
_description:
Test to verify that the system uses production, rather
than pre-release, versions of the kernel and the OS.
-command: check-prerelease.py
+command: check_prerelease.py
requires:
"Ubuntu Core" not in lsb.description
@@ -469,7 +469,7 @@ category_id: com.canonical.plainbox::miscellanea
estimated_duration: 60
id: miscellanea/debsums
user: root
-requires: package.name == 'debsums'
+requires: executable.name == 'debsums'
command: debsums -c
_summary: Check the MD5 sums of installed Debian packages
_description: Verify installed Debian package files against MD5 checksum lists from /var/lib/dpkg/info/*.md5sums.
diff --git a/units/miscellanea/test-plan.pxu b/units/miscellanea/test-plan.pxu
index 97c94fc..1c7605a 100644
--- a/units/miscellanea/test-plan.pxu
+++ b/units/miscellanea/test-plan.pxu
@@ -15,7 +15,6 @@ _description:
Miscellaneous client tests (fwts, dmi, oops) (Manual)
include:
nested_part:
- misc-client-cert-automated
id: misc-client-cert-automated
@@ -33,7 +32,8 @@ include:
miscellanea/oops certification-status=blocker
miscellanea/oops_results.log
miscellanea/fan_stress_reaction
- miscellanea/debsums
+ miscellanea/debsums certification-status=blocker
+ miscellanea/check_prerelease certification-status=blocker
bootstrap_include:
fwts
@@ -50,6 +50,8 @@ include:
firmware/fwts_uefirtvariable.* certification-status=blocker
miscellanea/oops certification-status=blocker
miscellanea/oops_results.log
+ miscellanea/debsums certification-status=blocker
+ miscellanea/check_prerelease certification-status=blocker
bootstrap_include:
fwts
@@ -67,7 +69,7 @@ mandatory_include:
miscellanea/efi_boot_mode certification-status=blocker
miscellanea/reboot_firmware
miscellanea/efi_pxeboot
- miscellanea/check_prerelease
+ miscellanea/check_prerelease certification-status=blocker
miscellanea/kernel_taint_test
miscellanea/cpus_are_not_samples
miscellanea/ipmi_test certification-status=blocker
@@ -85,7 +87,6 @@ _description:
mandatory_include:
miscellanea/submission-resources
miscellanea/cpuid
- miscellanea/efi_boot_mode certification-status=blocker
miscellanea/ipmi_test certification-status=blocker
miscellanea/bmc_info
miscellanea/dmitest_server
diff --git a/units/mobilebroadband/test-plan.pxu b/units/mobilebroadband/test-plan.pxu
index dd086c7..dc5ded9 100644
--- a/units/mobilebroadband/test-plan.pxu
+++ b/units/mobilebroadband/test-plan.pxu
@@ -14,9 +14,6 @@ _name: Mobile broadband tests (Manual)
_description:
Mobile broadband tests (Manual)
include:
-nested_part:
- mobilebroadband-cert-automated
-
id: mobilebroadband-cert-automated
unit: test plan
diff --git a/units/networking/test-plan.pxu b/units/networking/test-plan.pxu
index f11d215..c00504f 100644
--- a/units/networking/test-plan.pxu
+++ b/units/networking/test-plan.pxu
@@ -13,7 +13,6 @@ _name: Networking tests (manual)
_description: Networking tests (manual)
include:
networking/info_device.* certification-status=blocker
- ethernet/hotplug-.* certification-status=blocker
bootstrap_include:
device
@@ -22,7 +21,6 @@ unit: test plan
_name: Networking tests (automated)
_description: Networking tests (automated)
include:
- ethernet/detect certification-status=blocker
networking/gateway_ping certification-status=blocker
networking/ntp certification-status=blocker
@@ -31,11 +29,9 @@ unit: test plan
_name: Networking tests (certification blockers only)
_description: Networking tests (certification blockers only)
include:
- ethernet/detect certification-status=blocker
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/power-management/jobs.pxu b/units/power-management/jobs.pxu
index 726b4ae..d449564 100644
--- a/units/power-management/jobs.pxu
+++ b/units/power-management/jobs.pxu
@@ -366,15 +366,13 @@ unit: job
plugin: shell
requires:
cpuinfo.cpu_lpi_file in ('low_power_idle_cpu_residency_us', 'package_cstate_show')
- package.name == 'x11-xserver-utils'
sleep.mem_sleep == 's2idle'
+ package.name == 'evemu-tools'
command:
cpu_lpi_file=$(cpuinfo_resource.py | grep cpu_lpi_file | awk '{ print $2 }')
if [ "$cpu_lpi_file" == "low_power_idle_cpu_residency_us" ]; then
before=$(cat /sys/devices/system/cpu/cpuidle/low_power_idle_cpu_residency_us)
- xset dpms force off
- sleep 20
- xset dpms force on
+ screenoff.sh 20
after=$(cat /sys/devices/system/cpu/cpuidle/low_power_idle_cpu_residency_us)
residency=$((after-before))
echo "/sys/devices/system/cpu/cpuidle/low_power_idle_cpu_residency_us after/before screen off is $residency"
@@ -382,9 +380,7 @@ command:
echo "The system doesn't have hardware-based residency counter."
echo "please check https://www.uefi.org/sites/default/files/resources/Intel_ACPI_Low_Power_S0_Idle.pdf"
before=$(cat < /sys/kernel/debug/pmc_core/package_cstate_show | grep C10 | awk '{ print $4 }')
- xset dpms force off
- sleep 20
- xset dpms force on
+ screenoff.sh 20
after=$(cat < /sys/kernel/debug/pmc_core/package_cstate_show | grep C10 | awk '{ print $4 }')
residency=$((after-before))
echo "/sys/kernel/debug/pmc_core/package_cstate_show after/before screen off is $residency"
diff --git a/units/power-management/packaging.pxu b/units/power-management/packaging.pxu
new file mode 100644
index 0000000..a03242e
--- /dev/null
+++ b/units/power-management/packaging.pxu
@@ -0,0 +1,4 @@
+# This is to install evemu-tools for the screen lock key event simulation
+unit: packaging meta-data
+os-id: debian
+Depends: evemu-tools
diff --git a/units/power-management/test-plan.pxu b/units/power-management/test-plan.pxu
index 0cc9997..40e5dc1 100644
--- a/units/power-management/test-plan.pxu
+++ b/units/power-management/test-plan.pxu
@@ -1,19 +1,27 @@
-id: power-management-precheck-cert
+id: power-management-precheck-cert-full
unit: test plan
_name: Power Management precheck tests
_description: Power Management precheck tests
include:
nested_part:
+ power-management-precheck-cert-manual
power-management-precheck-cert-automated
-id: power-management-reboot-poweroff-cert
+id: power-management-reboot-poweroff-cert-full
unit: test plan
_name: Power Management reboot and power off tests
_description: Power Management reboot and power off tests
include:
nested_part:
+ power-management-reboot-poweroff-cert-manual
power-management-reboot-poweroff-cert-automated
+id: power-management-precheck-cert-manual
+unit: test plan
+_name: Power Management precheck tests (Manual)
+_description: Power Management precheck tests (Manual)
+include:
+
id: power-management-precheck-cert-automated
unit: test plan
_name: Power Management precheck tests (automated)
@@ -24,6 +32,12 @@ include:
power-management/fwts_wakealarm certification-status=blocker
power-management/fwts_wakealarm-log-attach
+id: power-management-reboot-poweroff-cert-manual
+unit: test plan
+_name: Power Management reboot and power off tests (Manual
+_description: Power Management reboot and power off tests (Manual)
+include:
+
id: power-management-reboot-poweroff-cert-automated
unit: test plan
_name: Power Management reboot and power off tests (automated)
diff --git a/units/stress/jobs.pxu b/units/stress/jobs.pxu
index a541e3a..544e7af 100644
--- a/units/stress/jobs.pxu
+++ b/units/stress/jobs.pxu
@@ -510,7 +510,9 @@ plugin:shell
category_id: com.canonical.plainbox::stress
id: stress/s2idle_pm-graph_30
estimated_duration: 10m
-requires: executable.name == 'sleepgraph'
+requires:
+ executable.name == 'sleepgraph'
+ sleep.mem_sleep == 's2idle'
user: root
_summary: Resume from idle by using Intel pm-graph
command:
@@ -520,6 +522,10 @@ plugin: attachment
category_id: com.canonical.plainbox::stress
id: stress/s2idle_pm-graph_30.tar.xz
estimated_duration: 1
+requires:
+ sleep.mem_sleep == 's2idle'
+after:
+ stress/s2idle_pm-graph_30
user: root
_summary: Attach pm-graph logs (s2idle)
command:
@@ -529,7 +535,9 @@ plugin:shell
category_id: com.canonical.plainbox::stress
id: stress/s3_pm-graph_30
estimated_duration: 10m
-requires: executable.name == 'sleepgraph'
+requires:
+ executable.name == 'sleepgraph'
+ sleep.mem_sleep == 'deep'
user: root
_summary: Resume from suspend by using Intel pm-graph
command:
@@ -539,6 +547,10 @@ plugin: attachment
category_id: com.canonical.plainbox::stress
id: stress/s3_pm-graph_30.tar.xz
estimated_duration: 1
+requires:
+ sleep.mem_sleep == 'deep'
+after:
+ stress/s3_pm-graph_30
user: root
_summary: Attach pm-graph logs (s3)
command:
diff --git a/units/stress/stress-ng.pxu b/units/stress/stress-ng.pxu
index 8dd6853..adca084 100644
--- a/units/stress/stress-ng.pxu
+++ b/units/stress/stress-ng.pxu
@@ -30,4 +30,11 @@ estimated_duration: 1200.0
environ: STRESS_NG_CLASSES_TIMEOUT
command:
cd /var/tmp || exit $?
- stress-ng --sequential 0 --class {stress-ng-class} --timeout "${{STRESS_NG_CLASSES_TIMEOUT:-30}}"
+ stress-ng --sequential 0 --class {stress-ng-class} --timeout "${{STRESS_NG_CLASSES_TIMEOUT:-30}}" --skip-silent --verbose
+ # Error code definition - 3(no resource), 4(not implemented)
+ EXIT_CODE=$?
+ echo "EXIT_CODE="$EXIT_CODE
+ case $EXIT_CODE in
+ 0|3|4) exit 0;;
+ *) exit 1;;
+ esac
diff --git a/units/suspend/suspend.pxu b/units/suspend/suspend.pxu
index a2830d4..8c25a91 100644
--- a/units/suspend/suspend.pxu
+++ b/units/suspend/suspend.pxu
@@ -189,17 +189,27 @@ requires:
sleep.mem == 'supported'
rtc.state == 'supported'
user: root
-environ: PLAINBOX_SESSION_SHARE
+environ: PLAINBOX_SESSION_SHARE RTC_DEVICE_FILE
command:
if type -P fwts >/dev/null; then
- echo "Calling fwts"
- if [[ -v SNAP ]]; then
- export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$SNAP/usr/lib/fwts"
- fi
- set -o pipefail; checkbox-support-fwts_test -f none -l "$PLAINBOX_SESSION_SHARE"/suspend_single -s s3 --s3-sleep-delay=30 --s3-device-check --s3-device-check-delay=45 | tee "$PLAINBOX_SESSION_SHARE"/suspend_single_times.log
+ echo "Calling fwts"
+ if [[ -v SNAP ]]; then
+ export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$SNAP/usr/lib/fwts"
+ fi
+ if fwts --show-tests-categories | grep -q 's3 '; then
+ echo "Calling fwts"
+ set -o pipefail; checkbox-support-fwts_test -f none -l "$PLAINBOX_SESSION_SHARE"/suspend_single -s s3 --s3-sleep-delay=30 --s3-device-check --s3-device-check-delay=45 | tee "$PLAINBOX_SESSION_SHARE"/suspend_single_times.log
+ else
+ echo "Calling rtcwake"
+ if [ -z "$RTC_DEVICE_FILE" ]; then
+ rtcwake -m mem -s 30
+ else
+ rtcwake -d "$RTC_DEVICE_FILE" -m mem -s 30
+ fi
+ fi
else
- echo "Calling sleep_test.py"
- set -o pipefail; sleep_test.py -p | tee "$PLAINBOX_SESSION_SHARE"/2_suspend_single_times.log
+ echo "Calling sleep_test.py"
+ set -o pipefail; sleep_test.py -p | tee "$PLAINBOX_SESSION_SHARE"/2_suspend_single_times.log
fi
estimated_duration: 90.0
_summary: Manual test of suspend function
@@ -263,7 +273,7 @@ _summary: Automated test of suspend function
_description:
This is the automated version of suspend/suspend_advanced.
user: root
-environ: PLAINBOX_SESSION_SHARE
+environ: PLAINBOX_SESSION_SHARE RTC_DEVICE_FILE
command:
if [[ -v SNAP ]]; then
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$SNAP/usr/lib/fwts"
@@ -274,7 +284,11 @@ command:
set -o pipefail; checkbox-support-fwts_test -f none -l "$PLAINBOX_SESSION_SHARE"/suspend_single -s s3 --s3-sleep-delay=30 --s3-device-check --s3-device-check-delay=45 | tee "$PLAINBOX_SESSION_SHARE"/suspend_single_times.log
else
echo "Calling rtcwake"
- rtcwake -m mem -s 30
+ if [ -z "$RTC_DEVICE_FILE" ]; then
+ rtcwake -m mem -s 30
+ else
+ rtcwake -d "$RTC_DEVICE_FILE" -m mem -s 30
+ fi
fi
estimated_duration: 90.000
diff --git a/units/ubuntucore/jobs.pxu b/units/ubuntucore/jobs.pxu
index 8cae699..04c30b3 100644
--- a/units/ubuntucore/jobs.pxu
+++ b/units/ubuntucore/jobs.pxu
@@ -65,7 +65,7 @@ _steps:
{% endif -%}
1. Check the current revision of core{{release}}
$ snap list core{{release}}
- 2. Update to edge.
+ 2. Update to edge.
Note that system will automatically reboot in 1 minute after doing this command.
Please execute the command in step 3 in 1 minute to stop the automatic reboot.
$ sudo snap refresh core{{release}} --edge
@@ -98,7 +98,7 @@ _steps:
{% endif -%}
1. Check the current revision of core{{release}}
$ snap list core{{release}}
- 2. Update to edge.
+ 2. Update to edge.
Note that system will automatically reboot in 1 minute after doing this command.
Please execute the command in step 3 in 1 minute to stop the automatic reboot.
$ sudo snap refresh core{{release}} --edge --ignore-validation
@@ -129,3 +129,26 @@ _verification:
plugin: manual
category_id: ubuntucore
estimated_duration: 120
+
+unit: template
+template-resource: model_assertion
+template-unit: job
+plugin: manual
+id: ubuntucore/kernel-failboot-{kernel}
+_summary: Reboot with failboot kernel to verify system rollback function
+_purpose:
+ Check if system will rollback to previous(functional) kernel
+_description:
+ This test checks the kernel rollback function.
+ When booting a kernel that fails to boot, system should be able to rollback
+ to previous one.
+ To perform this test, a failboot kernel should be in edge/kernel-failboot-test
+ for testing.
+_steps:
+ 1. Refresh kernel to the failboot branch
+ sudo snap refresh {kernel} --channel=edge/kernel-failboot-test
+ 2. Wait for system reboot after kernel snap refresh
+_verification:
+ Check if system could boot, and kernel version is the one before switched to
+ "failboot" kernel
+category_id: ubuntucore
diff --git a/units/usb/test-plan.pxu b/units/usb/test-plan.pxu
index e4a3df1..690204e 100644
--- a/units/usb/test-plan.pxu
+++ b/units/usb/test-plan.pxu
@@ -278,14 +278,6 @@ unit: test plan
_name: Automated USB-C tests
_description: Automated USB-C tests for Ubuntu Core devices
include:
- usb-c/c-to-a-adapter/hid
- usb-c/c-to-a-adapter/insert
- usb-c/c-to-a-adapter/storage-automated
- usb-c/c-to-a-adapter/remove
- usb-c/hid
- usb-c/insert
- usb-c/storage-automated
- usb-c/remove
id: after-suspend-usb-full
unit: test plan
diff --git a/units/watchdog/jobs.pxu b/units/watchdog/jobs.pxu
index 0e16f82..c2bd868 100644
--- a/units/watchdog/jobs.pxu
+++ b/units/watchdog/jobs.pxu
@@ -9,32 +9,7 @@ command: udev_resource.py -f WATCHDOG
id: watchdog/systemd-config
_summary: Check if the hardware watchdog is properly configured
template-engine: jinja2
-command:
- inbuilt=$(systemctl show -p RuntimeWatchdogUSec | awk -F= '{print $2}')
- external=$(systemctl is-active watchdog.service)
- {%- if __on_ubuntucore__ %}
- if [ "$inbuilt" == "0" ]; then
- echo "systemd watchdog should be enabled but reset timeout: $inbuilt"
- exit 1
- fi
- if [ "$external" == "active" ]; then
- echo "found unexpected active watchdog.service unit"
- exit 1
- fi
- echo "systemd watchdog enabled, reset timeout: $inbuilt"
- echo "watchdog.service is not active"
- {%- else %}
- if [ "$inbuilt" != "0" ]; then
- echo "systemd watchdog should not be enabled but reset timeout: $inbuilt"
- exit 1
- fi
- if [ "$external" != "active" ]; then
- echo "watchdog.service unit does not report as active"
- exit 1
- fi
- echo "systemd watchdog disabled"
- echo "watchdog.service active"
- {% endif -%}
+command: watchdog_config_test.py
category_id: com.canonical.plainbox::power-management
flags: simple
imports: from com.canonical.plainbox import manifest
diff --git a/units/wireless/jobs.pxu b/units/wireless/jobs.pxu
index 4827af1..95ddf31 100644
--- a/units/wireless/jobs.pxu
+++ b/units/wireless/jobs.pxu
@@ -551,3 +551,15 @@ command:
estimated_duration: 2.0
depends: wireless/nm_connection_save_{interface}
flags: preserve-locale also-after-suspend also-after-suspend-manual
+
+unit: template
+template-resource: device
+template-filter: device.driver == 'iwlwifi'
+id: wireless/check_iwlwifi_microcode_crash_{interface}
+_summary: Check there have been no iwlwifi crashes
+plugin: shell
+command: check-iwlwifi-microcode-sw-error.sh
+category_id: com.canonical.plainbox::wireless
+estimated_duration: 30.0
+flags: preserve-locale also-after-suspend
+requires: package.name == 'systemd'
diff --git a/units/wireless/test-plan.pxu b/units/wireless/test-plan.pxu
index b7448cb..d0458cc 100644
--- a/units/wireless/test-plan.pxu
+++ b/units/wireless/test-plan.pxu
@@ -14,9 +14,6 @@ _name: Wireless tests (Manual)
_description:
Wireless connection tests (Manual)
include:
-nested_part:
- wireless-cert-automated
-
id: after-suspend-wireless-cert-full
unit: test plan
@@ -44,6 +41,7 @@ include:
wireless/wireless_connection_wpa_ax_nm_.* certification-status=blocker
wireless/wireless_connection_open_ax_nm_.* certification-status=blocker
wireless/nm_connection_restore_.*
+ wireless/check_iwlwifi_microcode_crash_.*
id: after-suspend-wireless-cert-automated
unit: test plan
@@ -62,6 +60,7 @@ include:
after-suspend-wireless/wireless_connection_wpa_ax_nm_.* certification-status=blocker
after-suspend-wireless/wireless_connection_open_ax_nm_.* certification-status=blocker
after-suspend-wireless/nm_connection_restore_.*
+ after-suspend-wireless/check_iwlwifi_microcode_crash_.*
id: after-suspend-manual-wireless-cert-automated
unit: test plan
@@ -160,6 +159,7 @@ include:
wireless/wireless_connection_wpa_ac_np_.*
wireless/wireless_connection_wpa_bg_np_.*
wireless/wireless_connection_wpa_n_np_.*
+ wireless/check_iwlwifi_microcode_crash_.*
bootstrap_include:
device
@@ -357,6 +357,7 @@ include:
after-suspend-wireless/wireless_connection_wpa_ac_np_.*
after-suspend-wireless/wireless_connection_wpa_bg_np_.*
after-suspend-wireless/wireless_connection_wpa_n_np_.*
+ after-suspend-wireless/check_iwlwifi_microcode_crash_.*
bootstrap_include:
device