aboutsummaryrefslogtreecommitdiff
path: root/gnu/tests/web.scm
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2018-08-26 23:33:48 +0200
committerMarius Bakke <mbakke@fastmail.com>2018-09-26 00:33:01 +0200
commit3b97a1779f3b65d582b8edc8c154b6414314b946 (patch)
treec9ad03a95143d3c237fdd91446c1c74c20b3f058 /gnu/tests/web.scm
parent5f33e9063b9b047801d0206e7a74eee8bf6fc52d (diff)
downloadpatches-3b97a1779f3b65d582b8edc8c154b6414314b946.tar
patches-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.scm41
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
;;;