diff options
author | Marius Bakke <mbakke@fastmail.com> | 2018-08-26 23:33:48 +0200 |
---|---|---|
committer | Marius Bakke <mbakke@fastmail.com> | 2018-09-26 00:33:01 +0200 |
commit | 3b97a1779f3b65d582b8edc8c154b6414314b946 (patch) | |
tree | c9ad03a95143d3c237fdd91446c1c74c20b3f058 /gnu/tests/web.scm | |
parent | 5f33e9063b9b047801d0206e7a74eee8bf6fc52d (diff) | |
download | guix-3b97a1779f3b65d582b8edc8c154b6414314b946.tar guix-3b97a1779f3b65d582b8edc8c154b6414314b946.tar.gz |
services: Add Varnish service.
* gnu/services/web.scm (<varnish-configuration>): New record type.
(%varnish-accounts, %varnish-service-type): New variables.
(varnish-shepherd-service): New procedure.
* gnu/tests/web.scm (%varnish-vcl, %varnish-os): New variables.
(%test-varnish): New test.
* doc/guix.texi (Web Services): Document it.
Diffstat (limited to 'gnu/tests/web.scm')
-rw-r--r-- | gnu/tests/web.scm | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/gnu/tests/web.scm b/gnu/tests/web.scm index 45fcb668fb..bcc919137b 100644 --- a/gnu/tests/web.scm +++ b/gnu/tests/web.scm @@ -32,6 +32,7 @@ #:use-module (guix store) #:export (%test-httpd %test-nginx + %test-varnish %test-php-fpm %test-hpcguix-web %test-tailon)) @@ -169,6 +170,46 @@ HTTP-PORT." ;;; +;;; Varnish +;;; + +(define %varnish-vcl + (mixed-text-file + "varnish-test.vcl" + "vcl 4.0; +backend dummy { .host = \"127.1.1.1\"; } +sub vcl_recv { return(synth(200, \"OK\")); } +sub vcl_synth { + synthetic(\"" %index.html-contents "\"); + set resp.http.Content-Type = \"text/plain\"; + return(deliver); +}")) + +(define %varnish-os + (simple-operating-system + (dhcp-client-service) + ;; Pretend to be a web server that serves %index.html-contents. + (service varnish-service-type + (varnish-configuration + (name "/tmp/server") + ;; Use a small VSL buffer to fit in the test VM. + (parameters '(("vsl_space" . "4M"))) + (vcl %varnish-vcl))) + ;; Proxy the "server" using the builtin configuration. + (service varnish-service-type + (varnish-configuration + (parameters '(("vsl_space" . "4M"))) + (backend "localhost:80") + (listen '(":8080")))))) + +(define %test-varnish + (system-test + (name "varnish") + (description "Test the Varnish Cache server.") + (value (run-webserver-test "varnish-default" %varnish-os)))) + + +;;; ;;; PHP-FPM ;;; |