Marco Trevisan (Treviño)
fd8f6a0f3c
integration-tests: Add test for resuming state after suspend on intel
2024-04-03 20:15:17 +02:00
Marco Trevisan (Treviño)
928c4611d8
power-profiles-daemon: Only update battery value when it actually did
...
We might have notified the drivers even for no actual changes, so
let's refactor the code so that we only notify them when we really have
a battery state change.
2024-04-03 20:10:34 +02:00
Marco Trevisan (Treviño)
ae3a30da98
integration-tests: Use a lambda for assert_eventually messages
...
In this way we can show the actual value after we've finished the check
instead of the one that was read initially.
2024-04-03 20:10:34 +02:00
Marco Trevisan (Treviño)
df534c3911
integration-tests: Add ability to check if a condition persists
...
assert_eventually() can check if a condition eventually is true, but
this could change after a while. So add another function that allows
to check if a condition persists for a given time.
2024-04-03 20:10:34 +02:00
Marco Trevisan (Treviño)
d3199b3203
integration-tests: Simulate OnBattery changes while the daemon is running
2024-04-03 20:10:34 +02:00
Marco Trevisan (Treviño)
cf4321c85b
integration-tests: Use start_dbus_template everywhere
...
As it handles auto-cleanup better
2024-04-03 20:10:34 +02:00
Mario Limonciello
2ec541edc0
trivial: tests: write out dytc_lapmode atomically
2024-04-02 14:15:53 -05:00
Marco Trevisan (Treviño)
e10516c348
integration-tests: Use automatic cleanups for stopping daemon and services
...
We were stopping the daemon manually while this is already something done
by the teardown function.
So let's leave this being automatically handled.
2024-04-02 20:06:14 +02:00
Mario Limonciello
2c5d8f2c2d
trivial: don't destroy test bed until last step of tearDown
2024-04-01 21:58:47 +00:00
Marco Trevisan (Treviño)
42f45ee6e1
powerprofilesctl: Proxy more signals to called process
2024-04-01 21:58:47 +00:00
Marco Trevisan (Treviño)
0c80ae1108
powerprofilesctl: Use posix-compliant exit codes on signals
...
Do not return the python exit code when the launched process exit
because of a signal, but instead expose it as it is.
2024-04-01 21:58:47 +00:00
Marco Trevisan (Treviño)
15c74efc7e
powerprofilesctl: Exit with launched process exit code
...
This is a regression of commit 18a9c6668 , due to the fact that the
argparse func return value is simply ignored.
So let's just exit directly with the provided return value in such case.
2024-04-01 21:58:47 +00:00
Marco Trevisan (Treviño)
9bc5643950
src/powerprofilesctl: Fail if a launch unknown argument is before than command
2024-04-01 21:58:47 +00:00
Marco Trevisan (Treviño)
acd17bd066
powerprofilesctl: Throw an unrecognized arguments error on on launch-commands
2024-04-01 21:58:47 +00:00
Marco Trevisan (Treviño)
8574070267
tests/integration-tests: Ensure that the launch arguments are respected
2024-04-01 21:58:47 +00:00
Marco Trevisan (Treviño)
8da511916f
tests: Add support for collecting python coverage data
...
We have a python script for the control tool so let's use that to
monitor the powerprofilesctl coverage
2024-04-01 18:04:32 +02:00
Marco Trevisan (Treviño)
b4d5a045d0
tests/integration-tests: Add a function to get powerprofilesctl path
2024-04-01 15:57:05 +02:00
Mario Limonciello
87fea13806
Pass all unknown arguments to the launch command
...
Fixes: https://gitlab.freedesktop.org/upower/power-profiles-daemon/-/issues/144
2024-03-26 15:56:16 -05:00
Mario Limonciello
bdc60171e5
amd-pstate: Transition between balanced_power and balanced_performance
...
When the system is on AC and profile is balanced put the EPP value
of balanced_performance.
When the system is on battery and profile is balanced put the EPP value
of balanced_power.
2024-03-02 16:23:47 +00:00
Mario Limonciello
b5cf270a20
trivial: drop some boilerplate setup code in the unit tests
...
Use dbusmock's start_system_bus() to start and tear down the system
bus.
2024-02-28 20:34:30 -06:00
Mario Limonciello
493818a7e2
Show both daemon and client versions
...
Fixes: https://gitlab.freedesktop.org/upower/power-profiles-daemon/-/issues/139
2024-02-26 21:27:28 -06:00
Marco Trevisan (Treviño)
b3df9190e7
tests: Fix failing messages to use f'strings as was intended to
...
But then as per reformatting, they got lost...
2024-02-15 18:05:32 +01:00
Marco Trevisan (Treviño)
1ca46967b2
tests: Ensure daemon is ready before launching the test client
2024-02-15 01:30:26 +01:00
Marco Trevisan (Treviño)
47a155407f
tests: wait more for valgrind-running daemon
...
In CI we may need to wait for it more than 10 seconds, so second this.
2024-02-15 01:26:29 +01:00
Marco Trevisan (Treviño)
1c48162ea1
tests: Assert launched client exits with no error
2024-02-15 00:02:09 +01:00
Marco Trevisan (Treviño)
e1c83e8b27
tests: Ensure the daemon exits with no error
...
We did terminate the daemon and waited for it, but we did not ensure
that it was terminated with no error.
This is particularly a problem when we are running the sanitizers or
valgrind, because we didn't catch any error.
Thus... We were living with some leaks that we never caught :)
2024-02-14 23:32:38 +01:00
Marco Trevisan (Treviño)
b27fa341ec
tests: Stop the daemon using termination
...
This implies a SIGTERM, and so will trigger the daemon clean teardown,
making it exit correctly.
In this way the coverage data is correctly generated, making finally our
coverage reports to be real!
Fixes : #137
2024-02-14 22:07:30 +00:00
Marco Trevisan (Treviño)
37bf20bb55
tests: Show full logs if PPD_TEST_VERBOSE env is set and use it in meson
...
It can be useful to inspect the daemon logs in any case, so let's show
the logs details when running in meson.
Then it's up to use the `--verbose` parameter to decide whether to see
them or to inspect them from the generated logs.
2024-02-14 21:33:05 +00:00
Mario Limonciello
940c262b74
amdgpu: reduce panel_power_saving values
...
The loss of color fidelity in battery mode is too dramatic, especially
with dark content (such as GNOME in dark mode or a dark background terminal).
2024-02-14 13:41:22 -06:00
Marco Trevisan (Treviño)
2a36abda82
tests: Add utility function to eventually check active profile
2024-02-14 19:43:43 +01:00
Marco Trevisan (Treviño)
d174b46498
tests: Simplify files writing
...
Avoid repeating the same pattern everywhere, just do it once with an
utility function.
2024-02-14 19:36:29 +01:00
Marco Trevisan (Treviño)
a1d8585aec
tests: Wait for file contents to match expected ones
...
Daemon may take some moments to do IO operations, and the tests
may be too fast in reading this.
As per previous cleanups this become a problem when testing in
slower scenarios (as valgrind), so take the opportunity to
cleanup the tests so that we always wait for file contents to
match the expected one.
2024-02-14 19:36:29 +01:00
Marco Trevisan (Treviño)
14edcbfd89
tests: Simplify assert_eventually() using GLib.Timeout
...
Also use milliseconds instead of deciseconds.
2024-02-14 18:37:24 +01:00
Marco Trevisan (Treviño)
6cf48b4a42
tests: Use python unittest assertions instead of native ones
2024-02-14 17:47:36 +01:00
Marco Trevisan (Treviño)
a518f333e0
tests: Avoid creating a new proxy for each dbus call
...
Just use the previously allocated, and do not cache anything on it
2024-02-14 17:47:36 +01:00
Marco Trevisan (Treviño)
867af41ab8
tests: Also ensure that the powerprofilesctl commands match with daemon
2024-02-14 17:38:39 +01:00
Mario Limonciello
13c4202fc7
tests: drop unused read_file() method
2024-02-14 10:37:17 -06:00
Mario Limonciello
e1c0a48b2c
tests: Add integration tests to scrape the output of powerprofilesctl
2024-02-14 10:37:15 -06:00
Mario Limonciello
18a9c66681
Use python argparse and decorators instead of reinventing both
2024-02-14 10:37:14 -06:00
Mario Limonciello
ba2cf0d6f8
Add a Version property and read it with powerprofilesctl
2024-02-14 00:03:28 -06:00
Marco Trevisan (Treviño)
40f3361473
power-profiles-daemon: Emit ProfileReleased when an holder is released
...
We used to send the signal only when cleaning up the holders, but we
should notify them also when an holder has been released for whatever
reason.
2024-02-14 05:17:49 +00:00
Marco Trevisan (Treviño)
07132892f0
tests: Ensure that properties changed events are emitted
2024-02-14 05:17:49 +00:00
Marco Trevisan (Treviño)
f88ba64d1e
ci: Add valgrind job
2024-02-14 04:27:39 +01:00
Marco Trevisan (Treviño)
44f000b5a7
build: Add valgrind setup
...
Add ability to run tests under valgrind using --setup=valgrind
2024-02-14 04:27:39 +01:00
Marco Trevisan (Treviño)
59ea84d061
tests: Allow tests running with address sanitizers
...
We need to manually preload the asan library, so read where that is
using some meson machinery inherited from fprintd.
2024-02-14 04:00:20 +01:00
Mario Limonciello
70849a6686
amdgpu: Handle disconnected panels correctly
...
Some systems have multiple GPUs with an eDP output but the panel
isn't connected to all of them (or it's controlled by a mux).
Handle this case by ensuring that the panel is connected when
before writing an attribute.
2024-02-13 23:20:42 +00:00
Mario Limonciello
07a77652b1
Add support for POWER_PROFILE_DAEMON_ACTION_BLOCK
...
This can let people avoid loading actions that on their system
in the event of a problem or desire not to use.
2024-02-13 23:20:42 +00:00
Mario Limonciello
41ed5d33a8
Add support for a amdgpu panel power savings action
...
This activates the DRM connector attribute `panel_power_savings`
which takes a range from 0 to 4 to indicate how aggresively to enable
panel power savings.
Link: https://lore.kernel.org/amd-gfx/0b94b25a-9ffa-41a5-b931-ad84e1892d36@amd.com/T/#m079d7c357626cf3a80cd9ba6239b3fe4fcf8937e
2024-02-13 23:20:42 +00:00
Marco Trevisan (Treviño)
3b29b0e52b
cleanup: Use UPower namespace as default DBus name preserving old one
...
Expose the daemon as 'org.freedesktop.UPower.PowerProfiles' by default
but we also own the old 'net.hadess.PowerProfiles' name for
compatibility resons.
Also dbus objects are now registered also in the path
/org/freedesktop/UPower/PowerProfiles and they implement the
org.freedesktop.UPower.PowerProfiles interface.
Even in this case we preserve the compatibility with the old ones.
To make this switch as most reliable as possible, the code is now
generated for dbus configuration files preserving the previous ones as
base.
Tests are now performed checking both names, to ensure again that we're
not breaking the expectations for the old APIs consumers.
2024-02-13 20:44:29 +00:00
Marco Trevisan (Treviño)
520622ba70
data: Rename policykit policies to UPower namespace
...
We're part of UPower now so let's use the freedesktop standard namespace
2024-02-13 20:44:29 +00:00