diff options
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} @@ -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, @@ -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 @@ -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 @@ -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 @@ -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 |
