summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2018-06-19 14:00:07 +0200
committerBastien Nocera <hadess@hadess.net>2018-06-19 13:01:52 +0000
commit1c9892d7638ce914b50a02494fb5374314f296ad (patch)
tree735f85075d9057fa9828426f7e83075059d69ab7
parent7188cc04179bc4da26b94ce5114bbe25921cab02 (diff)
linux: Add test for MacBook uevent behaviour
See https://gitlab.freedesktop.org/upower/upower/issues/56
-rwxr-xr-xsrc/linux/integration-test34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/linux/integration-test b/src/linux/integration-test
index cc65a34..2aa5a4c 100755
--- a/src/linux/integration-test
+++ b/src/linux/integration-test
@@ -348,6 +348,40 @@ class Tests(dbusmock.DBusTestCase):
self.assertEqual(self.get_dbus_dev_property(devs[0], 'Online'), False)
self.stop_daemon()
+ def test_macbook_uevent(self):
+ '''MacBooks sent uevent 5 seconds before battery updates'''
+
+ ac = self.testbed.add_device('power_supply', 'AC', None,
+ ['type', 'Mains', 'online', '0'], [])
+ bat0 = self.testbed.add_device('power_supply', 'BAT0', None,
+ ['type', 'Battery',
+ 'present', '1',
+ 'status', 'Discharging',
+ 'energy_full', '60000000',
+ 'energy_full_design', '80000000',
+ 'energy_now', '48000000',
+ 'voltage_now', '12000000'], [])
+ self.testbed.add_device('virtual', 'virtual/dmi', None,
+ ['id/product_name', 'MacBookAir7,2'], [])
+ self.start_daemon()
+ devs = self.proxy.EnumerateDevices()
+ self.assertEqual(len(devs), 2)
+ if 'BAT' in devs[0] == ac_up:
+ (bat0_up, ac_up) = devs
+ else:
+ (ac_up, bat0_up) = devs
+
+ self.assertEqual(self.get_dbus_dev_property(bat0_up, 'State'), UP_DEVICE_STATE_DISCHARGING)
+
+ self.testbed.set_attribute(ac, 'online', '1')
+ self.testbed.uevent(ac, 'change')
+ self.assertEqual(self.get_dbus_dev_property(bat0_up, 'State'), UP_DEVICE_STATE_DISCHARGING)
+ time.sleep(3)
+ self.testbed.set_attribute(bat0, 'status', 'Charging')
+ time.sleep(1)
+
+ self.assertEqual(self.get_dbus_dev_property(bat0_up, 'State'), UP_DEVICE_STATE_CHARGING)
+
def test_battery_ac(self):
'''properties with dynamic battery/AC'''