diff options
author | Jonathan Cave <jonathan.cave@canonical.com> | 2017-10-06 12:07:16 +0100 |
---|---|---|
committer | Jonathan Cave <jonathan.cave@canonical.com> | 2017-10-18 14:05:14 +0100 |
commit | 40f979c707edee5f4b8a41bf2e45142867564952 (patch) | |
tree | 7204df65cabf6e071170a90dbfcff8e2b7e96244 /units/wireless | |
parent | c1e95b2d2c4909a577542395ae34f8630c7fedb8 (diff) |
Import wireless tests form p-p-snappy
Use Jinja templating to handle requirment testing on snappy/non-snappy systems
Diffstat (limited to 'units/wireless')
-rw-r--r-- | units/wireless/jobs.pxu | 400 |
1 files changed, 122 insertions, 278 deletions
diff --git a/units/wireless/jobs.pxu b/units/wireless/jobs.pxu index 89868ef..2834c1d 100644 --- a/units/wireless/jobs.pxu +++ b/units/wireless/jobs.pxu @@ -1,234 +1,153 @@ -plugin: shell -category_id: com.canonical.plainbox::wireless -id: wireless/wireless_scanning -requires: - package.name == 'network-manager' - device.category == 'WIRELESS' +unit: template +template-resource: device +template-filter: device.category == 'WIRELESS' +template-engine: jinja2 +template-unit: job +id: wireless/wireless_scanning_{{ interface }} +_summary: Test system can discover Wi-Fi networks on {{ interface }} command: - rfkill unblock wlan wifi - if rfkill list wlan wifi | grep -q 'Hard blocked: yes'; then - echo "Hard block is applied to WiFi device. Please remove and retest." - exit 1 - fi - wireless_networks=`(nmcli -f SSID dev wifi list 2>/dev/null || nmcli -f SSID dev wifi)` - if [ `echo "$wireless_networks" | wc -l` -gt 1 ]; then - echo "Wireless networks discovered: " - echo "$wireless_networks" - exit 0 - fi - echo "No wireless networks discovered." - exit 1 -estimated_duration: 0.645 -_description: Wireless scanning test. It scans and reports on discovered APs. - + net_driver_info $NET_DRIVER_INFO + wifi_nmcli_test scan {{ interface }} plugin: shell category_id: com.canonical.plainbox::wireless -id: wireless/info_automated -requires: - package.name == 'network-manager' - device.category == 'WIRELESS' -command: udev_resource -f WIRELESS | awk "/interface: / { print \$2 }" | xargs -n 1 network_info -estimated_duration: 1.2 -_description: - This is an automated test to gather some info on the current state of your wireless devices. If no devices are found, the test will exit with an error. - -plugin: user-interact-verify -category_id: com.canonical.plainbox::wireless -id: wireless/wireless_connection -command: network_check -estimated_duration: 120.0 -requires: device.category == 'WIRELESS' +estimated_duration: 6 _description: - PURPOSE: - This test will check your wireless connection. - STEPS: - 1. Click on the Network icon in the panel. - 2. Select a network below the 'Wireless networks' section. - 3. Click "Test" to verify that it's possible to establish an HTTP connection. - VERIFICATION: - Did a notification show and was the connection correctly established? + Check system can find a wireless network AP nearby +flags: preserve-locale also-after-suspend +requires: + {%- if "SNAP_NAME" in __system_env__ %} + connections.slot == 'network-manager:service' and connections.plug == '{{ __system_env__["SNAP_NAME"] }}:network-manager' + {% endif -%} +unit: template +template-resource: device +template-filter: device.category == 'WIRELESS' +template-engine: jinja2 +template-unit: job +id: wireless/wireless_connection_wpa_bg_nm_{{ interface }} +_summary: Connect to WPA-encrypted 802.11b/g Wi-Fi network on {{ interface }} +_purpose: + Check system can connect to 802.11b/g AP with wpa security plugin: shell -category_id: com.canonical.plainbox::wireless -id: wireless/wireless_connection_wpa_bg -requires: - device.category == 'WIRELESS' - environment.ROUTERS == 'multiple' -user: root -environ: WPA_BG_SSID WPA_BG_PSK command: - trap "nmcli con delete id $WPA_BG_SSID" EXIT - if create_connection wifi $WPA_BG_SSID --security=wpa --key=$WPA_BG_PSK; then - connect_wireless # lp:1471663 - INTERFACE=`nmcli dev status | awk '/802-11-wireless|wifi/ {print $1}'` - iw dev $INTERFACE link - gateway_ping_test --interface=$INTERFACE - STATUS=$? - # We reconnect the Ethernet connection if any (lp:1471663) - WIRED=$(nmcli -f UUID,TYPE c | grep -oP ".*(?=\s+.*ethernet)") - if [[ ! -z $WIRED ]]; then - nmcli c up uuid $WIRED - fi - exit $STATUS - else - exit 1 - fi + net_driver_info $NET_DRIVER_INFO + wifi_nmcli_test secured {{ interface }} "$WPA_BG_SSID" "$WPA_BG_PSK" +category_id: com.canonical.plainbox::wireless estimated_duration: 30.0 -_description: - Tests that the systems wireless hardware can connect to a router using WPA - security and the 802.11b/g protocols. +flags: preserve-locale also-after-suspend +requires: + {%- if "SNAP_NAME" in __system_env__ %} + connections.slot == 'network-manager:service' and connections.plug == '{{ __system_env__["SNAP_NAME"] }}:network-manager' + {% endif -%} +unit: template +template-resource: device +template-filter: device.category == 'WIRELESS' +template-engine: jinja2 +template-unit: job +id: wireless/wireless_connection_open_bg_nm_{{ interface }} +_summary: Connect to unencrypted 802.11b/g Wi-Fi network on {{ interface }} +_purpose: + Check system can connect to insecure 802.11b/g AP plugin: shell -category_id: com.canonical.plainbox::wireless -id: wireless/wireless_connection_open_bg -requires: - device.category == 'WIRELESS' - environment.ROUTERS == 'multiple' -user: root -environ: OPEN_BG_SSID command: - trap "nmcli con delete id $OPEN_BG_SSID" EXIT - if create_connection wifi $OPEN_BG_SSID; then - connect_wireless # lp:1471663 - INTERFACE=`nmcli dev status | awk '/802-11-wireless|wifi/ {print $1}'` - iw dev $INTERFACE link - gateway_ping_test --interface=$INTERFACE - STATUS=$? - # We reconnect the Ethernet connection if any (lp:1471663) - WIRED=$(nmcli -f UUID,TYPE c | grep -oP ".*(?=\s+.*ethernet)") - if [[ ! -z $WIRED ]]; then - nmcli c up uuid $WIRED - fi - exit $STATUS - else - exit 1 - fi + net_driver_info $NET_DRIVER_INFO + wifi_nmcli_test open {{ interface }} "$OPEN_BG_SSID" +category_id: com.canonical.plainbox::wireless estimated_duration: 30.0 -_description: - Tests that the systems wireless hardware can connect to a router using no - security and the 802.11b/g protocols. +flags: preserve-locale also-after-suspend +requires: + {%- if "SNAP_NAME" in __system_env__ %} + connections.slot == 'network-manager:service' and connections.plug == '{{ __system_env__["SNAP_NAME"] }}:network-manager' + {% endif -%} +unit: template +template-resource: device +template-filter: device.category == 'WIRELESS' +template-engine: jinja2 +template-unit: job +id: wireless/wireless_connection_wpa_n_nm_{{ interface }} +_summary: Connect to WPA-encrypted 802.11n Wi-Fi network on {{ interface }} +_purpose: + Check system can connect to 802.11n AP with wpa security plugin: shell -category_id: com.canonical.plainbox::wireless -id: wireless/wireless_connection_wpa_n -requires: - device.category == 'WIRELESS' - environment.ROUTERS == 'multiple' -user: root -environ: WPA_N_SSID WPA_N_PSK command: - trap "nmcli con delete id $WPA_N_SSID" EXIT - if create_connection wifi $WPA_N_SSID --security=wpa --key=$WPA_N_PSK; then - connect_wireless # lp:1471663 - INTERFACE=`nmcli dev status | awk '/802-11-wireless|wifi/ {print $1}'` - iw dev $INTERFACE link - gateway_ping_test --interface=$INTERFACE - STATUS=$? - # We reconnect the Ethernet connection if any (lp:1471663) - WIRED=$(nmcli -f UUID,TYPE c | grep -oP ".*(?=\s+.*ethernet)") - if [[ ! -z $WIRED ]]; then - nmcli c up uuid $WIRED - fi - exit $STATUS - else - exit 1 - fi + net_driver_info $NET_DRIVER_INFO + wifi_nmcli_test secured {{ interface }} "$WPA_N_SSID" "$WPA_N_PSK" +category_id: com.canonical.plainbox::wireless estimated_duration: 30.0 -_description: - Tests that the systems wireless hardware can connect to a router using WPA - security and the 802.11n protocol. +flags: preserve-locale also-after-suspend +requires: + wireless_sta_protocol.{{ interface }}_n == 'supported' + {%- if "SNAP_NAME" in __system_env__ %} + connections.slot == 'network-manager:service' and connections.plug == '{{ __system_env__["SNAP_NAME"] }}:network-manager' + {% endif -%} +unit: template +template-resource: device +template-filter: device.category == 'WIRELESS' +template-engine: jinja2 +template-unit: job +id: wireless/wireless_connection_open_n_nm_{{ interface }} +_summary: Connect to unencrypted 802.11n Wi-Fi network on {{ interface }} +_purpose: + Check system can connect to insecure 802.11n AP plugin: shell -category_id: com.canonical.plainbox::wireless -id: wireless/wireless_connection_open_n -requires: - device.category == 'WIRELESS' - environment.ROUTERS == 'multiple' -user: root -environ: OPEN_N_SSID command: - trap "nmcli con delete id $OPEN_N_SSID" EXIT - if create_connection wifi $OPEN_N_SSID; then - connect_wireless # lp:1471663 - INTERFACE=`nmcli dev status | awk '/802-11-wireless|wifi/ {print $1}'` - iw dev $INTERFACE link - gateway_ping_test --interface=$INTERFACE - STATUS=$? - # We reconnect the Ethernet connection if any (lp:1471663) - WIRED=$(nmcli -f UUID,TYPE c | grep -oP ".*(?=\s+.*ethernet)") - if [[ ! -z $WIRED ]]; then - nmcli c up uuid $WIRED - fi - exit $STATUS - else - exit 1 - fi + net_driver_info $NET_DRIVER_INFO + wifi_nmcli_test open {{ interface }} "$OPEN_N_SSID" +category_id: com.canonical.plainbox::wireless estimated_duration: 30.0 -_description: - Tests that the systems wireless hardware can connect to a router using no - security and the 802.11n protocol. +flags: preserve-locale also-after-suspend +requires: + wireless_sta_protocol.{{ interface }}_n == 'supported' + {%- if "SNAP_NAME" in __system_env__ %} + connections.slot == 'network-manager:service' and connections.plug == '{{ __system_env__["SNAP_NAME"] }}:network-manager' + {% endif -%} +unit: template +template-resource: device +template-filter: device.category == 'WIRELESS' +template-engine: jinja2 +template-unit: job +id: wireless/wireless_connection_wpa_ac_nm_{{ interface }} +_summary: Connect to WPA-encrypted 802.11ac Wi-Fi network on {{ interface }} +_purpose: + Check system can connect to 802.11ac AP with wpa security plugin: shell -category_id: com.canonical.plainbox::wireless -id: wireless/wireless_connection_wpa_ac -requires: - device.category == 'WIRELESS' - environment.ROUTERS == 'multiple' - IEEE_80211.ac == 'supported' -user: root -environ: WPA_AC_SSID WPA_AC_PSK command: - trap "nmcli con delete id $WPA_AC_SSID" EXIT - if create_connection wifi $WPA_AC_SSID --security=wpa --key=$WPA_AC_PSK; then - connect_wireless # lp:1471663 - INTERFACE=`nmcli dev status | awk '/802-11-wireless|wifi/ {print $1}'` - iw dev $INTERFACE link - gateway_ping_test --interface=$INTERFACE - STATUS=$? - # We reconnect the Ethernet connection if any (lp:1471663) - WIRED=$(nmcli -f UUID,TYPE c | grep -oP ".*(?=\s+.*ethernet)") - if [[ ! -z $WIRED ]]; then - nmcli c up uuid $WIRED - fi - exit $STATUS - else - exit 1 - fi + net_driver_info $NET_DRIVER_INFO + wifi_nmcli_test secured {{ interface }} "$WPA_AC_SSID" "$WPA_AC_PSK" +category_id: com.canonical.plainbox::wireless estimated_duration: 30.0 -_description: - Tests that the systems wireless hardware can connect to a router using WPA - security and the 802.11ac protocol. +flags: preserve-locale also-after-suspend +requires: + wireless_sta_protocol.{{ interface }}_ac == 'supported' + {%- if "SNAP_NAME" in __system_env__ %} + connections.slot == 'network-manager:service' and connections.plug == '{{ __system_env__["SNAP_NAME"] }}:network-manager' + {% endif -%} +unit: template +template-resource: device +template-filter: device.category == 'WIRELESS' +template-engine: jinja2 +template-unit: job +id: wireless/wireless_connection_open_ac_nm_{{ interface }} +_summary: Connect to unencrypted 802.11ac Wi-Fi network on {{ interface }} +_purpose: + Check system can connect to insecure 802.11ac AP plugin: shell -category_id: com.canonical.plainbox::wireless -id: wireless/wireless_connection_open_ac -requires: - device.category == 'WIRELESS' - environment.ROUTERS == 'multiple' - IEEE_80211.ac == 'supported' -user: root -environ: OPEN_AC_SSID command: - trap "nmcli con delete id $OPEN_AC_SSID" EXIT - if create_connection wifi $OPEN_AC_SSID; then - connect_wireless # lp:1471663 - INTERFACE=`nmcli dev status | awk '/802-11-wireless|wifi/ {print $1}'` - iw dev $INTERFACE link - gateway_ping_test --interface=$INTERFACE - STATUS=$? - # We reconnect the Ethernet connection if any (lp:1471663) - WIRED=$(nmcli -f UUID,TYPE c | grep -oP ".*(?=\s+.*ethernet)") - if [[ ! -z $WIRED ]]; then - nmcli c up uuid $WIRED - fi - exit $STATUS - else - exit 1 - fi + net_driver_info $NET_DRIVER_INFO + wifi_nmcli_test open {{ interface }} "$OPEN_AC_SSID" +category_id: com.canonical.plainbox::wireless estimated_duration: 30.0 -_description: - Tests that the systems wireless hardware can connect to a router using no - security and the 802.11ac protocol. +flags: preserve-locale also-after-suspend +requires: + wireless_sta_protocol.{{ interface }}_ac == 'supported' + {%- if "SNAP_NAME" in __system_env__ %} + connections.slot == 'network-manager:service' and connections.plug == '{{ __system_env__["SNAP_NAME"] }}:network-manager' + {% endif -%} plugin: user-interact-verify category_id: com.canonical.plainbox::wireless @@ -525,78 +444,3 @@ command: estimated_duration: 330.0 _description: Tests the performance of a system's wireless connection through the iperf tool, using UDP packets. - -unit: template -template-resource: device -template-filter: - device.category == 'WIRELESS' -plugin: shell -category_id: com.canonical.plainbox::wireless -id: wireless/stress_performance_device{__index__}_{interface} -estimated_duration: 330.0 -requires: - package.name == 'iperf' -environ: TEST_TARGET_IPERF -user: root -command: network test -i {interface} -t stress -_description: - This test executes iperf to generate a load on the network device {__index__} ({interface}) and then performs a ping test to watch for dropped packets and very large latency periods. - -plugin: shell -category_id: com.canonical.plainbox::wireless -id: wireless/wireless_extension -requires: device.category == 'WIRELESS' -command: wireless_ext -estimated_duration: 1.2 -_description: - Test that the MAC80211 modules are loaded and wireless extensions are working. - -unit: template -template-resource: device -template-filter: device.category == 'WIRELESS' -plugin: shell -category_id: com.canonical.plainbox::wireless -id: wireless/iwconfig_check_device{__index__}_{interface} -estimated_duration: 1.2 -command: iwconfig {interface} -_description: - This test executes iwconfig requests against wireless device {__index__} ({interface}). - -plugin: user-interact-verify -category_id: com.canonical.plainbox::wireless -id: wireless/wireless_rfkill -command: rfkill list | zenity --text-info --title rfkill-Info -estimated_duration: 120.0 -requires: device.category == 'WIRELESS' -_description: - PURPOSE: - This test will check whether or not your driver responds to rfkill commands. - STEPS: - 1. Use the hardware switch on the side of your device to switch off wireless. - 2. If you do not have a hardware switch disable wireless from the network manager icon in the panel - 3. Click "Test" to verify that the hard or soft blocks are in place. - VERIFICATION: - Did the hard or soft blocks show on in the dialog? - -unit: template -template-resource: device -template-filter: device.category == 'WIRELESS' -plugin: user-interact-verify -category_id: com.canonical.plainbox::wireless -id: wireless/maximum_bandwidth_device{__index__}_{interface} -estimated_duration: 120.0 -requires: - package.name == 'zenity' - package.name == 'iperf' -environ: TEST_TARGET_IPERF -user: root -command: network test -i {interface} -t iperf 2>&1 | cat - <(echo; echo "Verify the result and click OK to decide on the outcome") | zenity --text-info --title 'mobile broadband max bw {interface}' -_purpose: - User verification of whether the observed transfer throughput is acceptable - for the type and maximum speed of wireless device {__index__} ({interface}). -_steps: - 1. Click "Test". - 2. Read the network test summary and confirm that the throughput is acceptable. - 3. If needed, click "Test" again to repeat the transfer test. -_verification: - Was the reported throughput acceptable for the type and maximum speed of this interface? |