From 0a72d5772490a635eff783eea35ee009b99c6142 Mon Sep 17 00:00:00 2001 From: Adam Dinwoodie Date: Thu, 19 Jun 2025 10:25:57 +0100 Subject: [PATCH] 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. --- nixos/tests/systemd-user-linger-purge.nix | 8 ++++++++ nixos/tests/systemd-user-linger.nix | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/nixos/tests/systemd-user-linger-purge.nix b/nixos/tests/systemd-user-linger-purge.nix index 21a779950e88..90cdda3d87e7 100644 --- a/nixos/tests/systemd-user-linger-purge.nix +++ b/nixos/tests/systemd-user-linger-purge.nix @@ -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") ''; } diff --git a/nixos/tests/systemd-user-linger.nix b/nixos/tests/systemd-user-linger.nix index c1acd8534dde..357bf632e50f 100644 --- a/nixos/tests/systemd-user-linger.nix +++ b/nixos/tests/systemd-user-linger.nix @@ -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") ''; }