nixos/xscreensaver: add module tests

Co-authored-by: Aidan Gauland <aidalgol@fastmail.net>
Co-authored-by: Anderson Torres <torres.anderson.85@protonmail.com>
This commit is contained in:
Chris Marchesi 2023-11-23 12:31:50 -08:00 committed by Anderson Torres
parent 54020c36a2
commit 6182b0bde8
2 changed files with 65 additions and 0 deletions

View file

@ -927,6 +927,7 @@ in {
xmonad-xdg-autostart = handleTest ./xmonad-xdg-autostart.nix {};
xpadneo = handleTest ./xpadneo.nix {};
xrdp = handleTest ./xrdp.nix {};
xscreensaver = handleTest ./xscreensaver.nix {};
xss-lock = handleTest ./xss-lock.nix {};
xterm = handleTest ./xterm.nix {};
xxh = handleTest ./xxh.nix {};

View file

@ -0,0 +1,64 @@
import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "pass-secret-service";
meta.maintainers = with lib.maintainers; [ vancluever AndersonTorres ];
nodes = {
ok = { nodes, pkgs, ... }:
{
imports = [ ./common/x11.nix ./common/user-account.nix ];
test-support.displayManager.auto.user = "alice";
services.xscreensaver.enable = true;
};
empty_wrapperPrefix = { nodes, pkgs, ... }:
{
imports = [ ./common/x11.nix ./common/user-account.nix ];
test-support.displayManager.auto.user = "alice";
services.xscreensaver.enable = true;
nixpkgs.overlays = [
(self: super: {
xscreensaver = super.xscreensaver.override {
wrapperPrefix = "";
};
})
];
};
bad_wrapperPrefix = { nodes, pkgs, ... }:
{
imports = [ ./common/x11.nix ./common/user-account.nix ];
test-support.displayManager.auto.user = "alice";
services.xscreensaver.enable = true;
nixpkgs.overlays = [
(self: super: {
xscreensaver = super.xscreensaver.override {
wrapperPrefix = "/a/bad/path";
};
})
];
};
};
testScript = ''
ok.wait_for_x()
ok.wait_for_unit("xscreensaver", "alice")
_, output_ok = ok.systemctl("status xscreensaver", "alice")
assert 'To prevent the kernel from randomly unlocking' not in output_ok
assert 'your screen via the out-of-memory killer' not in output_ok
assert '"xscreensaver-auth" must be setuid root' not in output_ok
empty_wrapperPrefix.wait_for_x()
empty_wrapperPrefix.wait_for_unit("xscreensaver", "alice")
_, output_empty_wrapperPrefix = empty_wrapperPrefix.systemctl("status xscreensaver", "alice")
assert 'To prevent the kernel from randomly unlocking' in output_empty_wrapperPrefix
assert 'your screen via the out-of-memory killer' in output_empty_wrapperPrefix
assert '"xscreensaver-auth" must be setuid root' in output_empty_wrapperPrefix
bad_wrapperPrefix.wait_for_x()
bad_wrapperPrefix.wait_for_unit("xscreensaver", "alice")
_, output_bad_wrapperPrefix = bad_wrapperPrefix.systemctl("status xscreensaver", "alice")
assert 'To prevent the kernel from randomly unlocking' in output_bad_wrapperPrefix
assert 'your screen via the out-of-memory killer' in output_bad_wrapperPrefix
assert '"xscreensaver-auth" must be setuid root' in output_bad_wrapperPrefix
'';
})