Generic Test Plans for Commercial Devices¶
This document lists the tests to be run during certification of IoT devices.
Benchmarks tests¶
Cached read timing benchmark of sda using
hdparm
Raw read timing benchmark of sda using
hdparm
Bluetooth¶
Basic BNEP Socket - Success
Bluetooth input device works
Bluetooth - BlueZ Self Tests
CPU¶
Validate that the Vector Floating Point Unit is running on ARM device
Tests the CPU for clock jitter
Run C-States tests
Attach C-States test log
Test that the CPU can run at its max frequency
Attach CPU max frequency log
Test offlining of each CPU core
Test the CPU scaling capabilities
Attach CPU scaling capabilities log
Check CPU topology for accuracy between
proc
andsysfs
Disk¶
Gathers information about each disk detected
Disk stress_ng test
Disk performance test
Disk statistics
Disk I/O stress test
Ethernet¶
Ensure ethernet port is physically disconnected
Report info about available network devices
Ethernet port hotplug detection test
Ethernet port hotplug disconnect step
Can ping another machine over Ethernet port
Multi-NIC Iperf3 stress testing for NIC
wwp0s20u4i6
IPDT¶
CPU Frequency Test
Integrated Memory Controller Test
Floating Point Test
Prime Number Generation Test
Platform Controller Hub Test
Sample Production Bit Checker
AVX Test
Brand String Test
Cache Test
Genuine Intel Test
MMX/SSE Test
Temperature Test
LEDs¶
Bluetooth LED behavior
Power LED behavior when powered
Power LED behavior when suspended
Serial ports LED behavior
Memory tests¶
Stress test of system memory
Check amount of memory reported by meminfo against DMI
Power and Power Management¶
Verify watchdog daemon is started during boot
Verify the watchdog keepalive daemon is up once watchdog daemon is killed
Load watchdog kernel module when boot
Test that the watchdog module can trigger a system reset
Real Time Clock (RTC)¶
Test that RTC functions properly (if present)
Serial Port¶
Serial debugging console is enabled and operational
Snappy Stress Tests¶
Run the
stress-ng
stressors for class cpuRun the
stress-ng
stressors for class cpu-cacheRun the
stress-ng
stressors for class memoryRun the
stress-ng
stressors for class osRun the
stress-ng
stressors for class pipeRun the
stress-ng
stressors for class schedulerRun the
stress-ng
stressors for class vm
Snappy Ubuntu Core¶
Automatically rollback after failed boot after upgrade
Re-apply the update after rollback using the “snappy” tool
Rollback system update using the “snappy” tool
SSH is enabled and operational
Test the snap install command is able to install hello-world snap.
Test that the snap list command is working.
Test the snap remove command is able to remove the hello-world snap.
Test that the snap find command is working.
Update the system using the “snappy” tool
WebDM (Device Manager) is enabled and operational
USB 3.0¶
USB 3.0 storage device insertion detected
USB 3.0 storage device removal detected
USB 3.0 storage device read & write works
Wi-Fi¶
Create 802.11a Wi-Fi Access Point
Create 802.11ad Wi-Fi Access Point
Create 802.11b Wi-Fi Access Point
Create 802.11g Wi-Fi Access Point
Connect to unencrypted 802.11ac Wi-Fi network
Connect to unencrypted 802.11b/g Wi-Fi network
Connect to unencrypted 802.11n Wi-Fi network
Connect to WPA-encrypted 802.11ac Wi-Fi network
Connect to WPA-encrypted 802.11b/g Wi-Fi network
Connect to WPA-encrypted 802.11n Wi-Fi network
System can discover Wi-Fi networks
Wireless Wide Area Network¶
Identify if WWAN module is missing
Verify a GSM broadband modem can create a data connection
Gather device info about WWAN modems
Zigbee¶
Identify if Zigbee module is missing
Get product identification information of the Zigbee device
Read the current licence key assigned to the Zigbee device
Scan for Zigbee PANs and print details of any found
I2C¶
Check number of detected I2C bus
Check if any I2C device detected
TPM2¶
Start the resource manager daemon
tpm2_takeownership
tpm2 NV tools
tpm2_listpcrs
tpm2_getrandom
tpm2_load
tpm2_loadexternal
tpm2_evictcontrol
tpm2_hash
tpm2_quote
tpm2_unseal
tpm2_akparse
tpm2_certify
tpm2_getpubak
tpm2_makecredential
tpm2_activecredential
tpm2_readpublic
tpm2_rsaencrypt
tpm2_rsadecrypt
tpm2_encryptdecrypt
tpm2_sign
tpm2_verifysignature