Deployment and lifecycle management for Nix
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

e2e: add socket activation test

+31
+31
nix/tests/e2e.nix
··· 38 38 39 39 environment.systemPackages = [ 40 40 flake.packages.${pkgs.stdenv.hostPlatform.system}.cli 41 + pkgs.python3 41 42 ]; 42 43 43 44 networking.firewall.allowedTCPPorts = [ 4000 ]; ··· 142 143 server.wait_for_unit("sower-activator.socket") 143 144 server.wait_for_unit("sower-agent.service") 144 145 server.wait_for_open_port(4000) 146 + 147 + with subtest("activator socket activation"): 148 + server.succeed("test \"$(systemctl show -p ActiveState --value sower-activator.service)\" = inactive") 149 + server.succeed("test -S /run/sower-activator/activator.sock") 150 + server.succeed("test \"$(stat -c '%a' /run/sower-activator/activator.sock)\" = 660") 151 + server.succeed("test \"$(stat -c '%G' /run/sower-activator/activator.sock)\" = sower-activator") 152 + 153 + server.succeed( 154 + """ 155 + python3 - <<'PY' 156 + import json 157 + import socket 158 + 159 + sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) 160 + sock.settimeout(5) 161 + sock.connect("/run/sower-activator/activator.sock") 162 + req = { 163 + "id": "socket-activation-probe", 164 + "type": "nixos", 165 + "path": "/nix/store/not-a-real-profile", 166 + "mode": "switch", 167 + } 168 + sock.sendall((json.dumps(req) + "\\n").encode()) 169 + sock.recv(4096) 170 + sock.close() 171 + PY 172 + """ 173 + ) 174 + 175 + server.wait_until_succeeds("test \"$(systemctl show -p ActiveState --value sower-activator.service)\" = active") 145 176 146 177 # with subtest("basic submission"): 147 178 # server_profile = server.succeed("readlink -f /run/booted-system").strip()