summaryrefslogtreecommitdiffstats
path: root/nixos/tests/caddy.nix
diff options
context:
space:
mode:
authorhappysalada <raphael@megzari.com>2021-08-19 23:50:55 +0900
committerRaphael Megzari <raphael@megzari.com>2021-08-20 12:21:19 +0900
commitabeef13d12fbc2eecc75c1138bdcc0b9ad22b32d (patch)
tree6b191d9efc31cf9d78ed5a8d9dffbecae5a32503 /nixos/tests/caddy.nix
parenta629d25ad1c52b9810fd435a67083b3e3859f113 (diff)
caddy: add virtualHosts stub
Diffstat (limited to 'nixos/tests/caddy.nix')
-rw-r--r--nixos/tests/caddy.nix89
1 files changed, 52 insertions, 37 deletions
diff --git a/nixos/tests/caddy.nix b/nixos/tests/caddy.nix
index 063f83a2f3d3..29b227c0409b 100644
--- a/nixos/tests/caddy.nix
+++ b/nixos/tests/caddy.nix
@@ -43,49 +43,64 @@ import ./make-test-python.nix ({ pkgs, ... }: {
}
'';
};
+ specialisation.multiple-configs.configuration = {
+ services.caddy.virtualHosts = {
+ "http://localhost:8080" = { };
+ "http://localhost:8081" = { };
+ };
+ };
};
- };
- testScript = { nodes, ... }: let
- etagSystem = "${nodes.webserver.config.system.build.toplevel}/specialisation/etag";
- justReloadSystem = "${nodes.webserver.config.system.build.toplevel}/specialisation/config-reload";
- in ''
- url = "http://localhost/example.html"
- webserver.wait_for_unit("caddy")
- webserver.wait_for_open_port("80")
+ testScript = { nodes, ... }:
+ let
+ etagSystem = "${nodes.webserver.config.system.build.toplevel}/specialisation/etag";
+ justReloadSystem = "${nodes.webserver.config.system.build.toplevel}/specialisation/config-reload";
+ multipleConfigs = "${nodes.webserver.config.system.build.toplevel}/specialisation/multiple-configs";
+ in
+ ''
+ url = "http://localhost/example.html"
+ webserver.wait_for_unit("caddy")
+ webserver.wait_for_open_port("80")
- def check_etag(url):
- etag = webserver.succeed(
- "curl --fail -v '{}' 2>&1 | sed -n -e \"s/^< [Ee][Tt][Aa][Gg]: *//p\"".format(
- url
+ def check_etag(url):
+ etag = webserver.succeed(
+ "curl --fail -v '{}' 2>&1 | sed -n -e \"s/^< [Ee][Tt][Aa][Gg]: *//p\"".format(
+ url
+ )
)
- )
- etag = etag.replace("\r\n", " ")
- http_code = webserver.succeed(
- "curl --fail --silent --show-error -o /dev/null -w \"%{{http_code}}\" --head -H 'If-None-Match: {}' {}".format(
- etag, url
+ etag = etag.replace("\r\n", " ")
+ http_code = webserver.succeed(
+ "curl --fail --silent --show-error -o /dev/null -w \"%{{http_code}}\" --head -H 'If-None-Match: {}' {}".format(
+ etag, url
+ )
)
- )
- assert int(http_code) == 304, "HTTP code is {}, expected 304".format(http_code)
- return etag
+ assert int(http_code) == 304, "HTTP code is {}, expected 304".format(http_code)
+ return etag
- with subtest("check ETag if serving Nix store paths"):
- old_etag = check_etag(url)
- webserver.succeed(
- "${etagSystem}/bin/switch-to-configuration test >&2"
- )
- webserver.sleep(1)
- new_etag = check_etag(url)
- assert old_etag != new_etag, "Old ETag {} is the same as {}".format(
- old_etag, new_etag
- )
+ with subtest("check ETag if serving Nix store paths"):
+ old_etag = check_etag(url)
+ webserver.succeed(
+ "${etagSystem}/bin/switch-to-configuration test >&2"
+ )
+ webserver.sleep(1)
+ new_etag = check_etag(url)
+ assert old_etag != new_etag, "Old ETag {} is the same as {}".format(
+ old_etag, new_etag
+ )
+
+ with subtest("config is reloaded on nixos-rebuild switch"):
+ webserver.succeed(
+ "${justReloadSystem}/bin/switch-to-configuration test >&2"
+ )
+ webserver.wait_for_open_port("8080")
- with subtest("config is reloaded on nixos-rebuild switch"):
- webserver.succeed(
- "${justReloadSystem}/bin/switch-to-configuration test >&2"
- )
- webserver.wait_for_open_port("8080")
- '';
-})
+ with subtest("multiple configs are correctly merged"):
+ webserver.succeed(
+ "${multipleConfigs}/bin/switch-to-configuration test >&2"
+ )
+ webserver.wait_for_open_port("8080")
+ webserver.wait_for_open_port("8081")
+ '';
+ })