summaryrefslogtreecommitdiff
diff options
authorPMR <pmr@pmr-lander>2019-09-28 11:30:11 +0200
committerPMR <pmr@pmr-lander>2019-09-28 11:30:11 +0200
commit3de78a9cfb447a117f1e0af1a0a1ba20ca67f3dc (patch)
treedcf4d1a0302f1b8e35eacd6529580f011e703c51
parentfbe9746504a207bcb29afc10fec3ff5a0a5ccc8f (diff)
parent974145babe60757bc40e96cd4d1912c1cb163ca5 (diff)
Merge branch 'master' into release
-rwxr-xr-xbin/edid_cycle.py9
-rw-r--r--units/pig/jobs.pxu8
-rw-r--r--units/pig/resource.pxu5
-rw-r--r--units/pig/test-plan.pxu16
-rw-r--r--units/submission/jobs.pxu6
5 files changed, 37 insertions, 7 deletions
diff --git a/bin/edid_cycle.py b/bin/edid_cycle.py
index 7e3c97e..a6daf1c 100755
--- a/bin/edid_cycle.py
+++ b/bin/edid_cycle.py
@@ -10,6 +10,7 @@ https://docs.google.com/document/d/1kjgaazt2IMskn_HPjN7adXYx1O5zXc39DRayZ0PYh9Y
The command-line argument for the program is the address of the RaspberryPi
Host (optionally with a username), e.g.: pi@192.168.1.100
"""
+import os
import re
import subprocess
import sys
@@ -27,8 +28,8 @@ def check_resolution():
def change_edid(host, edid_file):
with open(edid_file, 'rb') as f:
- cmd = ['ssh', host, 'v4l2-ctl', '--set-edid=file=-,format=raw',
- '--fix-edid-checksums']
+ cmd = ['ssh', host, '/snap/bin/pigbox', 'run',
+ '\'v4l2-ctl --set-edid=file=-,format=raw --fix-edid-checksums\'']
subprocess.check_output(cmd, input=f.read())
@@ -38,7 +39,9 @@ def main():
failed = False
for res in ['2560x1440', '1920x1080', '1280x1024']:
print('changing EDID to {}'.format(res))
- change_edid(sys.argv[1], '{}.edid'.format(res))
+ edid_file = os.path.expandvars(os.path.join(
+ '$PLAINBOX_PROVIDER_DATA', 'edids', '{}.edid'.format(res)))
+ change_edid(sys.argv[1], edid_file)
time.sleep(1)
print('checking resolution... ', end='')
actual_res = check_resolution()
diff --git a/units/pig/jobs.pxu b/units/pig/jobs.pxu
new file mode 100644
index 0000000..2bbcaa6
--- /dev/null
+++ b/units/pig/jobs.pxu
@@ -0,0 +1,8 @@
+id: monitor/pig-edid
+category_id: com.canonical.plainbox::monitor
+plugin: shell
+estimated_duration: 60
+_summary: Check if the system automatically changes the resolution based on EDID
+requires: pig.hdmi_bridge == 'installed'
+environ: PIG_HOST
+command: edid_cycle.py $PIG_HOST
diff --git a/units/pig/resource.pxu b/units/pig/resource.pxu
new file mode 100644
index 0000000..eb62e22
--- /dev/null
+++ b/units/pig/resource.pxu
@@ -0,0 +1,5 @@
+id: pig
+plugin: resource
+_summary: Get Pig's capabilities
+environ: PIG_HOST
+command: ssh -q -o 'StrictHostKeyChecking=no' $PIG_HOST /snap/bin/pigbox capabilities
diff --git a/units/pig/test-plan.pxu b/units/pig/test-plan.pxu
new file mode 100644
index 0000000..071a927
--- /dev/null
+++ b/units/pig/test-plan.pxu
@@ -0,0 +1,16 @@
+id: pig-enabled-full
+unit: test plan
+_name: Tests using Pi Testing Rig
+_description: Tests using Pi Testing Rig
+include:
+nested_part:
+ pig-enabled-automated
+
+id: pig-enabled-automated
+unit: test plan
+_name: Tests using Pi Testing Rig (Automated)
+_description: Tests using Pi Testing Rig (Automated)
+include:
+ monitor/pig-edid
+bootstrap_include:
+ pig
diff --git a/units/submission/jobs.pxu b/units/submission/jobs.pxu
index a2f5382..b433fd3 100644
--- a/units/submission/jobs.pxu
+++ b/units/submission/jobs.pxu
@@ -22,10 +22,8 @@ requires:
dmi_present.state == 'supported'
user: root
command:
- dmidecode -t bios -t system | python3 -m plainbox dev parse dmidecode | \
- jq '[.[0]._attributes +
- {"category": .[0].category}, .[1]._attributes +
- {"category": .[1].category}]'
+ dmidecode | python3 -m plainbox dev parse dmidecode | \
+ jq '[.[] | ._attributes + {"category": .category}]'
estimated_duration: 1
_description: Attaches dmidecode output
_summary: Attaches json dumps of udev_resource raw dmi devices