notes: 2.3.0 -> 2.3.1 (#352950)
[NixPkgs.git] / nixos / tests / varnish.nix
blob76cea1ada54774526d31aa6f7ceed0be7f5134b1
2   system ? builtins.currentSystem
3 , pkgs ? import ../.. { inherit system; }
4 , package
5 }:
6 import ./make-test-python.nix ({ pkgs, lib, ... }: let
7   testPath = pkgs.hello;
8 in {
9   name = "varnish";
10   meta = {
11     maintainers = lib.teams.helsinki-systems.members;
12   };
14   nodes = {
15     varnish = { config, pkgs, ... }: {
16         services.nix-serve = {
17           enable = true;
18         };
20         services.varnish = {
21           inherit package;
22           enable = true;
23           http_address = "0.0.0.0:80";
24           config = ''
25             vcl 4.0;
27             backend nix-serve {
28               .host = "127.0.0.1";
29               .port = "${toString config.services.nix-serve.port}";
30             }
31           '';
32         };
34         networking.firewall.allowedTCPPorts = [ 80 ];
35         system.extraDependencies = [ testPath ];
36       };
38     client = { lib, ... }: {
39       nix.settings = {
40         require-sigs = false;
41         substituters = lib.mkForce [ "http://varnish" ];
42       };
43     };
44   };
46   testScript = ''
47     start_all()
48     varnish.wait_for_open_port(80)
50     client.wait_until_succeeds("curl -f http://varnish/nix-cache-info");
52     client.wait_until_succeeds("nix-store -r ${testPath}");
53     client.succeed("${testPath}/bin/hello");
54   '';