From f33feb02a56471e8ea605cabc2d698a40890af6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yao=20Wei=20=28=E9=AD=8F=E9=8A=98=E5=BB=B7=29?= Date: Mon, 13 Sep 2021 10:23:55 +0800 Subject: Check whether screen orientation is fixed on laptops This is to address LP: #1895110, that the accelerometer on some laptops can cause the screen orientation change by tilting the machine, or is incorrect by default. --- bin/fixed_screen_orientation.sh | 22 ++++++++++++++++++++++ units/input/jobs.pxu | 16 ++++++++++++++++ units/input/test-plan.pxu | 4 +++- 3 files changed, 41 insertions(+), 1 deletion(-) create mode 100755 bin/fixed_screen_orientation.sh diff --git a/bin/fixed_screen_orientation.sh b/bin/fixed_screen_orientation.sh new file mode 100755 index 0000000..5fbe162 --- /dev/null +++ b/bin/fixed_screen_orientation.sh @@ -0,0 +1,22 @@ +#!/bin/sh +if ! (udevadm info --export-db | grep -q iio_device); then + echo "Screen orientation check PASSED:" + echo "no iio_device found in this device, therefore rotation should not happen." + exit 0 +fi + +if dbus-send --system --print-reply --dest=net.hadess.SensorProxy \ + /net/hadess/SensorProxy \ + org.freedesktop.DBus.Properties.Get string:net.hadess.SensorProxy string:HasAccelerometer | + grep -q "boolean true"; then + echo "Screen orientation check FAILED:" + echo "this device has an accelerometer that needs to be disabled." + echo "===" + # list IIO devices for reference + echo "udevadm info /sys/bus/iio/devices/iio*" + udevadm info /sys/bus/iio/devices/iio* + exit 1 +fi + +echo "Screen orientation check PASSED:" +echo "Accelerometer is not enabled." diff --git a/units/input/jobs.pxu b/units/input/jobs.pxu index 5f5cde0..7ae0667 100644 --- a/units/input/jobs.pxu +++ b/units/input/jobs.pxu @@ -75,3 +75,19 @@ _steps: 4. Double-click the left button with your {product}. _verification: Did these buttons work as expected? + +unit: template +template-resource: dmi +template-filter: dmi.category == 'CHASSIS' and dmi.product not in ('Tablet', 'Convertible', 'Detachable') +plugin: shell +category_id: com.canonical.plainbox::input +estimated_duration: 2 +id: input/fixed_screen_orientation_on_{product}_{__index__} +user: root +requires: + executable.name == 'udevadm' + executable.name == 'dbus-send' +command: fixed_screen_orientation.sh +_summary: Check whether screen orientation is fixed on {product} +_purpose: + This tests whether the display orientation of {product} is fixed, and cannot be altered by tilting {product}. diff --git a/units/input/test-plan.pxu b/units/input/test-plan.pxu index ef9cf75..1c87d1f 100644 --- a/units/input/test-plan.pxu +++ b/units/input/test-plan.pxu @@ -23,7 +23,9 @@ _name: Input tests (Automated) _description: Input tests (Automated) include: - + input/fixed_screen_orientation_on_.* certification-status=non-blocker +bootstrap_include: + dmi id: after-suspend-input-cert-full unit: test plan -- cgit v1.2.3