We need a higher than default timeout as the
test_critical_action_is_taken_repeatedly test takes at least 2 suspend
cycles and those take at least UP_DAEMON_ACTION_DELAY (20 seconds).
The daemon sources and libupower-glib were built without their historic
log domains which meant some debug messages did not appear when running
upowerd in verbose mode.
This fixes the test_no_poll_batteries test.
77 is the special value meaning that the test was skipped. Both meson
make check will display the information correctly.
Note that the test is currently executed directly in check-local. So add
a workaround to ignore the 77 error code and exit 0 instead in that
case.
Inhibitor lock should be taken between the critical
action notification and the execution of the critical action.
Requires python-dbusmock > 0.23.1, test is skipped on lower versions.
python-dbusmock in the CI is installed from git and bumped version
to 0.23.2 until a new release is available.
Phones are suspended most of the time so they are not awake for > 20s
to allow UPower to take action when battery is critical.
Add an interface to take and release inhibitor locks which
prevent the device from suspending to allow UPower to execute
the critical power action.
USB PD 3.1 allows up to 240W (48V, 5A) and some proprietary supplies
already delivered more than 100W over USB-C (USB PD 3.0 limit).
Closes: #147
Reported by StefanBruens
If we want the computer to be able to take useful action about the low
battery, we should have a slightly higher "low" percentage level so that
power saving made really makes a difference in runtime.
Also bump "critical" slightly so that doom isn't quite as near but in the
distance nonetheless.
The "action" level stays the same, as 1% is too close to some batteries'
actual switch off point, eg. the computer might brown out before we see
1%.
The code in up_device_notify() will still eventually be reached when the
up_device_coldplug() implementations are called, and properties are set
for the device type for the first time (rather than during instance
construction).
Before, the low level for changing the battery icon was hardcoded.
However, as the `low_percentage` property is settable by the user using
`PercentageLow` option. That can lead to inconsistencies when PercentageLow
is not the default. For example, if PercentageLow is set higher than 10,
the Low Battery level warning will be sent at the user-set level, but the
battery icon would not be updated to "caution" until the percentage
drops below 10%.
This issue is solved in this commit by using the `low_percentage` property
for the comparison instead of hardcoding the default.
Make sure that the issue reported in #7 and #44 is fixed.
The mocked battery has a zero power_now attribute and a non-zero legacy
current_now attribute on purpose, to detect if upowerd tries to read
current_now if the power_now value is small.
Currently, if a power supplies' power_now sysfs file reports discharge
rates < 0.01 W, the code will try to calculate the discharge rate from
the legacy sysfs files. On new kernels where those don't exist, this
produces wrong results.
For example, on a dual-battery Thinkpad T450s, while the external
battery is discharging, the internal battery reports power_now = 0,
but the corresponding upower energy-rate field incorrectly reads
about 2.3 W.
This patch fixes the issue by falling back to the legacy code only if
the legacy current_now sysfs file exists.
Closes: #7, #44
Make Bluetooth devices for which we can't guess the "kind" or form
factor be "generic Bluetooth" devices, rather than "unknown" devices.
That should make it clearer in UIs that the devices are Bluetooth rather
than connected to the computer somehow.
Closes: #137
capacity is supposed to be the running battery percentage, not a
representation of its current state of the factory capacity (which
isn't something that's ever shown in Linux or macOS).
Use the new "ignore-system-percentage" property to work-around that
problem.
Closes: #141, #103
On some hardware, the "capacity" sysfs contains the capacity of the
battery when full compared to when it was new, instead of the percentage
of battery available.
Make it possible to ignore the "capacity" with this new property.