llm-ls: cleanup (#372936)
[NixPkgs.git] / nixos / tests / greetd-no-shadow.nix
blob0bbf4faa3d9c0e5cbd64410c4a48f07a07c87579
1 import ./make-test-python.nix (
2   {
3     pkgs,
4     latestKernel ? false,
5     ...
6   }:
7   {
8     name = "greetd-no-shadow";
9     meta = with pkgs.lib.maintainers; {
10       maintainers = [ ];
11     };
13     nodes.machine =
14       { pkgs, lib, ... }:
15       {
17         users.users.alice = {
18           isNormalUser = true;
19           group = "alice";
20           password = "foobar";
21         };
22         users.groups.alice = { };
24         # This means login(1) breaks, so we must use greetd/agreety instead.
25         security.shadow.enable = false;
27         services.greetd = {
28           enable = true;
29           settings = {
30             default_session = {
31               command = "${pkgs.greetd.greetd}/bin/agreety --cmd bash";
32             };
33           };
34         };
35       };
37     testScript = ''
38       machine.start()
40       machine.wait_for_unit("multi-user.target")
41       machine.wait_until_succeeds("pgrep -f 'agretty.*tty1'")
42       machine.screenshot("postboot")
44       with subtest("Log in as alice on a virtual console"):
45           machine.wait_until_tty_matches("1", "login: ")
46           machine.send_chars("alice\n")
47           machine.wait_until_tty_matches("1", "login: alice")
48           machine.wait_until_succeeds("pgrep login")
49           machine.wait_until_tty_matches("1", "Password: ")
50           machine.send_chars("foobar\n")
51           machine.wait_until_succeeds("pgrep -u alice bash")
52           machine.send_chars("touch done\n")
53           machine.wait_for_file("/home/alice/done")
54     '';
55   }