Skip to content

Commit 1f925fe

Browse files
author
Benjamin Berg
committed
tests: Test suspend/resume and sysfs attributes in synaptics
1 parent 7b0093b commit 1f925fe

File tree

3 files changed

+186
-149
lines changed

3 files changed

+186
-149
lines changed

tests/synaptics/custom.pcapng

-10.5 KB
Binary file not shown.

tests/synaptics/custom.py

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
#!/usr/bin/python3
22

3+
import os
34
import gi
45
gi.require_version('FPrint', '2.0')
56
from gi.repository import FPrint, GLib
67

7-
ctx = GLib.main_context_default()
8+
import sys
9+
import traceback
10+
sys.excepthook = lambda *args : (traceback.print_exception(*args), sys.exit(1))
11+
812

913
c = FPrint.Context()
1014
c.enumerate()
@@ -13,6 +17,24 @@
1317
d = devices[0]
1418
del devices
1519

20+
usb_device = d.get_property('fpi-usb-device')
21+
bus_num = usb_device.get_bus()
22+
port = []
23+
while True:
24+
parent = usb_device.get_parent()
25+
if parent is None:
26+
break
27+
port.append(str(usb_device.get_port_number()))
28+
usb_device = parent
29+
port = '.'.join(port)
30+
31+
persist = f'/sys/bus/usb/devices/{bus_num}-{port}/power/persist'
32+
wakeup = f'/sys/bus/usb/devices/{bus_num}-{port}/power/wakeup'
33+
34+
# may not have written anything
35+
assert open(persist).read().strip() == "0"
36+
assert open(wakeup).read().strip() == "disabled"
37+
1638
assert d.get_driver() == "synaptics"
1739
assert not d.has_feature(FPrint.DeviceFeature.CAPTURE)
1840
assert d.has_feature(FPrint.DeviceFeature.IDENTIFY)
@@ -29,7 +51,7 @@
2951
template = FPrint.Print.new(d)
3052

3153
def enroll_progress(*args):
32-
assert d.get_finger_status() == FPrint.FingerStatusFlags.NEEDED
54+
#assert d.get_finger_status() == FPrint.FingerStatusFlags.NEEDED
3355
print('enroll progress: ' + str(args))
3456

3557
# List, enroll, list, verify, delete, list
@@ -41,6 +63,21 @@ def enroll_progress(*args):
4163

4264
print("verifying")
4365
assert d.get_finger_status() == FPrint.FingerStatusFlags.NONE
66+
67+
# Inject a suspend/resume cycle into the verify
68+
def suspend_resume():
69+
d.suspend_sync()
70+
assert open(persist).read().strip() == "0"
71+
assert open(wakeup).read().strip() == "enabled"
72+
73+
assert open(persist, 'w').write('0\n')
74+
d.resume_sync()
75+
# This tests that libfprint doesn't write if the value is correct
76+
# (i.e. the trailing \ would be lost inside umockdev if written)
77+
assert open(persist).read() == "0\n"
78+
assert open(wakeup).read().strip() == "disabled"
79+
80+
GLib.idle_add(suspend_resume, priority=GLib.PRIORITY_HIGH)
4481
verify_res, verify_print = d.verify_sync(p)
4582
assert d.get_finger_status() == FPrint.FingerStatusFlags.NONE
4683
print("verify done")

0 commit comments

Comments
 (0)