Stable Release Update Certification Coverage for Ubuntu Core¶
Introduction¶
This document lists the coverage of regression tests performed for validating a Stable Release Update (SRU) on Ubuntu Core Certified systems. The test plan is not recommended for, nor will it be accepted for self-testing purposes.
The certification tests listed in this document are performed for a reference image. Custom images and test plans are created for individual projects under the Ubuntu Internet of Things Certified Hardware programme.
For each test job, one of the following certification statuses is specified:
- Blocking
Features that are required for certification. If any of the blocking tests fails, the certification will fail.
- Non-blocking
Features that are tested but not mandatory for certification. Failure in non-blocking tests will not prevent certification. However, a note will be added to the certificate to inform potential customers or users.
Note
Only categories of hardware are tested and not specific types of hardware. For example, tests are run to verify USB controllers work, but the type of peripheral(s) used during those tests are not specified.
Coverage is flexible based on customer requirements (for example, if a device’s use cases don’t require LEDs, then LEDs can be non-blocking)
Full test descriptions can be found in Canonical certification site for partners:
sru-ubuntucore¶
Note
The certification tests presented in this document are validated by Checkbox version 4.2.0.dev76.
Non-blocking¶
Audio tests¶
The following test units are covered in this category:
Category ID: | audio |
Status: | Non-blocking |
Purpose: | Check if sound that is ‘hearable’ by capture device. This test is intended mostly for devices without internal speakers/microphones, but with a line-in and a line-out ports to which a loopback cable can be connected. |
After-suspend: | True |
Environment variable: | ALSADEVICE, ALSA_CONFIG_PATH, LD_LIBRARY_PATH |
User: | root |
Plugin: | shell |
Bluetooth tests¶
The following test units are covered in this category:
Category ID: | bluetooth |
Status: | Non-blocking |
Purpose: | Automated test to store Bluetooth device information in the Checkbox report |
After-suspend: | True |
Plugin: | shell |
bluetooth4/beacon_eddystone_url_interface
Test system can get beacon EddyStone URL advertisements on the {interface} adapter
Unit type: | template |
Category ID: | bluetooth |
Status: | Non-blocking |
Description: | <missing description> |
After-suspend: | True |
From template: | bluetooth4/beacon_eddystone_url_interface |
Template resource: | device |
Template filter: | device.category == ‘BLUETOOTH’ |
CPU tests¶
The following test units are covered in this category:
Category ID: | cpu |
Status: | Non-blocking |
Purpose: | <missing purpose> |
Description: | <missing description> |
Plugin: | shell |
Category ID: | cpu |
Status: | Non-blocking |
Purpose: | Attempts to offline each core in a multicore system. |
After-suspend: | True |
User: | root |
Plugin: | shell |
Category ID: | cpu |
Status: | Non-blocking |
Purpose: | <missing purpose> |
Description: | Use Firmware Test Suite (fwts cpufreq) to test the scaling capabilities of the CPU. |
Environment variable: | LD_LIBRARY_PATH, PLAINBOX_SESSION_SHARE, SNAP |
User: | root |
Plugin: | shell |
Category ID: | cpu |
Status: | Non-blocking |
Purpose: | Attaches the log generated by cpu/scaling_test to the results submission. |
Plugin: | attachment |
Disk tests¶
The following test units are covered in this category:
Unit type: | template |
Category ID: | disk |
Status: | Non-blocking |
After-suspend: | True |
Environment variable: | DISK_MDADM_READ_PERF, DISK_NVME_READ_PERF, DISK_READ_PERF |
From template: | disk/read_performance_name |
Template resource: | device |
Template filter: | device.category == ‘DISK’ |
Ethernet Device tests¶
The following test units are covered in this category:
Category ID: | ethernet |
Status: | Non-blocking |
Purpose: | Test to detect and return information about available network controllers on the system under test. |
After-suspend: | True |
Plugin: | shell |
Category ID: | ethernet |
Status: | Non-blocking |
Purpose: | 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 |
Informational tests¶
The following test units are covered in this category:
Category ID: | info |
Status: | Non-blocking |
Purpose: | Attaches the contents of /proc/acpi/sleep if it exists. |
Plugin: | attachment |
Category ID: | info |
Status: | Non-blocking |
Purpose: | Attaches a report of installed codecs for Intel HDA |
Plugin: | attachment |
Category ID: | info |
Status: | Non-blocking |
Purpose: | Attaches a report of CPU information |
Plugin: | attachment |
Category ID: | info |
Status: | Non-blocking |
Purpose: | Attaches a copy of /var/log/dmesg or the current dmesg buffer to the test results |
User: | root |
Plugin: | attachment |
Category ID: | info |
Status: | Non-blocking |
Purpose: | <missing purpose> |
Description: | Attaches dmidecode output |
User: | root |
Plugin: | attachment |
Category ID: | info |
Status: | Non-blocking |
Purpose: | Attaches the firmware version |
User: | root |
Plugin: | attachment |
Category ID: | info |
Status: | Non-blocking |
Purpose: | Attaches a list of the currently running kernel modules. |
Plugin: | attachment |
Category ID: | info |
Status: | Non-blocking |
Purpose: | Attaches very verbose lspci output. |
Plugin: | attachment |
Category ID: | info |
Status: | Non-blocking |
Purpose: | Attaches info on system memory as seen in /proc/meminfo. |
Plugin: | attachment |
Category ID: | info |
Status: | Non-blocking |
Purpose: | <missing purpose> |
Description: | Attaches the contents of the various modprobe conf files. |
User: | root |
Plugin: | attachment |
Category ID: | info |
Status: | Non-blocking |
Purpose: | <missing purpose> |
Description: | Attaches the contents of the /etc/modules file. |
Plugin: | attachment |
Category ID: | info |
Status: | Non-blocking |
Purpose: | <missing purpose> |
Description: | Allows logging of debug info and errors by the associated resource job |
Plugin: | attachment |
Media Card tests¶
The following test units are covered in this category:
Category ID: | mediacard |
Status: | Non-blocking |
Purpose: | This is a fully automated version of mediacard/sd-automated and assumes that the system under test has a memory card device plugged in prior to checkbox execution. It is intended for SRU automated testing. |
User: | root |
Plugin: | shell |
Memory tests¶
The following test units are covered in this category:
Category ID: | memory |
Status: | Non-blocking |
Purpose: | This test checks the amount of memory which is reported in meminfo against the size of the memory modules detected by DMI. |
User: | root |
Plugin: | shell |
Miscellaneous tests¶
The following test units are covered in this category:
Category ID: | miscellanea |
Status: | Non-blocking |
Purpose: | <missing purpose> |
Description: | A meta-job that verifies the data necessary for a complete result submission are present. Failure indicates that the results are incomplete and may be rejected. |
Plugin: | shell |
Non-device specific networking tests¶
The following test units are covered in this category:
Power Management tests¶
The following test units are covered in this category:
Category ID: | power-management |
Status: | Non-blocking |
Purpose: | Test ACPI Wakealarm (fwts wakealarm) |
Environment variable: | PLAINBOX_SESSION_SHARE |
User: | root |
Plugin: | shell |
Category ID: | power-management |
Status: | Non-blocking |
Purpose: | Attach log from fwts wakealarm test |
Plugin: | attachment |
Category ID: | power-management |
Status: | Non-blocking |
Purpose: | Verify that the Real-time clock (RTC) device functions properly, if present. |
After-suspend: | True |
Environment variable: | RTC_DEVICE_FILE |
User: | root |
Plugin: | shell |
Suspend tests¶
The following test units are covered in this category:
Category ID: | suspend |
Status: | Non-blocking |
Purpose: | <missing purpose> |
Description: | <missing description> |
Plugin: | attachment |
Category ID: | suspend |
Status: | Non-blocking |
Purpose: | <missing purpose> |
Description: | <missing description> |
Plugin: | shell |
USB tests¶
The following test units are covered in this category:
Category ID: | usb |
Status: | Non-blocking |
Purpose: | Detects and shows USB devices attached to this system. |
After-suspend: | True |
Plugin: | shell |
Category ID: | usb |
Status: | Non-blocking |
Purpose: | <missing purpose> |
Description: | Tests USB 2.0 or 1.1 ports on a system by doing write/read/compare tests on randomly created data. It requires that a USB stick is plugged into an available USB port before running the certification suite. |
After-suspend: | True |
User: | root |
Plugin: | shell |
Wireless networking tests¶
The following test units are covered in this category:
wireless/wireless_connection_open_ac_nm_interface
Connect to unencrypted 802.11ac Wi-Fi network on {{ interface }}
Unit type: | template |
Category ID: | wireless |
Status: | Non-blocking |
After-suspend: | True |
From template: | wireless/wireless_connection_open_ac_nm_interface |
Template resource: | device |
Template filter: | device.category == ‘WIRELESS’ and device.interface != ‘UNKNOWN’ |
wireless/wireless_connection_open_bg_nm_interface
Connect to an unencrypted 802.11b/g Wi-Fi network on {{ interface }}
Unit type: | template |
Category ID: | wireless |
Status: | Non-blocking |
After-suspend: | True |
From template: | wireless/wireless_connection_open_bg_nm_interface |
Template resource: | device |
Template filter: | device.category == ‘WIRELESS’ and device.interface != ‘UNKNOWN’ |
wireless/wireless_connection_open_n_nm_interface
Connect to an unencrypted 802.11n Wi-Fi network on {{ interface }}
Unit type: | template |
Category ID: | wireless |
Status: | Non-blocking |
After-suspend: | True |
From template: | wireless/wireless_connection_open_n_nm_interface |
Template resource: | device |
Template filter: | device.category == ‘WIRELESS’ and device.interface != ‘UNKNOWN’ |
wireless/wireless_connection_wpa_ac_nm_interface
Connect to WPA-encrypted 802.11ac Wi-Fi network on {{ interface }}
Unit type: | template |
Category ID: | wireless |
Status: | Non-blocking |
After-suspend: | True |
From template: | wireless/wireless_connection_wpa_ac_nm_interface |
Template resource: | device |
Template filter: | device.category == ‘WIRELESS’ and device.interface != ‘UNKNOWN’ |
wireless/wireless_connection_wpa_bg_nm_interface
Connect to WPA-encrypted 802.11b/g Wi-Fi network on {{ interface }}
Unit type: | template |
Category ID: | wireless |
Status: | Non-blocking |
After-suspend: | True |
From template: | wireless/wireless_connection_wpa_bg_nm_interface |
Template resource: | device |
Template filter: | device.category == ‘WIRELESS’ and device.interface != ‘UNKNOWN’ |
wireless/wireless_connection_wpa_n_nm_interface
Connect to a WPA-encrypted 802.11n Wi-Fi network on {{ interface }}
Unit type: | template |
Category ID: | wireless |
Status: | Non-blocking |
After-suspend: | True |
From template: | wireless/wireless_connection_wpa_n_nm_interface |
Template resource: | device |
Template filter: | device.category == ‘WIRELESS’ and device.interface != ‘UNKNOWN’ |
Unit type: | template |
Category ID: | wireless |
Status: | Non-blocking |
After-suspend: | True |
From template: | wireless/wireless_scanning_interface |
Template resource: | device |
Template filter: | device.category == ‘WIRELESS’ and device.interface != ‘UNKNOWN’ |
Appendix A. FWTS tests¶
As part of the certification process, we run a series of firmware tests that are part of the Canonical Firmware Test Suite. In general, any HIGH or CRITICAL error found in the fwts log can cause potential errors in the system and should be looked at by OEMs/ODMs.
Category |
Test Item |
Description |
---|---|---|
Information |
acpidump |
Check ACPI table acpidump. |
Information |
version |
Gather kernel system information. |
ACPI |
acpitables |
ACPI table settings confidence checks. |
ACPI |
apicinstance |
Check for single instance of APIC/MADT table. |
ACPI |
hpet_check |
High Precision Event Timer configuration test. |
ACPI |
mcfg |
MCFG PCI Express* memory mapped config space. |
ACPI |
method |
ACPI DSDT Method Semantic Tests. |
CPU |
mpcheck |
Check Multi Processor tables. |
CPU |
msr |
CPU MSR consistency check. |
CPU |
mtrr |
MTRR validation. |
System |
apicedge |
APIC Edge/Level Check. |
System |
klog |
Scan kernel log for errors and warnings. |