summaryrefslogtreecommitdiff
diff options
-rwxr-xr-xbin/ansi_parser2
-rwxr-xr-xbin/audio_driver_info2
-rwxr-xr-xbin/audio_settings2
-rwxr-xr-xbin/brightness_test2
-rwxr-xr-xbin/color_depth_info2
-rwxr-xr-xbin/dmitest2
-rwxr-xr-xbin/fresh_rate_info2
-rwxr-xr-xbin/gateway_ping_test2
-rwxr-xr-xbin/gpu_test2
-rwxr-xr-xbin/gputest_benchmark2
-rwxr-xr-xbin/graphic_memory_info2
-rwxr-xr-xbin/graphics_modes_info2
-rwxr-xr-xbin/graphics_stress_test2
-rwxr-xr-xbin/hdd_parking2
-rwxr-xr-xbin/ipmi_test20
-rwxr-xr-xbin/mm-test2
-rwxr-xr-xbin/network68
-rwxr-xr-xbin/rendercheck_test2
-rwxr-xr-xbin/rotation_test2
-rwxr-xr-xbin/sleep_test2
-rwxr-xr-xbin/volume_test2
-rwxr-xr-xbin/window_test2
-rwxr-xr-xbin/xml_sanitize2
-rw-r--r--jobs/audio.txt.in5
-rw-r--r--jobs/bluetooth.txt.in2
-rw-r--r--jobs/ethernet.txt.in1
-rw-r--r--jobs/graphics.txt.in7
-rw-r--r--jobs/hibernate.txt.in2
-rw-r--r--jobs/miscellanea.txt.in7
-rw-r--r--jobs/monitor.txt.in12
-rw-r--r--jobs/submission.txt.in86
-rw-r--r--jobs/suspend.txt.in10
-rwxr-xr-xmanage.py2
-rw-r--r--po/bg.po4
-rw-r--r--po/de.po4
-rw-r--r--po/fr.po4
-rw-r--r--po/pl.po4
-rw-r--r--po/zh_TW.po4
38 files changed, 234 insertions, 50 deletions
diff --git a/bin/ansi_parser b/bin/ansi_parser
index 9082609..c7cf26c 100755
--- a/bin/ansi_parser
+++ b/bin/ansi_parser
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
import sys
from optparse import OptionParser
diff --git a/bin/audio_driver_info b/bin/audio_driver_info
index a058064..b9bfaf8 100755
--- a/bin/audio_driver_info
+++ b/bin/audio_driver_info
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
import sys
import re
diff --git a/bin/audio_settings b/bin/audio_settings
index 847d620..91978be 100755
--- a/bin/audio_settings
+++ b/bin/audio_settings
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
import sys
diff --git a/bin/brightness_test b/bin/brightness_test
index 5e114f5..818796e 100755
--- a/bin/brightness_test
+++ b/bin/brightness_test
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# brightness_test
diff --git a/bin/color_depth_info b/bin/color_depth_info
index a8a42df..4137193 100755
--- a/bin/color_depth_info
+++ b/bin/color_depth_info
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# color_depth_info
diff --git a/bin/dmitest b/bin/dmitest
index fca67ca..27cfc8e 100755
--- a/bin/dmitest
+++ b/bin/dmitest
@@ -112,7 +112,7 @@ def standard_tests(args, stream):
"""
if args.test_type == 'server':
if not find_in_section(stream, 'Chassis Information', 'Type:',
- ['server', 'rack mount', 'blade',
+ ['server', 'rack mount', 'blade', 'other',
'expansion chassis', 'multi-system', 'tower'],
False):
print("*** Incorrect or unknown server chassis type!")
diff --git a/bin/fresh_rate_info b/bin/fresh_rate_info
index 7102067..838e5a6 100755
--- a/bin/fresh_rate_info
+++ b/bin/fresh_rate_info
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# fresh_rate_info
diff --git a/bin/gateway_ping_test b/bin/gateway_ping_test
index 87af5d3..22aec6a 100755
--- a/bin/gateway_ping_test
+++ b/bin/gateway_ping_test
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
# This file is part of Checkbox.
#
# Copyright 2007-2014 Canonical Ltd.
diff --git a/bin/gpu_test b/bin/gpu_test
index 028eedc..bd22acc 100755
--- a/bin/gpu_test
+++ b/bin/gpu_test
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
# Copyright 2013 Canonical Ltd.
# Written by:
# Sylvain Pineau <sylvain.pineau@canonical.com>
diff --git a/bin/gputest_benchmark b/bin/gputest_benchmark
index 99af634..4748e71 100755
--- a/bin/gputest_benchmark
+++ b/bin/gputest_benchmark
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
# This file is part of Checkbox.
#
# Copyright 2013 Canonical Ltd.
diff --git a/bin/graphic_memory_info b/bin/graphic_memory_info
index 46f3dee..f9f8f64 100755
--- a/bin/graphic_memory_info
+++ b/bin/graphic_memory_info
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# graphic_memory_info
diff --git a/bin/graphics_modes_info b/bin/graphics_modes_info
index 90b887f..c585324 100755
--- a/bin/graphics_modes_info
+++ b/bin/graphics_modes_info
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# graphics_modes_info
diff --git a/bin/graphics_stress_test b/bin/graphics_stress_test
index f930bf5..bab2221 100755
--- a/bin/graphics_stress_test
+++ b/bin/graphics_stress_test
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# graphics_stress_test
diff --git a/bin/hdd_parking b/bin/hdd_parking
index 18151b4..6d34904 100755
--- a/bin/hdd_parking
+++ b/bin/hdd_parking
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# hdd_parking
diff --git a/bin/ipmi_test b/bin/ipmi_test
index 32d5773..8be8b96 100755
--- a/bin/ipmi_test
+++ b/bin/ipmi_test
@@ -1,27 +1,31 @@
#!/bin/bash
# Now make sure the modules are loaded
-for module in ipmi_si ipmi_devintf ipmi_msghandler; do
+for module in ipmi_si ipmi_devintf ipmi_powernv ipmi_ssif ipmi_msghandler; do
if lsmod |grep -q $module; then
echo "$module already loaded"
else
- echo "Loading $module..."
- modprobe $module
+ echo "Attempting to load $module..."
+ modprobe $module > /dev/null
result=$?
# If the IPMI drivers don't load, it could be the system has no BMC, or
- # the IPMI driver is bad. We should error and Fail here.
+ # the IPMI driver is bad or not applicable to this SUT.
if [ $result -eq 1 ]; then
- echo "ERROR: Unable to load module $module" >&2
- echo "Aborting IPMI test run." >&2
- exit 1
+ echo
+ echo "*******************************************"
+ echo "WARNING: Unable to load module $module"
+ echo "Continuing run, but in-band IPMI may fail"
+ echo "*******************************************"
+ echo
else
- echo "Successfully loaded module $module"
+ echo "Successfully loaded module $module\n\n"
fi
fi
done
# Now get our info from ipmitool to make sure communication works
# First lest check chassis status
+echo
echo "Checking for chassis status"
ipmitool chassis status && echo "Successfully got chassis status" && chassis=0 || chassis=1
echo "Checking to see if we can get sensor data"
diff --git a/bin/mm-test b/bin/mm-test
index 2c177aa..236504a 100755
--- a/bin/mm-test
+++ b/bin/mm-test
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
# -*- Mode: python; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
#
# This program is free software; you can redistribute it and/or modify
diff --git a/bin/network b/bin/network
index a7f4b88..7ba8ef0 100755
--- a/bin/network
+++ b/bin/network
@@ -26,6 +26,7 @@ from argparse import (
)
import datetime
import fcntl
+import ipaddress
import logging
import os
import re
@@ -296,14 +297,14 @@ class Interface(socket.socket):
logging.error(e.output)
ethinfo = None
finally:
- expression = '(\\d+)(base)([A-Z]+)'
+ expression = '(\\d+)(base)([A-Z]+)|(\d+)(Mb/s)'
regex = re.compile(expression)
speeds = [0]
if ethinfo:
for i in ethinfo:
hit = regex.search(i)
if hit:
- speeds.append(int(hit.group(1)))
+ speeds.append(int(re.sub("\D", "", hit.group(0))))
return max(speeds)
@property
@@ -402,6 +403,50 @@ def run_test(args, test_target):
return error_number
+def make_target_list(iface, test_targets, log_warnings):
+ """Convert comma-separated string of test targets into a list form.
+
+ Converts test target list in string form into Python list form, omitting
+ entries that are not on the current network segment.
+ :param iface:
+ Name of network interface device (eth0, etc.)
+ :param test_targets:
+ Input test targets as string of comma-separated IP addresses or
+ hostnames
+ :param emit_warnings:
+ Whether to log warning messages
+ :returns:
+ List form of input string, minus invalid values
+ """
+ test_targets_list = test_targets.split(",")
+ net = ipaddress.IPv4Network("{}/{}".format(Interface(iface).ipaddress,
+ Interface(iface).netmask),
+ False)
+ first_addr = net.network_address + 1
+ last_addr = first_addr + net.num_addresses - 2
+ return_list = list(test_targets_list)
+ for test_target in test_targets_list:
+ try:
+ test_target_ip = socket.gethostbyname(test_target)
+ except OSError:
+ test_target_ip = test_target
+ try:
+ target = ipaddress.IPv4Address(test_target_ip)
+ if (target < first_addr) or (target > last_addr):
+ if log_warnings:
+ logging.warning("test server {} ({}) is NOT ".
+ format(test_target, target))
+ logging.warning("within {}; skipping".format(net))
+ return_list.remove(test_target)
+ except ValueError:
+ if log_warnings:
+ logging.warning("Invalid address: {}; skipping".
+ format(test_target))
+ return_list.remove(test_target)
+ return_list.reverse()
+ return return_list
+
+
def interface_test(args):
if not ("test_type" in vars(args)):
return
@@ -412,11 +457,12 @@ def interface_test(args):
if (args.test_type.lower() == "iperf" or
args.test_type.lower() == "stress"):
test_targets = test_parameters["test_target_iperf"]
+ test_targets_list = make_target_list(args.interface, test_targets, True)
# Validate that we got reasonable values
- if not test_targets or "example.com" in test_targets:
+ if not test_targets_list or "example.com" in test_targets:
# Default values found in config file
- logging.error("Target server has not been supplied.")
+ logging.error("Valid target server has not been supplied.")
logging.info("Configuration settings can be configured 3 different "
"ways:")
logging.info("1- If calling the script directly, pass the --target "
@@ -462,8 +508,6 @@ def interface_test(args):
error_number = 3
if error_number == 0:
- test_targets_list = test_targets.split(",")
- test_targets_list.reverse()
start_time = datetime.datetime.now()
first_loop = True
# Keep testing until a success or we run out of both targets and time
@@ -477,8 +521,7 @@ def interface_test(args):
if not test_targets_list:
logging.info(" Exhausted test target list; trying again "
.center(60, "="))
- test_targets_list = test_targets.split(",")
- test_targets_list.reverse()
+ test_targets_list = make_target_list(args.interface, test_targets, False)
time.sleep(30)
first_loop = False
@@ -537,6 +580,11 @@ network test -i eth0 -t iperf --target 192.168.0.1
NOTE: The iperf test requires an iperf server running on the same network
segment that the test machine is running on.
+Also, you can use iperf3 rather than iperf2 by specifying the -3 or --iperf3
+option like so:
+
+network test -i eth0 -t iperf -3 --target 192.168.0.1
+
Configuration
=============
@@ -585,7 +633,9 @@ TEST_TARGET_IPERF = iperf-server.example.com
choices=("iperf", "stress"), default="iperf",
help=("[iperf *Default*]"))
test_parser.add_argument(
- '-3', '--iperf3', default=False, action="store_true")
+ '-3', '--iperf3', default=False, action="store_true",
+ help=("Tells the script to use iperf3 for testing, rather than the "
+ "default of iperf2"))
test_parser.add_argument('--target', type=str)
action.add_argument(
'--datasize', type=str,
diff --git a/bin/rendercheck_test b/bin/rendercheck_test
index f7d907c..89e07e9 100755
--- a/bin/rendercheck_test
+++ b/bin/rendercheck_test
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# rendercheck_test
diff --git a/bin/rotation_test b/bin/rotation_test
index 5187401..258a881 100755
--- a/bin/rotation_test
+++ b/bin/rotation_test
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# rotation_test
diff --git a/bin/sleep_test b/bin/sleep_test
index f28b0a0..423fd6c 100755
--- a/bin/sleep_test
+++ b/bin/sleep_test
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
'''
Program to automate system entering and resuming from sleep states
diff --git a/bin/volume_test b/bin/volume_test
index d254192..a949f93 100755
--- a/bin/volume_test
+++ b/bin/volume_test
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
import sys
import re
diff --git a/bin/window_test b/bin/window_test
index e6bff73..23b6f3b 100755
--- a/bin/window_test
+++ b/bin/window_test
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# window_test
diff --git a/bin/xml_sanitize b/bin/xml_sanitize
index 0cdbc8e..7d43b83 100755
--- a/bin/xml_sanitize
+++ b/bin/xml_sanitize
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
import errno
import io
import sys
diff --git a/jobs/audio.txt.in b/jobs/audio.txt.in
index fc7c4c4..b9bf58b 100644
--- a/jobs/audio.txt.in
+++ b/jobs/audio.txt.in
@@ -38,6 +38,7 @@ _description:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
plugin: user-interact-verify
category_id: 2013.com.canonical.plainbox::audio
id: audio/{index}_playback_hdmi_{product_slug}
@@ -65,6 +66,7 @@ _verification:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
plugin: user-interact-verify
category_id: 2013.com.canonical.plainbox::audio
id: audio/{index}_playback_displayport_{product_slug}
@@ -92,6 +94,7 @@ _verification:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
plugin: user-interact-verify
category_id: 2013.com.canonical.plainbox::audio
id: audio/{index}_playback_thunderbolt_{product_slug}
@@ -120,6 +123,7 @@ _verification:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
plugin: user-interact-verify
category_id: 2013.com.canonical.plainbox::audio
id: audio/{index}_playback_thunderbolt3_{product_slug}
@@ -148,6 +152,7 @@ _verification:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
plugin: user-interact-verify
category_id: 2013.com.canonical.plainbox::audio
id: audio/{index}_playback_type-c_displayport_{product_slug}
diff --git a/jobs/bluetooth.txt.in b/jobs/bluetooth.txt.in
index 30d7e90..5a4bd7c 100644
--- a/jobs/bluetooth.txt.in
+++ b/jobs/bluetooth.txt.in
@@ -52,7 +52,7 @@ _description:
plugin: manual
category_id: 2013.com.canonical.plainbox::bluetooth
id: bluetooth/file-transfer
-depends: bluetooth/browse-files bluetooth/detect-output
+depends: bluetooth/detect-output
estimated_duration: 120.0
_description:
PURPOSE:
diff --git a/jobs/ethernet.txt.in b/jobs/ethernet.txt.in
index 151325b..f57870e 100644
--- a/jobs/ethernet.txt.in
+++ b/jobs/ethernet.txt.in
@@ -94,6 +94,7 @@ _summary: ethtool check for NIC {interface}
estimated_duration: 330.0
requires:
package.name == 'ethtool'
+user: root
command: ethtool {interface}
_description:
This test executes ethtool requests against ethernet device {__index__} ({interface}).
diff --git a/jobs/graphics.txt.in b/jobs/graphics.txt.in
index ad4bce2..cb50fd5 100644
--- a/jobs/graphics.txt.in
+++ b/jobs/graphics.txt.in
@@ -1,5 +1,6 @@
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
plugin: shell
category_id: 2013.com.canonical.plainbox::graphics
id: graphics/{index}_driver_version_{product_slug}
@@ -100,6 +101,7 @@ _description:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
plugin: shell
category_id: 2013.com.canonical.plainbox::graphics
id: graphics/{index}_minimum_resolution_{product_slug}
@@ -117,6 +119,7 @@ _description:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
id: graphics/{index}_maximum_resolution_{product_slug}
plugin: user-interact-verify
category_id: 2013.com.canonical.plainbox::graphics
@@ -209,6 +212,7 @@ _summary: Test that VESA drivers are not in use
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
plugin: user-interact-verify
category_id: 2013.com.canonical.plainbox::graphics
id: graphics/{index}_cycle_resolution_{product_slug}
@@ -229,6 +233,7 @@ _description:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
plugin: user-interact-verify
category_id: 2013.com.canonical.plainbox::graphics
id: graphics/{index}_rotation_{product_slug}
@@ -249,6 +254,7 @@ _description:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
plugin: shell
category_id: 2013.com.canonical.plainbox::graphics
id: graphics/{index}_compiz_check_{product_slug}
@@ -390,6 +396,7 @@ _description:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
plugin: manual
category_id: 2013.com.canonical.plainbox::graphics
id: graphics/{index}_switch_card_{product_slug}
diff --git a/jobs/hibernate.txt.in b/jobs/hibernate.txt.in
index 954ef2c..e83b293 100644
--- a/jobs/hibernate.txt.in
+++ b/jobs/hibernate.txt.in
@@ -28,6 +28,7 @@ _description:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
requires:
sleep.disk == 'supported'
rtc.state == 'supported'
@@ -72,6 +73,7 @@ _description: attaches log from single hibernate/resume test to results
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
plugin: attachment
category_id: 2013.com.canonical.plainbox::hibernate
id: power-management/{index}_hibernate-single-log-attach_{product_slug}
diff --git a/jobs/miscellanea.txt.in b/jobs/miscellanea.txt.in
index 8710fed..b5544c2 100644
--- a/jobs/miscellanea.txt.in
+++ b/jobs/miscellanea.txt.in
@@ -13,6 +13,13 @@ depends:
lsblk_attachment
sysfs_attachment
udev_attachment
+ dkms_info_json
+ udev_json
+ raw_devices_dmi_json
+ modprobe_json
+ lspci_standard_config_json
+ dell_bto_xml_attachment_json
+ recovery_info_attachment_json
estimated_duration: 1.0
command: true
_summary:
diff --git a/jobs/monitor.txt.in b/jobs/monitor.txt.in
index bd4b21e..cb12918 100644
--- a/jobs/monitor.txt.in
+++ b/jobs/monitor.txt.in
@@ -1,5 +1,6 @@
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
id: monitor/{index}_vga_{product_slug}
requires: display.vga == 'supported' or display.dp == 'supported'
plugin: manual
@@ -14,6 +15,7 @@ _verification:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
id: monitor/{index}_dvi_{product_slug}
requires: display.dvi == 'supported'
plugin: manual
@@ -28,6 +30,7 @@ _verification:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
id: monitor/{index}_displayport_{product_slug}
requires: display.dp == 'supported'
plugin: manual
@@ -42,6 +45,7 @@ _verification:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
id: monitor/{index}_hdmi_{product_slug}
requires: display.hdmi == 'supported'
plugin: manual
@@ -56,6 +60,7 @@ _verification:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
id: monitor/{index}_svideo_{product_slug}
requires: display.svideo == 'supported'
plugin: manual
@@ -70,6 +75,7 @@ _verification:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
id: monitor/{index}_rca_{product_slug}
requires: display.rca == 'supported'
plugin: manual
@@ -84,6 +90,7 @@ _verification:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
id: monitor/{index}_multi-head_{product_slug}
requires: dmi.product in ['Desktop','Low Profile Desktop','Tower','Mini Tower', 'Space-saving']
plugin: manual
@@ -101,6 +108,7 @@ _verification:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
id: monitor/{index}_powersaving_{product_slug}
plugin: user-interact-verify
category_id: 2013.com.canonical.plainbox::monitor
@@ -115,6 +123,7 @@ _verification:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
id: monitor/{index}_dim_brightness_{product_slug}
requires: dmi.product in ['Notebook','Laptop','Portable','All In One','All-In-One','AIO']
plugin: user-interact-verify
@@ -132,6 +141,7 @@ _verification:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
id: monitor/{index}_thunderbolt_{product_slug}
imports: from 2013.com.canonical.plainbox import manifest
requires: manifest.has_thunderbolt == 'True'
@@ -152,6 +162,7 @@ _verification:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
id: monitor/{index}_thunderbolt3_{product_slug}
imports: from 2013.com.canonical.plainbox import manifest
requires: manifest.has_thunderbolt3 == 'True'
@@ -173,6 +184,7 @@ _verification:
unit: template
template-resource: graphics_card
id: monitor/{index}_type-c_displayport_{product_slug}
+template-filter: graphics_card.prime_gpu_offload == 'Off'
imports: from 2013.com.canonical.plainbox import manifest
requires: manifest.has_usb_type_c == 'True'
estimated_duration: 15.0
diff --git a/jobs/submission.txt.in b/jobs/submission.txt.in
new file mode 100644
index 0000000..fcd61e6
--- /dev/null
+++ b/jobs/submission.txt.in
@@ -0,0 +1,86 @@
+id: dkms_info_json
+plugin: attachment
+category_id: 2013.com.canonical.plainbox::info
+command: dkms_info --format json | plainbox dev parse dkms-info
+_description: Attaches json dumps of installed dkms package information.
+_summary: Attaches json dumps of installed dkms package information.
+
+id: udev_json
+plugin: attachment
+category_id: 2013.com.canonical.plainbox::info
+command: udevadm info --export-db | plainbox dev parse udevadm
+_description: Attaches json dumps of udev_resource
+
+unit: packaging meta-data
+os-id: debian
+Depends: jq
+
+unit: packaging meta-data
+os-id: debian
+Depends: plainbox
+
+id: raw_devices_dmi_json
+plugin: attachment
+category_id: 2013.com.canonical.plainbox::info
+requires: package.name == 'dmidecode'
+user: root
+command:
+ dmidecode -t bios -t system | plainbox dev parse dmidecode | \
+ jq --indent 4 '{"raw-devices-dmi": [.[0]."_attributes" +
+ {"category": .[0]."category"}, .[1]."_attributes" +
+ {"category": .[1]."category"}]}'
+estimated_duration: 1
+_description: Attaches dmidecode output
+_summary: Attaches json dumps of udev_resource raw dmi devices
+
+id: modprobe_json
+plugin: attachment
+category_id: 2013.com.canonical.plainbox::info
+command:
+ find /etc/modprobe.* -name \*.conf | xargs cat | plainbox dev parse modprobe |
+ jq --indent 4 'to_entries | {"modprobe-info":
+ map({"module": .key, "options": .value})}'
+estimated_duration: 0.015
+_description: Attaches the contents of the various modprobe conf files.
+_summary: Attach the contents of /etc/modprobe.*
+
+id: lspci_standard_config_json
+_summary: Attach PCI configuration space hex dump
+plugin: attachment
+category_id: 2013.com.canonical.plainbox::info
+command: lspci -x | plainbox dev parse pci-subsys-id
+estimated_duration: 0.1
+_description: Attaches a hex dump of the standard part of the PCI configuration
+ space for all PCI devices.
+
+id: dell_bto_xml_attachment_json
+plugin: attachment
+category_id: 2013.com.canonical.plainbox::info
+depends: info/detect_dell_recovery
+requires: package.name == 'dell-recovery'
+user: root
+estimated_duration: 0.5
+_summary: Attach the bto.xml in Dell recovery partition
+_description:
+ bto.xml is basically a Fish manifest
+ The information include:
+ - fish packages
+ - dell recovery stage 2 boot log
+command: recovery_info file bto.xml | plainbox dev parse bto
+
+id: recovery_info_attachment_json
+plugin: attachment
+category_id: 2013.com.canonical.plainbox::info
+depends: info/detect_recovery
+requires: package.name == 'dell-recovery' or package.name == 'ubuntu-recovery'
+user: root
+estimated_duration: 0.2
+_summary: Attach the recovery partition versions
+_description:
+ Attach the recovery partition version
+ image_version is the preinstalled OS image version
+ bto_version is only for dell_recovery
+ Example:
+ image_version: somerville-trusty-amd64-20140620-0
+ bto_version: A00_dell-bto-trusty-houston-15-A11-iso-20141203-0.iso
+command: recovery_info version | plainbox dev parse recovery-info
diff --git a/jobs/suspend.txt.in b/jobs/suspend.txt.in
index d304970..533a5ce 100644
--- a/jobs/suspend.txt.in
+++ b/jobs/suspend.txt.in
@@ -15,6 +15,7 @@ command: xrandr -q |grep '*'| awk '{print $1}' > $PLAINBOX_SESSION_SHARE/resolut
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
plugin: shell
category_id: 2013.com.canonical.plainbox::suspend
id: suspend/{index}_resolution_before_suspend_{product_slug}
@@ -234,6 +235,7 @@ _description:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
plugin: user-interact-verify
category_id: 2013.com.canonical.plainbox::suspend
id: suspend/{index}_suspend_after_switch_to_card_{product_slug}
@@ -316,6 +318,7 @@ _description:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
plugin: attachment
category_id: 2013.com.canonical.plainbox::suspend
id: suspend/{index}_suspend-single-log-attach_{product_slug}
@@ -355,6 +358,7 @@ _description:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
plugin: shell
category_id: 2013.com.canonical.plainbox::suspend
id: suspend/{index}_suspend-time-check_{product_slug}
@@ -415,6 +419,7 @@ command: xrandr -q |grep '*'| awk '{print $1}' | diff $PLAINBOX_SESSION_SHARE/re
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
plugin: shell
category_id: 2013.com.canonical.plainbox::suspend
id: suspend/{index}_resolution_after_suspend_{product_slug}
@@ -596,6 +601,7 @@ _description:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
plugin: manual
category_id: 2013.com.canonical.plainbox::suspend
id: suspend/{index}_display_after_suspend_{product_slug}
@@ -1515,6 +1521,7 @@ _description:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
plugin: user-interact-verify
category_id: 2013.com.canonical.plainbox::suspend
id: suspend/{index}_cycle_resolutions_after_suspend_{product_slug}
@@ -1550,6 +1557,7 @@ _description: This attaches screenshots from the suspend/cycle_resolutions_after
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
plugin: attachment
category_id: 2013.com.canonical.plainbox::suspend
id: suspend/{index}_xrandr_screens_after_suspend.tar.gz
@@ -2699,6 +2707,7 @@ _description:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
plugin: shell
category_id: 2013.com.canonical.plainbox::suspend
id: suspend/{index}_compiz_check_after_suspend_{product_slug}
@@ -2796,6 +2805,7 @@ _description:
unit: template
template-resource: graphics_card
+template-filter: graphics_card.prime_gpu_offload == 'Off'
plugin: shell
category_id: 2013.com.canonical.plainbox::suspend
id: suspend/{index}_driver_version_after_suspend_{product_slug}
diff --git a/manage.py b/manage.py
index 1e94be9..76d496c 100755
--- a/manage.py
+++ b/manage.py
@@ -30,7 +30,7 @@ class InstallPyModules(InstallCommand):
setup(
name='plainbox-provider-checkbox',
namespace='2013.com.canonical.certification',
- version="0.31",
+ version="0.33.0rc1",
description=N_("Checkbox provider"),
gettext_domain='plainbox-provider-checkbox',
strict=False, deprecated=False,
diff --git a/po/bg.po b/po/bg.po
index 007bb72..ad306d9 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2016-09-10 05:49+0000\n"
-"X-Generator: Launchpad (build 18186)\n"
+"X-Launchpad-Export-Date: 2016-09-28 05:53+0000\n"
+"X-Generator: Launchpad (build 18204)\n"
#. description
#: ../jobs/audio.txt.in:9 ../units/dock.pxu:108
diff --git a/po/de.po b/po/de.po
index 970ea75..7f3520c 100644
--- a/po/de.po
+++ b/po/de.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2016-09-10 05:49+0000\n"
-"X-Generator: Launchpad (build 18186)\n"
+"X-Launchpad-Export-Date: 2016-09-28 05:53+0000\n"
+"X-Generator: Launchpad (build 18204)\n"
#. description
#: ../jobs/audio.txt.in:9 ../units/dock.pxu:108
diff --git a/po/fr.po b/po/fr.po
index 1cab411..9f73e66 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2016-09-10 05:49+0000\n"
-"X-Generator: Launchpad (build 18186)\n"
+"X-Launchpad-Export-Date: 2016-09-28 05:53+0000\n"
+"X-Generator: Launchpad (build 18204)\n"
#. description
#: ../jobs/audio.txt.in:9 ../units/dock.pxu:108
diff --git a/po/pl.po b/po/pl.po
index 1fa4d62..baf1a43 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2016-09-10 05:49+0000\n"
-"X-Generator: Launchpad (build 18186)\n"
+"X-Launchpad-Export-Date: 2016-09-28 05:53+0000\n"
+"X-Generator: Launchpad (build 18204)\n"
"Language: Polish\n"
#. description
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 3bece50..bc35dc8 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2016-09-10 05:50+0000\n"
-"X-Generator: Launchpad (build 18186)\n"
+"X-Launchpad-Export-Date: 2016-09-28 05:54+0000\n"
+"X-Generator: Launchpad (build 18204)\n"
#. description
#: ../jobs/audio.txt.in:9 ../units/dock.pxu:108