diff options
author | Yao Wei (魏銘廷) <yao.wei@canonical.com> | 2021-09-13 10:23:55 +0800 |
---|---|---|
committer | Yao Wei (魏銘廷) <yao.wei@canonical.com> | 2021-09-22 10:45:40 +0800 |
commit | f33feb02a56471e8ea605cabc2d698a40890af6f (patch) | |
tree | 038a4b7f720041640bcb8c3f96c87051e2ab172b | |
parent | 7e6a412cf72fab51b113c712bc37b98d1481f0f8 (diff) |
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.
-rwxr-xr-x | bin/fixed_screen_orientation.sh | 22 | ||||
-rw-r--r-- | units/input/jobs.pxu | 16 | ||||
-rw-r--r-- | units/input/test-plan.pxu | 4 |
3 files changed, 41 insertions, 1 deletions
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 |