diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-03-09 23:49:18 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-03-09 23:51:43 +0100 |
commit | 116244df95faf664fd6f106ac8c3117674f81310 (patch) | |
tree | 557d88599493f1f2d14ccdc44546b9948cee2c66 /tests/guix-system.sh | |
parent | b0b727808b0b3466959b3f7143d35435834df0ee (diff) | |
download | gnu-guix-116244df95faf664fd6f106ac8c3117674f81310.tar gnu-guix-116244df95faf664fd6f106ac8c3117674f81310.tar.gz |
services: Statically report duplicate dmd service identifiers.
Reported by 白い熊 @相撲道 <guix-devel_gnu.org@sumou.com>
at <http://lists.gnu.org/archive/html/guix-devel/2015-03/msg00264.html>.
* gnu/services/dmd.scm (assert-no-duplicates): New procedure.
(dmd-configuration-file): Use it.
* po/guix/POTFILES.in: Add gnu/services/dmd.scm.
* tests/guix-system.sh (errorfile): Add test.
Diffstat (limited to 'tests/guix-system.sh')
-rw-r--r-- | tests/guix-system.sh | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/tests/guix-system.sh b/tests/guix-system.sh index b5476476e1..76e722fbc1 100644 --- a/tests/guix-system.sh +++ b/tests/guix-system.sh @@ -1,5 +1,5 @@ # GNU Guix --- Functional package management for GNU -# Copyright © 2014 Ludovic Courtès <ludo@gnu.org> +# Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org> # # This file is part of GNU Guix. # @@ -28,6 +28,8 @@ tmpfile="t-guix-system-$$" errorfile="t-guix-system-error-$$" trap 'rm -f "$tmpfile" "$errorfile"' EXIT +# Reporting of syntax errors. + cat > "$tmpfile"<<EOF ;; This is line 1, and the next one is line 2. (operating-system) @@ -41,3 +43,36 @@ then else grep "$tmpfile:2:3:.*missing.* initializers" "$errorfile" fi + + +# Reporting of duplicate service identifiers. + +cat > "$tmpfile" <<EOF +(use-modules (gnu)) +(use-service-modules networking) + +(operating-system + (host-name "antelope") + (timezone "Europe/Paris") + (locale "en_US.UTF-8") + + (bootloader (grub-configuration (device "/dev/sdX"))) + (file-systems (cons (file-system + (device "root") + (title 'label) + (mount-point "/") + (type "ext4")) + %base-file-systems)) + + (services (cons* (dhcp-client-service) + (dhcp-client-service) ;twice! + %base-services))) +EOF + +if guix system vm "$tmpfile" 2> "$errorfile" +then + # This must not succeed. + exit 1 +else + grep "service 'networking'.*more than once" "$errorfile" +fi |