summaryrefslogtreecommitdiff
path: root/gnu/tests
diff options
context:
space:
mode:
authorBruno Victal <mirai@makinata.eu>2023-02-04 20:28:16 +0000
committerLiliana Marie Prikler <liliana.prikler@gmail.com>2023-02-05 06:56:44 +0100
commit139c9a53cb19a97947aa6998eae953a4f32d3c3e (patch)
treeb4544869d7c08eb995f305b016312d5dc0b1274a /gnu/tests
parent637a9c3b264fe8eb76b6ed9f104b635d95632be6 (diff)
services: Add mympd-service-type.
* gnu/services/audio.scm (mympd-service-type): New variable. * gnu/tests/audio.scm (%test-mympd): New variable. * doc/guix.texi: Document it. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
Diffstat (limited to 'gnu/tests')
-rw-r--r--gnu/tests/audio.scm53
1 files changed, 52 insertions, 1 deletions
diff --git a/gnu/tests/audio.scm b/gnu/tests/audio.scm
index 8aa6d1e818..acb91293e8 100644
--- a/gnu/tests/audio.scm
+++ b/gnu/tests/audio.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
+;;; Copyright © 2022 Bruno Victal <mirai@makinata.eu>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -22,9 +23,11 @@
#:use-module (gnu system vm)
#:use-module (gnu services)
#:use-module (gnu services audio)
+ #:use-module (gnu services networking)
#:use-module (gnu packages mpd)
#:use-module (guix gexp)
- #:export (%test-mpd))
+ #:export (%test-mpd
+ %test-mympd))
(define %mpd-os
(simple-operating-system
@@ -76,3 +79,51 @@
(name "mpd")
(description "Test that the mpd can run and be connected to.")
(value (run-mpd-test))))
+
+(define (run-mympd-test)
+ (define os (marionette-operating-system
+ (simple-operating-system (service dhcp-client-service-type)
+ (service mympd-service-type))
+ #:imported-modules '((gnu services herd))))
+
+ (define vm
+ (virtual-machine
+ (operating-system os)
+ (port-forwardings '((8080 . 80)))))
+
+ (define test
+ (with-imported-modules '((gnu build marionette))
+ #~(begin
+ (use-modules (srfi srfi-64)
+ (srfi srfi-8)
+ (web client)
+ (web response)
+ (gnu build marionette))
+
+ (define marionette
+ (make-marionette (list #$vm)))
+
+ (test-runner-current (system-test-runner #$output))
+ (test-begin "mympd")
+ (test-assert "service is running"
+ (marionette-eval '(begin
+ (use-modules (gnu services herd))
+
+ (start-service 'mympd))
+ marionette))
+
+ (test-assert "HTTP port ready"
+ (wait-for-tcp-port 80 marionette))
+
+ (test-equal "http-head"
+ 200
+ (receive (x _) (http-head "http://localhost:8080") (response-code x)))
+
+ (test-end))))
+ (gexp->derivation "mympd-test" test))
+
+(define %test-mympd
+ (system-test
+ (name "mympd")
+ (description "Connect to a running myMPD service.")
+ (value (run-mympd-test))))