diff options
| -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 @@ | |||
| 42 | %test-exim | 42 | %test-exim |
| 43 | %test-dovecot | 43 | %test-dovecot |
| 44 | %test-getmail | 44 | %test-getmail |
| 45 | %test-rspamd)) | 45 | %test-rspamd |
| 46 | %test-radicale)) | ||
| 46 | 47 | ||
| 47 | (define %qemu-static-networking-no-nameserver | 48 | (define %qemu-static-networking-no-nameserver |
| 48 | ;; Networking configuration for QEMU without nameserver. | 49 | ;; Networking configuration for QEMU without nameserver. |
| @@ -721,3 +722,68 @@ Subject: Hello Nice to meet you!") | |||
| 721 | (name "rspamd") | 722 | (name "rspamd") |
| 722 | (description "Basic rspamd service test.") | 723 | (description "Basic rspamd service test.") |
| 723 | (value (run-rspamd-test)))) | 724 | (value (run-rspamd-test)))) |
| 725 | |||
| 726 | (define %radicale-os | ||
| 727 | (simple-operating-system | ||
| 728 | (service dhcpcd-service-type) | ||
| 729 | (service radicale-service-type))) | ||
| 730 | |||
| 731 | (define (run-radicale-test) | ||
| 732 | "Return a test of an OS running Radicale service." | ||
| 733 | |||
| 734 | (define forwarded-port 5232) | ||
| 735 | |||
| 736 | (define vm | ||
| 737 | (virtual-machine | ||
| 738 | (operating-system | ||
| 739 | (marionette-operating-system | ||
| 740 | %radicale-os | ||
| 741 | #:imported-modules '((gnu services herd)))) | ||
| 742 | (port-forwardings `((5232 . ,forwarded-port))))) | ||
| 743 | |||
| 744 | (define test | ||
| 745 | (with-imported-modules '((gnu build marionette)) | ||
| 746 | #~(begin | ||
| 747 | (use-modules (srfi srfi-64) | ||
| 748 | (gnu build marionette)) | ||
| 749 | |||
| 750 | (define marionette | ||
| 751 | (make-marionette '(#$vm))) | ||
| 752 | |||
| 753 | (test-runner-current (system-test-runner #$output)) | ||
| 754 | (test-begin "Radicale") | ||
| 755 | |||
| 756 | (test-assert "Radicale service is running" | ||
| 757 | (marionette-eval | ||
| 758 | '(begin | ||
| 759 | (use-modules (gnu services herd)) | ||
| 760 | (wait-for-service 'radicale)) | ||
| 761 | marionette)) | ||
| 762 | |||
| 763 | (test-assert "Radicale TCP port ready, IPv4" | ||
| 764 | (wait-for-tcp-port #$forwarded-port marionette)) | ||
| 765 | |||
| 766 | (test-equal "Radicale internal web interface works" | ||
| 767 | 200 | ||
| 768 | (marionette-eval | ||
| 769 | '(begin | ||
| 770 | (use-modules (web client) | ||
| 771 | (web response)) | ||
| 772 | (response-code (http-get "http://localhost:5232/.web/index.html"))) | ||
| 773 | marionette)) | ||
| 774 | |||
| 775 | (test-assert "Radicale configuration action" | ||
| 776 | (marionette-eval '(with-shepherd-action 'radicale ('configuration) | ||
| 777 | results | ||
| 778 | (file-exists? (car results))) | ||
| 779 | marionette)) | ||
| 780 | |||
| 781 | (test-end)))) | ||
| 782 | |||
| 783 | (gexp->derivation "radicale-test" test)) | ||
| 784 | |||
| 785 | (define %test-radicale | ||
| 786 | (system-test | ||
| 787 | (name "radicale") | ||
| 788 | (description "Basic radicale service test.") | ||
| 789 | (value (run-radicale-test)))) | ||
