vuls: init at 0.27.0
[NixPkgs.git] / nixos / tests / seatd.nix
blob9178492fdb0ef6a366586678ec8d939db28df242
1 import ./make-test-python.nix ({ pkgs, lib, ... }:
3 let
4   seatd-test = pkgs.writeShellApplication {
5     name = "seatd-client-pid";
6     text = ''
7       journalctl -u seatd --no-pager -b | while read -r line; do
8           case "$line" in
9           *"New client connected"*)
10               line="''${line##*pid: }"
11               pid="''${line%%,*}"
12               ;;
13           *"Opened client"*)
14               echo "$pid"
15               exit
16           esac
17       done;
18     '';
19   };
22   name = "seatd";
23   meta.maintainers = with lib.maintainers; [ sinanmohd ];
25   nodes.machine = { ... }: {
26     imports = [ ./common/user-account.nix ];
27     services.getty.autologinUser = "alice";
28     users.users.alice.extraGroups = [ "seat" "wheel" ];
30     fonts.enableDefaultPackages = true;
31     environment.systemPackages = with pkgs; [
32       dwl
33       foot
34       seatd-test
35     ];
37     programs.bash.loginShellInit = ''
38       [ "$(tty)" = "/dev/tty1" ] &&
39           dwl -s 'foot touch /tmp/foot_started'
40     '';
42     hardware.graphics.enable = true;
43     virtualisation.qemu.options = [ "-vga none -device virtio-gpu-pci" ];
44     services.seatd.enable = true;
45   };
47   testScript = ''
48     machine.wait_for_file("/tmp/foot_started")
49     machine.succeed("test $(seatd-client-pid) = $(pgrep dwl)")
50   '';