vuls: init at 0.27.0
[NixPkgs.git] / nixos / tests / systemd-portabled.nix
blobef38258b0d866a50ab9deb929dfeb5bcf9f414dc
1 import ./make-test-python.nix ({pkgs, lib, ...}: let
2   demo-program = pkgs.writeShellScriptBin "demo" ''
3       while ${pkgs.coreutils}/bin/sleep 3; do
4           echo Hello World > /dev/null
5       done
6   '';
7   demo-service = pkgs.writeText "demo.service" ''
8     [Unit]
9     Description=demo service
10     Requires=demo.socket
11     After=demo.socket
13     [Service]
14     Type=simple
15     ExecStart=${demo-program}/bin/demo
16     Restart=always
18     [Install]
19     WantedBy=multi-user.target
20     Also=demo.socket
21   '';
22   demo-socket = pkgs.writeText "demo.socket" ''
23     [Unit]
24     Description=demo socket
26     [Socket]
27     ListenStream=/run/demo.sock
28     SocketMode=0666
30     [Install]
31     WantedBy=sockets.target
32   '';
33   demo-portable = pkgs.portableService {
34     pname = "demo";
35     version = "1.0";
36     description = ''A demo "Portable Service" for a shell program built with nix'';
37     units = [ demo-service demo-socket ];
38   };
39 in {
41   name = "systemd-portabled";
42   nodes.machine = {};
43   testScript = ''
44     machine.succeed("portablectl")
45     machine.wait_for_unit("systemd-portabled.service")
46     machine.succeed("portablectl attach --now --runtime ${demo-portable}/demo_1.0.raw")
47     machine.wait_for_unit("demo.service")
48     machine.succeed("portablectl detach --now --runtime demo_1.0")
49     machine.fail("systemctl status demo.service")
50   '';