mirror of
https://gitlab.freedesktop.org/upower/power-profiles-daemon.git
synced 2026-05-07 02:38:05 +02:00
tests: Factor out creation of dytc device
This commit is contained in:
parent
d9beb68863
commit
169a8cd788
1 changed files with 24 additions and 26 deletions
|
|
@ -107,9 +107,13 @@ class Tests(dbusmock.DBusTestCase):
|
|||
self.log = None
|
||||
self.daemon = None
|
||||
|
||||
# Used for dytc devices
|
||||
self.tp_acpi = None
|
||||
|
||||
def tearDown(self):
|
||||
del self.testbed
|
||||
self.stop_daemon()
|
||||
del self.tp_acpi
|
||||
|
||||
# on failures, print daemon log
|
||||
errors = [x[1] for x in self._outcome.errors if x[1]]
|
||||
|
|
@ -208,6 +212,12 @@ class Tests(dbusmock.DBusTestCase):
|
|||
return f.read()
|
||||
return None
|
||||
|
||||
def create_dytc_device(self):
|
||||
self.tp_acpi = self.testbed.add_device('platform', 'thinkpad_acpi', None,
|
||||
['dytc_lapmode', '0', 'dytc_perfmode', 'H'],
|
||||
[ 'DEVPATH', '/devices/platform/thinkpad_acpi' ]
|
||||
)
|
||||
|
||||
def assertEventually(self, condition, message=None, timeout=50):
|
||||
'''Assert that condition function eventually returns True.
|
||||
|
||||
|
|
@ -254,11 +264,7 @@ class Tests(dbusmock.DBusTestCase):
|
|||
def test_inhibited_transition(self):
|
||||
'''Test that transitions work as expected when inhibited'''
|
||||
|
||||
tp_acpi = self.testbed.add_device('platform', 'thinkpad_acpi', None,
|
||||
['dytc_lapmode', '0', 'dytc_perfmode', 'H'],
|
||||
[ 'DEVPATH', '/devices/platform/thinkpad_acpi' ]
|
||||
)
|
||||
|
||||
self.create_dytc_device()
|
||||
self.start_daemon()
|
||||
|
||||
profiles = self.get_dbus_property('Profiles')
|
||||
|
|
@ -269,7 +275,7 @@ class Tests(dbusmock.DBusTestCase):
|
|||
self.assertEqual(self.get_dbus_property('ActiveProfile'), 'performance')
|
||||
|
||||
# Inhibit
|
||||
self.testbed.set_attribute(tp_acpi, 'dytc_lapmode', '1')
|
||||
self.testbed.set_attribute(self.tp_acpi, 'dytc_lapmode', '1')
|
||||
self.assertEventually(lambda: self.have_text_in_log('dytc_lapmode is now on'))
|
||||
self.assertEqual(self.get_dbus_property('PerformanceInhibited'), 'lap-detected')
|
||||
self.assertEqual(self.get_dbus_property('ActiveProfile'), 'balanced')
|
||||
|
|
@ -330,11 +336,7 @@ class Tests(dbusmock.DBusTestCase):
|
|||
self.stop_daemon()
|
||||
|
||||
# Verify that the Lenovo DYTC driver still gets preferred
|
||||
tp_acpi = self.testbed.add_device('platform', 'thinkpad_acpi', None,
|
||||
['dytc_lapmode', '0', 'dytc_perfmode', 'H'],
|
||||
[ 'DEVPATH', '/devices/platform/thinkpad_acpi' ]
|
||||
)
|
||||
|
||||
self.create_dytc_device()
|
||||
self.start_daemon()
|
||||
|
||||
profiles = self.get_dbus_property('Profiles')
|
||||
|
|
@ -380,11 +382,7 @@ class Tests(dbusmock.DBusTestCase):
|
|||
def test_dytc_performance_driver(self):
|
||||
'''Lenovo DYTC performance driver'''
|
||||
|
||||
tp_acpi = self.testbed.add_device('platform', 'thinkpad_acpi', None,
|
||||
['dytc_lapmode', '0', 'dytc_perfmode', 'H'],
|
||||
[ 'DEVPATH', '/devices/platform/thinkpad_acpi' ]
|
||||
)
|
||||
|
||||
self.create_dytc_device()
|
||||
self.start_daemon()
|
||||
|
||||
profiles = self.get_dbus_property('Profiles')
|
||||
|
|
@ -396,41 +394,41 @@ class Tests(dbusmock.DBusTestCase):
|
|||
self.assertEqual(self.get_dbus_property('ActiveProfile'), 'balanced')
|
||||
|
||||
# Verify that perfmode got reset
|
||||
self.assertEventually(lambda: self.read_sysfs_attr(tp_acpi, 'dytc_perfmode') == b'M')
|
||||
self.assertEventually(lambda: self.read_sysfs_attr(self.tp_acpi, 'dytc_perfmode') == b'M')
|
||||
|
||||
# lapmode detected, but performance wasn't selected anyway
|
||||
self.testbed.set_attribute(tp_acpi, 'dytc_lapmode', '1')
|
||||
self.testbed.set_attribute(self.tp_acpi, 'dytc_lapmode', '1')
|
||||
self.assertEventually(lambda: self.get_dbus_property('PerformanceInhibited') == 'lap-detected')
|
||||
self.assertEqual(self.get_dbus_property('ActiveProfile'), 'balanced')
|
||||
|
||||
# Reset lapmode
|
||||
self.testbed.set_attribute(tp_acpi, 'dytc_lapmode', '0')
|
||||
self.testbed.set_attribute(self.tp_acpi, 'dytc_lapmode', '0')
|
||||
self.assertEventually(lambda: self.get_dbus_property('PerformanceInhibited') == '')
|
||||
|
||||
# Set performance mode
|
||||
self.set_dbus_property('ActiveProfile', GLib.Variant.new_string('performance'))
|
||||
self.assertEqual(self.get_dbus_property('ActiveProfile'), 'performance')
|
||||
self.assertEventually(lambda: self.read_sysfs_attr(tp_acpi, 'dytc_perfmode') == b'H')
|
||||
self.assertEventually(lambda: self.read_sysfs_attr(self.tp_acpi, 'dytc_perfmode') == b'H')
|
||||
|
||||
# And turn on lapmode
|
||||
self.testbed.set_attribute(tp_acpi, 'dytc_lapmode', '1')
|
||||
self.assertEventually(lambda: self.read_sysfs_attr(tp_acpi, 'dytc_perfmode') == b'M')
|
||||
self.testbed.set_attribute(self.tp_acpi, 'dytc_lapmode', '1')
|
||||
self.assertEventually(lambda: self.read_sysfs_attr(self.tp_acpi, 'dytc_perfmode') == b'M')
|
||||
|
||||
self.assertEqual(self.get_dbus_property('ActiveProfile'), 'balanced')
|
||||
self.assertEqual(self.get_dbus_property('PerformanceInhibited'), 'lap-detected')
|
||||
|
||||
# Turn off lapmode, profile stays balanced
|
||||
self.testbed.set_attribute(tp_acpi, 'dytc_lapmode', '0')
|
||||
self.testbed.set_attribute(self.tp_acpi, 'dytc_lapmode', '0')
|
||||
self.assertEventually(lambda: self.get_dbus_property('PerformanceInhibited') == '')
|
||||
self.assertEqual(self.read_sysfs_attr(tp_acpi, 'dytc_perfmode'), b'M')
|
||||
self.assertEqual(self.read_sysfs_attr(self.tp_acpi, 'dytc_perfmode'), b'M')
|
||||
|
||||
# Switch to power-saver mode
|
||||
self.set_dbus_property('ActiveProfile', GLib.Variant.new_string('power-saver'))
|
||||
self.assertEventually(lambda: self.read_sysfs_attr(tp_acpi, 'dytc_perfmode') == b'L')
|
||||
self.assertEventually(lambda: self.read_sysfs_attr(self.tp_acpi, 'dytc_perfmode') == b'L')
|
||||
self.assertEqual(self.get_dbus_property('ActiveProfile'), 'power-saver')
|
||||
|
||||
# And mimick a user pressing a Fn+H
|
||||
with open(os.path.join(self.testbed.get_root_dir() + tp_acpi, "dytc_perfmode"), 'w') as perfmode:
|
||||
with open(os.path.join(self.testbed.get_root_dir() + self.tp_acpi, "dytc_perfmode"), 'w') as perfmode:
|
||||
perfmode.write('H')
|
||||
self.assertEventually(lambda: self.get_dbus_property('ActiveProfile') == 'performance')
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue