tests/systemd-user-linger-purge: check mutable user handling

Mutable users configured to linger shouldn't have their lingering
deconfigured by the systemd unit for managing lingering users.

Test in both the scenario where there are no users configured in NixOS
to linger, and where there are such users, to catch the case at
https://github.com/NixOS/nixpkgs/pull/363209#issuecomment-2987448905
where mutable lingering users would be incorrectly cleared if there were
any immutable lingering users.
This commit is contained in:
Adam Dinwoodie
2025-06-19 10:25:57 +01:00
parent 6eb3c6281e
commit 0a72d57724
2 changed files with 16 additions and 0 deletions

View File

@@ -25,5 +25,13 @@ rec {
machine.succeed("touch /var/lib/systemd/linger/alice")
machine.systemctl("restart linger-users")
machine.succeed("test ! -e /var/lib/systemd/linger/alice")
with subtest("mutable users can linger"):
machine.succeed("useradd alice")
machine.succeed("test ! -e /var/lib/systemd/linger/alice")
machine.succeed("loginctl enable-linger alice")
machine.succeed("test -e /var/lib/systemd/linger/alice")
machine.systemctl("restart linger-users")
machine.succeed("test -e /var/lib/systemd/linger/alice")
'';
}

View File

@@ -27,5 +27,13 @@ rec {
machine.fail("test -e /var/lib/systemd/linger/bob")
machine.fail("systemctl status user-${uidStrings.bob}.slice")
with subtest("mutable users can linger"):
machine.succeed("useradd clare")
machine.succeed("test ! -e /var/lib/systemd/linger/clare")
machine.succeed("loginctl enable-linger clare")
machine.succeed("test -e /var/lib/systemd/linger/clare")
machine.systemctl("restart linger-users")
machine.succeed("test -e /var/lib/systemd/linger/clare")
'';
}