at master 1.3 kB view raw
1{ 2 name = "xss-lock"; 3 meta.maintainers = [ ]; 4 5 nodes = { 6 simple = { 7 imports = [ 8 ./common/x11.nix 9 ./common/user-account.nix 10 ]; 11 programs.xss-lock.enable = true; 12 test-support.displayManager.auto.user = "alice"; 13 }; 14 15 custom_lockcmd = 16 { pkgs, ... }: 17 { 18 imports = [ 19 ./common/x11.nix 20 ./common/user-account.nix 21 ]; 22 test-support.displayManager.auto.user = "alice"; 23 24 programs.xss-lock = { 25 enable = true; 26 extraOptions = [ 27 "-n" 28 "${pkgs.libnotify}/bin/notify-send 'About to sleep!'" 29 ]; 30 lockerCommand = "${pkgs.xlockmore}/bin/xlock -mode ant"; 31 }; 32 }; 33 }; 34 35 testScript = '' 36 def perform_xsslock_test(machine, lockCmd): 37 machine.start() 38 machine.wait_for_x() 39 machine.wait_for_unit("xss-lock.service", "alice") 40 machine.fail(f"pgrep {lockCmd}") 41 machine.succeed("su -l alice -c 'xset dpms force standby'") 42 machine.wait_until_succeeds(f"pgrep {lockCmd}") 43 44 45 with subtest("simple"): 46 perform_xsslock_test(simple, "i3lock") 47 48 with subtest("custom_cmd"): 49 perform_xsslock_test(custom_lockcmd, "xlock") 50 ''; 51}