at 25.11-pre 2.0 kB view raw
1import ./make-test-python.nix ( 2 { pkgs, ... }: 3 4 { 5 name = "power-profiles-daemon"; 6 meta = with pkgs.lib.maintainers; { 7 maintainers = [ mvnetbiz ]; 8 }; 9 nodes.machine = 10 { pkgs, ... }: 11 { 12 security.polkit.enable = true; 13 services.power-profiles-daemon.enable = true; 14 environment.systemPackages = [ 15 pkgs.glib 16 pkgs.power-profiles-daemon 17 ]; 18 }; 19 20 testScript = '' 21 def get_profile(): 22 return machine.succeed( 23 """gdbus call --system --dest org.freedesktop.UPower.PowerProfiles --object-path /org/freedesktop/UPower/PowerProfiles \ 24 --method org.freedesktop.DBus.Properties.Get 'org.freedesktop.UPower.PowerProfiles' 'ActiveProfile' 25 """ 26 ) 27 28 29 def set_profile(profile): 30 return machine.succeed( 31 """gdbus call --system --dest org.freedesktop.UPower.PowerProfiles --object-path /org/freedesktop/UPower/PowerProfiles \ 32 --method org.freedesktop.DBus.Properties.Set 'org.freedesktop.UPower.PowerProfiles' 'ActiveProfile' "<'{profile}'>" 33 """.format( 34 profile=profile 35 ) 36 ) 37 38 39 machine.wait_for_unit("multi-user.target") 40 41 set_profile("power-saver") 42 profile = get_profile() 43 if not "power-saver" in profile: 44 raise Exception("Unable to set power-saver profile") 45 46 47 set_profile("balanced") 48 profile = get_profile() 49 if not "balanced" in profile: 50 raise Exception("Unable to set balanced profile") 51 52 # test powerprofilectl CLI 53 machine.succeed("powerprofilesctl set power-saver") 54 profile = get_profile() 55 if not "power-saver" in profile: 56 raise Exception("Unable to set power-saver profile with powerprofilectl") 57 58 machine.succeed("powerprofilesctl set balanced") 59 profile = get_profile() 60 if not "balanced" in profile: 61 raise Exception("Unable to set balanced profile with powerprofilectl") 62 ''; 63 } 64)