diff options
| author | Rodion Goritskov <rodion@goritskov.com> | 2026-01-04 20:44:17 +0100 |
|---|---|---|
| committer | Ludovic Courtès <ludo@gnu.org> | 2026-01-09 15:22:45 +0100 |
| commit | b73427bf6ba06d9df71785b1093dc264fb3ab407 (patch) | |
| tree | 34392d0d60d0ddac506d970551edf675c92c1798 /gnu | |
| parent | 32fca2d36660b65686038f87845a7c173336041f (diff) | |
tests: mail: Add Radicale test.
* gnu/tests/mail.scm
(%radicale-os): New variable.
(run-radicale-test): New function with basic tests.
(%test-radicale): New variable.
Change-Id: I4a4e093ca7ac2a20a575bcf38b6ff763edf67652
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #5361
Diffstat (limited to 'gnu')
| -rw-r--r-- | gnu/tests/mail.scm | 68 |
1 files changed, 67 insertions, 1 deletions
diff --git a/gnu/tests/mail.scm b/gnu/tests/mail.scm index ff9c3a690c1..87c1a2667ee 100644 --- a/gnu/tests/mail.scm +++ b/gnu/tests/mail.scm @@ -42,7 +42,8 @@ %test-exim %test-dovecot %test-getmail - %test-rspamd)) + %test-rspamd + %test-radicale)) (define %qemu-static-networking-no-nameserver ;; Networking configuration for QEMU without nameserver. @@ -721,3 +722,68 @@ Subject: Hello Nice to meet you!") (name "rspamd") (description "Basic rspamd service test.") (value (run-rspamd-test)))) + +(define %radicale-os + (simple-operating-system + (service dhcpcd-service-type) + (service radicale-service-type))) + +(define (run-radicale-test) + "Return a test of an OS running Radicale service." + + (define forwarded-port 5232) + + (define vm + (virtual-machine + (operating-system + (marionette-operating-system + %radicale-os + #:imported-modules '((gnu services herd)))) + (port-forwardings `((5232 . ,forwarded-port))))) + + (define test + (with-imported-modules '((gnu build marionette)) + #~(begin + (use-modules (srfi srfi-64) + (gnu build marionette)) + + (define marionette + (make-marionette '(#$vm))) + + (test-runner-current (system-test-runner #$output)) + (test-begin "Radicale") + + (test-assert "Radicale service is running" + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (wait-for-service 'radicale)) + marionette)) + + (test-assert "Radicale TCP port ready, IPv4" + (wait-for-tcp-port #$forwarded-port marionette)) + + (test-equal "Radicale internal web interface works" + 200 + (marionette-eval + '(begin + (use-modules (web client) + (web response)) + (response-code (http-get "http://localhost:5232/.web/index.html"))) + marionette)) + + (test-assert "Radicale configuration action" + (marionette-eval '(with-shepherd-action 'radicale ('configuration) + results + (file-exists? (car results))) + marionette)) + + (test-end)))) + + (gexp->derivation "radicale-test" test)) + +(define %test-radicale + (system-test + (name "radicale") + (description "Basic radicale service test.") + (value (run-radicale-test)))) |
